Alur Kerja Lintas Repositori
Pelajari cara merangkai alur kerja di berbagai repositori untuk mengelola dependensi dan mengatur penerapan yang kompleks.
Alur Kerja Lintas Repositori adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Pengantar Alur Kerja Lintas Repositori
Dalam pengembangan perangkat lunak modern, aplikasi sering kali terdiri dari beberapa komponen yang tersebar di berbagai repositori. Contohnya adalah layanan mikro, pustaka bersama, atau konfigurasi penerapan yang terpisah.
Mengoordinasikan alur kerja di berbagai repositori tersebut memungkinkan modularitas dan pemisahan tanggung jawab yang lebih baik. Pelajaran ini membahas cara mencapainya dengan GitHub Actions.
Mengapa Orkestrasi Lintas Repositori?
Secara tradisional, alur kerja GitHub Actions terbatas pada satu repositori. Namun, bagaimana jika Anda perlu:
- Membangun artefak di satu repositori dan memicu penerapan di repositori lain?
- Menggunakan repositori konfigurasi bersama untuk memicu pembaruan di beberapa repositori layanan?
- Memberlakukan kebijakan keamanan yang dikelola di repositori pusat pada semua repositori lainnya?
Alur kerja lintas repositori menyediakan solusi untuk skenario kompleks ini.
Menghubungkan Repositori: `repository_dispatch`
GitHub Actions menyediakan jenis peristiwa khusus bernama repository_dispatch. Peristiwa ini berfungsi seperti webhook khusus untuk repositori GitHub Anda.
- Satu alur kerja ("pengirim") mengirimkan permintaan API ke GitHub.
- Alur kerja lain ("penerima") di repositori berbeda mendengarkan peristiwa khusus ini.
Dengan demikian, alur kerja dapat dipicu secara terprogram di berbagai repositori.
Menyiapkan Alur Kerja Penerima
Untuk menerima peristiwa repository_dispatch, alur kerja di repositori target perlu dikonfigurasi agar mendengarkannya. Hal ini dilakukan menggunakan kata kunci on:.
Berikut contoh tampilan alur kerja di repo-B:
name: Receive Dispatch Event
on:
repository_dispatch:
types: [my-custom-event]
jobs:
process-event:
runs-on: ubuntu-latest
steps:
- name: Log event payload
run: |
echo "Event type: ${{ github.event.action }}"
echo "Payload: ${{ toJSON(github.event.client_payload) }}"Memahami Konfigurasi Penerima
Pada contoh sebelumnya:
on: repository_dispatch:memberi tahu GitHub untuk mendengarkan peristiwa ini.types: [my-custom-event]menentukan bahwa alur kerja ini hanya akan berjalan jika peristiwa yang dikirim memiliki jenismy-custom-event. Anda dapat menentukan beberapa jenis.github.event.actionakan berisi jenis peristiwa (misalnya,my-custom-event).github.event.client_payloadmenyimpan data khusus apa pun yang dikirim bersama pengiriman peristiwa.
Memicu Event: Mengirim dari Repo Lain
Untuk memicu event repository_dispatch, Anda perlu membuat permintaan HTTP POST ke API GitHub. Anda dapat melakukannya menggunakan curl atau CLI GitHub (gh cli) dari dalam alur kerja GitHub Actions lain atau skrip.
Persyaratan utama:
- Pemilik dan nama repositori target.
typeevent yang sedang dipantau oleh alur kerja penerima.client_payloaduntuk data khusus apa pun.- Token Akses Pribadi GitHub (PAT) dengan cakupan
repo.
Contoh: Mengirim dengan `gh cli`
Berikut alur kerja di repo-A yang mengirim event ke repo-B. Perhatikan bahwa kita menggunakan rahasia untuk token dan meneruskan client_payload.
name: Trigger Deploy Workflow
on:
push:
branches: [main]
jobs:
dispatch:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install GitHub CLI
run: sudo apt-get update && sudo apt-get install gh -y
- name: Dispatch event to repo-B
env:
GH_TOKEN: ${{ secrets.CROSS_REPO_PAT }}
run: |
gh api \
--method POST \
-H "Accept: application/vnd.github.v3+json" \
/repos/YOUR_ORG/repo-B/dispatches \
-f event_type='my-custom-event' \
-f client_payload='{"ref":"${{ github.ref }}", "sha":"${{ github.sha }}"}'Mengamankan Akses Lintas Repositori
GITHUB_TOKEN default yang disediakan untuk suatu alur kerja terbatas pada repositori tempat alur kerja tersebut berjalan. Untuk memicu event di repositori *lain*, Anda memerlukan token dengan izin yang lebih luas.
- Gunakan Token Akses Pribadi (PAT) dengan cakupan
repo. - Simpan PAT ini sebagai rahasia repositori (misalnya,
CROSS_REPO_PAT) di repositori pemicu. - Jangan pernah menuliskan PAT secara langsung di file alur kerja Anda.
Meneruskan Data Khusus dengan `client_payload`
client_payload adalah objek JSON yang dapat Anda sertakan saat mengirim event. Ini penting untuk meneruskan konteks atau data dari alur kerja pemicu ke alur kerja penerima.
Contoh data yang dapat Anda teruskan:
- SHA commit atau nama cabang yang memicu build.
- Target lingkungan (misalnya, "staging", "production").
- Nomor versi artefak yang akan diterapkan.
Ingat: client_payload terlihat di log alur kerja, jadi hindari informasi sensitif.
Pemeriksaan Singkat Alur Kerja Lintas Repo
Anda telah mempelajari cara mengatur alur kerja di berbagai repositori GitHub. Mari uji pemahaman Anda tentang komponen-komponen utama.
Rangkuman: Mengatur Alur Kerja Lintas Repo
Anda telah berhasil mempelajari cara menerapkan alur kerja lintas repositori menggunakan repository_dispatch!
- Alasan: Untuk mengelola dependensi dan mengatur penerapan yang kompleks di berbagai repositori.
- Cara: Alur kerja 'pengirim' melakukan panggilan API ke GitHub, lalu memicu alur kerja 'penerima' di repositori lain.
- Kunci: Jenis event
repository_dispatchdantypesyang cocok di alur kerja penerima. - Data: Gunakan
client_payloaduntuk meneruskan informasi non-sensitif antaralur kerja. - Keamanan: Selalu gunakan PAT dengan cakupan
repo, yang disimpan sebagai rahasia, untuk akses lintas repo.
Fitur yang kuat ini memungkinkan alur CI/CD yang sangat fleksibel dan terpisah.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Alur Kerja Lintas Repositori” gratis?
Ya — teks lengkap “Alur Kerja Lintas Repositori” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Alur Kerja Lintas Repositori”?
Pelajari cara merangkai alur kerja di berbagai repositori untuk mengelola dependensi dan mengatur penerapan yang kompleks. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?
Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Alur Kerja Lintas Repositori” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?
Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- CI/CD untuk Monorepo
- Alur Kerja Lintas Repositori
- Pengelolaan Alur Kerja Terpusat
- Pemfilteran Jalur dan Build Selektif