You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps能否在创建PR时强制提交信息包含Work Item ID?

强制提交信息包含Work Item ID的实现方案

需求明确

需要让开发人员提交代码时,必须在提交信息里带上对应Work Item ID,要求格式比如:

  • fix: fixes bug #123
  • feat: implements #124
    目前仅做到关联工作项但没写入提交信息,得靠正则验证把这条规则强制执行。

具体实现步骤

1. 用Git钩子做前置验证

Git的commit-msg钩子可以在提交完成前检查信息格式,刚好用来实现这个强制规则。

2. 写对应的正则规则

根据需求设计匹配正则,确保提交信息开头是fix:或feat:,并且包含#加数字的Work Item ID:

^(fix|feat): .*#\d+$

简单解释:

  • ^(fix|feat): 限定提交信息必须以fix:或feat:开头
  • .* 兼容中间的任意描述文本
  • #\d+$ 确保存在#后跟一串数字的Work Item ID

3. 编写钩子脚本

修改项目里的.git/hooks/commit-msg文件(如果没有就新建),粘贴以下Shell脚本:

#!/bin/sh

# 读取提交信息文件内容
COMMIT_MSG=$(cat "$1")

# 定义验证规则
VALIDATION_REGEX='^(fix|feat): .*#\d+$'

# 检查是否匹配规则
if ! echo "$COMMIT_MSG" | grep -qE "$VALIDATION_REGEX"; then
    echo "❌ 提交信息不符合要求!必须包含Work Item ID,正确格式示例:"
    echo "fix: fixes bug #123"
    echo "feat: implements #124"
    exit 1 # 终止提交
fi

别忘了给脚本加执行权限:

chmod +x .git/hooks/commit-msg

4. 确保团队全员生效

  • 把这个钩子脚本加入项目仓库,配合钩子同步逻辑(比如共享.git/hooks目录,或写初始化脚本自动配置钩子),让所有成员克隆项目后自动应用规则
  • 在CI/CD流程里再加一层验证,防止有人绕过本地钩子提交不符合要求的信息

灵活调整

如果团队需要支持更多提交类型(比如chore:、docs:),直接修改正则里的(fix|feat)部分,改成(fix|feat|chore|docs)就行;要是要求ID必须跟在固定文本后面(比如fixes bug #),也可以把正则调整得更严格,比如^(fix: fixes bug #\d+|feat: implements #\d+)$。

内容的提问来源于stack exchange,提问作者Jester

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 07:18:40