📖

GitHub GraphQL APIを利用してリポジトリの検索を行う方法

2023/08/12に公開

概要

GitHub GraphQL APIを利用してリポジトリの検索を行う方法を記載します。

やってみる

名前にhを含むリポジトリを検索する

{
  search(query: "h", type: REPOSITORY, first: 3) {
    edges {
      node {
        ... on Repository {
          nameWithOwner
        }
      }
    }
  }
}

レスポンスは、以下になります。

{
  "data": {
    "search": {
      "edges": [
        {
          "node": {
            "nameWithOwner": "hypothesis/h"
          }
        },
        {
          "node": {
            "nameWithOwner": "cisco/openh264"
          }
        },
        {
          "node": {
            "nameWithOwner": "fyhertz/libstreaming"
          }
        }
      ]
    }
  }
}

Julia言語のリポジトリを検索する

{
  search(query: "language:julia", type: REPOSITORY, first: 3) {
    edges {
      node {
        ... on Repository {
          nameWithOwner
        }
      }
    }
  }
}

レスポンスは、以下になります。

{
  "data": {
    "search": {
      "edges": [
        {
          "node": {
            "nameWithOwner": "JuliaLang/julia"
          }
        },
        {
          "node": {
            "nameWithOwner": "fonsp/Pluto.jl"
          }
        },
        {
          "node": {
            "nameWithOwner": "FluxML/Flux.jl"
          }
        }
      ]
    }
  }
}

星が31729以上のリポジトリを検索する

{
  search(query: "stars:>=31729", type: REPOSITORY, first: 3) {
    edges {
      node {
        ... on Repository {
          nameWithOwner
        }
      }
    }
  }
}

レスポンスは、以下になります。

{
  "data": {
    "search": {
      "edges": [
        {
          "node": {
            "nameWithOwner": "freeCodeCamp/freeCodeCamp"
          }
        },
        {
          "node": {
            "nameWithOwner": "EbookFoundation/free-programming-books"
          }
        },
        {
          "node": {
            "nameWithOwner": "996icu/996.ICU"
          }
        }
      ]
    }
  }
}

Discussion