如何在GitHub API中获取特定组织的贡献者列表

7
有没有办法使用GitHub API或任何外部服务获取GitHub组织中的所有贡献者?
我正在尝试使用GitHub API获取angular组织中的所有贡献者。
我只找到了一种解决方案:
  1. Get all repos from angular organisation using this request:

    GET https://api.github.com/orgs/angular/repos
    
  2. For each repo, get all its contributors by this request:

    GET https://api.github.com/repos/angular/:repo/contributors
    
  3. Merge all derived data to one array.

这种方法看起来是可以工作的,但我认为它非常繁琐。我用这种方式发送了大约300个请求,它们需要处理大约20秒(应用程序在所有请求完成之前将被冻结)。

问题:

  1. 有没有其他替代方案?
  2. Github注册应用程序处理如此多的请求是否可行?我提到,每次应用程序启动时都会发送这300个请求。
1个回答

8

这种方法有没有其他的替代方案?

实际上没有,我想不到更好的解决方案。

Github注册应用程序处理如此多的请求是否可以?我提到,每次应用程序启动时都会发送这300个请求。

只要您遵守主要和辅助GitHub API速率限制,就应该没问题。

https://developer.github.com/v3/#rate-limiting

https://developer.github.com/guides/best-practices-for-integrators/#dealing-with-abuse-rate-limits

主要限制允许您每小时对每个用户进行5000个经过身份验证的请求。如果您开始进行大量并发请求(例如每秒数百个请求超过几秒钟),则将触发次要限制。因此,如果您需要进行300个请求,只需确保降低并发性。

如果应用程序缓存了某些信息以便进行条件请求,则会变得更好:

https://developer.github.com/v3/#conditional-requests


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接