使用 Web 钩子将 Gitea 消息推送到飞书机器人
Web 钩子(Webhook) 是一种基于 HTTP 的回调函数,可实现轻量级的事件驱动通信。在 Gitea 当中有一个很常见的 Webhook 应用场景便是持续集成:当你从本地推送代码到 Gitea 仓库后,CI 工具就立即知道你提交了最新的程序代码并启动测试流水线。这背后的原理本质上就是 Webhook 的调用,如果把推送代码看作一次 API 调用,那么这个 API 被调用之后就会触发一系列连锁反应,比如由 Gitea 向 Drone CI 发送构建请求、向飞书推送消息等。
Gitea 目前预制了以下几种场景的钩子,但 Web 钩子的应用范围不限于此。
- Gitea
- Gogs
- Slack
- Discord
- 钉钉
- Telegram
- Microsoft Teams
- 飞书 / Lark Suite
- Matrix
- 企业微信
- Packagist
Web 钩子的工作范围
- 个人仓库:可以在 个人仓库 - 设置 - Web 钩子 - 添加 Web 钩子 创建。这个 Web 钩子的作用范围是当前仓库。
- 组织管理员:可以在 组织 - Web 钩子 - 添加 Web 钩子 创建。在此处添加的 Web 钩子将会应用到该组织下的所有仓库。
- 系统管理员:可以在 管理后台 - Web 钩子 创建。这里区分了 系统 Web 钩子 和 默认 Web 钩子
- 系统 Web 钩子:在这里定义的 Web 钩子将作用于系统上的所有仓库。
- 默认 Web 钩子:默认钩子会在新项目创建时拷贝到这个项目的 Web 钩子中。
创建飞书机器人
飞书的机器人 ( bot ) 是一种用于群聊的自动化的程序,可以向你自动推送消息,或与你进行简单的交互。你可以在群组中添加机器人,与团队成员实时共享消息,开展高效协作。例如,你可以利用飞书提醒机器人向团队成员发送提醒。
操作流程
1. 在群组中添加群机器人
进入群组,打开会话设置,找到群机器人,并点击添加机器人。选择添加需要的机器人加入群组,这里我们选择自定义机器人。机器人添加到群组后,群内成员即可在群组中使用该机器人的功能。
2. 自定义机器人
自定义机器人是一类特殊的群机器人。完成开发与配置后,自定义机器人可通过 webhook 向群组中自动推送来自外部系统的消息。
填写名称并创建自定义机器人。获取到 webhook 地址后,请保管好此地址。 不要公布在 Github、博客等可公开查阅的网站上。地址泄露后可能被恶意调用发送垃圾信息。
3. 在 Gitea 上注册飞书机器人 Webhook
Webhook 可以作用在 个人仓库、组织全局、组织仓库、系统全局,这里我们以组织全局为例。
进入组织,打开设置,找到 Web 钩子,并点击添加 Web 钩子。这里选择飞书/Lark Suite。
进入到添加 Web 钩子界面
- 填写目标 URL:刚刚从飞书复制的 webhook 地址
- 选择触发条件
- 推送事件:每次
git push
表示一次推送事件。 - 所有事件:组织中发生任意种类的事件都能触发钩子。可以在自定义实践中查看全部事件分类。
- 自定义事件:目前支持包括仓库事件、工单事件、合并请求事件这三大分类和20个子项。
- 推送事件:每次
- 分支过滤:默认是
*
,表示任意代码分支。如要设置针对某一代码分支,比如main
分支,填写main
即可。多个分支使用逗号隔开。
点击添加 Web 钩子,完成创建。
效果演示
以推送消息为例,包含以下信息:
- 分支名称
- Git 提交记录
- Git 提交消息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!