简体   繁体   中英

Get info about several repositories from Github Graphql API in a single call

I am trying to create a query to Github GraphQL API that receive a list of repos as a parameter, and returns the info of those repositories in a single API call, does anyone know how to do that?

Something like this (I know this doesn't work)

query myOrgRepos($repos: [String!]!) {
  search(query:"""
  repo in $repos
  """, type: REPOSITORY, first: 100) {
      repo: nodes {
          ... on Repository{
              name
              description
              updatedAt
          }
      }
  }

It took me some time to understand your comment so I will post the answer in full. The key is to use Github's advanced search “syntax” in the query string, see here for examples.

The following query will find all repositories of user “github” as well as the graphql-js repository of user “graphql”:

query {
  search(query: "user:github repo:graphql/graphql-js" type: REPOSITORY first: 10) {
    nodes {
      ... on Repository {
        name
        description
        updatedAt
      }
    }
  }
}

My understanding of your question is that you want to input a list of "known" repos and output information about them. In this case you can form a query of the following type.

{
  nodes(ids: ["node_id_1", "node_id_2"]) {
    ... on Repository {
      nameWithOwner
      createdAt
    }
  }
}

Here the ids are the node_ids of the repositories you are interested in. You can obtain these by individual GraphQL calls as follows

{
  repository(owner: "owner", name: "name") {
    id
  }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM