1. 授权认证
  2. 获取用户个人信息
  3. 项目协同
  4. 代码托管
  5. 持续集成
  6. 制品仓库
  7. 测试管理
  1. 项目协同
  2. 代码仓库
  3. DevOps 实践之旅
  4. 一分钟开始持续集成之旅
  5. 持续部署
  6. 制品库

合并请求自动添加评审者

功能介绍

CODING 的内置插件支持用户在持续集成中触发合并请求功能时,系统自动为合并请求添加评审者。

快速开始

您可以使用内置的模板或使用 Jenkinsfile 配置来实现此功能。

内置模板

  1. 新建构建计划后,选择 「CODING 合并请求添加评审者」模板。

  1. 选择指定的评审者。

  1. 在触发合并请求时,系统会自动添加评审者。

Jenkinsfile 配置

pipeline {
    agent any
    stages {
        stage('为合并请求添加评审者') {
            steps {
                codingMRReviewer(
                    reviewers: '此处填写评审者邮箱',
                )
            }
        }
    }
}

将上述配置写入代码仓库的 Jenkinsfile 配置文件后,在本地使用 git push origin localbranch:mr/targetbranch/localbranch 命令就可以实现一下效果:

创建合并请求 -> 触发构建 -> 自动化测试和构建 -> 自动添加合并请求评审者

更多参数演示

pipeline {
    agent any
    stages {
        stage('为合并请求添加评审者') {
            steps {
                codingMRReviewer(
                    reviewers: 'coding@coding.com,test2,coding',
                    mrResourceId: '${env.MR_RESOURCE_ID}',
                    credentialsId: '${env.CODING_ARTIFACTS_CREDENTIALS_ID}',
                    withBranchAdmin: false,
                )
            }
        }
    }
}

参数说明

参数名称 是否必填 文本参数类型 图形化参数类型 默认值 说明
reviewers string 项目成员(多选) - 需要添加的评审者,多个评审者以逗号分隔, 如: coding@coding.com,test2 。 支持填写项目内用户的邮箱或 GK (项目外或者不存在成员,会添加无效)
mrResourceId string string ${env.MR_RESOURCE_ID} 需要添加评审者的 MR 资源 ID,默认会使用 CODING 持续集成内置的系统环境变量 MR_RESOURCE_ID (注意:该环境变量只有在发起 MR 时才会存在,若没有设置该参数,或环境变量中不存在,会跳过添加评审者)
credentialsId string 凭据(用户名+密码) ${env.CCI_CURRENT_PROJECT_COMMON_CREDENTIALS_ID} 用于发起添加评审者操作的凭据(只支持 username + password 且必须为项目令牌)类型,默认将使用环境变量中的 CCI_CURRENT_PROJECT_COMMON_CREDENTIALS_ID
(尚未支持) withBranchAdmin boolean boolean false 自动邀请目标分支的管理员作为评审者,与 reviewers 不冲突,可同时配置

常见问题

Q:如果配置的 reviewer 不存在会导致构建失败吗?

A:不会。

但是如果 reviewer 没有配置,则会构建失败。若无法在当前的团队内找到所有对应的 reviewers, 则会跳过 添加评审者 的操作,并将当前 stage 的构建状态标记为 UNSTABLE (不稳定的),并且不会导致构建的失败。

您可以在日志中看到对应的警告信息,会提示无法在当前项目 my-project 中找到评审者 test2,test3。

若只有部分 reviewer 未找到,则只能添加已经存在的 reviewer, 同理也将标记为 UNSTABLE(不稳定的),并在日志中输出对应的警告信息。

Q:如果 mrResourceId 对应的合并请求已经合并或者没有配置 mrResourceID 会导致构建失败吗 ?

A: 不会。

若 mrResourceId 没有配置且 ${env.MR_RESOURCE_ID} 不存在,也不会导致构建失败,但同样会输出相关的警告日志。

至于不存在或已经合并的情况,会将将对应的 stage 标记为 UNSTABLE (不稳定的), 然后输出对应的构建日志。

Q:多次添加重复的 reviewer 会导致构建失败吗?

A: 不会,内置插件会自动跳过已经添加的 reviewer。

上一篇调取已上传的凭据
最近更新
感谢反馈有用
感谢反馈没用