github APIを用いたコマンドでのIssueの取得や登録
今回はgithub上に上がっているIssueの一覧を取得する方法についてまとめていきたいと思います。
個人やOSSなど、ソースコードやバグ・要望などなどをgithub上で管理することがあるかと思います。
その際に、バグや要望の一覧が見たいな!!となったことはないでしょうか?
今回は、APIを用いてIssueの一覧を取得してみたいと思います。
■APIを用いてgithub上のリポジトリからIssueを取得
githubではCUIで操作するためのAPIが用意されております。
下記が公式のドキュメントになります。
REST APIを使ってみる - GitHub Docs
こちらのAPIを使用するためには、
アクセストークン
が必要になります。
アクセストークンの取得方法はこちらの公式ページに詳しくまとまっておりますが、
Settings ⇒ Developer settings
に移動して、
Personal access tokens
でアクセストークンを作成すればOKです。
docs.github.com
curl -H "Authorization: token $TOKEN" https://api.github.com/repos/$USER_NAME/$REPO_NAME/issues
と実行すれば、指定したリポジトリに対するIssueの一覧をjson形式で取得が可能です。
ここで、、
・$TOKEN:アクセストークン
・$USER_NAME:ユーザ名
・$REPO_NAME:リポジトリ名
を指定ください。
もしOpenされたIssueのみを取得したい場合には、
curl -H "Authorization: token $TOKEN" https://api.github.com/repos/$USER_NAME/$REPO_NAME/issues?state=open
とすればOKです。
■Issueの登録
github上のリポジトリにIssueを登録する場合にはこちらのスクリプトを実行すればOKです。
curl -H "Authorization: token $TOKEN" \ -X POST \ -d'{"title": "test Issue", "body":"testです", "labels":["bug"]}' \ https://api.github.com/repos/$USER_NAME/$REPO_NAME/issues
ここで、
・$TOKEN:アクセストークン
・$USER_NAME:ユーザ名
・$REPO_NAME:リポジトリ名
となるのは先ほどのIssue取得と同様です。
■(おまけ)Issueへのコメント追加
github上のIssueに対してコメントを追加する場合には、
curl -H "Authorization: token $TOKEN" \ -X POST \ -d'{"body":"コメントテスト"}' \ https://api.github.com/repos/$USER_NAME/$REPO_NAME/issues/$IssueNumber/comments
とすればOK。
$IssueNumberには登録されているIssueの番号(#**)が入ります。