2015-01-16 42 views
2

我正在開發一個在Git存儲庫上收集度量標準的工具。我試圖弄清楚如何計算一次推送中的提交數量,這樣我可以說「對於存儲庫x,平均值爲提交在推送之前進行」。在這種情況下,合併提交可以被忽略。我試圖用libgit2沒有成功,因爲我不相信Git本身將這些信息存儲在它的對象數據庫中。如何在從Git存儲庫進行推送之前測量提交數量?

雖然看起來GitHub可以推斷何時推送已經完成,所以它一定是可能的。 GitHub在主頁上顯示了提交者最近提交的列表(針對您所屬的組織以及您所關注的人),並在提交時將提交顯示爲擠在一起。

如何使用GitHub API或其他庫來獲取此信息?

回答

1

爲了確定給定推送中的提交數量,您需要獲取存儲庫的流PushEvents

您需要輪詢repository events endopint並通過PushEvents的響應篩選。在PushEvent的有效負載中是size屬性。這應該告訴你在該事件中推送了多少次提交。如果已被刪除(未記錄爲已刪除),那麼您應該能夠確定commits屬性的長度,因爲它是代表每個提交的對象的集合。如果你是用JavaScript做這件事的話,你可以在Python中做payload.commits.lengthlen(payload['commits'])

對特定庫的建議超出了StackOverflow問題的範圍,所以我不會爲你回答這個問題。

+0

謝謝,那就是我一直在尋找的! – Agrajag

+0

你非常歡迎@Agrajag –

相關問題