GitLab推送规则正则优化:限制仅允许单次合法提交消息格式
GitLab Push Rules正则优化:限制单次合法提交格式
问题分析
你当前配置的Push Rules正则未严格约束提交消息的整体边界,导致即便提交内容包含多段重复的合法格式,正则仍能匹配到第一段内容,进而通过推送校验。
修改后的正则表达式
^((build|test): [a-z].{0,70}[^\.]\s+\((JIRA|CARD)-[0-9]+\))\n\n(Team: (Dragons|Eagles))$
关键修改说明
- 用
^(字符串起始)和$(字符串结束)包裹完整规则,强制整个提交消息必须完全匹配单次合法格式,不允许额外的重复块或无关内容。 - 保留核心校验逻辑的同时简化冗余分组:
- 开头限定为
build或test前缀 - 跟随小写开头、长度合规的描述文本
- 必须包含
JIRA-XXX或CARD-XXX格式的工单编号 - 空行后需匹配指定团队标识
Team: Dragons或Team: Eagles
- 开头限定为
测试验证
- 合法提交(将通过校验):
test: testing commit message (JIRA-1235) Team: Dragons - 重复内容提交(将被拦截):
test: testing commit message (JIRA-1235) Team: Dragons test: testing commit message (JIRA-1235) Team: Dragons
内容的提问来源于stack exchange,提问作者Jonathan Viana
相关产品推荐
相关产品推荐

