确保 github PR 挤压合并提交评论包含问题 ID

Pet*_*ahn 3 git github jira pull-request

如何确保来自 github PR 压缩合并的提交评论包含所需的文本?

我们使用 Jira + Github,如果用户在提交评论中输入 Jira 问题 ID,则这些提交将链接到 Jira 问题。

当用户从其私有功能分支合并 PR 时,他们通常会压缩并合并,这意味着用户可以手动总结从该分支到更大的集成分支或主分支的单个提交的意图。

如果用户在合并 PR 时忘记输入它们,那么编辑提交并将文本添加到消息中就会变得很痛苦。

是否有状态检查或提交消息格式化程序可以在 PR 上使用,以确保必须有类似 Jira ID 的内容?(AAA-111)

Rom*_*eri 5

另一种方法*是确保提交消息包含分支名称,在 JIRA 中该名称很可能源自问题标题。

为此,同事必须在其目录中包含一个名为以下内​​容的.git/hooks文件:commit-msg

#!/bin/bash
current_branch="$(git rev-parse --abbrev-ref HEAD)"
tmp=$(mktemp) || exit
echo "$current_branch $(cat "$1")" > "$tmp"
mv "$tmp" "$1"
Run Code Online (Sandbox Code Playgroud)

然后,当有人在功能分支上提交时ABC-1234-customers-cant-log-in,提交命令如下:

git commit -m "Awesome changes"
Run Code Online (Sandbox Code Playgroud)

...实际上会产生以下提交消息:

ABC-1234-customers-cant-log-in Awesome changes
Run Code Online (Sandbox Code Playgroud)

...然后 JIRA 将自动检测它并将提交链接到问题,从而确保 JIRA 问题页面上提交的可靠回顾。

我们已经在我的团队中实施了这项政策,它有几个优点:

  • 不再忘记提交消息中的 JIRA 问题编号
  • 赢得时间
  • 当您需要时解析提交消息稍微容易一些

(作为旁注,为了以防万一,这种自动化行为也可以根据需要停用,使用git commit -n

* (请注意,这两种解决方案并不相互排斥。事实上,您很可能同时需要两种解决方案,Adil 的解决方案用于远程存储库完整性,而这个解决方案则用于本地使用效率)