本页介绍了如何在 Secure Source Manager 中设置 Webhook。
Webhook 是由 Secure Source Manager 中的事件触发并发送到用户指定网址的 HTTP 请求。
准备工作
所需的角色
如需获得创建 Webhook 所需的权限,请让管理员向您授予以下 IAM 角色:
- 
  
  
    
      针对 Secure Source Manager 代码库的 Secure Source Manager Repository Admin  (roles/securesourcemanager.repoAdmin)
- 
  
  
    
      Secure Source Manager Instance Accessor  (roles/securesourcemanager.instanceAccessor) 在 Secure Source Manager 实例上
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
如需了解如何授予 Secure Source Manager 角色,请参阅使用 IAM 进行访问权限控制和向用户授予实例访问权限。
设置网络钩子
- 在 Secure Source Manager 网页界面中,找到要为其创建 Webhook 的代码库。
- 点击设置。
- 点击 Webhooks,然后点击 Add webhook。
- 在 Hook ID 字段中,输入 Webhook 的 ID。 
- 在目标网址字段中,输入 Webhook 网址。例如,如果您想在 Jenkins 中触发 build,可以设置 Webhook 触发器,然后在此处输入 Jenkins 触发器网址,以在 Jenkins 中触发 build。 
- 如果 Webhook 网址包含您在创建 Webhook 触发器时输入的密钥和 Secret 值,请从目标网址末尾移除这些值,然后将其复制到敏感查询字符串字段。 - 如需在网络钩子网址中找到您的密钥和密钥,请查找以 - key=开头的文本- 例如,假设有以下网址: - https://cloudbuild.googleapis.com/v1/projects/my-project/triggers/test-trigger:webhook?key=eitIfKhYnv0LrkdsyHqIros8fbsheKRIslfsdngf&secret=Hello%20Secret%20Manager- 复制并移除目标网址字段中以问号 - ?key=...开头的部分。然后移除初始问号,将剩余部分- key=...移至敏感查询字符串字段。
- 在触发条件部分中,选择以下选项之一: - 推送:在向代码库推送时触发。
- 拉取请求状态已更改:在拉取请求状态发生更改时触发。
 
- 如果您选择了推送,则可以在分支过滤条件字段中输入推送事件的许可名单。 - 分支过滤条件字段使用 glob 模式,只有对匹配分支的操作才会触发 build。如果该字段为空或为 - *,则系统会报告所有分支的推送事件。如需了解语法,请参阅 glob 文档。
- 点击 Add webhook。 
- Webhook 会显示在 Webhook 页面中。 
测试您的网络钩子
- 在 Secure Source Manager 的网络钩子页面中,点击要测试的网络钩子。
- 前往页面底部,然后点击测试交付。 - 系统会将占位符事件添加到传送队列中。它可能需要几秒钟才能显示在配送记录中。 
- 您还可以使用 - git命令推送或合并拉取请求,以测试 Webhook。
- 在配置了 Webhook 触发器的服务的构建历史记录中,检查已触发的构建或事件的状态。 
- 发送第一个测试交付后,您还可以在 Secure Source Manager webhook 页面的最近的交付部分查看测试交付的请求和响应。 
使用载荷数据替换 Cloud Build YAML 变量
如果您使用 Webhook 连接到 Cloud Build,则可以使用 Secure Source Manager Webhook 载荷数据替换 Cloud Build YAML 变量。
- 在 Secure Source Manager 的 Webhook 页面上,点击近期交付部分中的顶行。 - 系统会显示 webhook 载荷发送的请求标头和内容。 
- 前往 Cloud Build 信息中心,然后点击触发器。 
- 点击要配置的触发器。 
- 在高级部分的替代变量下,点击 + 添加变量。 
- 输入变量的名称和值。值前缀为 - body。- 例如,如需将 - _REPO_URL替换为载荷数据字段- repository.clone_url,并将- _COMMIT_SHA替换为 Cloud Build YAML 中的最新提交 SHA,请输入以下名称和值:- 变量 1:_REPO_URL值 1:$(body.repository.clone_url)
- 变量 2:_COMMIT_SHA值 2:$(body.after)
 - Cloud Build YAML 文件类似于以下内容: - steps: - name: gcr.io/cloud-builders/git env: - '_REPO_URL=$_REPO_URL' - '_COMMIT_SHA=$_COMMIT_SHA' script: | #!/bin/sh git clone ${_REPO_URL} /workspace cd /workspace git reset --hard ${_COMMIT_SHA}
- 变量 1: