

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 筛选 GitHub webhook 事件（控制台）
<a name="github-webhook-events-console"></a>

按照以下说明使用过滤 GitHub webhook 事件。 AWS 管理控制台有关 GitHub webhook 事件的更多信息，请参阅[GitHub webhook 事件](github-webhook.md)。

在**主要源 webhook 事件**中，选择以下内容。只有当您在**我的 GitHub账户中为源存储库选择存储库**时，此部分才可用。

1. 创建项目时，选择**每次将代码更改推送到此存储库时都会重新构建**。

1. 从**事件类型**中，选择一个或多个事件。

1. 要在事件触发构建时进行筛选，请在**在这些条件下开始构建**下，添加一个或多个可选筛选条件。

1. 要在未触发事件时进行筛选，请在**在这些条件下不开始构建**下，添加一个或多个可选筛选条件。

1. 选择**添加筛选条件组**，以添加另一个筛选条件组（如果需要）。

 有关更多信息，请参阅《*AWS CodeBuild API 参考*》中的[创建构建项目（控制台）](create-project.md#create-project-console)和[WebhookFilter](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_WebhookFilter.html)。

在此示例中，Webhook 筛选条件组仅针对拉取请求触发构建：

![\[一个 webhook 筛选条件组，仅针对拉取请求触发构建。\]](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/images/pull-request-webhook-filter.png)


以两个 Webhook 筛选条件组为例，当一个或两个筛选条件评估为 True 时触发构建：
+ 第一个筛选条件组使用与正则表达式 `^refs/heads/main$` 匹配的 Git 引用名称以及与 `^refs/heads/branch1$` 匹配的头部引用，指定在分支上创建、更新或重新打开的拉取请求。
+ 第二个筛选条件组使用与正则表达式 `^refs/heads/branch1$` 匹配的 Git 引用名称，指定分支上的推送请求。

![\[两个筛选条件组的示例。\]](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/images/pull-request-webhook-filter-head-base-regexes.png)


在此示例中，Webhook 筛选条件组会针对除标记事件之外的所有请求触发构建。

![\[一个 webhook 筛选条件组，针对除标记事件之外的所有请求触发构建。\]](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/images/pull-request-webhook-filter-exclude.png)


在此示例中，仅当名称与正则表达式 `^buildspec.*` 匹配的文件发生更改时，Webhook 筛选条件组才会触发构建。

![\[一个 webhook 筛选条件组，仅当文件名称与指定的正则表达式匹配时才会触发构建。\]](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/images/pull-request-webhook-filter-file-name-regex.png)


在此示例中，仅当 `src` 或 `test` 文件夹中的文件发生更改时，Webhook 筛选条件组才会触发构建。

![\[一个 webhook 筛选条件组，仅当指定文件夹中的文件发生更改时才会触发构建。\]](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/images/pull-request-webhook-filter-file-name-combined-regex.png)


在此示例中，只有当帐户 ID 与正则表达式`actor-account-id`匹配的指定用户 GitHub 或 GitHub 企业服务器用户进行更改时，Webhook 筛选器组才会触发构建。

**注意**  
 有关如何查找您的 GitHub 账户 ID 的信息，请参阅 https://api.github.com/users/*user-name*，您的 GitHub 用户名在*user-name*哪里。

![\[一个 webhook 过滤器组，只有当账户 ID 与正则表达式匹配的指定 GitHub 用户进行更改时才会触发构建。\]](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/images/pull-request-webhook-filter-actor.png)


在本示例中，当 HEAD 提交消息与正则表达式 `\[CodeBuild\]` 匹配时，Webhook 筛选条件组会触发推送事件的构建。

![\[一个 webhook 筛选条件组，当 HEAD 提交消息与正则表达式匹配时会触发推送事件的构建。\]](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/images/pull-request-webhook-filter-commit-message.png)


在此示例中，webhook 筛选器组仅触发 Actions 工作 GitHub 流程作业事件的构建。

**注意**  
CodeBuild 仅当 Webhook 具有包含 WORKFLOW\$1JOB **\$1QUEUED 事件过滤器的筛选器组时，才会处理 GitHub 操作工作流作**业。

![\[Webhook 筛选器组仅触发 GitHub 操作工作流程作业事件的构建。\]](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/images/github-actions-workflow-job-queued-no-highlight.png)


在此示例中，当工作流名称与正则表达式 `CI-CodeBuild` 匹配时，webhook 筛选条件组才会触发构建。

![\[一个 webhook 筛选条件组，当工作流名称与正则表达式匹配时才会触发构建。\]](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/images/github-actions-workflow-job-specific.png)
