12.7. 设置自定义 Git 触发器


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

12.7.1. 创建触发器

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

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

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

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

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

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

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

View and modify tags from your repository

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