Saluran
Salin prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Saluran adalah mekanisme inti untuk mengelola pembaruan aplikasi di Capgo. Mereka memungkinkan Anda mengontrol bagaimana dan kapan pengguna Anda menerima pembaruan, memungkinkan fitur seperti pengujian A/B, peluncuran berjenjang, dan pembaruan spesifik platform.
Paham Saluran
Bab berjudul “Paham Saluran”Saluran mewakili jalur distribusi untuk pembaruan aplikasi Anda. Setiap saluran dapat dikonfigurasi dengan aturan dan keterbatasan tertentu:
- Pengendalian Paket (versi): Tentukan paket (versi) yang diterima pengguna
- Target Platform: Target spesifik platform (iOS/Android/Electron)
- Kebijakan Perbarui: Kendalikan bagaimana perbarui disampaikan
- Keterbatasan Perangkat: Atur perangkat mana yang dapat mengakses perbarui
Pilihan Konfigurasi Saluran
: Bagian berjudul “Pilihan Konfigurasi Saluran”- publik: Tetapkan sebagai saluran default untuk perangkat baru.
- matiKanPerbaruiDiBawahAplikasiAsli: Mencegah perbarui ketika perangkat memiliki aplikasi asli yang lebih baru dari bundle stabil saluran.
- Menghapus Auto Update: Mengontrol perilaku pembaruan (
major,minor,metadata,patch, ataunone). - ios/android/electron: Mengaktifkan atau menonaktifkan pengiriman berdasarkan platform.
- Mengizinkan perangkat menentukan saluran.Mengizinkan emulator.
- Mengizinkan perangkat., Mengizinkan dev., Mengontrol perangkat dan jenis konstruksi yang menerima pembaruan., Mengontrol perangkat dan jenis konstruksi yang menerima pembaruan.Mengontrol perangkat dan jenis konstruksi yang menerima pembaruan.
- Rollout Progresif: Tetapkan bundle stabil sambil menampilkan bundle target ke kohort yang menempel. Lihat Rollout Progresif.
Praktik Terbaik
Bab berjudul “Praktik Terbaik”- Saluran Pengujian: Tahan saluran pengujian untuk validasi internal
- Rollout Langkah demi Langkah: Gunakan beberapa saluran untuk penggunaan update gradual
- Pemisahan Platform: Buat saluran terpisah untuk iOS, Android, dan Electron jika perlu
- Pengendalian Bundle (versi): Gunakan versi semantik untuk jalur pembaruan yang jelas
Endpoint
Bab berjudul “Endpoint”https://api.capgo.app/channel/
Buat atau perbarui konfigurasi saluran.
Badan Permintaan
Bab berjudul “Badan Permintaan”type DisableAutoUpdate = "major" | "minor" | "metadata" | "patch" | "none"type AutoPauseAction = "pause" | "rollback" | "notify"
interface ChannelSet { app_id: string channel: string version?: string | null // stable bundle name public?: boolean disableAutoUpdateUnderNative?: boolean disableAutoUpdate?: DisableAutoUpdate ios?: boolean android?: boolean electron?: boolean allow_device_self_set?: boolean allow_emulator?: boolean allow_device?: boolean allow_dev?: boolean allow_prod?: boolean
// Progressive rollout (camelCase is preferred) rolloutVersion?: string | number | null // target bundle name or ID rolloutPercentage?: number // 0–100 rolloutPercentageBps?: number // 0–10000; takes precedence when both are set rolloutEnabled?: boolean rolloutPaused?: boolean // input-only convenience flag rolloutPausedAt?: string | null // ISO timestamp or null rolloutPauseReason?: string | null rolloutCacheTtlSeconds?: number // 60–31536000 rollback?: boolean promoteToStable?: boolean
// Rollout auto-pause policy autoPauseEnabled?: boolean autoPauseWindowMinutes?: number autoPauseFailureRateBps?: number | null autoPauseConfidence?: number autoPauseMinAttempts?: number | null autoPauseMinFailures?: number | null autoPauseAction?: AutoPauseAction autoPauseCooldownMinutes?: number}Untuk bidang peluncuran dan pause otomatis, API juga menerima setara snake_case bentuk formulir, seperti rollout_version atau auto_pause_enabledatau rollback hanya camelCase saja.
memerlukan saluran yang sudah ada. Saluran tersebut harus memiliki paket stabil yang sudah ditetapkan atau menerima satu melalui version dan rollback adalah aksi terminal; jangan kombinasikan mereka dengan satu sama lain. promoteToStable Contoh Permintaan
Judul Bagian: Contoh Permintaan
Konfigurasi roll-out 5% untuk saluran yang sudah ada dan memiliki paket stabil yang sudah ditetapkan:__CAPGO_KEEP_0__ production __CAPGO_KEEP_0__
curl -X POST \ -H "authorization: your-api-key" \ -H "Content-Type: application/json" \ -d '{ "app_id": "com.example.app", "channel": "production", "rolloutVersion": "1.3.0", "rolloutPercentage": 5, "rolloutEnabled": true, "rolloutCacheTtlSeconds": 2592000, "autoPauseEnabled": true, "autoPauseFailureRateBps": 500, "autoPauseMinAttempts": 100, "autoPauseAction": "pause" }' \ https://api.capgo.app/channel/Respons Berhasil
Bagian berjudul “Respons Berhasil”{ "status": "ok"}POST adalah operasi upsert dan hanya mengembalikan statusnya. Lakukan permintaan GET untuk membaca konfigurasi saluran hasilnya.
Pemisahan kunci App Preview
Bagian berjudul “Pemisahan kunci App Preview”Untuk melihat pratinjau PR dengan hak akses minimal, autentikasi endpoint ini dengan authorization: $CAPGO_API_KEY atau capgkey: $CAPGO_API_KEYatau x-api-key . Header tidak diterima oleh Channels API.
Sebuah app_preview Kunci dapat membuat saluran pratinjau non-umum baru. Pembuatan secara otomatis memberikan kunci ikatan kehidupan siklus kanal untuk saluran tersebut saja. Peran tersebut tidak termasuk channel.update_settings, sehingga tidak dapat menggunakan POST untuk memperbarui saluran yang ada, termasuk saluran default atau utama yang ada.
Biarkan public Belum ditentukan (atau tetapkan ke) false) untuk saluran pratinjau PR. Gunakan bundle upload --channel untuk alur pembuatan dan unggah bukan sebagai upsert saluran pratinjau umum dengan POST.
https://api.capgo.app/channel/
Pengambilan informasi saluran. Mengembalikan 50 saluran per halaman. Tanpa channel, responsnya adalah array. Dengan channel, responsnya adalah objek saluran tunggal.
Parameter Kueri
Judul Bagian “Parameter Kueri”app_id: Wajib. ID aplikasi Andapage: Opsional. Nomor halaman untuk pengaturan halamanchannel: Opsional. Nama saluran spesifik untuk mengambil
Contoh Permintaan
Judul Bagian “Contoh Permintaan”# Get all channelscurl -H "authorization: your-api-key" \ "https://api.capgo.app/channel/?app_id=com.example.app"
# Get a specific channelcurl -H "authorization: your-api-key" \ "https://api.capgo.app/channel/?app_id=com.example.app&channel=production"
# Get the next pagecurl -H "authorization: your-api-key" \ "https://api.capgo.app/channel/?app_id=com.example.app&page=1"Jenis Respon
Judul Bagian “Jenis Respon”interface Channel { id: number created_at: string updated_at: string name: string app_id: string created_by: string public: boolean disableAutoUpdateUnderNative: boolean disableAutoUpdate: DisableAutoUpdate allow_device_self_set: boolean allow_emulator: boolean allow_device: boolean allow_dev: boolean allow_prod: boolean version: { id: number, name: string } | null // stable bundle
// These three response identifiers intentionally use snake_case. rollout_version: number | null rollout_id: string rollout_version_info: { id: number, name: string } | null
rolloutPercentageBps: number rolloutEnabled: boolean rolloutPausedAt: string | null rolloutPauseReason: string | null rolloutCacheTtlSeconds: number autoPauseEnabled: boolean autoPauseWindowMinutes: number autoPauseFailureRateBps: number | null autoPauseConfidence: number autoPauseMinAttempts: number | null autoPauseMinFailures: number | null autoPauseAction: AutoPauseAction autoPauseCooldownMinutes: number autoPauseLastTriggeredAt: string | null autoPauseLastCheckedAt: string | null}rolloutPaused adalah singkat masukan dan tidak akan dikembalikan. Rilis yang terhenti diwakili oleh non-null rolloutPausedAt.
Contoh Respons
Bab berjudul “Contoh Respons”[ { "id": 1, "name": "production", "app_id": "com.example.app", "version": { "id": 1, "name": "1.2.0" }, "rollout_version": 2, "rollout_id": "e60c19c9-2e65-4e0d-bc06-d1f5b4f96276", "rollout_version_info": { "id": 2, "name": "1.3.0" }, "rolloutPercentageBps": 500, "rolloutEnabled": true, "rolloutPausedAt": null, "rolloutCacheTtlSeconds": 2592000, "autoPauseEnabled": true, "autoPauseFailureRateBps": 500, "autoPauseAction": "pause" }]HAPUS
Bab berjudul “HAPUS”https://api.capgo.app/channel/
Hapus saluran. Perlu diingat bahwa ini akan mempengaruhi semua perangkat yang menggunakan saluran ini.
Badan Permintaan
Bab berjudul “Badan Permintaan”interface Channel { channel: string app_id: string delete_bundle?: boolean // also delete the linked bundle}Contoh Permintaan
Bab berjudul “Contoh Permintaan”curl -X DELETE \ -H "authorization: your-api-key" \ -H "Content-Type: application/json" \ -d '{ "app_id": "com.example.app", "channel": "beta" }' \ https://api.capgo.app/channel/Respons Sukses
Bab berjudul “Respons Sukses”{ "status": "ok"}Pembersihan Pratinjau Aplikasi
Bab berjudul “Pembersihan Pratinjau Aplikasi”Dengan delete_bundle: true, sebuah app_preview Kunci dapat membersihkan atomik hanya sebuah saluran yang dibuat dan bundel terkait, tidak bersamaan. Kunci tidak menerima izin umum. bundle.delete Jendela terminal
curl -X DELETE \ -H "capgkey: $CAPGO_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "app_id": "com.example.app", "channel": "pr-123", "delete_bundle": true }' \ https://api.capgo.app/channel/Pengelolaan Kesalahan
Bab berjudul “Pengelolaan Kesalahan”Skenario kesalahan umum dan responsnya:
// Channel not found{ "error": "Channel not found", "status": "KO"}
// Invalid bundle (version) format{ "error": "Invalid version format. Use semantic versioning", "status": "KO"}
// Invalid update policy{ "error": "Invalid disableAutoUpdate value", "status": "KO"}
// Permission denied{ "error": "Insufficient permissions to manage channels", "status": "KO"}Penggunaan Umum
Bab berjudul “Penggunaan Umum”- Pengujian Beta
{ "app_id": "com.example.app", "channel": "beta", "version": "1.2.0-beta", "public": false, "allow_emulator": true, "allow_dev": true}- Salin ke clipboard
{ "app_id": "com.example.app", "channel": "production", "version": "1.2.0", "public": true, "disableAutoUpdate": "minor"}- Salin ke clipboard
{ "app_id": "com.example.app", "channel": "ios-hotfix", "version": "1.2.1", "ios": true, "android": false}Teruskan dari Channel
Judul Bagian “Teruskan dari Channel”Jika Anda menggunakan Channel context Capgo fitur nama saluran rilis. Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solusi/white-label.astro. Kunci pesan `solutions_white_label_visual_cell2_value` (Nilai Sel Visual Putih Label Solusi). untuk merencanakan routing saluran dan peluncuran tahap demi tahap, hubungkannya dengan Channel context Capgo fitur nama saluran rilis. Halaman/area: Halaman pemasaran solusi Capgo. Peran: Label UI singkat atau item navigasi. Dilihat di: halaman solusi/white-label.astro. Kunci pesan `solutions_white_label_visual_cell2_value` (Nilai Sel Visual Putih Label Solusi). untuk detail implementasi di Channel, Solusi Target Versi untuk alur kerja produk di Solusi Target Versi, dan Capgo Praktik Terbaik Lingkungan: Staging dengan Satu ID Aplikasi Mobile untuk konteks praktis di Capgo Praktik Terbaik Lingkungan: Staging dengan Satu ID Aplikasi Mobile.