首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >github api -根据日期获取组织的所有存储库的所有提交

github api -根据日期获取组织的所有存储库的所有提交
EN

Stack Overflow用户
提问于 2013-01-09 21:36:12
回答 2查看 2.1K关注 0票数 0

Assembla提供了一种简单的方法来获取组织的所有提交,使用api.assembla.com/v1/activity.json,它接受to和from参数,允许获取选定日期的提交(从用户参与的所有空间(Repos)。

Github有没有类似的方式?

我为Github找到了这些:

/repos/:owner/:repo/commits

接受用于获取所选日期的提交的开始日期和截止日期参数。但是,因为我需要所有repo的提交,所以我必须遍历所有这些repos并获取每个repo的提交。

/users/:user/events

这显示了用户的提交。我在遍历组织中的所有用户时没有任何问题,但是我如何才能获得特定的日期?

/orgs/:org/events

这显示了所有回购的所有用户的提交,但不知道如何获取特定日期?

EN

回答 2

Stack Overflow用户

发布于 2013-01-09 23:56:22

使用/users/:user/events端点的问题是,您无法获得API,并且您必须跳过非提交事件并执行更多对PushEvent的调用。假设你通过了身份验证,只要你的用户不是超级活跃的,你就应该是安全的。

对于/orgs/:org/events,我不认为他们接受任何参数,但我可以咨询API设计者。

以防你不熟悉,这些都是分页的结果。因此,您可以返回到链接头的开头。我的库(github3.py)提供了自动执行此操作的迭代器。你也可以告诉它你想要多少个事件。(与提交相同,等等)。但是,是的,在和GitHub的API人员谈过之后,我会回来编辑的。

编辑Conversation

票数 0
EN

Stack Overflow用户

发布于 2013-01-10 02:17:15

您可能想了解一下Google项目-- http://www.githubarchive.org/,以及使用GitHub的BigQuery查询归档的功能。听起来它将是这项工作的完美工具--我非常确定您可以通过一个查询得到您想要的东西。

另一种选择是调用GitHub API --迭代组织的所有事件,并过滤出不满足日期范围标准和事件类型标准(提交)的事件。但是,由于您不能在API调用中指定日期范围,因此您可能会进行大量调用来获取您感兴趣的事件。请注意,您不必为了找到包含日期范围内第一个结果的页面而遍历从0开始的每个页面--只需对页码执行二进制搜索(变体)即可找到包含日期范围内的提交的任何页面,然后进行双向迭代,直到超出日期范围。这将减少您进行的API调用的数量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14236461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档