

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

# Gunakan webhook dengan AWS CodeBuild
<a name="webhooks"></a>

AWS CodeBuild mendukung integrasi webhook dengan GitHub, GitHub Enterprise Server, GitLab GitLab Self Managed, dan Bitbucket. 

**Topics**
+ [

## Praktik terbaik untuk menggunakan webhook dengan AWS CodeBuild
](#webhook-best-practices)
+ [

# Acara webhook Bitbucket
](bitbucket-webhook.md)
+ [

# GitHub webhook global dan organisasi
](github-global-organization-webhook.md)
+ [

# GitHub webhook manual
](github-manual-webhook.md)
+ [

# GitHub acara webhook
](github-webhook.md)
+ [

# GitLab kelompok webhooks
](gitlab-group-webhook.md)
+ [

# GitLab webhook manual
](gitlab-manual-webhook.md)
+ [

# GitLab acara webhook
](gitlab-webhook.md)
+ [

# Webhook manual buildkite
](buildkite-manual-webhook.md)
+ [

# Tarik permintaan persetujuan komentar
](pull-request-build-policy.md)

## Praktik terbaik untuk menggunakan webhook dengan AWS CodeBuild
<a name="webhook-best-practices"></a>

Untuk proyek yang menggunakan repositori publik untuk mengatur webhook, kami merekomendasikan opsi berikut:

`ACTOR_ACCOUNT_ID`Filter pengaturan  
Tambahkan `ACTOR_ACCOUNT_ID` filter ke grup filter webhook proyek Anda untuk menentukan pengguna mana yang dapat memicu build. Setiap acara webhook yang dikirimkan CodeBuild dilengkapi dengan informasi pengirim yang menentukan pengenal aktor. CodeBuild akan memfilter webhook berdasarkan pola ekspresi reguler yang disediakan dalam filter. Anda dapat menentukan pengguna tertentu yang diizinkan untuk memicu build dengan filter ini. Untuk informasi selengkapnya, lihat [GitHub acara webhook](github-webhook.md) dan [Acara webhook Bitbucket](bitbucket-webhook.md). 

`FILE_PATH`Filter pengaturan  
Tambahkan `FILE_PATH` filter ke grup filter webhook proyek Anda untuk menyertakan atau mengecualikan file yang dapat memicu build saat diubah. Misalnya, Anda dapat menolak permintaan build untuk perubahan pada `buildspec.yml` file menggunakan pola ekspresi reguler seperti`^buildspec.yml$`, bersama dengan `excludeMatchedPattern` properti. Untuk informasi selengkapnya, lihat [GitHub acara webhook](github-webhook.md) dan [Acara webhook Bitbucket](bitbucket-webhook.md). 

Cakupan izin untuk peran IAM build Anda  
Build yang dipicu oleh webhook menggunakan peran layanan IAM yang ditentukan dalam proyek. Sebaiknya setel izin dalam peran layanan ke set izin minimum yang diperlukan untuk menjalankan build. Misalnya, dalam skenario pengujian dan penerapan, buat satu proyek untuk pengujian dan proyek lain untuk penerapan. Proyek pengujian menerima build webhook dari repositori, tetapi tidak memberikan izin menulis ke sumber daya Anda. Proyek penerapan menyediakan izin tulis ke sumber daya Anda, dan filter webhook dikonfigurasi untuk hanya mengizinkan pengguna tepercaya memicu build.

Menggunakan buildspec tersimpan sebaris atau Amazon S3  
Jika Anda menentukan buildspec inline dalam project itu sendiri, atau menyimpan file buildspec di bucket Amazon S3, file buildspec hanya dapat dilihat oleh pemilik proyek. Ini mencegah permintaan tarik membuat perubahan kode ke file buildspec dan memicu build yang tidak diinginkan. *Untuk informasi selengkapnya, lihat [ProjectSource.buildspec](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html#CodeBuild-Type-ProjectSource-buildspec) di Referensi API. CodeBuild*

# Acara webhook Bitbucket
<a name="bitbucket-webhook"></a>

Anda dapat menggunakan grup filter webhook untuk menentukan peristiwa webhook Bitbucket 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 Bitbucket, Anda dapat memilih satu atau beberapa acara berikut:  
+ `PUSH`
+ `PULL_REQUEST_CREATED`
+ `PULL_REQUEST_UPDATED`
+ `PULL_REQUEST_MERGED`
+ `PULL_REQUEST_CLOSED`
Jenis acara webhook ada di header di `X-Event-Key` lapangan. Tabel berikut menunjukkan bagaimana nilai `X-Event-Key` header memetakan ke jenis acara.  
Anda harus mengaktifkan `merged` acara dalam pengaturan webhook Bitbucket Anda jika Anda membuat grup filter webhook yang menggunakan jenis acara. `PULL_REQUEST_MERGED` Anda juga harus mengaktifkan `declined` acara dalam pengaturan webhook Bitbucket Anda jika Anda membuat grup filter webhook yang menggunakan jenis acara. `PULL_REQUEST_CLOSED`    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/bitbucket-webhook.html)
Untuk`PULL_REQUEST_MERGED`, jika permintaan tarik digabungkan dengan strategi squash dan cabang permintaan tarik ditutup, komit permintaan tarik asli tidak ada lagi. Dalam hal ini, variabel `CODEBUILD_WEBHOOK_MERGE_COMMIT` lingkungan berisi pengidentifikasi komit gabungan yang terjepit.

**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 Bitbucket cocok dengan pola ekspresi reguler. Nilai ini muncul di `account_id` properti `actor` objek di payload filter webhook.  
`HEAD_REF`  
Peristiwa webhook memicu build saat referensi kepala cocok dengan pola ekspresi reguler (misalnya, `refs/heads/branch-name` dan`refs/tags/tag-name`). `HEAD_REF`Filter mengevaluasi nama referensi Git untuk cabang atau tag. Nama cabang atau tag muncul di `name` bidang `new` objek di `push` objek payload webhook. Untuk peristiwa permintaan tarik, nama cabang muncul di `name` bidang di `branch` objek `source` objek di payload webhook.  
`BASE_REF`  
Peristiwa webhook memicu build saat referensi dasar cocok dengan pola ekspresi reguler. `BASE_REF`Filter hanya berfungsi dengan peristiwa permintaan tarik (misalnya,`refs/heads/branch-name`). `BASE_REF`Filter mengevaluasi nama referensi Git untuk cabang. Nama cabang muncul di `name` bidang `branch` objek di `destination` objek di payload webhook.  
`FILE_PATH`  
Webhook memicu build saat jalur file yang diubah cocok dengan pola ekspresi reguler.  
`COMMIT_MESSAGE`  
Webhook memicu build saat pesan head commit cocok dengan pola ekspresi reguler.  
`WORKFLOW_NAME`  
Webhook memicu build saat nama alur kerja cocok dengan pola ekspresi reguler.

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

**Topics**
+ [

# Filter acara webhook Bitbucket (konsol)
](bitbucket-webhook-events-console.md)
+ [

# Filter peristiwa webhook Bitbucket (SDK)
](bitbucket-webhook-events-sdk.md)
+ [

# Filter acara webhook Bitbucket ()CloudFormation
](bitbucket-webhook-events-cfn.md)

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

 Untuk menggunakan Konsol Manajemen AWS untuk memfilter acara webhook: 

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. 

 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-bitbucket.png)


