【Golang】GitHubのAPIでIssueのコメントを全件取ってくるスクリプト

f:id:serinuntius:20180720231919p:plain

昨日モテるシェル芸とか言って、ブログ書いてたんですけど、

serinuntius.hatenablog.jp

実はGitHubのIssueのコメントが大量すぎて、Load more になっちゃってて、全部の画像をダウンロードできてなかったみたいです。

f:id:serinuntius:20180720133258p:plain

それをデザイナーに指摘されて、全部取ってこようと思ってGitHubのAPI見てたら、Headerに次のページのlinkが入っているという仕様で、シェルスクリプト書くぐらいならGoで書きたいな〜と思ってGoで書きました。

GitHubのTokenを取得する

GitHubのパスワード認証だけだったらわざわざToken取得しなくてもいいんですけど、2段階認証している方はTokenの取得が必要となってきます。

https://github.com/settings/tokens にアクセスして、Tokenを取得します。

スクリプト

GoのGitHub APIのクライアントは

github.com

が便利です。

gist.github.com

使い方

環境変数TOKENにGitHubのTokenを入れます。

Passwordをベタ打ちしない方法は、Qiitaに書きました。 qiita.com

あと、constのrepoとかownerは自分のものに変えてください。

read -s 'TOKEN?tokenを入れてください>'
go run main.go | xargs wget

上記コマンドでIssueの画像が全件ダウンロードされるはずです。 されないときは、正規表現等が怪しいと思うので、その辺りを修正してください。

まとめ

これで、デザイナーから「おい!全部じゃねえぞ」ってツッコミが飛んでこなくなりましたね。*1

めでたしめでたし。

*1:実際にはそんなツッコミは飛んできていません。