前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[go tools] Gitlab Mergebot 让多人 Code Review 更简单

[go tools] Gitlab Mergebot 让多人 Code Review 更简单

作者头像
老麦
发布2023-02-25 19:42:02
1.8K0
发布2023-02-25 19:42:02
举报
文章被收录于专栏:Go与云原生

gitlab-mergebot

gitlab merge request robot 是一个 golang 编写的 gitlab mr 请求处理扩展服务。

由于 gitlab(free plan) 的 Merge Request 功能有限, 不能支持多人 Code Reivew。因此引入第三方机器人进行 MR 合法性仲裁。

设计思路

  1. 目标的安全: 使用 目标项目和分支 中的 .mergebot.yml 配置作为机器人判定配置
  2. 有意义的文字信息: 使用 Merge Request 的 Title 和 Description 作为合并后的的 commit message
    • 以约束 Merge Request 的语意完整, 以及维护与 commit 的关联
  3. 以人为本: 可以将通过 Code Review 的 Merge Request 转移给其他 Assignee 进行最终合并。

项目地址

Github 项目地址: https://github.com/tangx/gitlab-mergebot

使用说明 Usage

1. 启动 mergebot 服务

  1. gitlab 上选择任意一个公共账户, 或创建一个新账户。
  2. 在用户配置中, 创建 Access Token , 权限为 api
  3. 启动 mergebot
代码语言:javascript
复制
GITLAB_Endpoint="https://git.example.com"
GITLAB_PrivateToken="Adfasdfadfasdfaksdjf"
./gitlab-mergebot

2. 源分支管理

2.1 Create Merge Request

Commit Message 选择使用 MR 的 TitleDescription 是为了约束用户更加重视信息的 规范性 及 完整性。

文档即注释

  1. merge_commit_message 的内容为 merge request 的标题 Title 内容。
  2. squash_commit_message 的内容为 merge request 的描述 Description 内容。

Assignee

  1. 将 Assignee 选择人为 mergebot

3. 目标分支管理

3.1 机器人配置 .mergebot.yml
  1. 将 mergebot 加入 项目 或 项目所在的 group, 权限设置为 Developer
  2. 在目标分支的 根目录 下创建 .mergebot.yml, 如下
代码语言:javascript
复制
# 最少 code review 人数
minReviewers: 2

# code review 有效名单
reviewers:
  - guanyu 
  - zhangfei
  - zhaoyun

# 合并操作候选人员名单
## 如果存在, mergebot 将在满足合并条件时, 随机选择一位候选人并转让
## 如不存在, mergebot 将直接合并
assignees:
  - zhugeliang

# 是否压缩 commit
squash: true
# 删除源分支
shouldRemoveSourceBranch: true
# 需要 pipeline 成功才能合并。注意: 无 pipeline 视为不成功
mergeWhenPipelineSucceeds: true
3.2 Code Review
  1. 任意用户都可以在 MR 下进行评论
  2. 但只有在 目标分支 中 .mergebot.yml 分支中的 CodeReivewer 中的候选人评论内容为 @gitlab lgtm 时, 机器人才会进行有效计数。

4. Transfer Assignee or Merge

.mergebot.yml 中的 assignees 控制该行为。

  1. assignees 有效时, mergebot 将会随机选择一位候选人, 并设置为 Assignee 对象。并有改用户进行后续合并管理。
  2. assignees 无效时(无候选人), mergebot 将直接进行 合并操作。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 熊猫云原生Go 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • gitlab-mergebot
    • 项目地址
      • 使用说明 Usage
        • 1. 启动 mergebot 服务
        • 2. 源分支管理
        • 3. 目标分支管理
        • 4. Transfer Assignee or Merge
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档