GoでGitHubのrepositoryをキレイにするツール作ってた

作ったのは大分前なんだけど、そういえばブログに書いてなかった。

github.com

こういうのの名前考えるのめっちゃ苦手で、好きなMGSのキャラクターから名前とったものの、結構有名っぽいOSSに同名のものがあってしくじった感ある。いい名前があればIssueください…

何をするツール?

GitHubのrepositoryのお掃除をするツール。と言っても、現在のところはReleaseを消す機能しかない。

# clean suusan2go/hoge repo releases created 1 months ago
$ raiden releases clean -r hoge -o suusan2go --months 1

GitHubのRelasesは何か特殊な構造になっていて、GitのタグとGitHubで作成されたReleaseというのが混在する形になっている。なのでGitHubAPIからReleasesを消してもタグは残っちゃうし、タグだけ消してもReleaseは残るという結構面倒な感じになっているが、このツールなら上記のコマンドで一気に消せる。

ちなみにタグだけを消す方法もあります。

# clean suusan2go/hoge repo releases created 1 months ago
$ raiden tags clean -r hoge -o suusan2go --months 1

なんでこんなの作ったの?

会社(前職)のデプロイフローのなかでタグを作ったりReleaseを作ったりしていたんだけど、デプロイの度に作っちゃうもんだから積もり積もって数千件に達していてGitHubからpullしてくるのがちょっと遅くなっていた(らしい。インフラ見てる同僚談) GitHubの画面からポチポチは無理な感じだったので、シュッっと(実際はちょっとかかったけど)Goで作ってみた。

Goに詳しい人から教えてもらって、Cobraという奴を使ってみたんだけど、結構簡単にそれっぽいCLIツールができてしまって感動。

github.com

今後の展望

放置されたIssueやPRを閉じる機能とかそのうち作ろうかな‐と思っていたものの、今の職場はGitLabなんでどうしたもんかな。 GitLab悪くないんだけど、やっぱりGitHubが恋しいよ。