提问人:Krisna 提问时间:11/9/2023 最后编辑:1615903Krisna 更新时间:11/9/2023 访问量:34
如何在 GitLab 中的 MR Merge 上添加空提交以使用触发词处理 Jira 工单
How to Add an Empty Commit on MR Merge in GitLab to Progress Jira Tickets with Trigger Words
问:
我正在使用 GitLab,我正在尝试利用一项功能,该功能可以根据提交消息中的特定触发词(例如“解决”、“关闭”或“修复”)将 Jira 工单自动移动到不同的进度状态,例如“完成”、“关闭”或“修复”。我遵循了提交约定,我的初始提交消息如下所示:
git commit -m "JIRA-653-feat: add new feature"
我的目标是确保当合并请求 (MR) 合并到主分支中时,它始终显示提交消息,例如“JIRA-1625-feat:添加新功能”。为了实现这一点,我决定在 MR 合并到主分支时添加一个空提交。我使用以下命令:
git commit --allow-empty -m "Fixes JIRA-653"
这个想法是,当 Jira 票证合并到主分支时,这个空提交应该将 Jira 票证的状态推进到“解决”或“修复”。
但是,我遇到了两个问题:
我不知道如何在我的 GitLab CI/CD 管道中获取当前 MR 分支的名称。
我不确定当 MR 合并到主分支时如何触发空提交的添加。
这是我在 GitLab CI/CD 管道中定义的工作:
add-empty-commit:
stage: empty-commit
script:
- git config user.name "john.doe"
- git config user.email "[email protected]"
- git fetch && git rebase origin/main
- echo $CI_COMMIT_BRANCH ## does not work in MR
- git commit --allow-empty -m "Fixes Jira-653"
- git push "https://project_access_token_name:$GITLAB_API_TOKEN@$CI_SERVER_HOST/$CI_PROJECT_PATH.git" 'HEAD:mc' ## added hardcode branch name(mc).
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
我已经创建了一个 GitLab 访问令牌,该令牌具有从我的 CI/CD 管道对存储库的写入访问权限。
有人可以帮我解决这两个问题吗?
答:
源分支名称可以从合并请求事件中的变量中获取,请参阅 https://docs.gitlab.com/ee/ci/variables/predefined_variables.htmlCI_MERGE_REQUEST_SOURCE_BRANCH_NAME
合并的结果管道需要从“设置”-“合并请求”-“合并”选项中启用,这是一项高级功能。有关详细信息,请参阅 https://docs.gitlab.com/ee/ci/pipelines/merged_results_pipelines.html。
您无需执行所有这些操作,只需在 GitLab 合并请求设置中修改默认合并消息即可满足您的需求。默认值是 ,如果分支名称始终与 JIRA ID 匹配,请将其更改为类似 .Merge branch '%{source_branch}' into '%{target_branch}'
Fixes %{source_branch}
评论
git commit -m "JIRA-653-feat: add new feature"
评论