【小ネタ】不要な GitHub リポジトリを一括削除する
みなさん、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コマンドを実行させるシェルスクリプトを作成しました。
#!/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
hogehoge fugafuga
実行してみる
実際にスクリプトを実行してみると、リポジトリが削除されていることが確認できます。
$ bash repo-all.sh your user name:cH6noota cH6noota/hogehoge Delete cH6noota/fugafuga Delete
まとめ
Webページから行うよりも結構簡単にできた気がします!
リポジトリの削除するにあたって、ghのaliasを利用してみましたが、他の用途にも応用できそうですね。
(例えば、全リポジトリを取得するなど)