写点什么

gitlab system hook 使用案例——与已有系统打通

作者:阿呆
  • 2022 年 9 月 13 日
    北京
  • 本文字数:599 字

    阅读完需:约 2 分钟

gitlab system hook使用案例——与已有系统打通

前言

我们都知道,gitlab 的 webhook 功能可以很方便的与钉钉等第三方工具打通,实时提醒仓库的动态。但很少人知道有 system hook,相当于 gitlab 全局的 webhoo,一般可用于二次开发,本文我们介绍一种使用场景,将 gitlab 上的动态(包含提交、合并请求、创建分支等等)与已有系统(包含自建流水线、自研的系统)打通。


gitlab system hook 配置

1、我们进入 system hook 配置页面,https://{host}/admin/hooks;

2、配置相应的 url 及 token,并选择要触发的事件,点击确认即可,配置完成后会显示在下方;


使用场景

场景一:

因内部平台有需求、缺陷、任务等一体化管理平台,在提交代码或合并代码时,需要将对应的需求、缺陷、任务等设置为已完成状态,与 gitlab 中的 issue 功能一样。因此,使用 system hook 来在消息体重加特定的字段,然后解析出来进行关联。

场景二:

内部有自研的流水线及多个代码托管的平台,仓库有提交或 merge 时,需要触发仓库所属的流水线。因此,使用 system hook 来自定义触发流水线的流程。

使用方式

由于该场景需要保障数据的实时性,因此我们使用 kafka 来做消息的分发,提供消费者接口,配置到 system hook 上,将 gitlab 事件打到 kafka 集群中,然后由消费者根据具体的事件类型,做相应的处理,相关流程如下图所示:


更多

我们除了以上两个场景,还针对所有的 commit 事件,进行代码 diff 解析并入库,统计每次提交的代码数据,为代码数据统计采集数据,这块后续会专门讲。

发布于: 刚刚阅读数: 4
用户头像

阿呆

关注

坚守准则,认真做事。 2018.05.22 加入

职位:360资深后台开发,主要负责DevOps平台开发 技术:Python 爱好:炉石传说

评论

发布
暂无评论
gitlab system hook使用案例——与已有系统打通_gitlab_阿呆_InfoQ写作社区