Repo: https://github.com/RedL0tus/trigger
嗯... 这又是一个轮子,还是个氧化之后的轮子。
在一些简单的场景下可以代替 CI 实现自动部署等等。
之前用过一些别的监听 GitHub webhook 的程序,但是它们大多是 Python 或 Node 之类写的,跑在我的 256MB 内存的小鸡上面内存有点吃紧。正好我当时学了一下 Rust 就自己造了一个库和一个 CLI 程序出来。
从写出来开始我就在我自己的一些别的坑上面用了,应该没什么大问题。
其实一开始是用的别人的库写的,只能根据 GitHub 发来的请求执行对应的命令。后来发现当时用的那个库已经很久没更新了,迁移上新的依赖也跟重写一个差不多了(现在 Rust 的生态就有这么个问题,一大票 0.X 的库,API 老是改)。
这两天我放假没事情干把库和程序完善了一下加了点功能,给程序发了个 1.0 版(因为我觉得可能有用的功能已经做出来了),过来打个广告。
hmac
和 sha-1
两个 crate。
ring
来做验证签名的功能的,但是 ring
有一部分是用 C 写的,使用 musl 的话会编译失败。至于为什么要用 musl 的话下面会说。run_script
这个 crate ),配合 jq 可以解析 request body。更多细节可以看 README。我英语和语文都不是很好还请各位大佬原谅(感觉我这中文 README 写得像是在丢中国人的脸)。
愿意自己编译的话可以通过 rustup 安装 Rust 的工具链,然后使用 cargo install trigger
进行安装。
如果机器配置太差或不想装工具链的话,release 页面里有使用 musl 静态链接的 Linux x86_64 的二进制可供下载(约 2.0MB )。
(因为 Rust 默认配置下编译出来的二进制有点肥,我参照了 https://github.com/johnthagen/min-sized-rust 上的一些建议,然后使用了 musl 工具链静态链接,这样编译出来的二进制比用 glibc 动态链接的要小一点,又方便在不同发行版之间共用。)
Windows 下我没测试过,但是这里使用的库应该都是纯 Rust 的所以理论上 Windows 下应该也能编译使用,就是配置文件里的 shell 脚本的语言会变成 Windows 的 cmd (根据 run_script
的 README )。
(不过我想 Windows 上用这些的应该也不是很多?)
装好之后建议再套一层 nginx 之类的逆向代理,因为我自己的喜好问题等等没给它做独立的 HTTPS 支持。
这是我第一次把我写的东西拿出来打广告... 感觉有点不要脸(小声
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.