View a markdown version of this page

Lampiran A: GitHub (melalui aplikasi OAuth) tindakan sumber - AWS CodePipeline

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

Lampiran A: GitHub (melalui aplikasi OAuth) tindakan sumber

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

catatan

Meskipun kami tidak merekomendasikan menggunakan tindakan GitHub (melalui aplikasi OAuth), pipeline yang ada dengan tindakan GitHub (melalui aplikasi OAuth) akan terus berfungsi tanpa dampak apa pun. Untuk pipeline dengan tindakan GitHub (melalui aplikasi OAuth), CodePipeline gunakan OAuth-based token untuk terhubung ke repositori Anda GitHub. Sebaliknya, GitHub tindakan (melalui GitHub Aplikasi) menggunakan sumber daya koneksi untuk mengaitkan AWS sumber 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, lihatPerbarui tindakan sumber GitHub (melalui aplikasi OAuth) ke tindakan sumber GitHub (melalui GitHub Aplikasi). Untuk informasi selengkapnya tentang OAuth-based GitHub akses berbeda dengan GitHub akses berbasis aplikasi, lihathttps://docs.github.com/en/developers/apps/differences-between-github-apps-and-oauth-apps.

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

catatan

Saat Anda mengonfigurasi tindakan sumber GitHub (melalui GitHub Aplikasi) di CloudFormation, Anda tidak menyertakan informasi GitHub token apa pun atau menambahkan sumber daya webhook. Anda mengonfigurasi sumber daya koneksi seperti yang ditunjukkan dalam AWS::CodeStarConnections: :Connec tion di Panduan CloudFormation Pengguna.

Referensi ini berisi bagian berikut untuk tindakan GitHub (melalui aplikasi OAuth):

penting

Saat membuat CodePipeline webhook, jangan gunakan kredenSIAL Anda 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 digunakan untuk GitHub menghitung dan menandatangani muatan webhook yang dikirim ke CodePipeline, untuk melindungi integritas dan keaslian muatan webhook. Menggunakan kredenSIAL Anda sendiri atau menggunakan kembali token yang sama di beberapa webhook dapat menyebabkan kerentanan keamanan.

catatan

Jika token rahasia diberikan, itu akan disunting dalam tanggapan.

Menambahkan tindakan GitHub sumber (melalui aplikasi OAuth)

Anda menambahkan GitHub (melalui aplikasi OAuth) tindakan sumber dengan: CodePipeline

  • Menggunakan CodePipeline konsol Create pipeline wizard (Buat pipeline kustom (konsol)) atau halaman tindakan Edit 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 di GitHub (melalui aplikasi OAuth) referensi tindakan sumber untuk membuat tindakan seperti yang ditunjukkan padaBuat pipeline (CLI).

    • Menonaktifkan pemeriksaan berkala dan membuat deteksi perubahan secara manual, karena metode deteksi perubahan default memulai pipeline dengan melakukan polling sumber. Anda memigrasikan pipeline polling Anda ke webhook untuk tindakan GitHub (melalui aplikasi OAuth).

GitHub (melalui aplikasi OAuth) referensi tindakan sumber

catatan

Meskipun kami tidak merekomendasikan menggunakan tindakan GitHub (melalui aplikasi OAuth), pipeline yang ada dengan tindakan GitHub (melalui aplikasi OAuth) akan terus berfungsi tanpa dampak apa pun. Untuk pipeline dengan tindakan sumber GitHub (melalui aplikasi OAuth), CodePipeline gunakan OAuth-based token untuk terhubung ke repositori Anda GitHub . Sebaliknya, GitHub tindakan baru (melalui GitHub Aplikasi) menggunakan sumber daya koneksi untuk mengaitkan AWS sumber 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, lihatPerbarui tindakan sumber GitHub (melalui aplikasi OAuth) ke tindakan sumber GitHub (melalui GitHub Aplikasi).

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

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

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

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

Untuk informasi lebih lanjut, lihat dokumentasi GitHub pengembang di GitHub situs web.

