

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# GitHub ウェブフックイベントのフィルタリング (SDK)
<a name="github-webhook-events-sdk"></a>

 AWS CodeBuild SDK を使用してウェブフックイベントをフィルタリングするには、 `CreateWebhook`または `UpdateWebhook` API メソッドのリクエスト構文で `filterGroups`フィールドを使用します。詳細については、*CodeBuild API リファレンス*の「[WebhookFilter](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_WebhookFilter.html)」を参照してください。

GitHub ウェブフックイベントの詳細については、「[GitHub ウェブフックイベント](github-webhook.md)」を参照してください。

 プルリクエストに対してのみビルドをトリガーするウェブフックフィルタを作成するには、以下をリクエスト構文に挿入します。

```
"filterGroups": [
   [
        {
            "type": "EVENT", 
            "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED, 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_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.*"
        }
    ]
]
```

この例で、フィルターグループは、ファイルが `src` または `test` フォルダーで変更された場合にのみ、ビルドをトリガーするように指定しています。

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

指定した GitHub ユーザーまたは GitHub Enterprise Server ユーザーがアカウント ID `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\]"
        }
    ]
]
```

GitHub Actions ワークフロージョブのビルドのみをトリガーするウェブフックフィルタを作成するには、リクエスト構文に以下を挿入します。

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