Menhapuskan pratinjau permintaan pull tampaknya seperti pekerjaan satu perintah. Dengan Capgo, there is one catch: you must move away from an active preview before deleting it, then remove its bundles by ID. We will build a safe cleanup flow with a restricted API key, preview lookup, reset handling, bundle deletion, and CI automation.
Isi Kandungan
- Step 1: Create a Restricted Capgo API Key for Preview Cleanup
- Langkah 2: Identifikasi Pratinjau Pull Request dan ID Paketnya
- Langkah 2: Identifikasi Pratinjau Permintaan Pull dan ID Bundle-nya
- Langkah 4: Hapus Paket Pratinjau dengan ID Dengan Menggunakan Kunci API
- Langkah 5: Otomatisasi Pembersihan Saat Pull Request Ditutup
- Langkah 5: Otomatisasi Penghapusan Saat Permintaan Pull Ditutup
- FAQ
- Kesimpulan
Langkah 1: Buatlah Kunci Capgo API Terbatas untuk Pra-Siap Bersih
The first step in a Capgo pull request preview cleanup flow is to make a key that can do only the work your CI job needs.
Tidak masukkan kunci organisasi yang luas ke dalam aliran kerja pull request. Sebuah pull request dapat berasal dari cabang yang belum mendapatkan kepercayaan. Aliran kerja juga dapat mencetak perintah atau nilai lingkungan selama proses gagal. Kunci yang terbatas membatasi kerusakan jika hal itu terjadi.
Pada Capgo, mulailah dengan kunci Pra-Siap Aplikasi untuk pekerjaan pra-siap. Kunci tersebut harus terkait dengan aplikasi atau ruang pra-siap yang diatur oleh pekerjaan Anda. Jika tim Anda menggunakan kontrol akses berdasarkan peran, batasi kunci tersebut hanya untuk aplikasi yang dipilih daripada memberikan akses di seluruh organisasi. Capgo mencatat pilihan kunci pra-siap tersebut dalam dokumennya. Konfigurasi Kunci API untuk Aliran Kerja Aplikasi Web.
Simpan rahasia di penyimpanan rahasia yang dienkripsi penyedia CI Anda. Beri nama yang menjelaskan apa yang dilakukan, sepertiCAPGO_PREVIEW_CLEANUP_KEYTidak tempatkan kunci tersebut di dalam file aliran kerja, skrip shell, komentar pull request, atau log yang dihasilkan.
Pass kunci tersebut ke proses bersih melalui variabel lingkungan. Skrip Anda harus gagal ketika variabel tersebut tidak ada. Fallback diam adalah berbahaya karena dapat mengubah pekerjaan bersih menjadi permintaan tanpa autentikasi, atau menarik seorang pengembang untuk memasukkan kunci ke dalam baris perintah.
if [ -z "$CAPGO_PREVIEW_CLEANUP_KEY" ]; then echo "Missing preview cleanup key" exit 1
fi
Jaga kunci ini terpisah dari kunci yang digunakan untuk memublikasikan bundle produksi. Tugas publikasi mungkin perlu mengunggah rilis. Tugas cleanup hanya perlu menghapus sumber daya pratinjau. Kunci yang terpisah membuat ulasan lebih mudah dan mengurangi kemungkinan aksi hapus mencapai saluran produksi.
Pakai rahasia yang sama di lingkungan yang dilindungi ketika memungkinkan. Tuntukan persetujuan sebelum tugas dapat menyentuh saluran bersama. Untuk pratinjau pull request biasa, tugas harus bekerja pada saluran sementara dan tidak lain.
Kunci Pemahaman Utama: Pakai kunci Pratinjau Aplikasi yang terpisah, batasi ruang lingkup aplikasinya, dan simpan di rahasia CI yang dienkripsi.
Sebelum melanjutkan, tes kunci terhadap aksi baca yang tidak berbahaya. Pastikan tugas dapat melihat aplikasi yang dimaksud, tetapi tidak dapat mengakses aplikasi yang tidak terkait atau alur kerja produksi. Detail permintaan cleanup tidak sepenuhnya dipublikasikan, jadi jaga tes pertama Anda kecil dan periksa panduan dukungan SDK atau Capgo sebelum menambahkan panggilan hapus.
Langkah 2: Identifikasi Pratinjau Pull Request dan ID Bundle-nya
The Capgo pull request preview cleanup API key is useful only when your job knows which preview and bundle IDs it owns.
Use a stable naming rule for preview channels. A common pattern is the repository name plus the pull request number. The key point is consistency. Your cleanup job must rebuild the same identifier after the pull request closes.
Simpan nama saluran pratinjau ketika pratinjau dibuat. Anda dapat menempelkannya di output alur kerja, pengecekan pull request, atau metadata pekerjaan kecil. Jangan bergantung pada nama tampilan yang dapat diubah oleh orang di dashboard.
Selanjutnya, daftarkan paket yang terkait dengan pratinjau tersebut. Aksi Hapus Paket Capgo memerlukan ID paket. Dokumentasi sumber menunjuk ke panggilan daftar untuk mendapatkan semua ID paket tersedia sebelum penghapusan. Gunakan daftar tersebut sebagai sumber kebenaran. Tidak pernah menebak ID dari nama file, hash komit, atau nama cabang.
Filterkan rekaman yang dikembalikan berdasarkan saluran pratinjau atau nilai lain yang dikendalikan oleh alur kerja Anda. Kemudian, simpan ID paket yang tepat untuk setiap match. Jika daftar kosong, tandai sebagai selesai. Hasil kosong bukanlah kegagalan kecuali alur kerja Anda mengharapkan pratinjau untuk ada.
Juga, catat SHA komit yang menghasilkan pratinjau tersebut. Ini memberikan cek kedua sebelum penghapusan. Jika nama saluran sesuai tapi komit tidak, berhenti dan minta tinjauan. Penundaan kecil itu dapat mencegah balapan di mana pratinjau baru sedang dibuat sementara pekerjaan penghapusan lama masih berjalan.

