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

1ve*_*ven 4 github github-api

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

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

我只找到了一种解决方案:

  1. angular使用此请求从组织获取所有存储库:

    GET https://api.github.com/orgs/angular/repos
    
    Run Code Online (Sandbox Code Playgroud)
  2. 对于每个 repo,通过此请求获取其所有贡献者:

    GET https://api.github.com/repos/angular/:repo/contributors
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将所有派生数据合并到一个数组中。

它似乎有效,但我认为这个解决方案非常麻烦。我以这种方式发送了大约 300 个请求,它们正在处理大约 20 秒(应用程序将被冻结,直到所有请求都没有完成)。

问题:

  1. 这种方法有什么替代方法吗?
  2. github 注册的应用程序可以处理这么多请求吗?我提到,每次应用程序启动时都会发送这 300 个请求。

Iva*_*zak 5

这种方法有什么替代方法吗?

不,不是真的 - 我想不出更好的方法来解决这个问题。

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