要使用 AWS CodeBuild 开发工具包筛选 Webhook 事件,请使用 CreateWebhook
或 UpdateWebhook
API 方法的请求语法中的 filterGroups
字段。有关更多信息,请参阅《CodeBuild API 参考》中的 WebhookFilter。
有关 GitLab Webhook 事件的更多信息,请参阅 GitLab webhook 事件。
要创建仅针对拉取请求触发构建的 Webhook 筛选条件,请在请求语法中插入以下内容:
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED"
}
]
]
要创建仅针对指定分支触发构建的 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"
},
{
"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"
},
{
"type": "HEAD_REF",
"pattern": "^refs/tags/.*",
"excludeMatchedPattern": true
}
]
]
您可以创建仅在账户 ID 为 actor-account-id
的 GitLab 用户进行更改时触发构建的筛选条件。
注意
有关如何查找您的 GitLab 账户 ID 的信息,请参阅 https://api.github.com/users/user-name
,其中 user-name
是您的 GitLab 用户名。
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED"
},
{
"type": "ACTOR_ACCOUNT_ID",
"pattern": "actor-account-id"
}
]
]
您可以创建只有当名称与 pattern
参数中的正则表达式匹配的文件发生更改时,才触发构建的筛选条件。在此示例中,筛选条件组指定仅当名称与正则表达式 ^buildspec.*
匹配的文件更改时才触发构建。
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PUSH"
},
{
"type": "FILE_PATH",
"pattern": "^buildspec.*"
}
]
]
在此示例中,筛选条件组指定仅当 src
或 test
文件夹中的文件发生更改时,才会触发构建。
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PUSH"
},
{
"type": "FILE_PATH",
"pattern": "^src/.+|^test/.+"
}
]
]
您可以创建一个筛选条件,仅当 HEAD 提交消息与模式参数中的正则表达式匹配时才触发构建操作。在本示例中,筛选条件组指定仅当推送事件的 HEAD 提交消息与正则表达式 \[CodeBuild\]
匹配时,才触发构建操作。
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PUSH"
},
{
"type": "COMMIT_MESSAGE",
"pattern": "\[CodeBuild\]"
}
]
]