Menggunakan contoh dua grup filter, build dipicu ketika salah satu atau keduanya mengevaluasi ke true:
+ Grup filter pertama menentukan permintaan tarik yang dibuat atau diperbarui 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-bitbucket.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-bitbucket.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 Bitbucket yang tidak memiliki ID akun yang cocok dengan ekspresi reguler. `actor-account-id` 

**catatan**  
 Untuk informasi tentang cara menemukan ID akun Bitbucket Anda, lihat https://api.bitbucket.org/2.0/users/*user-name*, di mana nama *user-name* pengguna Bitbucket Anda. 

![\[Grup filter webhook yang memicu build hanya jika perubahan dilakukan oleh pengguna Bitbucket yang tidak memiliki ID akun.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/pull-request-webhook-filter-actor-bitbucket.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)


# Filter peristiwa webhook Bitbucket (SDK)
<a name="bitbucket-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 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_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 atau diperbarui 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_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$"
    }
  ]
]
```

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

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

Anda dapat membuat filter yang memicu build hanya jika perubahan dilakukan oleh pengguna Bitbucket dengan ID akun. `actor-account-id` 

**catatan**  
 Untuk informasi tentang cara menemukan ID akun Bitbucket Anda, lihat https://api.bitbucket.org/2.0/users/*user-name*, di mana nama *user-name* pengguna Bitbucket Anda. 

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

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 pesan head commit cocok dengan ekspresi reguler dalam argumen pola. Dalam contoh ini, grup filter menetapkan bahwa build dipicu hanya jika pesan komit kepala dari peristiwa push cocok dengan ekspresi `\[CodeBuild\]` reguler. 

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

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

 Untuk menggunakan CloudFormation template untuk memfilter peristiwa webhook, gunakan `FilterGroups` properti AWS CodeBuild proyek. 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 pengguna Bitbucket yang tidak memiliki ID akun. `12345` 
+  Grup filter kedua menentukan permintaan push dibuat pada cabang dengan nama referensi Git yang cocok dengan ekspresi `^refs/heads/.*` reguler. 
+ Grup filter ketiga menentukan permintaan push dengan pesan head commit yang cocok dengan ekspresi `\[CodeBuild\]` reguler.

```
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/.+
```

# GitHub webhook global dan organisasi
<a name="github-global-organization-webhook"></a>

Anda dapat menggunakan webhook CodeBuild GitHub global atau organisasi untuk memulai build pada peristiwa webhook dari repositori apa pun dalam organisasi atau perusahaan. GitHub Webhook global dan organisasi bekerja dengan salah satu jenis acara GitHub webhook yang ada, dan dapat dikonfigurasi dengan menambahkan konfigurasi cakupan saat membuat webhook. CodeBuild Anda juga dapat menggunakan webhook global dan organisasi untuk [menyiapkan GitHub Action runner yang dihosting sendiri CodeBuild dalam](action-runner.md) rangka untuk menerima `WORKFLOW_JOB_QUEUED` peristiwa dari beberapa repositori dalam satu proyek.

**Topics**
+ [

# Menyiapkan GitHub webhook global atau organisasi
](github-global-organization-webhook-setup.md)
+ [

# Filter acara webhook GitHub global atau organisasi (konsol)
](github-global-organization-webhook-events-console.md)
+ [

# Filter acara webhook GitHub organisasi ()CloudFormation
](github-organization-webhook-events-cfn.md)

# Menyiapkan GitHub webhook global atau organisasi
<a name="github-global-organization-webhook-setup"></a>

Langkah-langkah tingkat tinggi untuk menyiapkan GitHub webhook global atau organisasi adalah sebagai berikut. Untuk informasi selengkapnya tentang GitHub webhook global dan organisasi, lihat. [GitHub webhook global dan organisasi](github-global-organization-webhook.md)

1. Tetapkan lokasi sumber proyek Anda ke`CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION`.

1. Dalam konfigurasi lingkup webhook, atur lingkup ke salah satu `GITHUB_ORGANIZATION` atau `GITHUB_GLOBAL` tergantung pada apakah itu harus menjadi organisasi atau [webhook global](https://docs.github.com/en/enterprise-cloud@latest/admin/monitoring-activity-in-your-enterprise/exploring-user-activity-in-your-enterprise/managing-global-webhooks). Untuk informasi selengkapnya, lihat [Jenis webhook](https://docs.github.com/en/webhooks/types-of-webhooks).

1. Tentukan nama sebagai bagian dari konfigurasi cakupan webhook. Untuk webhook organisasi, ini adalah nama organisasi, dan untuk webhook global ini adalah nama perusahaan.
**catatan**  
Jika jenis sumber proyek adalah`GITHUB_ENTERPRISE`, Anda juga perlu menentukan domain sebagai bagian dari konfigurasi lingkup webhook.

1. (Opsional) Jika Anda hanya ingin menerima peristiwa webhook untuk repositori tertentu dalam organisasi atau perusahaan Anda, Anda dapat menentukan `REPOSITORY_NAME` sebagai filter saat membuat webhook.

1. Jika Anda membuat webhook organisasi, pastikan CodeBuild memiliki izin untuk membuat webhook tingkat organisasi di dalamnya. GitHub Anda dapat membuat token akses GitHub pribadi dengan izin webhook organisasi, atau menggunakan. CodeBuild OAuth Untuk informasi selengkapnya, lihat [GitHub dan token akses Server GitHub Perusahaan](access-tokens-github.md).

   Perhatikan bahwa webhook organisasi bekerja dengan salah satu jenis acara GitHub webhook yang ada.

1. Jika Anda membuat webhook global, webhook harus dibuat secara manual. Untuk informasi selengkapnya tentang cara membuat webhook secara manual GitHub, lihat[GitHub webhook manual](github-manual-webhook.md).

   Perhatikan bahwa webhook global hanya mendukung jenis `WORKFLOW_JOB_QUEUED` acara. Untuk informasi selengkapnya, lihat [Tutorial: Konfigurasikan CodeBuild pelari GitHub Tindakan yang di-host](action-runner.md).

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

Saat membuat GitHub proyek melalui konsol, pilih opsi berikut untuk membuat webhook GitHub global atau organisasi dalam proyek. Untuk informasi selengkapnya tentang GitHub webhook global dan organisasi, lihat. [GitHub webhook global dan organisasi](github-global-organization-webhook.md)

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Buat proyek build. Untuk informasi selengkapnya, lihat [Buat proyek build (konsol)](create-project.md#create-project-console) dan [Jalankan build (konsol)](run-build-console.md).
   +  Dalam **Sumber**: 
     +  Untuk **penyedia Sumber**, pilih **GitHub**atau **GitHubEnterprise**.
     +  **Untuk **Repositori**, pilih GitHub webhook cakupan.** 

        GitHub Repositori akan secara otomatis diatur ke`CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION`, yang merupakan lokasi sumber yang diperlukan untuk webhook global dan organisasi. 
**catatan**  
Jika Anda menggunakan webhook organisasi, pastikan bahwa CodeBuild memiliki izin untuk membuat webhook tingkat organisasi di dalamnya. GitHub Jika Anda menggunakan [ OAuthkoneksi yang ada](oauth-app-github.md), Anda mungkin perlu membuat ulang koneksi untuk memberikan izin CodeBuild ini. Atau, Anda dapat membuat webhook secara manual menggunakan fitur [CodeBuild webhooks manual](github-manual-webhook.md). Perhatikan bahwa jika Anda memiliki GitHub OAuth token yang sudah ada dan ingin menambahkan izin organisasi tambahan, Anda dapat [mencabut izin OAuth token](https://docs.github.com/en/apps/oauth-apps/using-oauth-apps/reviewing-your-authorized-oauth-apps) dan menghubungkan kembali token melalui konsol. CodeBuild   
![\[Konfigurasi GitHub webhook cakupan.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/github-organization-webhook-source.png)
   +  Dalam **acara webhook sumber utama**: 
     +  Untuk **jenis Cakupan**, pilih **tingkat Organisasi** jika Anda membuat webhook organisasi atau **tingkat Enterprise** jika Anda membuat webhook global.
     +  Untuk **Nama**, masukkan nama perusahaan atau organisasi, tergantung pada apakah webhook adalah webhook global atau organisasi.

       Jika jenis sumber proyek adalah`GITHUB_ENTERPRISE`, Anda juga perlu menentukan domain sebagai bagian dari konfigurasi organisasi webhook. Misalnya, jika URL organisasi Anda adalah**https://domain.com/orgs/org-name**, maka domain tersebut**https://domain.com**.
**catatan**  
 Nama ini tidak dapat diubah setelah webhook dibuat. Untuk mengubah nama, Anda dapat menghapus dan membuat ulang webhook. Jika Anda ingin menghapus webhook sepenuhnya, Anda juga dapat memperbarui lokasi sumber proyek ke GitHub repositori.   
![\[Konfigurasi webhook global atau organisasi.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/github-organization-webhook-primary-events.png)
     +  (Opsional) Di **grup filter peristiwa Webhook**, Anda dapat menentukan [peristiwa mana yang ingin memicu build baru](github-webhook.md). Anda juga dapat menentukan `REPOSITORY_NAME` sebagai filter untuk hanya memicu build pada peristiwa webhook dari repositori tertentu.  
![\[Filter yang hanya memicu build pada peristiwa webhook dari repositori tertentu.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/github-organization-webhook-filter-groups.png)

       Anda juga dapat mengatur jenis acara `WORKFLOW_JOB_QUEUED` untuk menyiapkan pelari GitHub Tindakan yang dihosting sendiri. Untuk informasi selengkapnya, lihat [Tutorial: Konfigurasikan CodeBuild pelari GitHub Tindakan yang di-host](action-runner.md).

1. Lanjutkan dengan nilai default dan kemudian pilih **Create build project**.

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

 Untuk menggunakan CloudFormation template untuk memfilter peristiwa webhook organisasi, gunakan `ScopeConfiguration` properti AWS CodeBuild proyek. Untuk informasi selengkapnya tentang GitHub webhook global dan organisasi, lihat. [GitHub webhook global dan organisasi](github-global-organization-webhook.md)

**catatan**  
Webhook global dan webhook GitHub Enterprise tidak didukung oleh. CloudFormation

 Bagian CloudFormation template yang diformat YAML berikut membuat empat grup filter. Bersama-sama, mereka memicu build ketika satu atau semua mengevaluasi ke true: 
+  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
      ScopeConfiguration:
        Name: organization-name
        Scope: GITHUB_ORGANIZATION
      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\]
```

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

