GitLab Webhook 推送到钉钉群:通过 GitHub 机器人转发实现
时隔很久,再一次配置机器人。为当前的项目配置一个 GitHub 的机器人,但是推送 GitLab 中的相关项目事件。使用常规步骤进行配置,就会发现,消息并没有成功发送到钉钉群中。 我们熟知的 它们就是完全不同的 JSON 格式,这样就会出现: 因此,如果要解决上述提到的问题,就需要一个中间的“转换器”。幸运的是,团队历史上,老师和学长们做过一个这样的 Webhook 转化层 -- GitlabWebhookToGithub 系统 添加成功之后,会得到该机器人的一个 Webhook 地址 到此,常规配置机器人就已经成功了!可以通过对项目进行评论等操作进行测试是否会发送信息 我们如果还是按照 此时我们就需要一个中间转化器 无论是 GitLab 还是 GitHub,他们通过 Webhook 推送到接收端的都是一个 HTTP POST 请求,包含了事件的具体数据。区别在于数据结构的定义 🌰 这就好比一个是说中文的,一个是说英文的。钉钉的 GitHub 机器人是一个只听得懂 “英文”(GitHub 数据格式)的接收器。要是让他理解“中文”(GitLab 数据格式),中间就需要一个“翻译” ‼️ 这里我们需要分清楚 Webhook 中的 URL 和 Secret Token 分别是有什么作用 简单理解: 第一次配置这样类型的机器人的时候遇到了 “消息格式无法解析” 这样的错误。当时是学长帮忙解决了,那个时候才是第一次接触 GitlabWebhookToGithub。 在解决过程中,还有一个很明显的感受。在团队开发过程中,当遇到难解决的问题的时候,会发现前辈们已经替你找好了最好的解决方式!这可能就是潘老师说的站在巨人肩膀上学习的好处吧!背景
实际使用过程中,一些机器人或者是通知工具所支持的 Webhook 的格式不同
配置机器人的两种操作
一、常规操作:GitLab 直接推送钉钉


什么是 Webhook?
⭕️ Webhook 是一种事件驱动的轻量级通信,可通过 HTTP 在应用之间自动发送数据。
二、其他操作:使用 GitHub 机器人来推送 GitLab 的项目 event
常规操作 的方式来进行添加。就可能会出现下述问题:1. 为什么需要一个“转化器”
2. 使用团队的 GitlabWebhookToGithub 项目进行配置


所需参数 值来源 项目名称 机器人所属的项目名称 GitlabUrl GitLab 项目地址 钉钉机器人 Token 钉钉群中机器人的 Webhook 中的 Token Secret 点击 生成随机Secret 按钮生成(用于校验 Webhook)
利用我们刚刚在 GitlabWebhookToGithub 系统中添加的相关参数来配置 GitLab 中的 Webhook
字段 作用 URL Webhook 请求发送的目标地址 Secret Token 用于校验请求来源的安全凭证 大致了解一下 Webhook 的处理流程

三、最终的效果

四、结语
这次再次遇到,配置好了之后没有发送消息,就想到了应该是没有配置中间层。再次请教了学长,为此写一篇文章来真正了解一下这个中间层五、参考文献