Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
GitLab acara webhook
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 beberapa acara berikut:
-
PUSH
-
PULL_REQUEST_CREATED
-
PULL_REQUEST_UPDATED
-
PULL_REQUEST_MERGED
Jenis acara webhook ada di header di
X-Event-Key
lapangan. Tabel berikut menunjukkan bagaimana nilaiX-Event-Key
header memetakan ke jenis acara.catatan
Anda harus mengaktifkan
merged
acara dalam pengaturan GitLab webhook Anda jika Anda membuat grup filter webhook yang menggunakan jenisPULL_REQUEST_MERGED
acara.X-Event-Key
Nilai headerJenis peristiwa repo:push
PUSH
pullrequest:created
PULL_REQUEST_CREATED
pullrequest:updated
PULL_REQUEST_UPDATED
pullrequest:fulfilled
PULL_REQUEST_MERGED
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, variabelCODEBUILD_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 GitLab akun cocok dengan pola ekspresi reguler. Nilai ini muncul di
account_id
propertiactor
objek di payload filter webhook. HEAD_REF
-
Peristiwa webhook memicu build saat referensi kepala cocok dengan pola ekspresi reguler (misalnya,
refs/heads/branch-name
danrefs/tags/tag-name
).HEAD_REF
Filter mengevaluasi nama referensi Git untuk cabang atau tag. Nama cabang atau tag muncul diname
bidangnew
objek dipush
objek payload webhook. Untuk peristiwa permintaan tarik, nama cabang muncul diname
bidang dibranch
objeksource
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 diname
bidangbranch
objek didestination
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.
catatan
Anda dapat menemukan payload webhook di pengaturan webhook repositori Anda. GitLab
Topik
Filter acara GitLab webhook (konsol)
Untuk menggunakan AWS Management Console untuk memfilter acara webhook:
-
Pilih Rebuild setiap kali perubahan kode didorong ke repositori ini ketika Anda membuat proyek Anda.
-
Dari jenis Acara, pilih satu atau beberapa acara.
-
Untuk memfilter saat peristiwa memicu build, di bawah Memulai build dalam kondisi ini, tambahkan satu atau beberapa filter opsional.
-
Untuk memfilter saat peristiwa tidak dipicu, di bawah Jangan memulai build dalam kondisi ini, tambahkan satu atau beberapa filter opsional.
-
Pilih Tambahkan grup filter untuk menambahkan grup filter lain.
Untuk informasi selengkapnya, lihat Buat proyek build (konsol) dan WebhookFilterdi Referensi AWS CodeBuild API.
Dalam contoh ini, grup filter webhook memicu build untuk permintaan tarik saja:
![](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.
![](images/pull-request-webhook-filter-head-base-regexes-gitlab.png)
Dalam contoh ini, grup filter webhook memicu build untuk semua permintaan kecuali peristiwa tag.
![](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.
![](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.
![](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/ nama pengguna, di mana nama pengguna
adalah nama pengguna
Anda. GitLab
![](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\]
![](images/pull-request-webhook-filter-commit-message-gitlab.png)
Filter acara GitLab webhook (SDK)
Untuk menggunakan AWS CodeBuild SDK untuk memfilter peristiwa webhook, gunakan filterGroups
bidang dalam sintaks permintaan metode CreateWebhook
atau UpdateWebhook
API. Untuk informasi selengkapnya, lihat WebhookFilterdi Referensi CodeBuild API.
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/ nama pengguna, di mana nama pengguna
adalah nama pengguna
Anda. GitLab
"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 ()AWS CloudFormation
Untuk menggunakan AWS CloudFormation template untuk memfilter peristiwa webhook, gunakan FilterGroups
properti AWS CodeBuild proyek. Bagian AWS 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 ID12345
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.
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\]