Anda dapat mengonfigurasi GitHub webhook manual untuk CodeBuild mencegah secara otomatis mencoba membuat webhook di dalamnya. GitHub CodeBuild mengembalikan URL payload sebagai bagian dari panggilan untuk membuat webhook dan dapat digunakan untuk membuat webhook secara manual di dalamnya. GitHub Meskipun tidak CodeBuild diizinkan untuk membuat webhook di GitHub akun Anda, Anda masih dapat membuat webhook secara manual untuk proyek build Anda.

Gunakan prosedur berikut untuk membuat webhook GitHub manual.

**Untuk membuat GitHub webhook manual**

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Buat proyek build. Untuk informasi selengkapnya, lihat [Buat proyek build (konsol)](create-project.md#create-project-console) dan [Jalankan build (konsol)](run-build-console.md).
   +  Dalam **Sumber**: 
     +  Untuk **penyedia Sumber**, pilih **GitHub**.
     +  Untuk **Repositori**, pilih **Repositori** di akun saya. GitHub 
     +  Untuk **URL Repositori, masukkan**. **https://github.com/*user-name*/*repository-name*** 
   +  Dalam **acara webhook sumber utama**: 
     +  Untuk **Webhook - opsional**, pilih **Rebuild setiap kali perubahan kode didorong ke repositori ini**.
     +  Pilih **Konfigurasi tambahan** dan untuk **Pembuatan manual - opsional**, pilih **Buat webhook secara manual untuk repositori ini** di konsol. GitHub .

1. Lanjutkan dengan nilai default dan kemudian pilih **Create build project**. Catat **URL Payload** dan nilai **Rahasia** karena Anda akan menggunakannya nanti.  
![\[URL payload dan konfigurasi Rahasia untuk webhook manual.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/github-manual-webhook-values.png)

1. Buka GitHub konsol di `https://github.com/user-name/repository-name/settings/hooks` dan pilih **Tambahkan webhook**.
   + Untuk **URL Payload**, masukkan nilai URL Payload yang Anda catat sebelumnya.
   + Untuk **jenis Konten**, pilih **application/json**.
   + Untuk **Rahasia**, masukkan nilai Rahasia yang Anda catat sebelumnya.
   + Konfigurasikan peristiwa individual yang akan mengirim payload webhook ke. CodeBuild Untuk **acara apa Anda ingin memicu webhook ini**? , pilih **Izinkan saya memilih acara individual**, lalu pilih dari peristiwa berikut: **Pushes**, **Pull requests**, dan **Releases**. Jika Anda ingin memulai build untuk `WORKFLOW_JOB_QUEUED` acara, pilih **Workflow jobs**. Untuk mempelajari selengkapnya tentang GitHub Actions runner, lihat[Tutorial: Konfigurasikan CodeBuild pelari GitHub Tindakan yang di-host](action-runner.md). Untuk mempelajari lebih lanjut tentang jenis acara yang didukung oleh CodeBuild, lihat[GitHub acara webhook](github-webhook.md).

1. Pilih **Tambahkan webhook**.

# 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\]
```

# GitLab kelompok webhooks
<a name="gitlab-group-webhook"></a>

Anda dapat menggunakan webhook CodeBuild GitLab grup untuk memulai build pada peristiwa webhook dari repositori apa pun dalam grup. GitLab Webhook grup bekerja dengan salah satu jenis acara GitLab webhook yang ada, dan dapat dikonfigurasi dengan menambahkan konfigurasi cakupan saat membuat webhook. CodeBuild Anda juga dapat menggunakan webhook grup untuk [menyiapkan GitLab pelari yang dihosting sendiri CodeBuild di dalamnya](gitlab-runner.md) untuk menerima `WORKFLOW_JOB_QUEUED` peristiwa dari beberapa repositori dalam satu proyek.

**Topics**
+ [

# Siapkan GitLab webhook grup
](gitlab-group-webhook-setup.md)
+ [

# Filter acara webhook GitLab grup (konsol)
](gitlab-group-webhook-events-console.md)
+ [

# Filter acara webhook GitLab grup ()CloudFormation
](gitlab-group-webhook-events-cfn.md)

# Siapkan GitLab webhook grup
<a name="gitlab-group-webhook-setup"></a>

Langkah-langkah tingkat tinggi untuk mengatur GitLab webhook grup adalah sebagai berikut. Untuk informasi selengkapnya tentang GitLab webhook grup, lihat. [GitLab kelompok webhooks](gitlab-group-webhook.md)

1. Tetapkan lokasi sumber proyek Anda ke`CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION`.

1. Dalam konfigurasi lingkup webhook, atur ruang lingkup ke`GITLAB_GROUP`.

1. Tentukan nama sebagai bagian dari konfigurasi cakupan webhook. Untuk webhook grup, ini adalah nama grup.
**catatan**  
Jika jenis sumber proyek adalah`GITLAB_SELF_MANAGED`, Anda juga perlu menentukan domain sebagai bagian dari konfigurasi lingkup webhook.

1. (Opsional) Jika Anda hanya ingin menerima peristiwa webhook untuk repositori tertentu dalam organisasi atau perusahaan Anda, Anda dapat menentukan `REPOSITORY_NAME` sebagai filter saat membuat webhook.

1. Saat membuat webhook grup, pastikan CodeBuild memiliki izin untuk membuat webhook tingkat grup di dalamnya. GitLab Untuk melakukannya, Anda dapat CodeBuild OAuth menggunakannya CodeConnections. Untuk informasi selengkapnya, lihat [GitLab akses di CodeBuild](access-tokens-gitlab-overview.md).

   Perhatikan bahwa webhook grup bekerja dengan salah satu jenis acara GitLab webhook yang ada.

# Filter acara webhook GitLab grup (konsol)
<a name="gitlab-group-webhook-events-console"></a>

Saat membuat GitLab proyek melalui konsol, pilih opsi berikut untuk membuat webhook GitLab grup dalam proyek. Untuk informasi selengkapnya tentang GitLab webhook grup, lihat. [GitLab kelompok webhooks](gitlab-group-webhook.md)

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Buat proyek build. Untuk informasi selengkapnya, lihat [Buat proyek build (konsol)](create-project.md#create-project-console) dan [Jalankan build (konsol)](run-build-console.md).
   +  Dalam **Sumber**: 
     +  Untuk **penyedia Sumber**, pilih **GitLab**atau **Dikelola GitLab Sendiri**.
     +  **Untuk **Repositori**, pilih GitLab webhook cakupan.** 

        GitLab Repositori akan secara otomatis diatur ke`CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION`, yang merupakan lokasi sumber yang diperlukan untuk webhook grup. 
**catatan**  
Saat menggunakan webhook grup, pastikan itu CodeBuild memiliki izin untuk membuat webhook tingkat grup di dalamnya. GitLab Jika Anda menggunakan [ OAuthkoneksi yang ada](access-tokens-gitlab-overview.md#connections-gitlab), Anda mungkin perlu membuat ulang koneksi untuk memberikan izin CodeBuild ini.  
![\[Konfigurasi GitLab webhook cakupan.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/gitlab-group-source.png)
   +  Dalam **acara webhook sumber utama**: 
     +  Untuk **nama Grup**, masukkan nama grup.

       Jika jenis sumber proyek adalah`GITLAB_SELF_MANAGED`, Anda juga perlu menentukan domain sebagai bagian dari konfigurasi grup webhook. Misalnya, jika URL grup Anda adalah**https://domain.com/group/group-name**, maka domain tersebut**https://domain.com**.
**catatan**  
 Nama ini tidak dapat diubah setelah webhook dibuat. Untuk mengubah nama, Anda dapat menghapus dan membuat ulang webhook. Jika Anda ingin menghapus webhook sepenuhnya, Anda juga dapat memperbarui lokasi sumber proyek ke GitLab repositori.   
![\[Konfigurasi webhook grup.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/gitlab-group-webhook-primary-events.png)
     +  (Opsional) Di **grup filter peristiwa Webhook**, Anda dapat menentukan [peristiwa mana yang ingin memicu build baru](gitlab-webhook.md). Anda juga dapat menentukan `REPOSITORY_NAME` sebagai filter untuk hanya memicu build pada peristiwa webhook dari repositori tertentu.  
![\[Filter yang hanya memicu build pada peristiwa webhook dari repositori tertentu.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/github-organization-webhook-filter-groups.png)

       Anda juga dapat mengatur jenis acara `WORKFLOW_JOB_QUEUED` untuk menyiapkan GitLab pelari yang dihosting sendiri. Untuk informasi selengkapnya, lihat [GitLab Pelari yang dikelola sendiri di AWS CodeBuild](gitlab-runner.md).

1. Lanjutkan dengan nilai default dan kemudian pilih **Create build project**.

# Filter acara webhook GitLab grup ()CloudFormation
<a name="gitlab-group-webhook-events-cfn"></a>

 Untuk menggunakan CloudFormation template untuk memfilter peristiwa webhook grup, gunakan `ScopeConfiguration` properti AWS CodeBuild proyek. Untuk informasi selengkapnya tentang GitLab webhook grup, lihat. [GitLab kelompok webhooks](gitlab-group-webhook.md)

 Bagian CloudFormation template yang diformat YAML berikut membuat empat grup filter. Bersama-sama, mereka memicu build ketika satu atau semua mengevaluasi ke true: 
+  Grup filter pertama menentukan permintaan tarik dibuat atau diperbarui pada cabang dengan nama referensi Git yang cocok dengan ekspresi reguler `^refs/heads/main$` oleh GitLab 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 nama GitLab CI/CD pipeline job request with a CI/CD pipeline yang cocok dengan ekspresi `\[CI-CodeBuild\]` reguler.

```
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: GITLAB
      Location: source-location
    Triggers:
      Webhook: true
      ScopeConfiguration:
        Name: group-name
        Scope: GITLAB_GROUP
      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\]
```

# GitLab webhook manual
<a name="gitlab-manual-webhook"></a>

Anda dapat mengonfigurasi GitLab webhook manual untuk CodeBuild mencegah secara otomatis mencoba membuat webhook di dalamnya. GitLab CodeBuild mengembalikan URL payload sebagai bagian dari panggilan untuk membuat webhook dan dapat digunakan untuk membuat webhook secara manual di dalamnya. GitLab Meskipun tidak CodeBuild diizinkan untuk membuat webhook di GitLab akun Anda, Anda masih dapat membuat webhook secara manual untuk proyek build Anda.

Gunakan prosedur berikut untuk membuat webhook GitLab manual.

**Untuk membuat GitLab webhook manual**

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Buat proyek build. Untuk informasi selengkapnya, lihat [Buat proyek build (konsol)](create-project.md#create-project-console) dan [Jalankan build (konsol)](run-build-console.md).
   +  Dalam **Sumber**: 
     +  Untuk **penyedia Sumber**, pilih **GitLab**.
     +  Untuk **Repositori**, pilih **Repositori** di akun saya. GitLab 
     +  Untuk **URL Repositori, masukkan**. **https://gitlab.com/*user-name*/*repository-name*** 
   +  Dalam **acara webhook sumber utama**: 
     +  Untuk **Webhook - opsional**, pilih **Rebuild setiap kali perubahan kode didorong ke repositori ini**.
     +  Pilih **Konfigurasi tambahan** dan untuk **Pembuatan manual - opsional**, pilih **Buat webhook secara manual untuk repositori ini** di konsol. GitLab .

1. Lanjutkan dengan nilai default dan kemudian pilih **Create build project**. Catat **URL Payload** dan nilai **Rahasia** karena Anda akan menggunakannya nanti.

1. Buka GitLab konsol di `https://gitlab.com/user-name/repository-name/-/hooks` dan pilih **Tambahkan webhook baru**.
   + Untuk **URL**, masukkan nilai URL Payload yang Anda catat sebelumnya.
   + Untuk **token Rahasia**, masukkan nilai Rahasia yang Anda catat sebelumnya.
   + Konfigurasikan peristiwa individual yang akan mengirim payload webhook ke. CodeBuild Untuk **Trigger**, pilih dari peristiwa berikut: **Acara push**, **Merge event request**, **Release events**, dan **Job events**. Untuk mempelajari lebih lanjut tentang jenis acara yang didukung oleh CodeBuild, lihat[GitLab acara webhook](gitlab-webhook.md).

1. Pilih **Tambahkan webhook**.

# GitLab acara webhook
<a name="gitlab-webhook"></a>

Anda dapat menggunakan grup filter webhook untuk menentukan peristiwa GitLab 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 GitLab, Anda dapat memilih satu atau lebih dari acara berikut:`PUSH`,,`PULL_REQUEST_CREATED`,`PULL_REQUEST_UPDATED`,`PULL_REQUEST_MERGED`,`PULL_REQUEST_REOPENED`,`PULL_REQUEST_CLOSED`,`RELEASED`, dan`WORKFLOW_JOB_QUEUED`.  
Jenis acara webhook ada di header di `X-GitLab-Event` lapangan. Tabel berikut menunjukkan bagaimana nilai `X-GitLab-Event` header memetakan ke jenis acara. Untuk acara `Merge Request Hook` webhook, payload `object_atttributes.action` akan berisi informasi tambahan tentang jenis permintaan gabungan.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/gitlab-webhook.html)
Untuk`PULL_REQUEST_MERGED`, jika permintaan tarik digabungkan dengan strategi squash dan cabang permintaan tarik ditutup, komit permintaan tarik asli tidak ada lagi. Dalam hal ini, variabel `CODEBUILD_WEBHOOK_MERGE_COMMIT` lingkungan berisi pengidentifikasi komit gabungan terjepit.

