MR工作流自动化
# 介绍
在日常编码工作中,一般都会有这样一个过程:
在 MR 相关环节有一些需要手动操作的痛点:
- 提交了 MR,评审人未注意到,长时间无人评审,找人评审
- 评审通过、流水线执行完,MR 可合并,需要手动在页面操作
我们可以利用 CI
和相应插件实现自动通知到群、自动合并MR,提升研发效能
# 示例
.coding-ci.yml
master:
merge_request:
- imports: https://xxx/env.yml
stages:
- name: some check
script: echo some check
- name: notify
image: tencentcom/wecom-message:latest
settings:
robot: $WECOM_ROBOT # 走查通知机器人
msgType: markdown
content: |
走查代码啦
${CODING_MERGE_REQUEST_TITLE}
[${CODING_EVENT_URL}](${CODING_EVENT_URL})
[${CODING_BUILD_WEB_URL}](${CODING_BUILD_WEB_URL})
from ${CODING_MERGE_REQUEST_PROPOSER}
mergeable:
- imports: https://xxx/env.yml
stages:
- name: auto merge
image: codingci/merge-mr:latest
settings:
# 从引用文件中引用敏感数据
token: $PRIVATE_TOKEN
mergeType: auto
removeSourceBranch: true
- name: notify
image: tencentcom/wecom-message:latest
settings:
robot: $WECOM_ROBOT # 走查通知机器人
msgType: markdown
content: |
MR 已自动合并
${CODING_MERGE_REQUEST_TITLE}
[${CODING_EVENT_URL}](${CODING_EVENT_URL})
from ${CODING_MERGE_REQUEST_PROPOSER}
https://xxx/env.yml (opens new window)
# 访问令牌
PRIVATE_TOKEN: xxx
# 企业微信机器人
WECOM_ROBOT: xxx
环境变量说明:
- CODING_MERGE_REQUEST_TITLE: MR 标题
- CODING_EVENT_URL:触发流水线的事件链接,此示例中为 MR 链接
- CODING_BUILD_WEB_URL:流水线日志链接
- CODING_MERGE_REQUEST_PROPOSER:MR 创建者
- PRIVATE_TOKEN:访问令牌,用于镜像中调用 Coding Open API 合并 MR
- WECOM_ROBOT:企业微信机器人 Webhook 地址
# 效果
创建 MR 触发 merge_request
事件,插件 tencentcom/wecom-message
通知到 企业微信机器人所在群。
若设置了保护分支规则,需要评审通过且 MR 流水线执行成功才能合并。满足这两个条件时,会触发 mergeable
事件,插件 codingci/merge-mr
调用
Coding Open API 合并 MR。
← 开发插件 自动Tag与Changelog →