6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

KDDI EngineerAdvent Calendar 2020

Day 6

GitHub の GraphQL API を使ってみる

Last updated at Posted at 2020-12-05

GitHub に API アクセスしたかったので、使い方を調べたまとめ

GitHub API

GitHub の API には、REST API と GraphQL API がある

以下では、GraphQL を使っていくことにする

試した環境

  • GitHub アカウント
    • 登録しておく
  • Insomnia
    • API クライアントソフトとして Insomnia を使う
    • Postman 等の他のクライアントソフトでもいい

準備

アクセストークンを取得する

Creating a personal access token - GitHub Docs に従ってトークンを取得する

  1. 登録しているメールアドレスを検証する

  2. GitHub にログインし、ページ右上のメニューから [Settings] をクリックする
    20201123_graphql_001.png

  3. 左側のメニューから、[Developer settings] をクリック
    20201123_graphql_002.png

  4. 左側のメニューから、[Personal access tokens] をクリック
    20201123_graphql_003.png

  5. [Generate new token] をクリック

  6. Note にトークンの説明を記述

  7. Select scopes で以下の項目をチェックする(後から変更も可能)

    • repo
    • user
    • admin:org > read:org
    • admin:public_key > read:public_key
    • admin:repo_hook > read:repo_hook
    • admin:gpg_key > read:gpg_key
  8. [Generate token] をクリック

  9. 生成されたトークンを記録しておく(再表示はできないので、確実に保存しておく)
    20201123_graphql_006.png

  10. organizations がシングルサインオンを設定している場合は、[Enable SSO] を開いて、対象リポジトリを [Authorise] する
    20201123_graphql_021.png

GraphQL API を投げてみる

  1. Insomnia を起動する

  2. New Request で新しいリクエストを作る
    20201123_graphql_007.png

  3. エンドポイントに以下を入力

    https://api.github.com/graphql
    
  4. Auth タブをクリックし [Basic Auth] を選択し、下記のように入力

    • USERNAME : GitHub のアカウント名を入力
    • PASSWORD : 先ほど生成したトークンを入力
  5. Body タブをクリックし、[GraphQL Query] を選択し、下記のように入力

    query{
      user(login: "ログインユーザー名"){
        login
        name
      }
    }
    
  6. [Send] をクリック

  7. うまくいっていれば JSON 形式のレスポンスが返ってくる

    {
      "data": {
        "user": {
          "login": "ログインユーザー名",
          "name": "指定していた名前"
        }
      }
    }
    

20201123_graphql_008.png

スキーマを確認する

スキーマの定義を確認することができる

  • Insomnia の [schema] をクリックし、[Show Documentation] をクリックする
    20201123_graphql_021.png

  • ウィンドウの右側にスキーマ定義が表示される
    20201123_graphql_022.png

クエリ

何種類かクエリー、ミューテーションを試してみる

リポジトリを取得

  • ユーザ名(もしくは組織名)、リポジトリ名 でリポジトリを取得

20201123_graphql_011.png

エイリアス&フラグメントを使ってユーザを取得

20201123_graphql_013.png

プルリクエストを取得

20201123_graphql_018.png

文字列でリポジトリを検索

  • Variables の query に与えた文字列で検索する

20201123_graphql_015.png

ミューテーション

スターを付ける

  • starrableId は、repository クエリーで入手できる id を指定する

20201123_graphql_014.png

プルリクを Approve する

  • pullRequests で取得した id で指定する

20201123_graphql_019.png

プルリクをマージする

  • pullRequests で取得した id で指定する

20201123_graphql_020.png

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?