まくろぐ

GitHub GraphQL クエリ例: マイルストーン情報を取得する (milestone)

更新:
作成:

マイルストーン番号で Milestone オブジェクトを取得する

リポジトリ名(組織名/リポジトリ名)が分かっている場合は、repository クエリ で取得した Repository オブジェクトmilestone フィールドに マイルストーン番号 を指定することで、そのマイルストーンの Milestone オブジェクト を取得することができます。 例えば、Web アプリなどでは、/milestone/123 のようなパスで指定したマイルストーンの情報を表示したいことがありますが、このようなケースで 123 という番号を使って情報を取得することができます。

記述中

GraphQL クエリ
query {
  repository(owner: "myorg", name: "myrepo") {
    milestone(number: 123) {
      number
      title
      dueOn
      description
      url
      issues(first: 100) {
        nodes {
          number
          title
          closed
          url
        }
      }
    }
  }
}

マイルストーンが設定されていないイシューを取得する

search クエリ で、Issue や PullRequest を検索するときに、query パラメータで渡す文字列に no:milestone を含めると、マイルストーンの設定されていないものだけを検索することができます。

次の例では、myorg/myrepo リポジトリにおいて、マイルストーンの設定されていない Issue の一覧を取得しています(query 引数に is:issue を含めることで、PullRequest まで取得されてしまうのを防いでいます)。

GraphQL クエリ
query {
  rateLimit { cost remaining }
  search(type: ISSUE, last: 100, query: "repo:myorg/myrepo is:issue no:milestone") {
    nodes {
      ... on Issue {
        number
        title
        closed
        url
        assignees(first: 100) {
          nodes { login avatarUrl url }
        }
        labels(first: 100) {
          nodes { name color }
        }
      }
    }
  }
}

no:milestone の他にも、no:label(ラベルのないもの)、no:assignee(アサインされていないもの)、といった条件で検索することができます。

関連記事

まくろぐ
サイトマップまくへのメッセージ