**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 GitLab akun cocok dengan pola ekspresi reguler. Nilai ini muncul di `account_id` properti `actor` objek di payload filter webhook.  
`HEAD_REF`  
Peristiwa webhook memicu build saat referensi kepala cocok dengan pola ekspresi reguler (misalnya, `refs/heads/branch-name` dan`refs/tags/tag-name`). `HEAD_REF`Filter mengevaluasi nama referensi Git untuk cabang atau tag. Nama cabang atau tag muncul di `name` bidang `new` objek di `push` objek payload webhook. Untuk peristiwa permintaan tarik, nama cabang muncul di `name` bidang di `branch` objek `source` objek di payload webhook.  
`BASE_REF`  
Peristiwa webhook memicu build saat referensi dasar cocok dengan pola ekspresi reguler. `BASE_REF`Filter hanya berfungsi dengan peristiwa permintaan tarik (misalnya,`refs/heads/branch-name`). `BASE_REF`Filter mengevaluasi nama referensi Git untuk cabang. Nama cabang muncul di `name` bidang `branch` objek di `destination` objek di payload webhook.  
`FILE_PATH`  
Webhook memicu build saat jalur file yang diubah cocok dengan pola ekspresi reguler.  
`COMMIT_MESSAGE`  
Webhook memicu build saat pesan head commit cocok dengan pola ekspresi reguler.  
`WORKFLOW_NAME`  
Webhook memicu build saat nama alur kerja cocok dengan pola ekspresi reguler.

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

