如何在从Git存储库推送之前测量提交的数量?

时间:2015-01-16 18:56:33

标签: git push commit metrics github-api

我正在开发一个用于收集Git存储库指标的工具。我试图弄清楚如何计算推送中的提交数量,这样我可以说"对于存储库 x ,平均值 y 提交是在推送之前做出的#34;在这种情况下,可以忽略合并提交。我尝试使用libgit2没有成功,因为我不相信Git本身将这些信息存储在其对象数据库中。

虽然看起来GitHub可以推断推送的时间,但必须有可能。 GitHub在主页上显示了提交者最近提交的列表(对于您是其成员和您正在关注的人的组织),并将这些提交显示为在将它们组合在一起时挤压在一起。

如何使用GitHub API或其他库获取此信息?

1 个答案:

答案 0 :(得分:1)

为了确定给定推送中的提交数量,您需要获取存储库的PushEvents流。

您希望轮询repository events endopint并过滤PushEvents的响应。在PushEvent的有效内容中有size个属性。这应该告诉你在那个事件中推送了多少次提交。如果已删除(未记录为已删除),那么您应该能够确定commits属性的长度,因为它是表示每个提交的对象的集合。如果您是在JavaScript中执行此操作,则可以在Python中执行payload.commits.lengthlen(payload['commits'])

对于特定库的建议超出了StackOverflow问题的范围,但我不会为您解答。