#gitlab #webhook #github #ci

rifling

用于创建 Github/GitLab Webhook 监听器的库

9 个不稳定版本 (3 个破坏性更改)

0.4.0 2019 年 4 月 24 日
0.3.3 2019 年 4 月 23 日
0.2.1 2019 年 4 月 20 日
0.1.1 2019 年 3 月 31 日

#40 in #gitlab

45 每月下载量
用在 2 crates

MIT 许可证

30KB
561 行代码(不包括注释)

Rifling

license docs.rs Build Status

Rifling 是一个用于创建 Github/GitLab Webhook 监听器的库,受 afterparty 影响。

如果您需要一个命令行工具而不是库,请参阅 trigger

功能

  • 支持 GitHub 和 GitLab。
  • 支持应用程序/json 模式和(可选)应用程序/x-www-form-urlencoded 模式。
  • (可能)支持不同的 Web 框架。
  • 可选的负载解析支持。使用 serde_json 的无类型解析功能。
  • 可选的负载身份验证支持,使用 ring 或 RustCrypto 团队的库。
  • 可选的日志记录。

可选功能

  • Web 框架
  • 负载数据包身份验证(不影响使用)
    • crypto-use-ring(默认):使用 ring 作为密码学库。这可能会更快,但有一些 C 代码。
    • crypto-use-rustcrypto:使用 RustCrypto 团队的库(hmacsha-1)。这些库是这些算法的纯 Rust 实现,可以与 musl 链接。
  • 负载数据包内容类型
    • content-type-urlencoded(默认启用):支持 application/x-www-form-urlencoded 类型的内容。
  • 负载数据包解析
    • parse(默认):解析负载。解析后的负载将作为 Delivery.payload 存在于 Option<Value>
  • 日志记录
    • logging(默认):使用官方的 log crate 进行日志记录。
    • logging-print:使用 println 宏打印日志。当启用 logging 时将被忽略。

备注

  • 调试日志对于查找问题很有用。
  • 从 GitLab 收到的事件将通过小写化和将 " "(空白) 替换为 "_"(下划线)进行修复。
    • 例如,在注册钩子时,Push Hook 将变为 push_hook

许可证

MIT 许可证。见 LICENSE

依赖项

约 0–3MB
约 82K SLoC