この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
みなさん、GitHubでリポジトリを作成した後、「やっぱり使用しないなぁ」ってことありませんか?
私もGitHubの勉強を始めた頃は、とりあえず作って放置していました。
その結果、リポジトリの数が70近くあったので、不要なリポジトリを一括削除してみました。
動作環境
- Mac OS
- GitHub CLI 1.12.1
- jq 1.6
手順
GitHub CLI の alias登録
削除用のコマンドをaliasとして追加します。
gh alias set repo-delete 'api -X DELETE "repos/$1"'
また、権限を付与させるために以下のコマンドも実行させます。
gh auth refresh -h github.com -s delete_repo
一括削除のスクリプト作成
テキストファイル(delete.txt)から削除対象のリポジトリ名を読み込んで、先ほどのdelete_repoコマンドを実行させるシェルスクリプトを作成しました。
repo-all.sh
#!/bin/bash
echo -n "your user name:"
read uname
while read line
do
reponame=$uname"/"$line
gh repo-delete $reponame
echo "Delete "$reponame
done < delete.txt
delete.txt
hogehoge
fugafuga
実行してみる
実際にスクリプトを実行してみると、リポジトリが削除されていることが確認できます。
$ bash repo-all.sh
your user name:cH6noota
cH6noota/hogehoge Delete
cH6noota/fugafuga Delete
まとめ
Webページから行うよりも結構簡単にできた気がします!
リポジトリの削除するにあたって、ghのaliasを利用してみましたが、他の用途にも応用できそうですね。
(例えば、全リポジトリを取得するなど)