

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

# Lampiran A: GitHub (melalui OAuth aplikasi) tindakan sumber
<a name="appendix-github-oauth"></a>

Lampiran ini memberikan informasi tentang (melalui OAuth aplikasi) GitHub tindakan di. CodePipeline

**catatan**  
Meskipun kami tidak merekomendasikan penggunaan tindakan GitHub (melalui OAuth aplikasi), saluran pipa yang ada dengan tindakan GitHub (melalui OAuth aplikasi) akan terus berfungsi tanpa dampak apa pun. Untuk pipeline dengan tindakan GitHub (melalui OAuth aplikasi), CodePipeline gunakan token OAuth berbasis untuk terhubung ke GitHub repositori Anda. Sebaliknya, GitHub tindakan (melalui GitHub Aplikasi) menggunakan sumber daya koneksi untuk mengaitkan sumber AWS daya ke GitHub repositori Anda. Sumber daya koneksi menggunakan token berbasis aplikasi untuk terhubung. Untuk informasi selengkapnya tentang memperbarui pipeline Anda ke GitHub tindakan yang disarankan yang menggunakan koneksi, lihat[Perbarui tindakan sumber GitHub (melalui OAuth aplikasi) ke tindakan sumber GitHub (melalui GitHub Aplikasi)](update-github-action-connections.md). Untuk informasi selengkapnya tentang GitHub akses OAuth berbasis berbeda dengan GitHub akses berbasis aplikasi, lihat. [https://docs.github.com/en/developers/apps/differences-between-github-apps-and-oauth-apps](https://docs.github.com/en/developers/apps/differences-between-github-apps-and-oauth-apps)

Untuk berintegrasi dengan GitHub, CodePipeline gunakan GitHub OAuth aplikasi untuk pipeline Anda. CodePipelinemenggunakan webhook untuk mengelola deteksi perubahan untuk pipeline Anda dengan tindakan sumber GitHub (melalui OAuth aplikasi).

**catatan**  
Saat mengonfigurasi tindakan sumber GitHub (melalui GitHub Aplikasi) CloudFormation, Anda tidak menyertakan informasi GitHub token apa pun atau menambahkan sumber daya webhook. Anda mengonfigurasi sumber daya koneksi seperti yang ditunjukkan [AWS::CodeStarConnections::Connection](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarconnections-connection.html)dalam *Panduan CloudFormation Pengguna.*

Referensi ini berisi bagian berikut untuk tindakan GitHub (melalui OAuth aplikasi):
+ Untuk informasi tentang cara menambahkan aksi sumber GitHub (melalui OAuth aplikasi) dan webhook ke pipeline, lihat[Menambahkan tindakan sumber GitHub (melalui OAuth aplikasi)](#appendix-github-methods).
+ Untuk informasi tentang parameter konfigurasi dan contoh YAML/JSON cuplikan untuk tindakan sumber GitHub (melalui OAuth aplikasi), lihat. [GitHub (melalui OAuth aplikasi) referensi tindakan sumber](#action-reference-GitHub)

**penting**  
Saat membuat CodePipeline webhook, jangan gunakan kredensialnya sendiri atau gunakan kembali token rahasia yang sama di beberapa webhook. Untuk keamanan optimal, buat token rahasia unik untuk setiap webhook yang Anda buat. Token rahasia adalah string arbitrer yang Anda berikan, yang GitHub digunakan untuk menghitung dan menandatangani muatan webhook yang dikirim ke CodePipeline, untuk melindungi integritas dan keaslian muatan webhook. Menggunakan kredensi Anda sendiri atau menggunakan kembali token yang sama di beberapa webhook dapat menyebabkan kerentanan keamanan.

**catatan**  
Jika token rahasia diberikan, itu akan dihapus dalam tanggapan.

**Topics**
+ [Menambahkan tindakan sumber GitHub (melalui OAuth aplikasi)](#appendix-github-methods)
+ [GitHub (melalui OAuth aplikasi) referensi tindakan sumber](#action-reference-GitHub)

## Menambahkan tindakan sumber GitHub (melalui OAuth aplikasi)
<a name="appendix-github-methods"></a>

Anda menambahkan GitHub (melalui OAuth aplikasi) tindakan sumber ke CodePipeline oleh: 
+ Menggunakan CodePipeline konsol **Create pipeline** wizard ([Buat pipeline khusus (konsol)](pipelines-create.md#pipelines-create-console)) atau **Edit halaman tindakan** untuk memilih opsi **GitHub**penyedia. Konsol membuat webhook yang memulai pipeline Anda saat sumbernya berubah.
+ Menggunakan CLI untuk menambahkan konfigurasi tindakan untuk `GitHub` tindakan dan membuat sumber daya tambahan sebagai berikut:
  + Menggunakan `GitHub` contoh konfigurasi tindakan [GitHub (melalui OAuth aplikasi) referensi tindakan sumber](#action-reference-GitHub) untuk membuat tindakan seperti yang ditunjukkan pada[Buat pipeline (CLI)](pipelines-create.md#pipelines-create-cli).
  + Menonaktifkan pemeriksaan berkala dan membuat deteksi perubahan secara manual, karena metode deteksi perubahan default memulai pipeline dengan melakukan polling pada sumbernya. Anda memigrasikan pipeline polling Anda ke webhooks untuk tindakan GitHub (melalui OAuth aplikasi).

## GitHub (melalui OAuth aplikasi) referensi tindakan sumber
<a name="action-reference-GitHub"></a>

**catatan**  
Meskipun kami tidak merekomendasikan penggunaan tindakan GitHub (melalui OAuth aplikasi), saluran pipa yang ada dengan tindakan GitHub (melalui OAuth aplikasi) akan terus berfungsi tanpa dampak apa pun. Untuk pipeline dengan aksi sumber GitHub GitHub (melalui OAuth aplikasi), CodePipeline gunakan token OAuth berbasis untuk terhubung ke GitHub repositori Anda. Sebaliknya, GitHub tindakan baru (melalui GitHub Aplikasi) menggunakan sumber daya koneksi untuk mengaitkan sumber AWS daya ke GitHub repositori Anda. Sumber daya koneksi menggunakan token berbasis aplikasi untuk terhubung. Untuk informasi selengkapnya tentang memperbarui pipeline Anda ke GitHub tindakan yang disarankan yang menggunakan koneksi, lihat[Perbarui tindakan sumber GitHub (melalui OAuth aplikasi) ke tindakan sumber GitHub (melalui GitHub Aplikasi)](update-github-action-connections.md).

Memicu pipeline saat komit baru dibuat pada GitHub repositori dan cabang yang dikonfigurasi.

Untuk berintegrasi GitHub, CodePipeline gunakan OAuth aplikasi atau token akses pribadi untuk pipeline Anda. Jika Anda menggunakan konsol untuk membuat atau mengedit pipeline, CodePipeline buat GitHub webhook yang memulai pipeline saat terjadi perubahan di repositori.

Anda harus sudah membuat GitHub akun dan repositori sebelum menghubungkan pipeline melalui tindakan. GitHub 

Jika Anda ingin membatasi akses CodePipeline ke repositori, buat GitHub akun dan berikan akses akun hanya ke repositori yang ingin Anda integrasikan. CodePipeline Gunakan akun tersebut saat Anda mengonfigurasi CodePipeline untuk menggunakan GitHub repositori untuk tahapan sumber di pipeline.

Untuk informasi selengkapnya, lihat [dokumentasi GitHub pengembang](https://developer.github.com) di GitHub situs web.

**Topics**
+ [Tipe tindakan](#action-reference-GitHub-type)
+ [Parameter konfigurasi](#action-reference-GitHub-config)
+ [Artefak masukan](#action-reference-GitHub-input)
+ [Artefak keluaran](#action-reference-GitHub-output)
+ [Variabel keluaran](#action-reference-GitHub-variables)
+ [Deklarasi tindakan (GitHub contoh)](#action-reference-GitHub-example)
+ [Menghubungkan ke GitHub (OAuth)](#action-reference-GitHub-auth)
+ [Lihat juga](#action-reference-GitHub-links)

### Tipe tindakan
<a name="action-reference-GitHub-type"></a>
+ Kategori: `Source`
+ Pemilik: `ThirdParty`
+ Penyedia: `GitHub`
+ Versi: `1`

### Parameter konfigurasi
<a name="action-reference-GitHub-config"></a>

**Pemilik**  
Wajib: Ya  
Nama GitHub pengguna atau organisasi yang memiliki GitHub repositori.

**Repo**  
Wajib: Ya  
Nama repositori tempat perubahan sumber akan dideteksi.

**Cabang**  
Wajib: Ya  
Nama cabang tempat perubahan sumber harus dideteksi.

**OAuthToken**  
Wajib: Ya  
Merupakan token GitHub otentikasi yang memungkinkan CodePipeline untuk melakukan operasi pada GitHub repositori Anda. Entri selalu ditampilkan sebagai topeng dari empat tanda bintang. Ini merupakan salah satu dari nilai-nilai berikut:  
+ Saat Anda menggunakan konsol untuk membuat pipeline, CodePipeline gunakan OAuth token untuk mendaftarkan GitHub koneksi.
+ Ketika Anda menggunakan AWS CLI untuk membuat pipeline, Anda dapat meneruskan token akses GitHub pribadi Anda di bidang ini. Ganti tanda bintang (\$1\$1\$1\$1) dengan token akses pribadi Anda yang disalin dari. GitHub Saat Anda menjalankan `get-pipeline` untuk melihat konfigurasi tindakan, topeng empat tanda bintang ditampilkan untuk nilai ini.
+ Saat Anda menggunakan CloudFormation template untuk membuat pipeline, Anda harus terlebih dahulu menyimpan token sebagai rahasia AWS Secrets Manager. Anda menyertakan nilai untuk bidang ini sebagai referensi dinamis ke rahasia yang disimpan di Secrets Manager, seperti`{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}`.
Untuk informasi selengkapnya tentang GitHub cakupan, lihat [Referensi API GitHub Pengembang](https://developer.github.com/v3/oauth/#scopes) di GitHub situs web.

**PollForSourceChanges**  
Wajib: Tidak  
`PollForSourceChanges`mengontrol apakah CodePipeline polling GitHub repositori untuk perubahan sumber. Kami menyarankan Anda menggunakan webhooks untuk mendeteksi perubahan sumber sebagai gantinya. Untuk informasi selengkapnya tentang mengonfigurasi webhook, lihat atau. [Migrasikan jalur pemungutan suara ke tindakan sumber webhook (GitHub (melalui OAuth aplikasi)) (CLI)](update-change-detection.md#update-change-detection-cli-github) [Perbarui saluran pipa untuk acara push (GitHub (melalui OAuth aplikasi) tindakan sumber) (CloudFormation templat)](update-change-detection.md#update-change-detection-cfn-github)  
Jika Anda bermaksud mengonfigurasi webhook, Anda harus mengatur `PollForSourceChanges` `false` untuk menghindari eksekusi pipeline duplikat.
Nilai yang valid untuk parameter ini:  
+ `True`: Jika disetel, CodePipeline polling repositori Anda untuk perubahan sumber.
**catatan**  
Jika Anda menghilangkan`PollForSourceChanges`, CodePipeline default untuk polling repositori Anda untuk perubahan sumber. Perilaku ini sama seperti jika `PollForSourceChanges` diatur ke`true`.
+ `False`: Jika disetel, CodePipeline tidak melakukan polling repositori Anda untuk perubahan sumber. Gunakan pengaturan ini jika Anda bermaksud mengonfigurasi webhook untuk mendeteksi perubahan sumber.

### Artefak masukan
<a name="action-reference-GitHub-input"></a>
+ **Jumlah artefak:** `0`
+ **Deskripsi:** Artefak masukan tidak berlaku untuk jenis tindakan ini.

### Artefak keluaran
<a name="action-reference-GitHub-output"></a>
+ **Jumlah artefak:** `1` 
+ **Deskripsi:** Artefak keluaran dari tindakan ini adalah file ZIP yang berisi konten repositori dan cabang yang dikonfigurasi pada komit yang ditentukan sebagai revisi sumber untuk eksekusi pipeline. Artefak yang dihasilkan dari repositori adalah artefak keluaran untuk tindakan tersebut. GitHub ID komit kode sumber ditampilkan CodePipeline sebagai revisi sumber untuk eksekusi pipeline yang dipicu.

### Variabel keluaran
<a name="action-reference-GitHub-variables"></a>

Ketika dikonfigurasi, tindakan ini menghasilkan variabel yang dapat direferensikan oleh konfigurasi tindakan tindakan hilir dalam pipeline. Tindakan ini menghasilkan variabel yang dapat dilihat sebagai variabel keluaran, bahkan jika tindakan tidak memiliki namespace. Anda mengonfigurasi tindakan dengan namespace untuk membuat variabel-variabel tersebut tersedia untuk konfigurasi tindakan hilir.

Untuk informasi lebih lanjut tentang variabel di CodePipeline, lihat[Referensi variabel](reference-variables.md).

**CommitId**  
ID GitHub komit yang memicu eksekusi pipeline. Komit IDs adalah SHA penuh dari komit.

**CommitMessage**  
Pesan deskripsi, jika ada, terkait dengan komit yang memicu eksekusi pipeline.

**CommitUrl**  
Alamat URL untuk komit yang memicu pipeline.

**RepositoryName**  
Nama GitHub repositori tempat komit yang memicu pipeline dibuat.

**BranchName**  
Nama cabang untuk GitHub repositori tempat perubahan sumber dilakukan.

**AuthorDate**  
Tanggal ketika komit ditulis, dalam format stempel waktu.

**CommitterDate**  
Tanggal ketika komit dilakukan, dalam format stempel waktu.

### Deklarasi tindakan (GitHub contoh)
<a name="action-reference-GitHub-example"></a>

------
#### [ YAML ]

```
Name: Source
Actions:
  - InputArtifacts: []
    ActionTypeId:
      Version: '1'
      Owner: ThirdParty
      Category: Source
      Provider: GitHub
    OutputArtifacts:
      - Name: SourceArtifact
    RunOrder: 1
    Configuration:
      Owner: MyGitHubAccountName
      Repo: MyGitHubRepositoryName
      PollForSourceChanges: 'false'
      Branch: main
      OAuthToken: '{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}'
    Name: ApplicationSource
```

------
#### [ JSON ]

```
{
    "Name": "Source",
    "Actions": [
        {
            "InputArtifacts": [],
            "ActionTypeId": {
                "Version": "1",
                "Owner": "ThirdParty",
                "Category": "Source",
                "Provider": "GitHub"
            },
            "OutputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "RunOrder": 1,
            "Configuration": {
                "Owner": "MyGitHubAccountName",
                "Repo": "MyGitHubRepositoryName",
                "PollForSourceChanges": "false",
                "Branch": "main",
                "OAuthToken": "{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}"
            },
            "Name": "ApplicationSource"
        }
    ]
},
```

------

### Menghubungkan ke GitHub (OAuth)
<a name="action-reference-GitHub-auth"></a>

Pertama kali Anda menggunakan konsol untuk menambahkan GitHub repositori ke pipeline, Anda diminta untuk mengotorisasi CodePipeline akses ke repositori Anda. Token membutuhkan GitHub cakupan berikut:
+ Ruang `repo` lingkup, yang digunakan untuk kontrol penuh untuk membaca dan menarik artefak dari repositori publik dan swasta ke dalam pipa.
+ Ruang `admin:repo_hook` lingkup, yang digunakan untuk kontrol penuh kait repositori.

Ketika Anda menggunakan CLI atau CloudFormation template, Anda harus memberikan nilai untuk token akses pribadi yang telah Anda buat. GitHub

### Lihat juga
<a name="action-reference-GitHub-links"></a>

Sumber daya terkait berikut dapat membantu Anda saat Anda bekerja dengan tindakan ini.
+ Referensi sumber daya untuk [Panduan AWS CloudFormation Pengguna AWS::CodePipeline::Webhook](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-webhook.html) — Ini termasuk definisi bidang, contoh, dan cuplikan untuk sumber daya di. CloudFormation
+ Referensi sumber daya untuk [Panduan AWS CloudFormation Pengguna AWS::CodeStar::GitHubRepository](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestar-githubrepository.html) — Ini termasuk definisi bidang, contoh, dan cuplikan untuk sumber daya di. CloudFormation
+ [Tutorial: Membuat pipeline yang membangun dan menguji aplikasi Android Anda AWS Device Farm](tutorials-codebuild-devicefarm.md)— Tutorial ini menyediakan contoh file build spec dan contoh aplikasi untuk membuat pipeline dengan GitHub sumber. Ini membangun dan menguji aplikasi Android dengan CodeBuild dan AWS Device Farm.