如何在GitHub API

时间:2016-08-19 15:07:00

标签: github github-api

有没有办法使用GitHub API或任何外部服务从GitHub上的组织中获取所有贡献者?

我正在尝试使用GitHub API从angular组织中获取所有贡献者。

我发现只有一个解决方案:

  1. 使用此请求从angular组织获取所有回购:

    GET https://api.github.com/orgs/angular/repos
    
  2. 对于每个仓库,请通过此请求获取所有贡献者:

    GET https://api.github.com/repos/angular/:repo/contributors
    
  3. 将所有派生数据合并到一个数组中。
  4. 它似乎有效,但我认为这个解决方案非常繁琐。我以这种方式发送大约300个请求,并且他们正在处理大约20秒(应用程序将被冻结,直到所有请求都没有完成)。

    问题:

    1. 这种方法还有其他选择吗?
    2. github注册的应用程序可以处理这么多请求吗?我提到,每次申请开始时都会发送这300个请求。

1 个答案:

答案 0 :(得分:3)

  

这种方法还有其他选择吗?

不,不是真的 - 我想不出更好的方法。

  

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