如何使用 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:如何收集特定用户的存储库?