Elsaの技術日記(徒然なるままに)

主に自分で作ったアプリとかの報告・日記を記載

MENU

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コマンドと先ほどのAPIを用いて、、

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の番号(#**)が入ります。

■最後に

今回はAPIを用いてgithub上のIssueの一覧取得や登録、そしてコメント追加までを行ってみました。
少しでもお役に立てれば幸いです!!