7.7. 设置自定义 Git 触发器
自定义 Git 触发器 是任何 Git 服务器充当构建触发器的通用方法。它只依赖于 SSH 密钥和 Webhook 端点。其他所有都保留供用户实施。
7.7.1. 创建触发器
创建自定义 Git 触发器与创建任何其他触发器类似,但以下除外:
- Red Hat Quay 无法自动检测要与触发器搭配使用的正确 Robot 帐户。这必须在创建过程中手动完成。
- 创建触发器后还有额外的步骤。这些步骤在以下部分详细介绍。
7.7.2. 自定义触发器创建设置
在创建自定义 Git 触发器时,需要额外的步骤:
- 您必须提供创建触发器时生成的 SSH 公钥的读访问权限。
- 您必须设置一个将 POST 到 Red Hat Quay 端点的 webhook 来触发构建。
可以通过从 Settings 或 gear 图标选择 View Credentials 来使用密钥和 URL。
查看和修改存储库中的标签
7.7.2.1. SSH 公钥访问
根据 Git 服务器配置,可以通过多种方式安装 Red Hat Quay 为自定义 Git 触发器生成的 SSH 公钥。
例如,Git 文档描述了一个小型服务器设置,在其中将密钥添加到 $HOME/.ssh/authorize_keys
将提供对 Builders 的访问权限,以克隆存储库。对于任何未正式支持的 git 存储库管理软件,通常有一个输入密钥的位置,通常被标记为 Deploy Keys。
7.7.2.2. Webhook
要自动触发构建,一个必须使用以下格式将 .json
有效负载 POST
到 Webhook URL:
这可以通过各种不同的方法来实现,具体取决于服务器设置,但大多数情况下,可以使用 post-receive
Git Hook 来完成。
注意
此请求需要一个包含 application/json
的 Content-Type
标头才能有效。
Webhook 示例
{ "commit": "1c002dd", // required "ref": "refs/heads/master", // required "default_branch": "master", // required "commit_info": { // optional "url": "gitsoftware.com/repository/commits/1234567", // required "message": "initial commit", // required "date": "timestamp", // required "author": { // optional "username": "user", // required "avatar_url": "gravatar.com/user.png", // required "url": "gitsoftware.com/users/user" // required }, "committer": { // optional "username": "user", // required "avatar_url": "gravatar.com/user.png", // required "url": "gitsoftware.com/users/user" // required } } }