#
ドキュメント

Document

自分のための備忘録です。

GitHubのAuth Appを作成

Ref.

内容

  1. Oauth Appを作成してWeb application flowを使ってAccess Tokenを取得
  2. Pull Requestに設定したReviewersを取得

Oauth Appを作成してWeb application flowを使ってAccess Tokenを取得

  1. GitHub画面上からOauth Appを作成
    • 画面:Settings > Developer Settings > OAuth Apps
    • 得られる情報
      • Client ID
      • Client Secret
  2. ユーザーのGitHub Identityをリクエスト(Request a user's GitHub identity)
    • ブラウザに入力:https://github.com/login/oauth/authorize?client_id=<client_id string>&scope=repo
    • エンドポイント:https://github.com/login/oauth/authorize
    • パラメータ
      • client_id:必須
      • scope:省略した場合はpublicなリポジトリにのみアクセス可能
        scopeの詳細はUnderstanding scopes for OAuth Apps | GitHub Developer Guideを参照
      • redirect_uri:省略した場合は1のApp作成時に登録したAuthorization callback URLへリダイレクト
    • 得られる情報
      • リダイレクトURLに指定したアドレスへ以下の形式でレスポンスが変える
        http://www.info-town.jp/?code=<string>
      • code
        • Access Token(OAUTH TOKEN)を取得するときに必要
  3. Access Tokenを取得
    • curl -X POST https://github.com/login/oauth/access_token -d "client_id=<client_id string>&client_secret=<client_secret string>&code=<code string>"
    • 必要情報
      • Client ID
      • Client Secret
      • code
    • レスポンス:
      • access_token=<access_token string>&scope=repo&token_type=bearer
  4. Access Tokenを使ったアクセス
    • curl -H "Authorization: token <access_token string>" -i https://api.github.com/repos/s-hiroshi/learning

Pull Requestに設定したReviewersを取得

Pull Request取得

s-hiroshi/learningリポジトリを前提に記載する。

curl -H "Authorization: token <access_token string>" https://api.github.com/repos/s-hiroshi/learning/pulls/36

公式ドキュメントでは、上記リクエストに対するレスポンスのrequested_reviewersプロパティにReviewersが設定されると記載されているが、実際は空になっている。

以下のリンクで同様の問題が指摘されている。 Get repository pulls always returns empty array for requested_reviewers · Issue #1030 · octokit/octokit.rb

Pull RequestのReviewerを取得

curl -H "Authorization: token <access_token string>" https://api.github.com/repos/s-hiroshi/learning/pulls/36/reviews

すべてのPull Requestを取得

curl -H "Authorization: token xxxxxxxxxxxxxxxxxxxxxxxxx" -H "Accept: application/vnd.github.symmetra-preview+json" https://api.github.com/repos/s-hiroshi/learning/pulls\?state\=all -o pull-request.json
# stateクエリ文字を付与しないとOpenなものだけ取得
curl -H "Authorization: token xxxxxxxxxxxxxxxxxxxxxxxxx" -H "Accept: application/vnd.github.symmetra-preview+json" https://api.github.com/repos/s-hiroshi/learning/pulls -o pull-request.json

https://developer.github.com/v3/pulls/

備考

curlオプション

オプション 内容
-i レスポンスヘッダを表示
-X HTTPメソッドを指定

備考

curlオプション

オプション 内容
-i レスポンスヘッダを表示
-X HTTPメソッドを指定