

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

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

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

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-gitlab.png)


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

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


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

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


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

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


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

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


在此示例中，只有当账户 ID 与正则表达式`actor-account-id`不匹配的 GitLab 用户进行更改时，Webhook 筛选器组才会触发构建。

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

![\[一个 webhook 筛选器组，只有在没有账户 ID 的 GitLab 用户进行更改时才会触发构建。\]](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/images/pull-request-webhook-filter-actor-gitlab.png)


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

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