搜索

8.7. 设置自定义 Git 触发器

download PDF

自定义 Git 触发器 是任何 Git 服务器充当构建触发器的通用方法。它只依赖于 SSH 密钥和 Webhook 端点。其他所有都保留供用户实施。

8.7.1. 创建触发器

创建自定义 Git 触发器与创建任何其他触发器类似,但以下除外:

  • Quay.io 无法自动检测要用于触发器的正确 Robot 帐户。这必须在创建过程中手动完成。
  • 创建触发器后还有额外的步骤。这些步骤在以下部分详细介绍。

8.7.2. 自定义触发器创建设置

在创建自定义 Git 触发器时,需要额外的步骤:

  1. 您必须提供创建触发器时生成的 SSH 公钥的读访问权限。
  2. 您必须设置一个 webhook,它将 POST 到 Quay.io 端点来触发构建。

可以通过从 Settingsgear 图标选择 View Credentials 来使用密钥和 URL。

查看和修改存储库中的标签

View and modify tags from your repository

8.7.2.1. SSH 公钥访问

根据 Git 服务器配置,可以通过多种方式安装 Quay.io 为自定义 Git 触发器生成的 SSH 公钥。

例如,Git 文档描述了一个小型服务器设置,在其中将密钥添加到 $HOME/.ssh/authorize_keys 将提供对 Builders 的访问权限,以克隆存储库。对于任何未正式支持的 git 存储库管理软件,通常有一个输入密钥的位置,通常被标记为 Deploy Keys

8.7.2.2. Webhook

要自动触发构建,一个必须使用以下格式将 .json 有效负载 POST 到 Webhook URL:

这可以通过各种不同的方法来实现,具体取决于服务器设置,但大多数情况下,可以使用 post-receive Git Hook 来完成。

注意

此请求需要一个包含 application/jsonContent-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
    }
  }
}

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.