2016-08-19 169 views
1

是否有任何方式使用GitHub API或任何外部服務從GitHub上獲取組織中的所有貢獻者?如何獲取GitHub中特定組織的貢獻者列表API

我正在嘗試使用GitHub API從angular組織獲得所有貢獻者。

我發現只有一個解決辦法:

GET https://api.github.com/orgs/angular/repos 
  • 對於每個回購,獲得由該請求其所有貢獻者:

    1. 使用該請求獲得來自angular機構的所有回購

      GET https://api.github.com/repos/angular/:repo/contributors 
      
    2. 將所有派生數據合併到一個數組。

    它似乎工作,但我認爲這個解決方案非常繁瑣。我以這種方式發送大約300個請求,並且他們正在處理大約20秒(應用程序將被凍結,直到所有請求都沒有完成)。

    問題:

    1. 是否有任何替代這種做法?
    2. github註冊應用程序可以處理如此多的請求嗎?我提到,這些300個請求在每次應用程序啓動時都會發送。
  • 回答

    2

    這種方法有什麼替代方法嗎?

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

    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