1.12. 在 GitHub 拦截器中配置拉取请求功能
使用 GitHub Interceptor,您可以创建验证和过滤 GitHub Webhook 的逻辑。例如,您可以验证 webhook 的源并根据指定条件过滤传入的事件。当使用 GitHub Interceptor 过滤事件数据时,您可以在字段中指定拦截器可以接受的事件类型。在 Red Hat OpenShift Pipelines 中,您可以使用 GitHub Interceptor 的以下功能:
- 根据已更改的文件过滤拉取请求事件
- 根据配置的 GitHub 所有者验证拉取请求
1.12.1. 使用 GitHub Interceptor 过滤拉取请求 复制链接链接已复制到粘贴板!
您可以根据为推送和拉取事件更改的文件过滤 GitHub 事件。这有助于您只对 Git 仓库中的相关更改执行管道。GitHub Interceptor 添加以逗号分隔的所有更改的文件列表,并使用 CEL Interceptor 根据更改的文件过滤传入的事件。更改的文件列表添加到顶层 extensions
字段中事件有效负载的 changed_files
属性中。
先决条件
- 已安装 Red Hat OpenShift Pipelines Operator。
流程
执行以下步骤之一:
对于公共 GitHub 存储库,在 YAML 配置文件中将
addChangedFiles
参数的值设置为true
,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于私有 GitHub 存储库,将
addChangedFiles
参数的值设置为true
,并在以下所示的 YAML 配置文件中提供访问令牌详情、secretName
和secretKey
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 保存配置文件。
1.12.2. 使用 GitHub Interceptors 验证拉取请求 复制链接链接已复制到粘贴板!
您可以使用 GitHub Interceptor 根据为存储库配置的 GitHub 所有者验证拉取请求处理。此验证可帮助您防止对 PipelineRun
或 TaskRun
对象进行不必要的执行。只有在用户名列为拥有者或者由存储库的所有者发出可配置注释时,GitHub Interceptor 才会处理拉取请求。例如,当您以所有者身份在拉取请求上注释掉 /ok-to-test
时,会触发 PipelineRun
或 TaskRun
。
所有者在存储库根目录的 OWNERS
文件中配置。
先决条件
- 已安装 Red Hat OpenShift Pipelines Operator。
流程
- 创建 secret 字符串值。
- 使用该值配置 GitHub Webhook。
-
创建名为
secretRef
的 Kubernetes secret,其中包含您的 secret 值。 - 将 Kubernetes secret 作为对 GitHub Interceptor 的引用。
-
创建一个
owners
文件,并将批准者列表添加到approvers
部分。 执行以下步骤之一:
对于公共 GitHub 存储库,在 YAML 配置文件中将
githubOwners
参数的值设置为true
,如下所示:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于私有 GitHub 存储库,将
githubOwners
参数的值设置为true
,并在以下所示的 YAML 配置文件中提供访问令牌详情、secretName
和secretKey
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意checkType
参数用于指定需要身份验证的 GitHub 所有者。您可以将其值设为orgMembers
、repoMembers
或all
。
- 保存配置文件。