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

如何基于规则实现GitLab MR标题检查自动化?

GitLab MR标题检查自动化实现方案(基于流水线)

完全可以通过GitLab流水线实现MR标题检查的自动化,具体步骤如下:

1. 编写标题检查脚本

根据你制定的标题规则,编写Shell或Python脚本用于校验MR标题。以下是Shell脚本示例(假设规则为:标题必须以feat/fix/docs/refactor/chore开头,后跟冒号和空格):

#!/bin/bash

MR_TITLE="$1"

# 定义标题匹配的正则规则
VALID_PATTERN="^(feat|fix|docs|refactor|chore): .+"

if [[ ! "$MR_TITLE" =~ $VALID_PATTERN ]]; then
  echo "❌ MR标题不符合规则!"
  echo "要求格式:前缀: 标题内容,前缀可选值为feat/fix/docs/refactor/chore"
  echo "示例:feat: 添加用户中心页面"
  exit 1
else
  echo "✅ MR标题符合规则"
  exit 0
fi

将脚本保存为check_mr_title.sh,并赋予执行权限:chmod +x check_mr_title.sh

2. 配置GitLab流水线

在项目根目录创建.gitlab-ci.yml文件,添加专门的校验job,触发条件设置为MR创建或更新时:

check-mr-title:
  stage: test
  script:
    - ./check_mr_title.sh "$CI_MR_TITLE"
  # 仅在MR事件触发时运行
  only:
    - merge_requests
  # 可选:排除主分支直接提交(按需设置)
  except:
    - main

GitLab CI内置变量CI_MR_TITLE会自动传入当前MR的标题,无需额外配置。

3. 设置MR合并强制条件

进入项目的Settings > Merge requests > Merge checks页面,勾选Pipeline must succeed选项。这样只有标题校验通过(流水线成功)的MR才能被合并,从流程上强制规范标题格式。

如果你的标题规则更复杂(比如关键词限制、长度要求等),可以修改脚本中的正则表达式,或改用Python等语言编写更灵活的校验逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 14:24:58