如何修改GitLab管道名称?MR标题作管道标题问题求助
问题解决方案
1. 自定义Pipeline/Job显示名称
GitLab在MR触发的管道中默认使用MR标题作为管道名称,若要替换为提交信息或自定义内容,可通过.gitlab-ci.yml的workflow字段全局配置:
workflow: # MR触发时,显示MR编号+提交短SHA+提交信息 name: 'MR #$CI_MERGE_REQUEST_IID: $CI_COMMIT_SHORT_SHA - $CI_COMMIT_MESSAGE' rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' # 针对普通推送的管道,也可以自定义名称 - if: '$CI_PIPELINE_SOURCE == "push"' name: 'Push to $CI_COMMIT_BRANCH: $CI_COMMIT_SHORT_SHA - $CI_COMMIT_MESSAGE'
如果需要自定义单个Job的显示名称(左侧Job列表的名称),直接在.gitlab-ci.yml中定义Job键名即可;若要在Job详情页补充动态信息,可添加description字段:
build-app: stage: build script: - npm run build description: 'Build job for commit $CI_COMMIT_SHORT_SHA: $CI_COMMIT_MESSAGE'
2. 修正提交SHA不一致问题
MR触发的管道默认运行在合并后的虚拟分支上,因此显示的SHA是合并后的SHA,而非源分支的提交SHA。若要强制使用源分支的提交SHA,可在workflow中覆盖变量:
workflow: rules: - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' variables: CI_COMMIT_SHA: "$CI_MERGE_REQUEST_SOURCE_BRANCH_SHA"
后续所有Job中使用的$CI_COMMIT_SHA都会是源分支的提交SHA。
3. 正确获取提交信息的API
你调用GET api/v4/projects/接口返回MR标题是因为该接口返回的是项目基本信息,要获取特定提交的详情,需调用提交信息API:
GET /projects/:id/repository/commits/:sha
将:id替换为你的项目ID,:sha替换为目标提交的SHA,接口会返回该提交的title(提交标题)和message(完整提交信息)。
内容的提问来源于stack exchange,提问作者Freez
相关产品推荐
相关产品推荐

