0

使用 Github webhook,计算开发人员对特定工作的提交次数的最佳方法是什么。

我在想我可以这样做:

  1. 监听与将任何 PR 合并到分支有关的 webhook
  2. 丢弃 webhook 事件,除非它与分支有关
  3. 如果 PR 合并进入分支,则找出与该合并相关的所有提交(以及与每个提交相关的开发人员)并计算计数

所有这些提交(和开发人员用户名)是否都列在 webhook 事件中?

与合并相关的提交是否肯定只包含在分支创建之后直到其合并的提交......或者它们实际上会一直回到存储库创建的开始?

还考虑过监听与“标签”类型推送相关的 webhook,但是一个新的标签事件是否能够告诉我该标签和前一个标签之间的所有提交.. 可能不对?我猜无论标签是什么,它总是代表从 repo 创建开始的所有提交

4

1 回答 1

1

您可以大致使用您概述的方法。您可以从所需的 webhook 事件中提取基本和主要修订,然后运行git rev-list --no-commit-header --format=%aE $base...$head以查找与每个提交关联的电子邮件地址。(如果您使用的是较旧的 Git ,则可以使用git log代替)。git rev-list --no-commit-header

这将仅计算在分支中创建且未合并到main. 请注意,如果您使用的是 squash 合并,这将不起作用,因为合并基础不会更新;我建议无论如何不要使用壁球合并。在 squash 合并的情况下,创建的提交数始终为 1。您可以判断是否发生了 squash 合并,因为git merge-base --is-ancestor $head main将退出 1;也就是说,PR 分支的负责人不是最近的祖先main

虽然这可以计算每个开发人员的提交,但我应该指出,计算开发人员的提交并不是衡量生产力的好方法,也不应该用作性能指标。开发人员可能技术高超,并且在调查了一个难题后只编写了一次提交,但是计算提交会使该人的排名低于修复许多简单问题的人。还有其他技能,例如沟通和协作,这些技能无法通过提交来衡量。

于 2021-12-07T00:59:35.720 回答