12.7. 设置自定义 Git 触发器
自定义 Git 触发器 是任何 Git 服务器充当构建触发器的通用方法。它依赖于 SSH 密钥和 webhook 端点。其他所有内容都保留给用户实施。
12.7.1. 创建触发器
创建自定义 Git 触发器与创建任何其他触发器类似,但以下情况除外:
- Red Hat Quay 无法自动检测与触发器搭配使用的正确 Robot 帐户。这必须在创建过程中手动完成。
- 创建必须完成的触发器后,还有额外的步骤。这些步骤在以下部分中详细介绍。
12.7.2. 自定义触发器创建设置
在创建自定义 Git 触发器时,需要额外的步骤:
- 您必须提供在创建触发器时生成的 SSH 公钥的读取访问权限。
- 您必须设置 POST 到 Red Hat Quay 端点的 Webhook,以触发构建。
通过从 Settings 或 gear 图标选择 View Credentials,可以使用密钥和 URL。
从您的存储库中查看和修改标签
12.7.2.1. SSH 公钥访问
根据 Git 服务器配置,可以通过多种方法安装 Red Hat Quay 为自定义 Git 触发器生成的 SSH 公钥。
例如,Git 文档描述了一个小型服务器设置,在其中将密钥添加到 $HOME/.ssh/authorize_keys
将提供构建器(克隆存储库)的访问权限。对于任何未正式支持的 git 存储库管理软件,通常有一个位置来输入通常标记为 Deploy Keys 的密钥。
12.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 } } }