我正在开发一个用于收集Git存储库指标的工具。我试图弄清楚如何计算推送中的提交数量,这样我可以说"对于存储库 x ,平均值 y 提交是在推送之前做出的#34;在这种情况下,可以忽略合并提交。我尝试使用libgit2没有成功,因为我不相信Git本身将这些信息存储在其对象数据库中。
虽然看起来GitHub可以推断推送的时间,但必须有可能。 GitHub在主页上显示了提交者最近提交的列表(对于您是其成员和您正在关注的人的组织),并将这些提交显示为在将它们组合在一起时挤压在一起。
如何使用GitHub API或其他库获取此信息?
答案 0 :(得分:1)
为了确定给定推送中的提交数量,您需要获取存储库的PushEvents流。
您希望轮询repository events endopint并过滤PushEvents
的响应。在PushEvent
的有效内容中有size
个属性。这应该告诉你在那个事件中推送了多少次提交。如果已删除(未记录为已删除),那么您应该能够确定commits
属性的长度,因为它是表示每个提交的对象的集合。如果您是在JavaScript中执行此操作,则可以在Python中执行payload.commits.length
或len(payload['commits'])
。
对于特定库的建议超出了StackOverflow问题的范围,但我不会为您解答。