

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

# Tambahkan pemicu dengan tipe acara permintaan push atau pull kode
<a name="pipelines-filter"></a>

Anda dapat mengonfigurasi filter untuk pemicu pipeline agar eksekusi pipeline dimulai untuk berbagai peristiwa Git, seperti push tag atau cabang, perubahan pada jalur file tertentu, permintaan tarik dibuka ke cabang tertentu, dan sebagainya. Anda dapat menggunakan AWS CodePipeline konsol atau **update-pipeline** perintah **create-pipeline** dan di AWS CLI untuk mengkonfigurasi filter pemicu.

**catatan**  
`BranchName`Bidang konfigurasi tindakan mendefinisikan satu cabang, sementara pemicu dengan filter dapat digunakan untuk cabang atau cabang apa pun yang Anda tentukan. Untuk pipeline di mana pemicu digunakan untuk memfilter cabang dengan permintaan push atau pull, pipeline tidak akan menggunakan cabang `BranchName` bidang default dalam konfigurasi tindakan. Namun, cabang di `BranchName` bidang dalam konfigurasi tindakan adalah default saat pipeline dimulai secara manual. Sebagai contoh, lihat [5: Pemicu dikonfigurasi sementara konfigurasi tindakan default BranchName digunakan untuk memulai manual](pipelines-triggers.md#example-filter-default-manual).

Anda dapat menentukan filter untuk jenis pemicu berikut: 
+ **Dorong**

  Pemicu push memulai pipeline saat perubahan didorong ke repositori sumber Anda. *Eksekusi akan menggunakan komit dari cabang yang Anda dorong (yaitu, cabang tujuan).* Anda dapat memfilter pemicu push pada cabang, jalur file, atau tag Git.
+ **Permintaan tarik**

  Pemicu permintaan tarik memulai pipeline saat permintaan tarik dibuka, diperbarui, atau ditutup di repositori sumber Anda. *Eksekusi akan menggunakan komit dari cabang sumber yang Anda tarik (yaitu, cabang sumber).* Anda dapat memfilter pemicu permintaan tarik pada cabang dan jalur file.

  Jenis acara yang didukung untuk permintaan tarik adalah sebagai berikut. Semua peristiwa permintaan tarik lainnya diabaikan.
  + Dibuka
  + Diperbarui
  + Ditutup (digabung)
**catatan**  
Perilaku peristiwa permintaan tarik tertentu dapat berbeda menurut penyedia. Lihat perinciannya di [Peristiwa permintaan tarik untuk pemicu oleh penyedia](pipelines-triggers.md#pipelines-filter-pullrequest-events).

Definisi pipeline memungkinkan Anda untuk menggabungkan filter yang berbeda dalam konfigurasi pemicu push yang sama. Untuk detail tentang definisi pipeline, lihat[Tambahkan filter untuk jenis acara permintaan push dan pull (CLI)](#pipelines-filter-cli). Untuk daftar definisi bidang, lihat [pemicu](pipeline-requirements.md#pipeline.triggers) dalam *referensi struktur Pipeline* dalam panduan ini.

**Topics**
+ [Tambahkan filter untuk jenis acara permintaan push dan pull (konsol)](#pipelines-filter-console)
+ [Tambahkan filter untuk jenis acara permintaan push dan pull (CLI)](#pipelines-filter-cli)
+ [Tambahkan filter untuk jenis acara permintaan push dan pull (CloudFormation template)](#pipelines-filter-cfn)

## Tambahkan filter untuk jenis acara permintaan push dan pull (konsol)
<a name="pipelines-filter-console"></a>

Anda dapat menggunakan konsol untuk menambahkan filter untuk acara push dan menyertakan atau mengecualikan cabang atau jalur file.

**Tambahkan filter (konsol)**

1. Masuk ke Konsol Manajemen AWS dan buka CodePipeline konsol di [http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

   Nama dan status semua pipeline yang terkait dengan AWS akun Anda akan ditampilkan. 

1. Di **Nama**, pilih nama pipeline yang ingin Anda edit. Jika tidak, gunakan langkah-langkah ini pada wizard pembuatan pipeline.

1. Pada halaman detail pipeline, pilih **Edit**. 

1. Pada halaman **Edit**, pilih tindakan sumber yang ingin Anda edit. Pilih **Edit pemicu.** Pilih **Tentukan filter**.

1. Dalam **jenis Acara**, pilih **Push** dari opsi berikut.
   + Pilih **Push** untuk memulai pipeline saat perubahan didorong ke repositori sumber Anda. Memilih ini memungkinkan bidang untuk menentukan filter untuk cabang dan jalur file atau tag Git.
   + Pilih **Permintaan tarik** untuk memulai pipeline saat permintaan tarik dibuka, diperbarui, atau ditutup di repositori sumber Anda. Memilih ini memungkinkan bidang untuk menentukan filter untuk cabang tujuan dan jalur file.

1. Di bawah **Push**, dalam **jenis Filter**, pilih salah satu opsi berikut.
   + Pilih **Cabang** untuk menentukan cabang di repositori sumber Anda yang dipantau pemicu untuk mengetahui kapan harus memulai alur kerja. Di **Sertakan**, masukkan pola untuk nama cabang dalam format glob yang ingin Anda tentukan untuk konfigurasi pemicu untuk memulai pipeline Anda pada perubahan di cabang yang ditentukan. Di **Kecualikan**, masukkan pola regex untuk nama cabang dalam format glob yang ingin Anda tentukan agar konfigurasi pemicu diabaikan dan untuk tidak memulai pipeline Anda pada perubahan di cabang yang ditentukan. Untuk informasi selengkapnya, lihat [Bekerja dengan pola glob dalam sintaks](syntax-glob.md).
**catatan**  
Jika include dan exclude keduanya memiliki pola yang sama, maka defaultnya adalah mengecualikan pola.

     Anda dapat menggunakan pola glob untuk menentukan nama cabang Anda. Misalnya, gunakan `main*` untuk mencocokkan semua cabang yang dimulai dengan`main`. Untuk informasi selengkapnya, lihat [Bekerja dengan pola glob dalam sintaks](syntax-glob.md).

     *Untuk pemicu dorong, tentukan cabang yang Anda dorong, yaitu cabang *tujuan*.* Untuk pemicu permintaan tarik, tentukan cabang tujuan tempat Anda membuka permintaan tarik.
   + (Opsional) Di bawah **Jalur file**, tentukan jalur file untuk pemicu Anda. Masukkan nama di **Sertakan** dan **Kecualikan** sebagaimana mestinya.

     Anda dapat menggunakan pola glob untuk menentukan nama jalur file Anda. Misalnya, gunakan `prod*` untuk mencocokkan semua jalur file yang dimulai dengan`prod`. Untuk informasi selengkapnya, lihat [Bekerja dengan pola glob dalam sintaks](syntax-glob.md).
   + Pilih **Tag** untuk mengonfigurasi konfigurasi pemicu pipeline untuk memulai dengan tag Git. Di **Sertakan**, masukkan pola untuk nama tag dalam format glob yang ingin Anda tentukan untuk konfigurasi pemicu untuk memulai pipeline Anda saat rilis tag atau tag yang ditentukan. Di **Kecualikan**, masukkan pola regex untuk nama tag dalam format glob yang ingin Anda tentukan agar konfigurasi pemicu diabaikan dan untuk tidak memulai pipeline Anda saat rilis tag atau tag yang ditentukan. Jika include dan exclude keduanya memiliki pola tag yang sama, maka defaultnya adalah mengecualikan pola tag.

1. Di bawah **Push**, dalam **jenis Filter**, pilih salah satu opsi berikut.
   + Pilih **Cabang** untuk menentukan cabang di repositori sumber Anda yang dipantau pemicu untuk mengetahui kapan harus memulai alur kerja. Di **Sertakan**, masukkan pola untuk nama cabang dalam format glob yang ingin Anda tentukan untuk konfigurasi pemicu untuk memulai pipeline Anda pada perubahan di cabang yang ditentukan. Di **Kecualikan**, masukkan pola regex untuk nama cabang dalam format glob yang ingin Anda tentukan agar konfigurasi pemicu diabaikan dan untuk tidak memulai pipeline Anda pada perubahan di cabang yang ditentukan. Untuk informasi selengkapnya, lihat [Bekerja dengan pola glob dalam sintaks](syntax-glob.md).
**catatan**  
Jika include dan exclude keduanya memiliki pola yang sama, maka defaultnya adalah mengecualikan pola.

     Anda dapat menggunakan pola glob untuk menentukan nama cabang Anda. Misalnya, gunakan `main*` untuk mencocokkan semua cabang yang dimulai dengan`main`. Untuk informasi selengkapnya, lihat [Bekerja dengan pola glob dalam sintaks](syntax-glob.md).

     *Untuk pemicu dorong, tentukan cabang yang Anda dorong, yaitu cabang *tujuan*.* Untuk pemicu permintaan tarik, tentukan cabang tujuan tempat Anda membuka permintaan tarik.
   + (Opsional) Di bawah **Jalur file**, tentukan jalur file untuk pemicu Anda. Masukkan nama di **Sertakan** dan **Kecualikan** sebagaimana mestinya.

     Anda dapat menggunakan pola glob untuk menentukan nama jalur file Anda. Misalnya, gunakan `prod*` untuk mencocokkan semua jalur file yang dimulai dengan`prod`. Untuk informasi selengkapnya, lihat [Bekerja dengan pola glob dalam sintaks](syntax-glob.md).
   + Pilih **Tarik permintaan** untuk mengonfigurasi konfigurasi pemicu pipeline untuk memulai dengan peristiwa permintaan tarik yang Anda tentukan.

## Tambahkan filter untuk jenis acara permintaan push dan pull (CLI)
<a name="pipelines-filter-cli"></a>

Anda dapat memperbarui pipeline JSON untuk menambahkan filter untuk pemicu.

Untuk menggunakan AWS CLI untuk membuat atau memperbarui pipeline Anda, gunakan `update-pipeline` perintah `create-pipeline` or.

Contoh berikut struktur JSON memberikan referensi untuk definisi bidang di bawah`create-pipeline`.

Untuk daftar definisi bidang, lihat [pemicu](pipeline-requirements.md#pipeline.triggers) dalam *referensi struktur Pipeline* dalam panduan ini.

```
{
    "pipeline": {
        "name": "MyServicePipeline",
        "triggers": [
            {
                "provider": "Connection",
                "gitConfiguration": {
                    "sourceActionName": "ApplicationSource",
                    "push": [
                        {
                            "filePaths": {
                                "includes": [
                                    "projectA/**",
                                    "common/**/*.js"
                                ],
                                "excludes": [
                                    "**/README.md",
                                    "**/LICENSE",
                                    "**/CONTRIBUTING.md"
                                ]
                            },
                            "branches": {
                                "includes": [
                                    "feature/**",
                                    "release/**"
                                ],
                                "excludes": [
                                    "mainline"
                                ]
                            },
                            "tags": {
                                "includes": [
                                    "release-v0", "release-v1"
                                ],
                                "excludes": [
                                    "release-v2"
                                ]
                            }
                        }
                    ],
                    "pullRequest": [
                        {
                            "events": [
                                "CLOSED"
                            ],
                            "branches": {
                                "includes": [
                                    "feature/**",
                                    "release/**"
                                ],
                                "excludes": [
                                    "mainline"
                                ]
                            },
                            "filePaths": {
                                "includes": [
                                    "projectA/**",
                                    "common/**/*.js"
                                ],
                                "excludes": [
                                    "**/README.md",
                                    "**/LICENSE",
                                    "**/CONTRIBUTING.md"
                                ]
                            }
                        }
                    ]
                }
            }
        ],
        "stages": [
            {
                "name": "Source",
                "actions": [
                    {
                        "name": "ApplicationSource",
                        "configuration": {
                            "BranchName": "mainline",
                            "ConnectionArn": "arn:aws:codestar-connections:eu-central-1:111122223333:connection/fe9ff2e8-ee25-40c9-829e-65f8EXAMPLE",
                            "FullRepositoryId": "monorepo-example",
                            "OutputArtifactFormat": "CODE_ZIP"
                        }
                    }
                ]
            }
        ]
    }
}
```

## Tambahkan filter untuk jenis acara permintaan push dan pull (CloudFormation template)
<a name="pipelines-filter-cfn"></a>

Anda dapat memperbarui sumber daya pipeline CloudFormation untuk menambahkan pemfilteran pemicu.

Contoh cuplikan template berikut menyediakan referensi YAMB untuk memicu definisi bidang. Untuk daftar definisi bidang, lihat [pemicu](pipeline-requirements.md#pipeline.triggers) dalam *referensi struktur Pipeline* dalam panduan ini.

Untuk contoh templat lengkap untuk sumber koneksi dan konfigurasi filter pemicu, lihat [Pipeline dengan dua tahap dan konfigurasi pemicu](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html#aws-resource-codepipeline-pipeline--examples--Pipeline_with_two_stages_and_trigger_configuration) di *Panduan CloudFormation Pengguna*.

```
pipeline:
  name: MyServicePipeline
  executionMode: PARALLEL
  triggers:
    - provider: CodeConnection
      gitConfiguration:
        sourceActionName: ApplicationSource
        push:
          - filePaths:
              includes:
                - projectA/**
                - common/**/*.js
              excludes:
                - '**/README.md'
                - '**/LICENSE'
                - '**/CONTRIBUTING.md'
            branches:
              includes:
                - feature/**
                - release/**
              excludes:
                - mainline
          - tags:
              includes:
                - release-v0
                - release-v1
              excludes:
                - release-v2
        pullRequest:
          - events:
              - CLOSED
            branches:
              includes:
                - feature/**
                - release/**
              excludes:
                - mainline
            filePaths:
              includes:
                - projectA/**
                - common/**/*.js
              excludes:
                - '**/README.md'
                - '**/LICENSE'
                - '**/CONTRIBUTING.md'
  stages:
    - name: Source
      actions:
        - name: ApplicationSource
          configuration:
            BranchName: mainline
            ConnectionArn: arn:aws:codestar-connections:eu-central-1:111122223333:connection/fe9ff2e8-ee25-40c9-829e-65f85EXAMPLE
            FullRepositoryId: monorepo-example
            OutputArtifactFormat: CODE_ZIP
```