首页 > 其他分享 >使用 Web 钩子将 Gitea 消息推送到飞书机器人

使用 Web 钩子将 Gitea 消息推送到飞书机器人

时间:2022-11-16 17:44:36浏览次数:51  
标签: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 提交消息

标签:Web,机器人,钩子,群组,Gitea,推送,飞书
From: https://www.cnblogs.com/Gitea/p/feishu-webhook.html

相关文章

  • javaweb 4、Servlet
    ServletServlet简介Servlet就是sun公司开发动态web的一门技术sun公司在这些API中提供了一个接口叫做:Servlet,如果你想开发一个Servlet程序,只需要完成两个小步骤:编写一......
  • javaweb 5、HttpServletResponse
    HttpServletResponseweb服务器接收到客户端的http请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,代表响应的一个HttpServletResponse如果要获取客户端......
  • javaweb 6、HttpServletRequest
    HttpServletRequest代表客户端的请求,用户通过Http协议访问服务器,HTTP请求中所有信息会被封装到HttpServletRequet,通过这个HttpServletRequest的方法,获得客户端的所有信息......
  • spring boot 使用webflux全局拦截,类似404错误
    背景要拦截类似404这种返回,添加日志返回码。所以要全局拦截404或者500返回实现1.定义拦截类packagecom.cmb.zhaohu.WebLogCollect.advice;importjava.util.LinkedH......
  • 关于 WebSocket 和 HTTP 区别的思考以及一个最简单的 WebSocket 的客户端和服务器实现
    笔者之前与一位同事研究了Cypress的visit方法,其源码实现最终是调用了WebSocket向visit参数里指定的website通行并获取数据,见下图变量ev.data的值。我这位同......
  • 使用DocFX构建API Web文档
    安装安装包地址:docfxreleasesMSBuild是DocFX编译项目的必要环境,所以需要根据不同平台进行构建环境搭建:在Windows环境下,需要使用VisualStudioInstaller(vs>=2019),单......
  • 你需要知道的webpack高频面试题
    谈谈你对webpack的看法webpack是一个模块打包工具,可以使用它管理项目中的模块依赖,并编译输出模块所需的静态文件。它可以很好地管理、打包开发中所用到的HTML,CSS,JavaScr......
  • 教你手写webpack常用loader
    前言webpack作为目前主流的前端构建工具,我们几乎每天都需要与它打交道。个人认为一个好的开源产品壮大的原因应该包括核心开发者的稳定输出以及对应生态的繁荣。对于生态......
  • 用Web 实现断点续传 (HTTP)
    ​ 最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现。在某些业务中,大文件上传是一个比较重要的......
  • Nginx 作 WebService 反向代理
    Nginx的 server 配置 ksb.conf:upstreamrouter{server10.88.115.114:5555weight=2;server10.88.115.137:80weight=1;}server{listen......