**Topics**
+ [

# Filter acara GitLab webhook (konsol)
](gitlab-webhook-events-console.md)
+ [

# Filter acara GitLab webhook (SDK)
](gitlab-webhook-events-sdk.md)
+ [

# Filter acara GitLab webhook ()CloudFormation
](gitlab-webhook-events-cfn.md)

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

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

1.  Pilih **Rebuild setiap kali perubahan kode didorong ke repositori ini** ketika 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. 

 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-gitlab.png)


Menggunakan contoh dua grup filter, build dipicu ketika salah satu atau keduanya mengevaluasi ke true:
+ Grup filter pertama menentukan permintaan tarik yang dibuat atau diperbarui 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-gitlab.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-gitlab.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-gitlab.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-gitlab.png)


Dalam contoh ini, grup filter webhook memicu build hanya jika perubahan dilakukan oleh GitLab pengguna yang tidak memiliki ID akun yang cocok dengan ekspresi reguler. `actor-account-id` 

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

![\[Grup filter webhook yang memicu build hanya jika perubahan dilakukan oleh GitLab pengguna yang tidak memiliki ID akun.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/pull-request-webhook-filter-actor-gitlab.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-gitlab.png)


# Filter acara GitLab webhook (SDK)
<a name="gitlab-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 GitLab webhook, lihat[GitLab acara webhook](gitlab-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_MERGED"
    }
  ]
]
```

 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 atau diperbarui 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"
    },
    {
      "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. Dalam contoh ini, build dipicu untuk semua permintaan kecuali peristiwa tag. 

```
"filterGroups": [
  [
    {
      "type": "EVENT",
      "pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED"
    },
    {
      "type": "HEAD_REF",
      "pattern": "^refs/tags/.*",
      "excludeMatchedPattern": true
    }
  ]
]
```

Anda dapat membuat filter yang memicu build hanya jika perubahan dilakukan oleh GitLab pengguna dengan ID `actor-account-id` akun. 

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

```
"filterGroups": [
  [
    {
      "type": "EVENT",
      "pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED"
    },
    {
      "type": "ACTOR_ACCOUNT_ID",
      "pattern": "actor-account-id"
    }
  ]
]
```

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 pesan head commit cocok dengan ekspresi reguler dalam argumen pola. Dalam contoh ini, grup filter menetapkan bahwa build dipicu hanya jika pesan komit kepala dari peristiwa push cocok dengan ekspresi `\[CodeBuild\]` reguler. 

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

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

 Untuk menggunakan CloudFormation template untuk memfilter peristiwa webhook, gunakan `FilterGroups` properti AWS CodeBuild proyek. Untuk informasi selengkapnya tentang acara GitLab webhook, lihat[GitLab acara webhook](gitlab-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 GitLab pengguna yang tidak memiliki ID `12345` akun. 
+  Grup filter kedua menentukan permintaan push dibuat pada cabang dengan nama referensi Git yang cocok dengan ekspresi `^refs/heads/.*` reguler. 
+ 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: GITLAB
      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: EVENT
            Pattern: PUSH
          - Type: COMMIT_MESSAGE
            Pattern: \[CodeBuild\]
        - - Type: EVENT
            Pattern: WORKFLOW_JOB_QUEUED
          - Type: WORKFLOW_NAME
            Pattern: \[CI-CodeBuild\]
```

