keyfil/方案/20241226-GitlabWebhook配置.md
liuxiaohua e59557c451
All checks were successful
Publish to Confluence / confluence (push) Successful in 42s
[2025-04-25] 添加MR通知使用说明
2025-04-25 10:13:12 +08:00

4.4 KiB
Raw Blame History

背景

实现 gitlab merge request 事件能够实时的通知到对应的群组,并 @相关人员 进行 code review 及代码合并

说明

Gitlab webhook 作用

能够实现gitlab事件通知比如说通过 webhook 触发 jenkins 自动构建,合并代码提醒等

Webhook 企微配置

由于企业微信不兼容 Gitlab 的 webhook所有需要做一个服务进行转发 服务链接:cloud-webhook-gitlab

Webhook 链接生成

企微群组添加机器人

获取 Webhook 地址.

记录 key 参数.
  • 例如 : f93a7084-65b9-4d84-bf28-ae6cdaead1b2
生成webhook链接

Gitlab 仓库配置 Webhook

进入Webhook配置界面settings / webhooks

测试 Webhook

MR通知使用

发起MR

  • 发起 Merge Request
  • 选择源分支和目标分支
  • 填写详细信息
  • 由于事件中获取步到 Reviewer 所以使用 Assignee 代替

附加说明

企微用户无法被 @提及

MR 提交配置没有指定对应的负责人

创建MR时需要填写 Assignee 字段指定对应的人

MR消息中相关负责人没有被@提醒

造成上面错误的原因主要有两个:
  • 第一种: Gitlab 上用户名不规范:可以通过修改用户名解决

  • 第二种: 由于公司企微 账户/userid 生成策略的变化,导致无法直接通过 gitlab 用户名推导出 账户/userid

  • 老员工企微 账户/userid刘晓华XianChaoHong

  • 新员工企微 账户/userid刘晓华d0a12021606f43f19f3e8583adf16fce

按以下步骤解决问题:
  • HR 获取用户的企微账号
  • cloud-webhook-gitlab 项目配置文件中添加映射
  • 重新发布服务
  • 测试MR提醒

消息格式

MR

[@user](/link) 提交了一个 MR 从 [source](/source) 到 [target](/targer)
> 请求信息:[MR title](mrurl)
> 状态status
> 仓库:[repo](repo)

[@Assignee]()