AWS CodeBuild SDK を使用してウェブフックイベントをフィルタリングするには、CreateWebhook
または UpdateWebhook
API メソッドのリクエスト構文の filterGroups
フィールドを使用します。詳細については、CodeBuild API リファレンスの「WebhookFilter」を参照してください。
プルリクエストに対してのみビルドをトリガーするウェブフックフィルタを作成するには、以下をリクエスト構文に挿入します。
"filterGroups": [
[
{
"type": "EVENT",
"pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED"
}
]
]
指定されたブランチに対してのみビルドをトリガーするウェブフックフィルタを作成するには、pattern
パラメータを使用して、ブランチ名をフィルタリングするよう正規表現を指定します。2 つのフィルタグループの例を使用した場合、ビルドは一方または両方が true と評価されるとトリガーされます。
-
最初のフィルタグループでは、正規表現
^refs/heads/main$
に一致する Git 参照と^refs/heads/myBranch$
に一致するヘッド参照を含むブランチで作成または更新されたプルリクエストを指定します。 -
2 番目のフィルタグループでは、正規表現
^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
」を参照してください。ここで、user-name
は、Bitbucket のユーザー名を表します。
"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.*"
}
]
]
この例で、フィルターグループは、ファイルが 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\]"
}
]
]