Webhook 配置

本文主要介绍如何在代码托管平台正确配置 Zadig 的 Webhook 。

Webhook 可用于以下场景:

  1. 通过配置工作流 Webhook 可以实现代码 Push 到代码库以及提交 Pull Request(Merge Request) 时触发工作流的运行,实现从提交到构建自动化的流程。具体可以参考工作流的触发
  2. 通过 Webhook 可以实现在代码仓库中托管的服务配置变更实时同步到 Zadig 系统上

warning 注意

版本,系统自动添加 webhook,无需手动配置

1.3.0 以下版本适用" class="reference-link">GitLab Webhook 配置 1.3.0 以下版本适用

代码触发 Zadig 工作流,需要在 GitLab 上配置相关的 Webhook。Admin Area -> System Hooks,具体配置如图所示:

GitLab Webhook 配置

参数说明:

  • URL[Zadig 系统部署的 URL]/api/aslan/gitlabhook
  • Secret Token:用于验证 Payloads,点击用户头像:用户设置 -> 密钥,复制密钥

    企业版可以在企业管理 -> 企业信息位置查找密钥信息

  • Trigger:选择 Push eventsMerge request events
  • SSL verification:选择 Enable SSL verification

也可以配置 GitLab 项目级别的 Webhook 触发,选择具体的 GitLab 项目,点击 Settings -> integrations,具体配置可参考上图。

1.3.0 以下版本适用" class="reference-link">GitHub Webhook 配置 1.3.0 以下版本适用

Zadig GitHub Webhook 采用的是 GitHub App 的方式,具体配置过程如下:

第 1 步:创建 GitHub App

organization owner 在组织的 settings 中创建一个 GitHub App,并且将创建的 APP 安装到 GitHub organization 下。

个人账号通过 Settings -> Developer setting -> GitHub Apps,点击 New GitHub App创建 GitHub App。

APP 配置如下:

  1. 填写 GitHub App name 和 Homepage URL: GitHub App name

参数说明:

  • GitHub App name:自定义
  • Homepage URL:Zadig 系统部署的 URL
  1. 填写 Webhook 配置: GitHub Webhook

参数说明:

  • Active:选中
  • Webhook URL[Zadig 系统部署的 URL]/api/aslan/githubWebHook
  • Webhook Secret:用于验证 Payloads,登录 Zadig,点击用户头像:用户设置 -> 密钥,复制密钥

    企业版可以在企业管理 -> 企业信息位置查找密钥信息

  1. Repository permissions:
    • Checks:Read & write
    • Contents:Read-only
    • Metadata:Read-only
    • Pull requests:Read-only
    • Commit statuses:Read & write
  2. Subscribe to events:
    • 勾选 Check runPull requestPush
  3. 点击 Create GitHub App 创建 GitHub App。

第 2 步:下载 .pem 文件并进行加密

在创建的 GitHub App General 界面,点击 Generate a private key 生成 Private key,并对下载 .pem 文件的内容进行 Base64 加密

GitHub生成私钥

第 3 步:安装 GitHub App

将 GitHub App 安装到 organization 下。点击 App 头像进入创建的 GitHub App 通用界面,进入 Install App,选择 Install

github app install

进行到这一步,GitHub 的配置操作完成。

第 4 步:在 Zadig 系统上集成 GitHub App

第 4 步:进入 Zadig,系统设置 -> 集成管理 -> GitHub App 集成,填写 App ID 和加密过的私钥,如图所示:

GitHub app config

参数说明:

  • App ID:第 3 步生成的 GitHub App 的 ID
  • App Key:第 2 步下载的 .pem 文件的 Base64 编码

Gerrit Webhook 配置

Gerrit Webhook 需要 Webhook 插件支持。具体安装请参考链接

安装成功之后,效果如图所示:

workflow