2013-01-09 62 views
0

Assembla提供了一種簡單的方式來獲取使用api.assembla.com/v1/activity.json的組織的所有提交,並且它允許從參數中獲取所選日期的提交(從所有提交空間(回購)的用戶正在參加github api - 基於日期獲取組織的所有回購的所有提交

是否有在Github上

任何類似的方式,我發現這些對Github上:?
/repos/:owner/:repo/commits
因爲直到用於獲取選定日期的提交參數接受但是,因爲我想從所有回購提交,我必須循環所有那些r epos和獲取提交每個回購。

/users/:user/events
這顯示了用戶的提交。我沒有任何問題繞過組織中的所有用戶,但我如何才能獲得特定日期?

/orgs/:org/events
這顯示提交的所有用戶的所有回購協議,但不知道如何獲取特定日期?

回答

0

使用/users/:user/events端點的問題是,您只是沒有得到PushEvent,您將不得不跳過非提交事件並執行更多API調用。假設您已通過身份驗證,只要您的用戶不是超級用戶,就應該安全。

對於/orgs/:org/events我不認爲他們接受任何參數,但我可以與API設計師覈對。

以防萬一你不熟悉,這些都是分頁結果。所以你可以返回到Link頭的開頭。我的庫(github3.py)提供迭代器爲您自動執行此操作。你也可以告訴它你想要多少事件。 (與提交等相同)。但是,在與GitHub的API人員交談後,我會回來編輯。

編輯Conversation

0

你可能想看看GitHub的存檔項目 - http://www.githubarchive.org/,以及查詢使用谷歌的BigQuery的存檔的能力。聽起來這將是一個完美的工具 - 我敢肯定,你可以得到你想要的一個單一的查詢。

另一種選擇是調用GitHub API--遍歷組織的所有事件並篩選出不滿足日期範圍條件和事件類型條件(提交)的事件。但由於您無法在API調用中指定日期範圍,因此您可能會進行大量來電以獲取您感興趣的事件。請注意,您不必遍歷從0開始的每個頁面,以查找包含日期範圍中第一個結果的頁面 - 只需對頁碼進行二進制搜索(變體)即可找到包含提交的任何頁面在日期範圍內,然後在兩個方向上進行迭代,直到您跳出日期範圍。這應該會減少您所做的API調用次數。

相關問題