

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

# GitHub acara webhook
<a name="github-webhook"></a>

Anda dapat menggunakan grup filter webhook untuk menentukan peristiwa GitHub webhook mana yang memicu build. Misalnya, Anda dapat menentukan bahwa build hanya dipicu untuk perubahan pada cabang tertentu. 

Anda dapat membuat satu atau beberapa grup filter webhook untuk menentukan peristiwa webhook mana yang memicu build. Build dipicu jika grup filter apa pun mengevaluasi true, yang terjadi ketika semua filter dalam grup dievaluasi menjadi true. Saat Anda membuat grup filter, Anda menentukan: 

**Sebuah acara**  
Untuk GitHub, Anda dapat memilih satu atau lebih dari acara berikut:`PUSH`,`PULL_REQUEST_CREATED`,`PULL_REQUEST_UPDATED`,`PULL_REQUEST_REOPENED`,`PULL_REQUEST_MERGED`,`PULL_REQUEST_CLOSED`,`RELEASED`,`PRERELEASED`, dan`WORKFLOW_JOB_QUEUED`. Jenis acara webhook ada di `X-GitHub-Event` header di payload webhook. Di `X-GitHub-Event` header, Anda mungkin melihat `pull_request` atau`push`. Untuk peristiwa permintaan tarik, jenisnya ada di `action` bidang payload peristiwa webhook. Tabel berikut menunjukkan bagaimana nilai `X-GitHub-Event` header dan nilai `action` bidang payload permintaan tarik webhook memetakan ke jenis acara yang tersedia.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/github-webhook.html)
 Jenis `PULL_REQUEST_REOPENED` acara dapat digunakan dengan GitHub dan GitHub Enterprise Server saja. Jenis `RELEASED` dan `PRERELEASED` acara GitHub hanya dapat digunakan dengan. Untuk informasi selengkapnya tentang `WORKFLOW_JOB_QUEUED`, lihat [Tutorial: Konfigurasikan CodeBuild pelari GitHub Tindakan yang di-host](action-runner.md). 

**Satu atau lebih filter opsional**  
Gunakan ekspresi reguler untuk menentukan filter. Agar peristiwa memicu build, setiap filter dalam grup yang terkait dengannya harus mengevaluasi ke true.    
`ACTOR_ACCOUNT_ID`(`ACTOR_ID`di konsol)  
Peristiwa webhook memicu build saat ID akun Server GitHub atau GitHub Enterprise cocok dengan pola ekspresi reguler. Nilai ini ditemukan di `id` properti `sender` objek di payload webhook.  
`HEAD_REF`  
Peristiwa webhook memicu build saat referensi kepala cocok dengan pola ekspresi reguler (misalnya, `refs/heads/branch-name` atau`refs/tags/tag-name`). Untuk acara push, nama referensi ditemukan di `ref` properti di payload webhook. Untuk peristiwa permintaan tarik, nama cabang ditemukan di `ref` properti `head` objek di payload webhook.   
`BASE_REF`  
Peristiwa webhook memicu build saat referensi dasar cocok dengan pola ekspresi reguler (misalnya,`refs/heads/branch-name`). `BASE_REF`Filter hanya dapat digunakan dengan peristiwa permintaan tarik. Nama cabang ditemukan di `ref` properti `base` objek di payload webhook.  
`FILE_PATH`  
Webhook memicu build saat jalur file yang diubah cocok dengan pola ekspresi reguler. `FILE_PATH`Filter dapat digunakan dengan acara GitHub push and pull request dan GitHub Enterprise Server push events. Itu tidak dapat digunakan dengan peristiwa permintaan tarik Server GitHub Perusahaan.   
`COMMIT_MESSAGE`  
Webhook memicu build saat pesan head commit cocok dengan pola ekspresi reguler. `COMMIT_MESSAGE`Filter dapat digunakan dengan acara GitHub push and pull request dan GitHub Enterprise Server push events. Itu tidak dapat digunakan dengan peristiwa permintaan tarik Server GitHub Perusahaan.  
`TAG_NAME`  
Webhook memicu build saat nama tag rilis cocok dengan pola ekspresi reguler. `TAG_NAME`Filter dapat digunakan dengan peristiwa permintaan yang GitHub dirilis dan prareleased.  
`RELEASE_NAME`  
Webhook memicu build saat nama rilis cocok dengan pola ekspresi reguler. `RELEASE_NAME`Filter dapat digunakan dengan peristiwa permintaan yang GitHub dirilis dan prareleased.  
`REPOSITORY_NAME`  
Webhook memicu build saat nama repositori cocok dengan pola ekspresi reguler. `REPOSITORY_NAME`Filter hanya dapat digunakan dengan webhook GitHub global atau organisasi.  
`ORGANIZATION_NAME`  
Webhook memicu build saat nama organisasi cocok dengan pola ekspresi reguler. `ORGANIZATION_NAME`Filter hanya dapat digunakan dengan webhook GitHub global.  
`WORKFLOW_NAME`  
Webhook memicu build saat nama alur kerja cocok dengan pola ekspresi reguler. `WORKFLOW_NAME`Filter dapat digunakan dengan peristiwa permintaan antrian pekerjaan alur kerja GitHub Actions.

**catatan**  
Anda dapat menemukan payload webhook di pengaturan webhook repositori Anda. GitHub 

**Topics**
+ [Filter acara GitHub webhook (konsol)](github-webhook-events-console.md)
+ [Filter acara GitHub webhook (SDK)](github-webhook-events-sdk.md)
+ [Filter acara GitHub webhook ()CloudFormation](github-webhook-events-cfn.md)

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