# Webhook manual buildkite
<a name="buildkite-manual-webhook"></a>

Saat ini, CodeBuild semua webhook Buildkite harus dibuat secara manual. CodeBuildmengembalikan URL payload sebagai bagian dari panggilan untuk membuat webhook, yang dapat digunakan untuk membuat webhook secara manual dalam Buildkite.

Gunakan prosedur berikut untuk membuat webhook manual Buildkite.

**Untuk membuat CodeBuild proyek dengan webhook**

1. Buka AWS CodeBuild konsol di [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Buat proyek build. Untuk informasi selengkapnya, lihat [Buat proyek build (konsol)](create-project.md#create-project-console) dan [Jalankan build (konsol)](run-build-console.md).

1. Dalam **konfigurasi Project**, pilih **Runner project**.

   Di **Runner**:
   + Untuk **penyedia Runner**, pilih **Buildkite**.
   + Untuk **token agen Buildkite, pilih Buat token** **agen baru dengan menggunakan halaman buat** rahasia. Anda akan diminta untuk membuat rahasia baru di AWS Secrets Manager dengan nilai rahasia yang sama dengan token agen Buildkite yang Anda buat di atas.
   + (Opsional) Jika Anda ingin menggunakan kredensil CodeBuild terkelola untuk pekerjaan Anda, pilih penyedia repositori sumber pekerjaan Anda di bawah **opsi kredensi sumber Buildkite dan verifikasi bahwa kredensil** dikonfigurasi untuk akun Anda. Selain itu, verifikasi bahwa pipeline Buildkite Anda menggunakan **Checkout** menggunakan HTTPS.

1. 
   +  Di **Lingkungan**: 
     + Pilih **gambar Lingkungan** yang didukung dan **Compute**. Perhatikan bahwa Anda memiliki opsi untuk mengganti setelan gambar dan instance dengan menggunakan label di alur kerja GitHub Actions YAMP. Untuk informasi selengkapnya, silakan lihat [Langkah 2: Perbarui alur kerja GitHub Tindakan Anda YAMB](action-runner.md#sample-github-action-runners-update-yaml)
   +  Di **Buildspec**: 
     + Perhatikan bahwa buildspec Anda akan diabaikan kecuali `buildspec-override:true` ditambahkan sebagai label. Sebagai gantinya, CodeBuild akan menimpanya untuk menggunakan perintah yang akan mengatur pelari yang dihosting sendiri.

1. Lanjutkan dengan nilai default dan kemudian pilih **Create build project**.

1. Simpan **URL Payload** dan nilai **Rahasia** dari popup **Create Webhook**. Ikuti petunjuk di popup untuk membuat webhook organisasi Buildkite baru.

# Tarik permintaan persetujuan komentar
<a name="pull-request-build-policy"></a>

CodeBuild mendukung kebijakan build permintaan tarik yang memberikan kontrol tambahan atas build yang dipicu oleh permintaan tarik. Anda mungkin tidak ingin membuat permintaan tarik secara otomatis dari pengguna yang tidak dikenal hingga perubahannya dapat ditinjau. Fitur ini memungkinkan Anda untuk meminta salah satu anggota tim Anda untuk terlebih dahulu meninjau kode dan kemudian menjalankan pipeline. Ini biasanya digunakan sebagai tindakan pengamanan saat membuat kode yang dikirimkan oleh kontributor yang tidak dikenal.

Kebijakan pembuatan permintaan tarik memungkinkan Anda mengontrol kapan CodeBuild pemicu build untuk permintaan tarik berdasarkan izin kontributor dan status persetujuan. Ini sangat penting untuk repositori publik atau repositori yang menerima kontribusi dari kolaborator eksternal.

Saat diaktifkan, fitur ini memastikan bahwa build hanya dipicu untuk permintaan tarik saat:
+ Permintaan tarik dibuat oleh kontributor tepercaya.
+ Kontributor tepercaya menyetujui permintaan tarik dengan memposting komentar tertentu.

## Cara kerjanya
<a name="pull-request-build-policy.how-it-works"></a>

**Kontributor tepercaya**  
Kontributor tepercaya adalah pengguna yang perannya saat ini dalam sistem kontrol sumber diatur dalam kebijakan berbasis permintaan tarik sebagai peran pemberi persetujuan. Saat kontributor tepercaya membuat permintaan tarik, akan CodeBuild memicu build secara otomatis, mempertahankan perilaku saat ini.

**Kontributor tidak tepercaya**  
Kontributor tidak tepercaya adalah pengguna yang perannya tidak ditetapkan dalam daftar peran pemberi persetujuan. Saat kontribusi yang tidak tepercaya membuat permintaan tarik:  

1. CodeBuild menandai status build sebagai “Gagal” dengan pesan “Tarik persetujuan permintaan diperlukan untuk memulai build”.

1. Kontributor tepercaya harus meninjau perubahan dan memposting komentar `/codebuild_run(<SHA_OF_THE_LATEST_COMMIT>)` untuk memicu build. Misalnya, `/codebuild_run(046e8b67481d53bdc86c3f6affdd5d1afae6d369)`.

1. CodeBuild memvalidasi izin komentator dan memicu build jika disetujui.

1. Hasil build dilaporkan kembali di halaman permintaan tarik.

**Sintaks persetujuan komentar**  
Kontributor tepercaya dapat menyetujui build menggunakan format komentar berikut:  
+ `/codebuild_run(046e8b67481d53bdc86c3f6affdd5d1afae6d369)`- Pemicu membangun komit SHA yang ditentukan.

## Konfigurasi
<a name="pull-request-build-policy.configuration"></a>

**Perilaku default**  
Kebijakan pembuatan permintaan tarik diaktifkan secara default untuk semua CodeBuild proyek yang baru dibuat.

**Parameter API:**  
Kebijakan build permintaan tarik dikonfigurasi menggunakan `PullRequestBuildPolicy` parameter dalam tindakan berikut:  
+ `CreateWebhook`
+ `UpdateWebhook`

**`PullRequestBuildPolicy`struktur**  

```
{
    "requiresCommentApproval": "string",
    "approverRoles": ["string", ...]
}
```

**`requiresCommentApproval`**  
Menentukan kapan persetujuan berbasis komentar diperlukan sebelum memicu build on pull request. Pengaturan ini menentukan apakah build berjalan secara otomatis atau memerlukan persetujuan eksplisit melalui komentar.  
Tipe: String  
Nilai valid:  
+ `DISABLED`- Membangun pemicu secara otomatis tanpa memerlukan persetujuan komentar.
+ `FORK_PULL_REQUESTS`- Hanya permintaan tarik dari repositori bercabang yang memerlukan persetujuan komentar (kecuali kontributor adalah salah satu peran pemberi persetujuan).
+ `ALL_PULL_REQUESTS`- Semua permintaan tarik memerlukan persetujuan komentar sebelum build dijalankan (kecuali kontributor adalah salah satu peran pemberi persetujuan). Ini adalah nilai default.

**`approverRoles`**  
Daftar peran repositori yang memiliki hak persetujuan untuk build permintaan tarik saat persetujuan komentar diperlukan. Hanya pengguna dengan peran ini yang dapat memberikan persetujuan komentar yang valid. Jika kontributor permintaan tarik adalah salah satu peran ini, build permintaan tarik mereka akan terpicu secara otomatis.   
Tipe: Array string  
Nilai yang valid untuk GitHub proyek (nilai dipetakan ke GitHub peran):  
+ `GITHUB_ADMIN`- Administrator repositori
+ `GITHUB_MAINTAIN`- Pengelola repositori
+ `GITHUB_WRITE`- Pengguna dengan izin menulis
+ `GITHUB_TRIAGE`- Pengguna dengan izin triase
+ `GITHUB_READ`- Pengguna dengan izin baca
+ Default: `["GITHUB_ADMIN", "GITHUB_MAINTAINER", "GITHUB_WRITE"]`
Nilai yang valid untuk GitLab proyek (nilai dipetakan ke GitLab peran):  
+ `GITLAB_OWNER`- Pemilik repositori
+ `GITLAB_MAINTAINER`- Pengelola repositori
+ `GITLAB_DEVELOPER`- Pengguna dengan izin pengembang
+ `GITLAB_REPORTER`- Pengguna dengan izin reporter
+ `GITLAB_PLANNER`- Pengguna dengan izin perencana
+ `GITLAB_GUEST `- Pengguna dengan izin tamu
+ Default: `["GITLAB_OWNER", "GITLAB_MAINTAINER", "GITLAB_DEVELOPER"]`
Nilai yang valid untuk proyek Bitbucket (nilai dipetakan ke peran Bitbucket):  
+ `BITBUCKET_ADMIN `- Administrator repositori
+ `BITBUCKET_WRITE`- Pengguna dengan izin menulis
+ `BITBUCKET_READ `- Pengguna dengan izin baca
+ Default: `["BITBUCKET_ADMIN", "BITBUCKET_WRITE"]`

## Contoh
<a name="pull-request-build-policy.examples"></a>

**Aktifkan persetujuan komentar untuk semua permintaan tarik**  
Untuk menggunakan AWS CodeBuild SDK untuk mengaktifkan atau menonaktifkan kebijakan Pull Request Build untuk webhook, gunakan `pullRequestBuildPolicy` 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 *.   
Pengguna dengan peran Github Admin, Maintain, dan Write akan diperlakukan sebagai kontributor tepercaya.  

```
"pullRequestBuildPolicy": {
    "requiresCommentApproval": "ALL_PULL_REQUESTS",
    "approverRoles": ["GITHUB_ADMIN", "GITHUB_MAINTAIN", "GITHUB_WRITE"]
}
```

**Aktifkan persetujuan komentar hanya untuk admin dan pengelola repositori**  
Pengguna dengan GitHub peran Admin, Pertahankan, akan diperlakukan sebagai kontributor tepercaya.  

```
"pullRequestBuildPolicy": {
    "requiresCommentApproval": "FORK_PULL_REQUESTS",
    "approverRoles": ["GITHUB_ADMIN", "GITHUB_MAINTAINER"]
}
```

**Nonaktifkan persetujuan komentar**  

```
"pullRequestBuildPolicy": { 
    "requiresCommentApproval": "DISABLED"
}
```

## AWS CloudFormation
<a name="pull-request-build-policy.cloudformation"></a>

Untuk menggunakan AWS CloudFormation template untuk mengaktifkan atau menonaktifkan kebijakan Pull Request Build untuk PullRequestBuildPolicy properti penggunaan webhook. Bagian AWS CloudFormation template yang diformat YAML berikut membuat proyek dengan webhook yang mengaktifkan Pull Request Build Policy untuk semua permintaan tarik. Pertahankan dan peran Admin sebagaimana ditentukan sebagai pemberi persetujuan.

```
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
      PullRequestBuildPolicy:
        RequiresCommentApproval: ALL_PULL_REQUESTS
        ApproverRoles:
          - GITHUB_MAINTAIN
          - GITHUB_ADMIN
```

## Konfigurasi konsol
<a name="pull-request-build-policy.console"></a>

Untuk menggunakan AWS Management Console untuk memfilter peristiwa webhook:

1. Untuk **persetujuan Komentar**, pilih dinonaktifkan atau diaktifkan untuk semua permintaan tarik (`ALL_PULL_REQUEST`) atau hanya untuk permintaan tarik dari forks (`FORK_PULL_REQUEST`).

1. Untuk **peran Penyetuju**, pilih peran repositori yang memiliki hak persetujuan untuk build permintaan tarik saat persetujuan komentar 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 CodeBuild API*.

![\[Konsol acara webhook sumber utama dengan persetujuan komentar.\]](http://docs.aws.amazon.com/id_id/codebuild/latest/userguide/images/pull-request-comment-approval.png)