Tidak boleh menghapus sementara pekerjaan publik masih berjalan. Tambahkan ketergantungan antara pembangunan pratinjau dan alur kerja penghapusan, atau gunakan kunci pengunci yang terkait dengan nomor pull request. Pekerjaan penghapusan harus dimulai setelah event penutupan dan setelah unggah pratinjau yang menunggu selesai.
Capgo’s public API meliputi sumber daya seperti saluran dan paket melalui permintaan HTTP yang terautentikasi, tetapi aksi pembersihan masih memerlukan verifikasi yang hati-hati di proyek Anda. Capgo ringkasan publik API Tempat yang tepat untuk memastikan model sumber daya saat ini sebelum Anda menulis wrapper.
Seharusnya Anda sudah memiliki identifikasi pratinjau, daftar ID paket yang tepat, dan SHA komit yang terkait dengan setiap rekaman. Jika salah satu nilai tersebut hilang, berhenti di sini. Pembersihan tanpa verifikasi kepemilikan adalah spekulasi.
Langkah 3: Pindah dari Pratinjau Aktif Sebelum Pembersihan
Pratinjau aktif tidak dapat dihapus sampai aplikasi pindah dari pratinjau tersebut atau Anda memanggil resetPreviewDetail ini adalah kunci dalam aliran pembersihan pratinjau pull request Capgo.
Bayangkan pratinjau aktif sebagai versi yang saat ini dipilih oleh aplikasi. Menghapus rekaman server-side terlebih dahulu akan meninggalkan aplikasi mengarah ke sesuatu yang tidak ada lagi. Capgo menghalangi perubahan status tersebut, sehingga tugas pembersihan Anda harus mengatur ulang status pratinjau aplikasi sebelum menghapus pratinjau.
Pertama-tama, periksa apakah pratinjau masih aktif. Jika ya, pindahkan aplikasi ke saluran aman atau gunakan aksi reset updater. Pilihan yang tepat tergantung pada konfigurasi aplikasi uji Anda. Aplikasi uji yang dapat dibuang dapat kembali ke saluran defaultnya. Aplikasi uji bersama mungkin memerlukan saluran staging yang khusus.
PilihresetPreviewketika status pratinjau perlu dibersihkan secara langsung. Tahan panggilan ini terkait dengan pull request dan aplikasi yang sama yang menciptakan pratinjau. Skrip pembersihan tidak boleh mengatur ulang perangkat produksi atau saluran rilis bersama hanya karena nama saluran sesuai.
ada aturan penataan yang berguna di sini:
- Pastikan pull request telah ditutup.
- Pastikan tidak ada unggahan pratinjau sedang berjalan.
- Switch dari pratinjau aktif atau panggilan
resetPreview. - Tunggu perubahan status itu selesai.
- Hanya setelah itu panggilan Hapus Pratinjau.
Jangan anggap respons HTTP sukses dari permintaan reset sebagai bukti bahwa aplikasi telah berubah status di setiap perangkat. Perangkat mungkin memeriksa update kemudian. Pembersihan server-sisi Anda masih dapat dilanjutkan setelah pengaturan pratinjau telah dibersihkan sesuai dengan respons API, tetapi jaga perilaku perangkat terpisah dari penghapusan sumber daya.
Capgo mendukung pengendalian rollout berdasarkan saluran, yang membuat pemisahan ini lebih mudah dipahami. Saluran adalah jalur yang dinamai yang memberitahu aplikasi mana update stream untuk diikuti. Saluran pratinjau Anda tidak boleh sama dengan saluran yang digunakan oleh perangkat produksi.
Untuk tim yang memerlukan batasan yang lebih ketat, gunakan yang telah dokumentasikan Capgo untuk otomatisasi pratinjau. Alur ini menjelaskan pola saluran sementara dan membantu menjaga pekerjaan pembersihan jauh dari saluran default bersama.
Documentasi pembaruan sumber terbuka juga mencatat batas penghapusan: pratinjau aktif memerlukan switch ke arah lain atau reset terlebih dahulu. Anda dapat memeriksa sumber di repositori pembaruan Capgo Capacitor. Sumber tersebut berguna ketika kata-kata dashboard terlalu singkat untuk keputusan CI.
Trik Pro: Jadikan reset sebagai langkah terpisah yang tercatat. Jika Hapus Pratinjau gagal, log harus menunjukkan apakah pratinjau masih aktif atau apakah permintaan penghapusan memiliki masalah lain.
Setelah keadaan aktif hilang, catatan pratinjau siap untuk penghapusan. Jangan gabungkan reset dan hapus menjadi satu baris shell yang tidak transparan. Dua perintah yang jelas lebih mudah untuk mencoba ulang dan jauh lebih mudah untuk diaudit.
Langkah 4: Hapus Pratinjau Paket dengan ID dengan Kunci API
Hapus setiap pratinjau paket dengan ID yang tepat, setelah pratinjau aktif telah direset. Ini adalah tempat kunci pembaruan Capgo menghapus objek penyimpanan yang ditinggalkan oleh permintaan pull.
Mulai dengan daftar paket dari Langkah 2. Untuk setiap ID yang cocok, panggil aksi Hapus Paket melalui Capgo SDK atau metode publik API yang saat ini tersedia pada akun Anda.
Pahami tanda tangan metode SDK atau konfirmasikan bentuk permintaan saat ini dengan dukungan Capgo. Rekam metode dan format respons dalam buku catatan internal tim Anda setelah Anda telah memverifikasi mereka. Buku catatan tersebut harus mencakup versi API, identifier yang diperlukan, dan kode kesalahan yang logika ulang coba dapat tangani.
Gunakan mode dry-run di skrip Anda. Mode tersebut harus mencetak saluran pratinjau dan ID paket yang akan dihapus, tanpa mengirimkan permintaan hapus. Jalankan mode tersebut terhadap beberapa pull request yang ditutup. Periksa bahwa mode tersebut mengabaikan saluran produksi dan tidak menganggap daftar kosong sebagai wildcard.
Ada tiga pintu masuk dalam loop penghapusan yang aman:
- Tolak ID paket yang hilang atau rusak.
- Tolak ID paket yang saluran tidak sesuai dengan pratinjau pull request.
- Hapus hanya setelah pengujian kepemilikan berhasil.
Lalu tangani setiap respons berdasarkan jenisnya. Penghapusan sukses dapat direkam sebagai selesai. Respons tidak ditemukan dapat dianggap sudah bersih jika sumber daya diketahui telah dihapus oleh retry sebelumnya. Kesalahan izin harus gagal pekerjaan dan mengingatkan pemilik. Batasan rate harus berhenti dan retry dengan jeda yang ditetapkan.
Jangan retry setiap kesalahan. ID yang salah tidak akan menjadi valid setelah tiga upaya. Kesalahan autentikasi biasanya berarti ruang lingkup kunci salah. Retry hanya kegagalan sementara, dan tetapkan batas waktu pelaksanaan agar pekerjaan penghapusan yang terjebak tidak mengonsumsi antrian CI Anda.
Penghapusan paket terpisah dari penghapusan pratinjau. Menghapus saluran pratinjau tidak secara otomatis membuktikan bahwa setiap paket telah pergi. Pekerjaan Anda harus menyimpan hasil untuk setiap ID, lalu membuat permintaan daftar akhir jika API mendukungnya. Jika paket tertinggal, laporkan ID dan berhenti daripada mengklaim kesuksesan secara diam-diam.
Jangan biarkan log penghapusan bebas dari rahasia. Baiklah untuk merekam nomor permintaan pull, nama pratinjau, ID paket, hasil permintaan, dan tanggal. Tidak pernah merekam kunci API, sebuah header otorisasi, atau objek permintaan lengkap yang mungkin mencakup satu.
Langkah itu memberikan Anda jejak audit yang berguna tanpa mengubah log menjadi tempat lain di mana kredensial dapat bocor. Ini juga membuat penghapusan gagal mudah untuk dilanjutkan karena run berikutnya dapat melewatkan rekaman yang sudah dikonfirmasi sebagai tidak ada.
Langkah 5: Otomatisasi Penghapusan Saat Pull Request Ditutup
Jalankan pekerjaan pembersihan dari acara close pull request, tetapi tambahkan pengecekan untuk mencegah bangunan akhir menghapus pratinjau baru.
Workflow Anda harus menerima repository dan nomor pull request dari payload event. Rebuild nama kanal pratinjau dari nilai-nilai tersebut. Jangan menerima nama kanal yang disediakan oleh komentar pull request atau variabel cabang tidak terpercaya.
Sebuah urutan pekerjaan berguna seperti ini:
- Pilih kunci penghapusan terbatas dari rahasia yang dienkripsi.
- Konfirmasi bahwa event adalah pull request yang ditutup.
- Pengecekan bahwa pratinjau milik repository dan aplikasi yang diharapkan.
- Tunggu sampai pengunduhan pratinjau aktif selesai.
- Switch ke pratinjau lain atau panggil
resetPreview. - Dapatkan ID paket untuk pratinjau tersebut.
- Hapus setiap bundle yang diverifikasi.
- Hapus catatan pratinjau.
- Tulis hasil singkat ke ringkasan alur kerja.
Urutannya penting. Jika Anda menghapus terlebih dahulu, aturan pratinjau aktif dapat menghalangi permintaan. Jika Anda melewatkan panggilan daftar, Anda mungkin tidak tahu ID bundle mana yang masih ada. Jika Anda menghapus dengan nama yang ditebak, Anda berisiko menyentuh sumber daya yang salah.

