12.6. 设置自定义 Git 触发器
创建自定义 Git 触发器 后,需要额外的步骤:
- 您必须提供在创建触发器时生成的 SSH 公钥的读取访问权限。
- 您必须设置 POST 到 Quay.io 端点的 webhook,以触发构建。
只有在使用 自定义 Git 触发器 时,才需要这些步骤。
12.6.1. 获取构建触发器凭证
SSH 公钥和 Webhook 端点 URL 在 Red Hat Quay UI 上提供。
先决条件
- 您已创建了自定义 Git 触发器。
流程
- 在存储库的 Builds 页面中,单击 自定义 Git 触发器 菜单 kebab。
- 单击 View Credentials。
- 保存 SSH 公钥和 Webhook 端点 URL。
通过从 Settings 或 gear 图标选择 View Credentials,可以使用密钥和 URL。
从您的存储库中查看和修改标签
12.6.1.1. SSH 公钥访问
根据 Git 服务器配置,可以通过多种方法安装 Quay.io 为自定义 Git 触发器生成的 SSH 公钥。
例如,服务器上获取 Git 的文档描述了如何在基于 Linux 的机器上设置 Git 服务器,专注于通过 SSH 管理存储库和访问控制。在此过程中,将小服务器设置为将密钥添加到 $HOME/.ssh/authorize_keys
文件夹,它为 构建器 提供克隆存储库的访问权限。
对于任何未正式支持的 Git 存储库管理软件,通常有一个位置来输入通常标记为 Deploy Keys 的密钥。
12.6.1.2. Webhook
要自动触发构建,您必须使用以下格式将 .json
有效负载 POST
到 webhook URL:
此请求需要一个包含 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 } } }
这通常可以通过 post-receive
Git hook 来完成,但它取决于服务器设置。