筛选 Bitbucket Webhook 事件(开发工具包) - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

筛选 Bitbucket Webhook 事件(开发工具包)

要使用 Amazon CodeBuild SDK 筛选 webhook 事件,请使用CreateWebhookUpdateWebhook API 方法的请求语法中的filterGroups字段。有关更多信息,请参阅 CodeBuild API 参考中的 WebhookFilter

要创建仅针对拉取请求触发构建的 Webhook 筛选条件,请在请求语法中插入以下内容:

"filterGroups": [ [ { "type": "EVENT", "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED" } ] ]

要创建仅针对指定分支触发构建的 Webhook 筛选条件,请使用 pattern 参数指定用于筛选分支名称的正则表达式。以两个筛选条件组为例,当一个或两个筛选条件评估为 True 时触发构建:

  • 第一个筛选条件组使用与正则表达式 ^refs/heads/main$ 匹配的 Git 引用名称以及与 ^refs/heads/myBranch$ 匹配的 HEAD 引用,指定在分支上创建或更新的拉取请求。

  • 第二个筛选条件组使用与正则表达式 ^refs/heads/myBranch$ 匹配的 Git 引用名称,指定分支上的推送请求。

"filterGroups": [ [ { "type": "EVENT", "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_CLOSED" }, { "type": "HEAD_REF", "pattern": "^refs/heads/myBranch$" }, { "type": "BASE_REF", "pattern": "^refs/heads/main$" } ], [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "HEAD_REF", "pattern": "^refs/heads/myBranch$" } ] ]

您可以使用 excludeMatchedPattern 参数指定不触发构建的事件。在此示例中,将针对除标记事件之外的所有请求触发构建。

"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED" }, { "type": "HEAD_REF", "pattern": "^refs/tags/.*", "excludeMatchedPattern": true } ] ]

您可以创建仅在帐户 ID 为 actor-account-id 的 Bitbucket 用户进行更改时触发构建的筛选条件。

注意

有关如何查找你的 Bitbucket 账户 ID 的信息,请参阅 https://api.bitbucket.org/2.0/users/user-name,你的 Bitbucket 用户名在user-name哪里。

"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED" }, { "type": "ACTOR_ACCOUNT_ID", "pattern": "actor-account-id" } ] ]

您可以创建只有当名称与 pattern 参数中的正则表达式匹配的文件发生更改时,才触发构建的筛选条件。在此示例中,筛选条件组指定仅当名称与正则表达式 ^buildspec.* 匹配的文件更改时才触发构建。

"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "FILE_PATH", "pattern": "^buildspec.*" } ] ]

在此示例中,筛选条件组指定仅当 srctest 文件夹中的文件发生更改时,才会触发构建。

"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "FILE_PATH", "pattern": "^src/.+|^test/.+" } ] ]

您可以创建一个筛选条件,仅当 HEAD 提交消息与模式参数中的正则表达式匹配时才触发构建操作。在本示例中,筛选条件组指定仅当推送事件的 HEAD 提交消息与正则表达式 \[CodeBuild\] 匹配时,才触发构建操作。

"filterGroups": [ [ { "type": "EVENT", "pattern": "PUSH" }, { "type": "COMMIT_MESSAGE", "pattern": "\[CodeBuild\]" } ] ]