Gunakan aturan konkurensi yang terkunci pada nomor pull request. Ketika event penutupan dan event rebuild tiba pada waktu yang hampir sama, pekerjaan cleanup lama tidak boleh bersaing dengan pengembangan baru. Batalkan pekerjaan cleanup yang usang atau membuat pekerjaan menunggu sampai kunci pengembangan jelas.
Capgo’s alur kerja satu perintah CLI dapat mengurangi jumlah panggilan shell kustom di sekitar pekerjaan build dan release. Untuk nama perintah dan operasi yang didukung, lihat dokumentasi perintah Capgo CLI Capgo CLI dokumentasi perintahGunakan CLI di mana Anda mendapatkan perintah yang diverifikasi. Gunakan SDK atau API publik di mana aksi pembersihan memerlukan permintaan langsung.
Do not put cleanup in a workflow that runs with every push. A push job can remove a preview that is still being tested. The close event is the right trigger for normal cleanup. Add a manual workflow dispatch for recovery when a job fails.
Jangan letakkan cleanup di alur kerja yang berjalan dengan setiap push. Pekerjaan push dapat menghapus pratinjau yang masih dalam pengujian. Event penutupan adalah trigger yang tepat untuk membersihkan normal. Tambahkan alur kerja manual untuk memulai ulang ketika pekerjaan gagal.
For GitHub Actions, keep permissions narrow and pass only the values needed by the cleanup step. Capgo’s current GitHub Actions integration documentation explains where the token is stored and how the workflow connects to Capgo.
Sekarang Anda harus memiliki jalur otomatis yang bereaksi terhadap penutupan, menunggu pekerjaan bersaing, mengatur keadaan aktif, menampilkan ID, dan menghapus hanya paket yang cocok.
Langkah 6: Verifikasi Pembersihan dan Lindungi Rilis dari Penghapusan Tidak Sengaja
Verifikasi menutup loop pembersihan pratinjau pull request Capgo. Respons hapus sendiri tidak cukup untuk proses rilis yang aman.
Setelah pekerjaan pembersihan berjalan, periksa saluran pratinjau lagi. Pastikan tidak lagi muncul sebagai pratinjau aktif. Kemudian periksa daftar paket untuk aplikasi yang sama dan filter. Hasil yang diharapkan adalah bahwa ID paket yang ditargetkan hilang sementara paket produksi tetap ada.
Simpan nilai-nilai ini dalam ringkasan pekerjaan:
- Nama repository dan nomor pull request.
- Nama saluran pratinjau.
- SHA komit yang digunakan untuk pengecekan kepemilikan.
- ID paket yang ditemukan.
- ID paket yang dihapus.
- ID apa pun yang mengembalikan kesalahan.
Gunakan status yang jelas. “Dibersihkan” berarti setiap target yang diverifikasi telah hilang. “Sudah bersih” berarti sumber daya tidak ada sebelum menjalankan ini. “Memerlukan tinjauan” berarti satu atau lebih periksa gagal. Jangan label penghapusan sebagian sebagai kesuksesan.
Tambahkan pengaman produksi di code. Tolak nama saluran seperti saluran default atau saluran rilis. Juga tolak bundle jika metadata tidak cocok dengan aplikasi pratinjau. Pengaman harus gagal tertutup. Ketika skrip tidak dapat mengidentifikasi target dengan keyakinan, maka harus berhenti.
Jaga rollback terpisah dari penghapusan. Rollback mengubah mana bundle yang menerima perangkat. Penghapusan menghapus sumber daya pratinjau yang lama. Jika tes menemukan bug setelah pull request ditutup, Anda mungkin perlu bundle untuk investigasi. Atur jendela retensi yang singkat daripada menghapus instan ketika event datang jika tim Anda sering debug setelah merge.
Pantau tiga pola gagal umum:
- Gagal pratinjau aktif: reset atau pindah sebelum mencoba lagi Hapus Pratinjau.
- Tidak ada ID bundle: jalankan aksi daftar lagi daripada menebak.
- Error Akses Izin: tinjau ruang lingkup kunci, kemudian keluarkan kunci baru jika perlu.
Rotasi kunci penghapusan pada jadwal yang ditentukan oleh kebijakan keamanan, dan rotasi segera jika kunci muncul di log atau komit. Kunci baru harus dites sebelum kunci lama dihapus, kecuali pengecualian memerlukan penghapusan segera.
Ketidakpastian dokumentasi seputar pembersihan memerlukan peringatan dalam tinjauan keamanan Anda. Tatal pedoman SDK dan Capgo yang diverifikasi sebagai sumber untuk implementasi Anda, dan simpan kontrak permintaan Anda di bawah pengawasan versi.
Key Poin Utama: Verifikasi pratinjau dan daftar paket setelah penghapusan, blokir target produksi di code, dan laporkan pembersihan sebagian sebagai kegagalan.
Satu perintah hanya berguna ketika pagar pengaman jelas. Ikuti pratinjau. Gunakan nama saluran yang dapat diprediksi. Roll back perubahan rilis secara terpisah. Kemudian biarkan pekerjaan pembersihan melakukan tugas kecilnya tanpa menyentuh lalu lintas hidup.
FAQ
Bisakah saya menghapus pratinjau pull request aktif Capgo?
Tidak. Pratinjau aktif harus diubah terlebih dahulu, atau Anda harus memanggilresetPreviewSetelah status aktif hilang, jalankan Hapus Pratinjau. Aturan ini adalah rincian utama yang perlu diingat ketika mengatur kunci pembersihan pratinjau pull request Capgo API di CI.
Apakah saya memerlukan ID paket untuk membersihkan pratinjau Capgo?
Ya. Aksi Hapus Paket Capgo memerlukan ID paket, jadi daftarkan paket yang tersedia sebelum menghapusnya. Match setiap ID dengan saluran pratinjau dan komit sebelum mengirimkan permintaan hapus. Jangan bangun ID dari nama cabang atau asumsikan bahwa menghapus pratinjau juga menghapus setiap paket.
Apa jenis kunci API yang harus digunakan CI untuk pembersihan pratinjau?
Gunakan kunci App Preview yang terbatas untuk membersihkan preview, disimpan di penyimpanan rahasia kunci yang dienkripsi penyedia CI Anda. Batasi kunci hanya untuk aplikasi atau ruang lingkup yang diperlukan. Simpan kunci terpisah dari kunci yang digunakan untuk menerbitkan update produksi. Hal ini membuat pekerjaan membersihkan Capgo lebih mudah untuk dilihat dan lebih aman untuk diputar.
Mengapa saya bisa otomatisasi membersihkan ketika pull request ditutup?
Iya. Aktifkan membersihkan dari event pull request yang ditutup, kemudian tunggu pekerjaan pengiriman aktif sebelum mengatur ulang preview. Daftarkan ID paket, hapus match yang diverifikasi, dan konfirmasikan hasilnya. Tambahkan kontrol konkurensi agar bangunan yang terlambat tidak dapat berlari dengan pekerjaan membersihkan.
Mengapa Capgo membersihkan permintaan saya gagal?
Pemicu biasanya adalah preview aktif, ID paket yang hilang, atau kunci tanpa ruang lingkup yang diperlukan. Atur ulang preview terlebih dahulu, ulangi panggilan daftar, dan periksa izin kunci. Karena detail permintaan dapat bervariasi oleh API atau SDK versi, konfirmasikan metode dan parameter saat ini sebelum mengubah skrip.
Kesimpulan
Gunakan Capgo dengan kunci preview yang terdedikasi dan urutan membersihkan yang ketat: atur ulang preview aktif, daftarkan ID paket, hapus paket yang diverifikasi, kemudian hapus preview. Mulai dengan tes kering terhadap satu pull request yang ditutup, konfirmasikan bentuk permintaan di versi SDK saat ini, dan tambahkan guard produksi-channel sebelum mengaktifkan otomatisasi membersihkan.