2013-01-09 41 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调用次数。

相关问题