如何使用 GraphQL 查询 GitHub 存储库的主要贡献者

Posted

技术标签:

【中文标题】如何使用 GraphQL 查询 GitHub 存储库的主要贡献者【英文标题】:How to query the top contributors to a GitHub repository using GraphQL 【发布时间】:2019-07-30 00:41:50 【问题描述】:

使用 GitHub 的 GraphQL API (v4),我如何查询给定存储库的主要贡献者?我有一个存储库列表,我想显示每个存储库的一些相关数据——即列表中每个存储库的前 5 个贡献者(基于提交)。

这是我当前的查询:


  organization(login: "the-road-to-learn-react") 
    id
    repositories(first: 20) 
      edges 
        node 
          collaborators(affiliation: ALL) 
            edges 
              node 
                name
              
            
          
        
      
    
  

我遇到了错误:“必须具有推送访问权限才能查看存储库协作者”。我的想法是获取每个存储库的所有协作者,然后查询每个用户对存储库的贡献数量。如何才能做到这一点?有没有办法在不查询存储库协作者的情况下做到这一点?

【问题讨论】:

【参考方案1】:

要通过 API 访问存储库协作者列表,您必须是项目中的 collaborators 之一。

你可以阅读更多关于Permission levels for a user account repository的信息。

即使您是合作者之一,该组织的某些存储库也可能没有OAuth App access

你可以阅读更多关于Restricting access to your organization's data的信息。

所以我认为除非满足上述要求,否则无法进行查询。

【讨论】:

【参考方案2】:

很遗憾,您不能使用 github graphQL API,但是,作为替代方案,您可以使用 Github REST API

例如:https://api.github.com/repos/facebook/react/contributors 您将获得大约 30 个条目,只需使用查询字符串 ?page=2 进行分页即可

未经身份验证的速率限制为每小时 60 个请求,经过身份验证的请求为 5000

【讨论】:

以上是关于如何使用 GraphQL 查询 GitHub 存储库的主要贡献者的主要内容,如果未能解决你的问题,请参考以下文章

使用 GitHub GraphQL API v4 查询单个存储库中的所有提交

如何查询 GraphQL GitHub API 以找到我的第一个 git 提交?

如何使用 HttpUrlConnect 使用 java 查询 Github graphql API

Github GraphQL API:如何收集特定用户的存储库?

GitHub GraphQL 查询 - 按用户统计给定月份的 PR 评论

如何使用 GitHub GraphQL API 获取具有特定主题的所有存储库?