Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
GitHub acara webhook
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
, danWORKFLOW_JOB_QUEUED
. Jenis acara webhook ada diX-GitHub-Event
header di payload webhook. DiX-GitHub-Event
header, Anda mungkin melihatpull_request
ataupush
. Untuk peristiwa permintaan tarik, jenisnya ada diaction
bidang payload peristiwa webhook. Tabel berikut menunjukkan bagaimana nilaiX-GitHub-Event
header dan nilaiaction
bidang payload permintaan tarik webhook memetakan ke jenis acara yang tersedia.X-GitHub-Event
Nilai headerNilai action
payload acara WebhookJenis peristiwa pull_request
opened
PULL_REQUEST_CREATED
pull_request
reopened
PULL_REQUEST_REOPENED
pull_request
synchronize
PULL_REQUEST_UPDATED
pull_request
closed
danmerged
lapangan adalahtrue
PULL_REQUEST_MERGED
pull_request
closed
danmerged
lapangan adalahfalse
PULL_REQUEST_CLOSED
push
T/A PUSH
release
dirilis RELEASED
release
prarilis PRERELEASED
workflow_job
mengantri WORKFLOW_JOB_QUEUED
catatan
Jenis
PULL_REQUEST_REOPENED
acara dapat digunakan dengan GitHub dan GitHub Enterprise Server saja. JenisRELEASED
PRERELEASED
,, danWORKFLOW_JOB_QUEUED
acara GitHub hanya dapat digunakan dengan. Untuk informasi selengkapnya tentangWORKFLOW_JOB_QUEUED
, lihat Tutorial: Konfigurasikan CodeBuild pelari GitHub Tindakan yang dihosting sendiri. - 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
propertisender
objek di payload webhook. HEAD_REF
-
Peristiwa webhook memicu build saat referensi kepala cocok dengan pola ekspresi reguler (misalnya,
refs/heads/branch-name
ataurefs/tags/tag-name
). Untuk acara push, nama referensi ditemukan diref
properti di payload webhook. Untuk peristiwa permintaan tarik, nama cabang ditemukan diref
propertihead
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 diref
propertibase
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. 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
Topik
Filter acara GitHub webhook (konsol)
Di Acara webhook sumber utama, pilih yang berikut ini. Bagian ini hanya tersedia ketika Anda memilih Repositori di GitHub akun saya untuk repositori sumber.
-
Pilih Bangun ulang setiap kali perubahan kode didorong ke repositori ini saat 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, jika diperlukan.
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.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.
![](images/pull-request-webhook-filter-head-base-regexes.png)
Dalam contoh ini, grup filter webhook memicu build untuk semua permintaan kecuali peristiwa tag.
![](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.
![](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.
![](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/ nama pengguna, di mana nama pengguna
adalah nama pengguna
Anda. GitHub
![](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\]
![](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_JOB_QUEUED.
![](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
![](images/github-actions-workflow-job-specific.png)
Filter acara GitHub 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_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 Enterprise dengan ID actor-account-id
akun.
catatan
Untuk informasi tentang cara menemukan ID GitHub akun Anda, lihat https://api.github.com/users/ nama pengguna, di mana nama pengguna
adalah nama pengguna
Anda. GitHub
"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 komit kepala 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 ()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 GitHub pengguna yang tidak memiliki ID12345
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\]