GitHub の GraphQL API を使ってリポジトリの情報を取得するには、次のような方法があります。
repository クエリ
… 組織名(あるいはユーザ名)とリポジトリ名が分かっている場合organization クエリ
… ある組織内のリポジトリの一覧を取得する場合(こちらの記事 を参考にしてください)search クエリ
… 汎用的な検索用クエリ でリポジトリを検索する
search クエリでリポジトリを検索する
特定の組織 (organization) 内のリポジトリを取得するには、organization クエリを使って 得られた Organization
オブジェクトの repositories
を参照する方法もありますが、最初から search
クエリを使っていろいろな条件を指定して検索する方が早いです。
次の例では、myorg
という組織内の、product
というトピックの付けられたリポジトリの一覧を取得しています。
あるリポジトリのマイルストーンの一覧を取得する
repository クエリ を使用すると、指定した組織(ユーザー)の、指定したリポジトリの情報を取得することができます。
次の GraphQL クエリは、apollographql/apollo-client
リポジトリで設定されているマイルストーンの一覧を要求しています。
milestones
クエリで最初の 3 件分を取得していますが、最大 100 件まで同時に取得することができます。
100 件を超えるデータを取得したいときは、ページネーション処理 が必要です。
マイルストーンの一覧をソートする
milestones
クエリを発行するときに、orderBy
パラメータを指定すると、特定のフィールドの値を使ってソートされた結果を取得することができます。
次の例では、マイルストーンの Due Date が遅いものから順番に 100 件分を取得します。
マイルストーンに所属するイシューを取得する
milestones
クエリを発行するときに、入れ子の形で issues
を要求することで、各マイルストーンに所属するイシューのリストまで同時に取得してしまうことができます。
関連記事