

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Filter acara GitHub webhook (SDK)
<a name="github-webhook-events-sdk"></a>

Untuk menggunakan AWS CodeBuild SDK untuk memfilter peristiwa webhook, gunakan `filterGroups` bidang dalam sintaks permintaan metode `CreateWebhook` atau `UpdateWebhook` API. Untuk informasi selengkapnya, lihat [WebhookFilter](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_WebhookFilter.html) di dalam *Referensi API CodeBuild *. 

Untuk informasi selengkapnya tentang acara GitHub webhook, lihat[GitHub acara webhook](github-webhook.md).

 Untuk membuat filter webhook yang memicu build hanya untuk permintaan tarik, masukkan yang berikut ini ke dalam sintaks permintaan: 

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

 Untuk membuat filter webhook yang memicu build hanya untuk cabang tertentu, gunakan `pattern` parameter untuk menentukan ekspresi reguler untuk memfilter nama cabang. Menggunakan contoh dua grup filter, build dipicu ketika salah satu atau keduanya mengevaluasi ke true:
+ Grup filter pertama menentukan permintaan tarik yang dibuat, diperbarui, atau dibuka kembali pada cabang dengan nama referensi Git yang cocok dengan ekspresi reguler `^refs/heads/main$` dan referensi kepala yang cocok. `^refs/heads/myBranch$` 
+ Grup filter kedua menentukan permintaan push pada cabang dengan nama referensi Git yang cocok dengan ekspresi `^refs/heads/myBranch$` reguler. 

```
"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$"
        }
    ]
]
```

 Anda dapat menggunakan `excludeMatchedPattern` parameter untuk menentukan peristiwa mana yang tidak memicu build. Misalnya, dalam contoh ini build dipicu untuk semua permintaan kecuali peristiwa tag. 

```
"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
        }
    ]
]
```

Anda dapat membuat filter yang memicu build hanya jika file dengan nama yang cocok dengan ekspresi reguler dalam `pattern` argumen berubah. Dalam contoh ini, grup filter menetapkan bahwa build dipicu hanya ketika file dengan nama yang cocok dengan ekspresi reguler `^buildspec.*` berubah. 

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

Dalam contoh ini, grup filter menetapkan bahwa build dipicu hanya ketika file diubah `src` atau `test` folder.

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

Anda dapat membuat filter yang memicu build hanya jika perubahan dilakukan oleh pengguna Server GitHub Perusahaan tertentu GitHub atau dengan ID `actor-account-id` akun. 

**catatan**  
 Untuk informasi tentang cara menemukan ID GitHub akun Anda, lihat https://api.github.com/users/*user-name*, di *user-name* mana nama GitHub pengguna Anda. 

```
"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"
        }
    ]
]
```

Anda dapat membuat filter yang memicu build hanya jika pesan head commit cocok dengan ekspresi reguler dalam argumen pola. Dalam contoh ini, grup filter menetapkan bahwa build dipicu hanya jika pesan head commit dari peristiwa push cocok dengan ekspresi `\[CodeBuild\]` reguler. 

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

Untuk membuat filter webhook yang hanya memicu pekerjaan alur kerja build for GitHub Actions, masukkan yang berikut ini ke dalam sintaks permintaan:

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