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

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

筛选 GitHub webhook 事件 () SDK

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

有关 GitHub webhook 事件的更多信息,请参阅GitHub webhook 事件

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

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

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

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

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

"filterGroups": [ [ { "type": "EVENT", "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED" }, { "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_REOPENED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED" }, { "type": "HEAD_REF", "pattern": "^refs/tags/.*", "excludeMatchedPattern": true } ] ]

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

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

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

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

您可以创建仅当具有帐户 ID 的指定用户 GitHub 或 E GitHub nterprise Server 用户进行更改时才会触发构建的筛选器actor-account-id

注意

有关如何查找您的 GitHub 账户 ID 的信息,请参阅 https://api.github.com/users/user-name其中,user-name 是您的 GitHub 用户名。

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

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

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

要创建仅触发 Actions 工作流程任务生成的 GitHub webhook 过滤器,请在请求语法中插入以下内容:

"filterGroups": [ [ { "type": "EVENT", "pattern": "WORKFLOW_JOB_QUEUED" } ] ]