

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

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