翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Bitbucket ウェブフックイベント
Webhook フィルタグループを使用して、ビルドをトリガーする Bitbucket ウェブフックイベントを指定できます。たとえば、特定のブランチへの変更に対してのみビルドをトリガーするように指定できます。
ビルドをトリガーするウェブフックイベントを指定するには、ウェブフックフィルタグループを 1 つ以上作成できます。任意のフィルターグループが true と評価されると、ビルドがトリガーされます。これは、グループ内のすべてのフィルターが true と評価されたときに発生します。フィルタグループを作成する際、以下を指定します。
- イベント
-
Bitbucket では、次のイベントのうち、1 つ以上を選択できます:
-
PUSH
-
PULL_REQUEST_CREATED
-
PULL_REQUEST_UPDATED
-
PULL_REQUEST_MERGED
-
PULL_REQUEST_CLOSED
ウェブフックのイベントタイプは、
X-Event-Key
フィールドのヘッダーに含まれています。次の表に、X-Event-Key
ヘッダー値がイベントタイプにマッピングされる方法を示します。注記
PULL_REQUEST_MERGED
イベントタイプを使用するウェブフックフィルタグループを作成する場合は、Bitbucket ウェブフック設定でmerged
イベントを有効にする必要があります。また、declined
イベントタイプを使用するウェブフックフィルタグループを作成する場合は、Bitbucket ウェブフック設定でPULL_REQUEST_CLOSED
イベントを有効にする必要があります。X-Event-Key
ヘッダー値イベントタイプ repo:push
PUSH
pullrequest:created
PULL_REQUEST_CREATED
pullrequest:updated
PULL_REQUEST_UPDATED
pullrequest:fulfilled
PULL_REQUEST_MERGED
pullrequest:rejected
PULL_REQUEST_CLOSED
PULL_REQUEST_MERGED
の場合、プルリクエストがスカッシュ戦略とマージされ、プルリクエストブランチが閉じられると、元のプルリクエストコミットは存在しなくなります。この場合、CODEBUILD_WEBHOOK_MERGE_COMMIT
環境変数には、圧縮されたマージコミットの識別子が含まれます。 -
- 1 つ以上のオプションフィルタ
-
フィルタを指定するには、正規表現を使用します。ビルドをトリガーするイベントでは、関連付けられているグループ内のすべてのフィルターが true と評価される必要があります。
ACTOR_ACCOUNT_ID
(コンソール内のACTOR_ID
)-
Bitbucket アカウント ID が正規表現パターンと一致すると、ビルドがウェブフックイベントでトリガーされます。この値は、ウェブフックフィルタペイロードの
actor
オブジェクトのaccount_id
プロパティに表示されます。 HEAD_REF
-
ヘッドリファレンスが正規表現パターンと一致すると (
refs/heads/branch-name
とrefs/tags/tag-name
など)、ウェブフックイベントによってビルドがトリガーされます。HEAD_REF
フィルタは、ブランチまたはタグについて Git 参照名を評価します。ブランチ名またはタグ名は、ウェブフックペイロードのpush
オブジェクトにある、new
オブジェクトのname
フィールドに表示されます。プルリクエストイベントの場合、ブランチ名はウェブフックペイロードのsource
オブジェクトにある、branch
オブジェクトのname
フィールドに表示されます。 BASE_REF
-
基本参照が正規表現パターンと一致すると、ビルドがウェブフックイベントでトリガーされます。
BASE_REF
フィルタは、プルリクエストイベントでのみ使用できます (例:refs/heads/branch-name
)。BASE_REF
フィルタは、ブランチの Git 参照名を評価します。ブランチ名は、ウェブフックペイロードのdestination
オブジェクトにある、branch
オブジェクトのname
フィールドに表示されます。 FILE_PATH
-
変更されたファイルのパスが正規表現パターンに一致すると、ビルドが Webhook イベントでトリガーされます。
COMMIT_MESSAGE
-
HEAD コミットメッセージが正規表現パターンに一致する場合に、Webhook はビルドをトリガーします。
注記
ウェブフックペイロードは、Bitbucket リポジトリのウェブフック設定で見つかります。
トピック
Bitbucket ウェブフックイベントのフィルタリング (コンソール)
を使用してウェブフックイベント AWS Management Console をフィルタリングするには:
-
プロジェクトの作成時に [コードの変更がこのレポジトリにプッシュされるたびに再構築する] を選択します。
-
[イベントタイプ] から、1 つ以上のイベントを選択します。
-
イベントでビルドをトリガーされた時間をフィルタリングするには、[これらの条件でビルドを開始する] で、1 つ以上のオプションフィルタを追加します。
-
イベントがトリガーされていない時間をフィルタリングするには、[これらの条件でビルドを開始しない] で、1 つ以上のオプションフィルタを追加します。
-
別のフィルタグループを追加するには、[フィルタグループの追加] を選択します。
詳細については、「AWS CodeBuild API リファレンス」の「ビルドプロジェクトの作成 (コンソール)」および「WebhookFilter」を参照してください。
この例では、ウェブフックフィルタグループは、プルリクエストに対してのみビルドをトリガーします。
2 つのフィルタグループの例を使用した場合、ビルドは一方または両方が true と評価されるとトリガーされます。
-
最初のフィルタグループでは、正規表現
^refs/heads/main$
に一致する Git 参照と^refs/heads/branch1!
に一致するヘッド参照を含むブランチで作成または更新されたプルリクエストを指定します。 -
2 番目のフィルタグループでは、正規表現
^refs/heads/branch1$
に一致する Git 参照を含むブランチでプッシュリクエストを指定します。
この例では、ウェブフックフィルタグループは、タグイベントを除くすべてのリクエストに対してビルドをトリガーします。
この例では、ウェブフックフィルタグループは、正規表現 ^buildspec.*
に一致する名前のファイルが変更された場合にのみビルドをトリガーします。
この例で、Webhook フィルターグループは、ファイルが src
または test
フォルダーで変更された場合にのみ、ビルドをトリガーします。
この例では、正規表現 actor-account-id
と一致するアカウント ID を持たない Bitbucket ユーザーが変更を行った場合にのみ、ウェブフックフィルタグループがビルドをトリガーします。
注記
Bitbucket アカウント ID の検索方法については、「https://api.bitbucket.org/2.0/users/user-name
」を参照してください。ここで、user-name
は、Bitbucket のユーザー名を表します。
この例では、HEAD コミットメッセージが正規表現 \[CodeBuild\]
に一致する場合に、Webhook フィルタグループがプッシュイベントのビルドをトリガーします。
Bitbucket ウェブフックイベントのフィルタリング (SDK)
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\]" } ] ]
Bitbucket ウェブフックイベントのフィルタリング (AWS CloudFormation)
AWS CloudFormation テンプレートを使用してウェブフックイベントをフィルタリングするには、 AWS CodeBuild プロジェクトの FilterGroups
プロパティを使用します。以下の YAML 形式の AWS CloudFormation
テンプレート部分によって、2 つのフィルタグループが作成されます。また、一方または両方が true と評価されると、ビルドがトリガーされます。
-
最初のフィルタグループでは、アカウント ID
^refs/heads/main$
を持たない Bitbucket ユーザーが、正規表現12345
と一致する Git 参照名を持つブランチに対してプルリクエストを作成または更新することを指定します。 -
2 番目のフィルタグループでは、正規表現
^refs/heads/.*
と一致する Git 参照名を持つブランチに対するプッシュリクエストを作成することを指定します。 -
3 番目のフィルタグループでは、正規表現
\[CodeBuild\]
に一致する HEAD コミットメッセージを使用してプッシュリクエストを指定します。
CodeBuildProject: Type: AWS::CodeBuild::Project Properties: Name: MyProject ServiceRole:
service-role
Artifacts: Type: NO_ARTIFACTS Environment: Type: LINUX_CONTAINER ComputeType: BUILD_GENERAL1_SMALL Image: aws/codebuild/standard:5.0 Source: Type: BITBUCKET Location:source-location
Triggers: Webhook: true FilterGroups: - - Type: EVENT Pattern: PULL_REQUEST_CREATED,PULL_REQUEST_UPDATED - Type: BASE_REF Pattern: ^refs/heads/main$ ExcludeMatchedPattern: false - Type: ACTOR_ACCOUNT_ID Pattern: 12345 ExcludeMatchedPattern: true - - Type: EVENT Pattern: PUSH - Type: HEAD_REF Pattern: ^refs/heads/.* - Type: FILE_PATH Pattern: READ_ME ExcludeMatchedPattern: true - - Type: EVENT Pattern: PUSH - Type: COMMIT_MESSAGE Pattern: \[CodeBuild\] - Type: FILE_PATH Pattern: ^src/.+|^test/.+