#github-webhook #github #webhook #deployment #cli #events #runner

bin+lib descry

GitHub Webhook 监听器和执行器

6 个版本

0.0.6 2023年2月25日
0.0.5 2022年9月8日
0.0.2 2022年8月24日

#409配置

每月 25 下载

MIT 协议

17KB
229

descry

一个基于 GitHub Action 的 CLI 代码执行器,用于代码的动态部署。

本项目基于 RedL0tus 的 rifling Rust crate,处理 GitHub Webhook 解析。

安装

使用 cargo 安装 crate(这需要已安装 rust

cargo install descry

安装完成后,只需运行

descry -c <file>.yaml

其中 <file> 代表配置文件名。有关参考配置文件,请参阅项目根目录中的 descry.yaml

入门指南

首先,您需要设置 webhook!您需要前往您想要部署 descry 的仓库,进入设置,然后是 webhooks 并 添加 Webhook

然后,在您的 payload URL 中 - 您需要放置您已部署 descry 的位置。建议使用类似 nginx 的服务将端口部署映射到 /hook 子路由。例如 https://reseda.app/hook。类型留为 url-encoded。

最后,您需要生成一个密钥。这永远不应该被公开。以下是一个示例,请参阅 descry.yaml。这需要在 descry 部署的 yaml 配置中放置。

然后,只需选择您希望此 webhook 监听的事件并激活它即可!

文档

descry.yaml 文件包含本项目所需的所有内容,让我们一起来了解一下。

设置

  • ip:port host:主机定义了 descry 尝试部署的位置。如果您需要自定义端口,请在此处指定。
  • 字符串 secret 这是您的操作密钥!
  • 布尔值 print_commands 如果您希望保留运行命令的日志,请将其保留为 true
  • 布尔值 exit_on_error 当收到错误时是否应该退出 descry?

事件

每个事件都是从 GitHub 给出的名称。以下支持以下标签

标签 含义 运行类型
common 是所有事件的共同点,在每次操作时运行,以及操作特定的标签。 on-every
all 与 common 相同。 on-every
push 在推送时运行。 on-specific
watch 在每次有新用户关注仓库时运行,以找出是谁;检查湿标签。 on-specific
ping 在 GitHub Action ping 命令上运行,用于测试。 on-specific
else 任何其他... on-specific

内部,您可以放置在事件被调用时运行的 bash 代码 (.sh)。以下属性可以在运行时使用,并将被湿化

  • {id} 动作的 ID
  • {event} 动作的类型
  • {signature} 动作的签名
  • {payload} 动作的负载内容
  • {request_body} 动作的请求体

我可以用它构建什么?

可能性无限,但这里有一些建议来推动球滚动!

  • 在 master 上成功提交代码时构建和/或部署代码。
  • 通知您的服务器有新的关注者或收藏者;感谢他们!
  • 让自己(和他人)了解仓库的更改,如问题或收藏。
  • 让每个人都了解新版本发布!
  • 还有很多...

reseda-vpn 项目构建

依赖关系

~12–25MB
~292K SLoC