github api-如何检索与我相关的存储库?

问题描述 投票:0回答:1

我们可以循环rest APIhttps://api.github.com/repos/OWNER/REPO/contributors并检查。 不过,我们有将近10万个存储库。

我们也找到了一些循环graphql api的方法,但这也需要时间,这意味着我们最终每天必须查询一次,将其保存到数据库等。
    solly应该有一种方法可以在一个呼叫中做到这一点。
  1. 我们尝试使用GraphQl API:
    尝试以下内容。
    
  2. repositoryOwner
  3. :使用
login: "MyOrganization"

我们只能检索与组织相关的存储库,

affiliations

看起来像是跟随组织,而不是我作为登录用户的我。 再次请注意,所有存储库都是组织所有的,因此,如果我尝试

ownerAffiliations
    ,我只会得到我私下拥有的存储库。
  1. login: "MyGitHubUser"
    :这里
    viewer
    仅检索当前观众拥有的回购,而不是他们贡献的回购。
    viewer.repositories
    :仅检索一个回购。
    
    repository
    :我们已经尝试了
  2. search
  3. ,但未成功(
    Query Documentation
    )。 我们要求尝试使用
    query
    的AI,但这也不能检索贡献者。
  4. 有人建议我们研究
    octokit的graphql库
    ,这是我们下一步尝试的。
  5. 我们看了RET的API,但只发现了逐个repo的可能性。
  6. 这完全可以在一个API呼叫中进行吗?
    	
    ICross在我很快出于某些未知原因获得-1票后,在Github社区上发布了一个问题。  对于任何遇到同样问题的人来说,这都是一个有用的答案:
    https://github.com/orgs/community/discussions/151261(我建议使用社区,因为响应快速而令人印象深刻)
    以下是该答案的副本和粘贴:
    - 开始复制和粘贴 -
取出用户在单个API呼叫中为大型组织内部贡献的所有存储库非常具有挑战性,这由于GitHub的当前API限制。但是,这里有一些方法可能会有所帮助:

使用GraphQl API(有效查询)

GITHUB的GraphQl API提供了一种查询用户贡献的方法,而无需手动浏览存储库。

involves
github-api
1个回答
0
投票

contributionsCollection 🔹要包括拉请求贡献,扩展查询:

{ user(login: "YourGitHubUsername") { contributionsCollection { commitContributionsByRepository(maxRepositories: 100) { repository { name owner { login } } } } } }

使用github搜索API(休息替代)

搜索API支持查找用户是贡献者的存储库:

get

Https://api.github.com/search/repositories?q =用户:yourgithubusername

consides octokit进行优化


使用OctOkit可以通过更好的分页处理和性能来简化GraphQl请求。
结论

没有单个API调用,可以直接在一个组织中找到所有贡献的存储库,但是GraphQL贡献汇票是最接近的内置解决方案。如果您需要更广泛的数据集,则可能仍需要每天进行批处理API调用和缓存结果。

-复制和粘贴的结尾 -
此外,在公司的宽松频道上,有人建议调查

{ user(login: "YourGitHubUsername") { contributionsCollection { pullRequestContributionsByRepository(maxRepositories: 100) { repository { name owner { login } } } } } } ,正如文档所示

用户对用户贡献的重新定位,按贡献订购 等级,再加上用户创建的存储库。

我们最终使用上面的GraphQl查询时没有开始测试。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.