

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

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