Gunakan petunjuk berikut untuk memfilter peristiwa GitHub webhook menggunakan file. Konsol Manajemen AWS Untuk informasi selengkapnya tentang acara GitHub webhook, lihat[GitHub acara webhook](github-webhook.md).

Di **Acara webhook sumber utama**, pilih yang berikut ini. Bagian ini hanya tersedia ketika Anda memilih **Repositori di GitHub akun saya** untuk repositori sumber.

1. Pilih **Bangun ulang setiap kali perubahan kode didorong ke repositori ini** saat Anda membuat proyek Anda. 

1. Dari **jenis Acara**, pilih satu atau beberapa acara. 

1. Untuk memfilter saat peristiwa memicu build, di bawah **Memulai build dalam kondisi ini**, tambahkan satu atau beberapa filter opsional. 

1. Untuk memfilter saat peristiwa tidak dipicu, di bawah **Jangan memulai build dalam kondisi ini**, tambahkan satu atau beberapa filter opsional. 

1. Pilih **Tambahkan grup filter** untuk menambahkan grup filter lain, jika diperlukan. 

 Untuk informasi selengkapnya, lihat [Buat proyek build (konsol)](create-project.md#create-project-console) dan [WebhookFilter](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_WebhookFilter.html)di *Referensi AWS CodeBuild API*. 

Dalam contoh ini, grup filter webhook memicu build untuk permintaan tarik saja:

![\[Grup filter webhook yang memicu build untuk permintaan tarik saja.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/pull-request-webhook-filter.png)


Menggunakan contoh dua grup filter webhook, 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/branch1$` 
+ Grup filter kedua menentukan permintaan push pada cabang dengan nama referensi Git yang cocok dengan ekspresi `^refs/heads/branch1$` reguler. 

![\[Contoh dari dua grup filter.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/pull-request-webhook-filter-head-base-regexes.png)


Dalam contoh ini, grup filter webhook memicu build untuk semua permintaan kecuali peristiwa tag. 

![\[Grup filter webhook yang memicu build untuk semua permintaan kecuali peristiwa tag.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/pull-request-webhook-filter-exclude.png)


Dalam contoh ini, grup filter webhook memicu build hanya jika file dengan nama yang cocok dengan ekspresi `^buildspec.*` reguler berubah. 

![\[Grup filter webhook yang memicu build hanya jika file dengan nama yang cocok dengan ekspresi reguler yang ditentukan.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/pull-request-webhook-filter-file-name-regex.png)


Dalam contoh ini, grup filter webhook memicu build hanya ketika file diubah `src` atau `test` folder.

![\[Grup filter webhook yang memicu build hanya jika file diubah dalam folder tertentu.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/pull-request-webhook-filter-file-name-combined-regex.png)


Dalam contoh ini, grup filter webhook memicu build hanya jika perubahan dilakukan oleh pengguna Server GitHub Perusahaan tertentu GitHub atau dengan ID akun yang cocok dengan ekspresi reguler. `actor-account-id` 

**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. 

![\[Grup filter webhook yang memicu build hanya jika perubahan dilakukan oleh GitHub pengguna tertentu dengan ID akun yang cocok dengan ekspresi reguler.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/pull-request-webhook-filter-actor.png)


Dalam contoh ini, grup filter webhook memicu build untuk acara push saat pesan head commit cocok dengan ekspresi reguler. `\[CodeBuild\]` 

![\[Grup filter webhook yang memicu build untuk acara push saat pesan head commit cocok dengan ekspresi reguler.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/pull-request-webhook-filter-commit-message.png)


Dalam contoh ini, grup filter webhook memicu peristiwa pekerjaan alur kerja build for GitHub Actions saja.

**catatan**  
CodeBuild hanya akan memproses pekerjaan alur kerja GitHub Tindakan jika webhook memiliki grup filter yang berisi filter acara **WORKFLOW\$1JOB\$1QUEUED**.

![\[Grup filter webhook memicu peristiwa pekerjaan alur kerja build for GitHub Actions saja.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/github-actions-workflow-job-queued-no-highlight.png)


Dalam contoh ini, grup filter webhook memicu build untuk nama alur kerja yang cocok dengan ekspresi reguler. `CI-CodeBuild` 

![\[Grup filter webhook memicu build untuk nama alur kerja yang cocok dengan ekspresi reguler.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/github-actions-workflow-job-specific.png)


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

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

 Untuk menggunakan CloudFormation template untuk memfilter peristiwa webhook, gunakan `FilterGroups` properti AWS CodeBuild proyek.

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

Bagian CloudFormation template yang diformat YAML berikut membuat dua grup filter. Bersama-sama, mereka memicu pembuatan ketika salah satu atau keduanya mengevaluasi ke BETUL: 
+  Grup filter pertama menentukan permintaan tarik dibuat atau diperbarui pada cabang dengan nama referensi Git yang cocok dengan ekspresi reguler `^refs/heads/main$` oleh GitHub pengguna yang tidak memiliki ID `12345` akun. 
+  Grup filter kedua menentukan permintaan push dibuat pada file dengan nama yang cocok dengan ekspresi reguler `READ_ME` di cabang dengan nama referensi Git yang cocok dengan ekspresi reguler `^refs/heads/.*`. 
+ Grup filter ketiga menentukan permintaan push dengan pesan head commit yang cocok dengan ekspresi `\[CodeBuild\]` reguler.
+ Grup filter keempat menentukan permintaan pekerjaan alur kerja GitHub Tindakan dengan nama alur kerja yang cocok dengan ekspresi reguler. `\[CI-CodeBuild\]`

```
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: GITHUB
      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/.+
        - - Type: EVENT
            Pattern: WORKFLOW_JOB_QUEUED
          - Type: WORKFLOW_NAME
            Pattern: \[CI-CodeBuild\]
```