我正在使用 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 票证的状态提升为“解决”或“修复”。
但是,我遇到两个问题:
我不知道如何获取我的 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 管道对存储库进行写入访问。
有人可以帮我解决这两个问题吗?
源分支名称可以从合并请求事件中的变量
CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
获取,参见https://docs.gitlab.com/ee/ci/variables/predefined_variables.html
需要从“设置”-“合并请求”-“合并选项”启用合并结果管道,这是一项高级功能。请参阅 https://docs.gitlab.com/ee/ci/pipelines/merged_results_pipelines.html 了解更多详细信息。