如何使用github graphql v4 api查询组织中的所有存储库?

时间:2017-10-15 09:51:33

标签: github graphql

我想在github private上查询我组织中的所有存储库,我尝试使用

query {

  organization(login:"my-org-name") {
    id
    name
    url

    repositories(first:100) {
        nodes {
        id
        name
      }

    }

  }
}

然而它会返回

{
  "data": {
    "organization": {
      "id": "MDEyOk*********************U4ODUw",
      "name": "my-org-name",
      "url": "https://github.com/my-org-name",
      "repositories": {
        "nodes": []
      }
    }
  }
}

无法找到任何存储库。 我在Github Developer上测试它,https://developer.github.com/v4/explorer/

2 个答案:

答案 0 :(得分:1)

GraphQL Explorer是一个OAuth应用程序,需要given permission才能访问您的组织数据。

您可以直接为GraphQL API Explorer授予此权限,也可以从“设置”中导航至该权限。应用程序 - >授权的OAuth应用

oauth apps

注意 personal access token(PAT)没有此限制,因此使用您的令牌的应用程序不需要这样做。

答案 1 :(得分:1)

您可以使用search端点来实现(您需要进行身份验证)

query myOrgRepos($queryString: String!) {
  search(query: $queryString, type: REPOSITORY, first: 10) {
    repositoryCount
    edges {
      node {
        ... on Repository {
          name
        }
      }
    }
  }
}

带有查询变量

{
  "queryString": "org:my_org"
}

请注意,按预期您没有获得组织的列表存储库,而是获得了有权访问的组织列表的列表