2 个版本
使用旧的 Rust 2015
0.1.1 | 2016 年 4 月 11 日 |
---|---|
0.1.0 | 2016 年 3 月 20 日 |
#14 in #github-webhook
34KB
783 代码行,不包括注释
koukku
GitHub Webhook 服务器。监听来自 GitHub 的项目更新,并对更改执行更新脚本。
我可以使用 koukku 做什么?
此项目的主要目标是提供一个简单的持续集成/持续交付平台,用于 GitHub 项目。例如,可以使用 koukku 部署托管在 GitHub 上的源代码的网站最新版本。
它具体做什么?
- Koukku 通过提供 webhook 访问来监听来自 GitHub 的更新。
- 如果配置中找到匹配项,则触发接收事件的更新。
- 它使用远程存储库的更改更新匹配项目的本地存储库。
- 它在本地存储库目录中运行用户配置的更新脚本。
安装
$ cargo install koukku
用法
USAGE:
koukku [FLAGS] --config <FILE>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-c, --config <FILE> Configuration file location
配置
配置遵循 INI 格式。顶级键包含常见配置,而部分包含特定于项目的配置。以下是一个配置示例
location = /path/to/projects
gitpath = /usr/bin/git
server = 0.0.0.0:3000
threads = 2
[myproject]
repo = githubname/myrepo
key = foobar
branch = master
command = /path/to/somescript.sh
项目布局
项目存储库应放置到 location
指向的位置。此目录中的存储库使用部分 ID 进行标识。例如,在上面的配置示例中,项目可通过 /path/to/projects/myproject
找到。
常见配置
键 | 描述 |
---|---|
server | 要运行的服务器地址。默认:localhost:8888 |
threads | 运行 Web 服务器要使用的线程数。默认:与核心数相关 |
location | 存储库所在的目录 |
gitpath | git 二进制文件的路径。默认:/usr/bin/git |
项目配置
键 | 描述 |
---|---|
repo | 格式为 username/repository 的 GitHub 存储库 |
key | Webhook 秘密密钥 |
branch | 要跟踪的 Git 分支。默认:master |
command | 在 webhook 触发时运行的命令 |
在 GitHub 中创建 webhook
请参阅 GitHub 的 创建 Webhook 指南。目前,koukku 只支持 JSON 负载。
日志记录
Koukku 使用 Rust 的 log 和 env_logger 进行日志记录。更改 RUST_LOG
环境变量以调整日志记录。推荐设置
RUST_LOG="error,koukku=info"
systemd
以下是一个使用 systemd 运行 koukku 的示例单元文件
[Unit]
Description=Github Webhook service
After=network.target
[Service]
ExecStart=/path/to/koukku --config /path/to/conf.ini
WorkingDirectory=/path/to/workingdir
User=koukku
Group=koukku
PIDFile=/path/to/koukku.pid
Environment=RUST_LOG=error,koukku=info
[Install]
WantedBy=default.target
根据需要更改路径、用户和组,并将文件放置于/etc/systemd/system/koukku.service
。有关更多信息,请参阅systemd 文档。
依赖项
要运行koukku
,您需要安装OpenSSL库。有关更多信息,请参阅rust-openssl和您操作系统的指南。
要构建koukku
,您需要安装Rust编译器和工具。
构建
使用Rust的cargo
来构建项目
$ cargo build
构建将在路径target/debug/koukku
中创建一个调试可执行文件。您可以使用--release
标志创建一个优化后的可执行文件。
$ cargo build --release
可执行文件可以在路径target/release/koukku
中找到。您也可以直接使用cargo run
来运行可执行文件。
$ cargo run -- --config myconf.ini --server localhost:3030
可以使用cargo test
运行测试
$ cargo test
有关使用Cargo的更多信息,请参阅Cargo指南。
许可协议
(MIT许可协议)
版权所有(c)2016 Jaakko Pallari
在此特此免费授予任何人获得此软件和相关文档文件(以下简称“软件”)副本的权利,可以在不受限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许获得软件的人进行上述行为,但以下条件除外
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明示的还是暗示的,包括但不限于适销性、针对特定目的的适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论这些责任是基于合同、侵权或其他原因,是否因软件或其使用或其他方式而产生。
依赖项
~14MB
~298K SLoC