9.7. 设置自定义 Git 触发器


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

9.7.1. 创建触发器

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

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

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

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

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

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

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

View and modify tags from your repository

9.7.2.1. SSH 公钥访问

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

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

9.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.