#gitlab #webhook #bot #merge-request #matrix #repo

app bebot

Gitlab webhook机器人,将事件发布到Matrix

5个版本

0.2.2 2024年2月5日
0.2.1 2023年9月24日
0.1.2 2023年9月21日

#557 in 开发工具

每月 28 次下载

GPL-3.0 许可证

56KB
1.5K SLoC

bebot

Bebot是一个Gitlab webhook处理器,当配置的仓库中发生有趣的事情时,它会将消息发布到Matrix。

当前支持的Gitlab事件类型

  • 推送事件
  • 标签推送事件
  • 问题事件
  • 合并请求事件
  • 管道事件(目前仅在失败时发布)

构建

Bebot是用Rust编写的,构建它需要Rust工具链。通常使用 cargo buildcargo build --release 即可。

您也可以通过运行 cargo install bebot 来构建并安装Bebot的最新发布版本。

设置

Bebot需要一个YAML格式的配置文件。请参阅 sample-config.yaml 以获取所有现有的配置选项以及每个选项的作用说明。

在Gitlab中设置webhook时,请使用配置文件中webhook的“Secret token”字段中的相同 token。您应该只选择“推送事件”、“标签推送事件”、“问题事件”、“合并请求事件”和“管道事件”。如果您不希望Bebot发布所有消息,则可以省略其中一些。

Bebot不支持通过TLS提供webhook服务,因此您可能希望将其放在nginx等反向代理后面。

scripts 目录中有一个 set-webhook.py 脚本,可以设置(或更新)您的仓库的webhook,并为您自动生成一个token。如果您是首次设置webhook,它将输出一个YAML片段,该片段将放在配置文件的 repo_configs 部分。如果您不带参数运行脚本,它将打印出使用说明。

运行

完成所有这些后,只需运行Bebot即可

bebot /path/to/config-file.yaml

您可以通过设置环境变量 BEBOT_LOG 来增加或减少日志的详细程度。 (尝试 debuginfowarnerroroff。)

Docker

还提供了一个 Dockerfile。在运行容器时构建,挂载配置文件,使其在容器内作为 /bebot/config/bebot.yaml 出现。

发布镜像已发布到 Docker Hub。

依赖项

~23–39MB
~662K SLoC