Tipe tindakan

  • Kategori: Source

  • Pemilik: ThirdParty

  • Penyedia: GitHub

  • Versi: 1

Parameter konfigurasi

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 akan dideteksi.

OAuthToken

Wajib: Ya

Merupakan token GitHub otentikasi yang memungkinkan CodePipeline untuk melakukan operasi pada GitHub repositori Anda. Entri selalu ditampilkan sebagai topeng empat tanda bintang. Ini mewakili salah satu nilai berikut:

  • Saat Anda menggunakan konsol untuk membuat pipeline, CodePipeline gunakan token OAuth untuk mendaftarkan koneksi. GitHub

  • Saat Anda menggunakan AWS CLI untuk membuat pipeline, Anda dapat meneruskan token akses GitHub pribadi Anda di bidang ini. Ganti tanda bintang (****) 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 di dalamnya AWS Secrets Manager. Anda menyertakan nilai untuk bidang ini sebagai referensi dinamis ke rahasia yang disimpan di Manajer Rahasia, seperti{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}.

Untuk informasi selengkapnya GitHub tentang cakupan, lihat Refer GitHub ensi API Pengembang di GitHub situs web.

PollForSourceChanges

Wajib: Tidak

PollForSourceChangesmengontrol apakah melakukan CodePipeline polling GitHub repositori untuk perubahan sumber. Sebaiknya gunakan webhook untuk mendeteksi perubahan sumber sebagai gantinya. Untuk informasi selengkapnya tentang mengkonfigurasi webhook, lihat Migrasikan pipeline polling ke webhook (GitHub (melalui aplikasi OAuth) tindakan sumber) (CLI) atauPerbarui pipeline untuk peristiwa push (GitHub (melalui aplikasi OAuth) tindakan sumber) (CloudFormation templat).

penting

Jika Anda ingin mengonfigurasi webhook, Anda harus mengatur PollForSourceChanges false untuk menghindari eksekusi pipeline duplikat.

Nilai yang valid untuk parameter ini:

  • True: Jika disetel, CodePipeline jajak pendapat repositori Anda untuk perubahan sumber.

    catatan

    Jika Anda menghilangkanPollForSourceChanges, CodePipeline default akan melakukan polling repositori Anda untuk perubahan sumber. Perilaku ini sama seperti jika PollForSourceChanges disetel ketrue.

  • False: Jika disetel, CodePipeline tidak melakukan polling repositori Anda untuk perubahan sumber. Gunakan pengaturan ini jika Anda ingin mengonfigurasi webhook untuk mendeteksi perubahan sumber.

Artefak masukan

  • Jumlah artefak: 0

  • Deskripsi: Artefak masukan tidak berlaku untuk jenis tindakan ini.

Artefak keluaran

  • 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 GitHub tindakan tersebut. ID komit kode sumber ditampilkan CodePipeline sebagai revisi sumber untuk eksekusi pipeline yang dipicu.

Variabel keluaran

Ketika dikonfigurasi, tindakan ini menghasilkan variabel yang dapat direferensikan oleh konfigurasi 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 tersebut tersedia untuk konfigurasi tindakan hilir.

Untuk informasi lebih lanjut tentang variabel di CodePipeline, lihatReferensi variabel.

CommitId

ID GitHub komit yang memicu eksekusi pipeline. ID komit adalah SHA lengkap 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)

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)

Pertama kali Anda menggunakan konsol untuk menambahkan GitHub repositori ke pipeline, Anda diminta untuk mengotorisasi CodePipeline akses ke repositori Anda. Token membutuhkan cakupan GitHub berikut:

  • Ruang repo lingkup, yang digunakan untuk kontrol penuh untuk membaca dan menarik artefak dari repositori publik dan pribadi ke dalam pipa.

  • Ruang admin:repo_hook lingkup, yang digunakan untuk kontrol penuh kait repositori.

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

Sumber daya terkait berikut dapat membantu Anda saat Anda mengerjakan tindakan ini.