チャンネル
コピー可能な設定
Capgo のアプリの更新を管理する基本的なメカニズムはチャンネルです。ユーザーがアップデートを受け取る方法と時期を制御することができ、A/B テスト、ステージド ロールアウト、プラットフォーム固有のアップデートなどの機能を有効にします。
チャンネルの理解
「チャンネルの理解」セクションチャンネルは、アプリの更新の配布トラックを表します。各チャンネルは、特定のルールと制約で構成できます:
- バンドル (バージョン) の制御: 指定するバンドル (バージョン) のユーザー
- プラットフォーム ターゲット: iOS/Android/Electron などの特定のプラットフォームをターゲット
- アップデートポリシー: アップデートの配信方法を制御します
- デバイス制限: アップデートにアクセスできるデバイスを管理します
チャンネル設定オプション
セクション「チャンネル設定オプション」- public: 新しいデバイスにデフォルトのチャンネルとして設定します。
- disableAutoUpdateUnderNative: デバイスのネイティブアプリのバージョンがチャンネルの安定バンドルのバージョンよりも新しい場合にアップデートを防止します。
- disableAutoUpdate: アップデートの動作を制御します
major,minor,metadata,patch, またはnone). - updatePackage: デバイスが ZIP、DELTA、両方をダウンロードするかどうかを制御します (
all,zip,delta,zip_from_builtin, またはdelta_from_builtin). ご覧ください ダウンロード形式. - iOS/Android/エレクトロン: プラットフォームごとに配信を有効または無効にします。
- デバイス自律設定を許可: デバイスがチャンネルを選択できるようにします。
- エミュレータを許可する, デバイスを許可する, 開発者モードを許可, 生産環境にチャンネルを許可するデバイスとビルドの種類を制御してアップデートを受け取る
- 進化的なロールアウトロールアウト ロールアウト.
ベストプラクティス
ベストプラクティス- テストチャネルステージドロールアウト
- ステージドロールアウトステージドロールアウト
- プラットフォーム分離: iOS、Android、Electron用に必要な場合に別々のチャネルを作成する
- バンドル(バージョン)管理: シナリオベースのバージョニング バージョニングの明確な更新パス
エンドポイント
セクション「エンドポイント」POST
セクション「POST」https://api.capgo.app/channel/
チャネル構成の作成または更新。
リクエストボディ
セクションのタイトル “リクエスト ボディ”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 updatePackage?: "all" | "zip" | "delta" | "zip_from_builtin" | "delta_from_builtin" 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}ロールアウトと自動停止フィールドの場合、API は、次の形式のものも受け入れます。 snake_case 形式 rollout_version または auto_pause_enabled. updatePackage Cloudflare、GitHub、Capacitor、Capgo、code、API、SDK、CLI、npm、bun update_packageも受け入れます。 rollback CamelCase形式のみです。
ロールアウトの対象は既存のチャネルが必要です。安定したバンドルが割り当てられているか、またはPOSTリクエストで割り当てられる必要があります。 version そして rollback and promoteToStable form
サンプル リクエスト
サンプル リクエストのセクション既存のチャンネルの 5% のロールアウトを設定します。 production 既存のチャンネルの 5% のロールアウトを設定します。チャンネルの安定したバンドルが既に設定されている場合:
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/成功応答
セクション “成功応答”{ "status": "ok"}POST はアップセットであり、ステータスのみを返します。結果のチャンネル構成を読むには、GET リクエストを実行してください。
アプリ プレビュー キー境界
セクション “アプリ プレビュー キー境界”最小特権のPRプレビューのために、このエンドポイントを認証する必要があります。 authorization: $CAPGO_API_KEY または capgkey: $CAPGO_API_KEY. The x-api-key Channels API ではヘッダーは受け付けられません。
An app_preview コンサルティングサービスページ。ロール:セクションサブタイトルまたはタグライン。見つける場所:ページconsulting.astro。Capgo製品/ブランドと開発者用語を完全に保持する。 channel.update_settings既存のチャネル、既存のデフォルトチャネル、または既存のメインチャネルを更新することはできません。
Leave public キーは新しい非公開プレビュー チャンネルを作成できます。作成は自動的にそのキーにチャンネルスコープのライフサイクルバインディングを与えます。ロールには false、つまり既存のチャンネル、既存のデフォルトチャンネル、または既存のメインチャンネルを更新するにはPOSTを使用できません。 bundle upload --channel PRプレビュー チャンネルの場合、未設定 (または)
GET
GEThttps://api.capgo.app/channel/
チャンネル情報を取得します。1ページあたり50チャンネルを返します。 channel、 channel、
パラメータのクエリ
「パラメータのクエリ」app_id: 必須。アプリのIDpage: 任意。ページ番号channel: 任意。特定のチャンネル名を取得
サンプル リクエスト
「例のリクエスト」# 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"レスポンスタイプ
「レスポンスタイプ」のセクションinterface Channel { id: number created_at: string updated_at: string name: string app_id: string created_by: string public: boolean disableAutoUpdateUnderNative: boolean disableAutoUpdate: DisableAutoUpdate updatePackage: "all" | "zip" | "delta" | "zip_from_builtin" | "delta_from_builtin" 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 入力専用のショートカットであり、返される値ではありません。ロールアウトが一時停止されている場合、null以外の値が返されます。 rolloutPausedAt.
例のレスポンス
「例のレスポンス」のセクション[ { "id": 1, "name": "production", "app_id": "com.example.app", "updatePackage": "all", "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" }]DELETE
「DELETE」のセクションhttps://api.capgo.app/channel/
チャンネルを削除します。この操作は、このチャンネルを使用しているすべてのデバイスに影響を与えます。
リクエストボディ
リクエスト ボディinterface Channel { channel: string app_id: string delete_bundle?: boolean // also delete the linked bundle}例のリクエスト
例のリクエスト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/成功応答
成功応答{ "status": "ok"}アプリ プレビューのクリーンアップ
アプリ プレビューのクリーンアップと delete_bundle: true、 app_preview keyは作成したチャンネルとその関連する、共有されていないバンドルをのみ消去できます。keyは一般的な bundle.delete 許可を受けません。
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/エラーハンドリング
セクション「エラーハンドリング」一般的なエラーのシナリオとその応答:
// 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"}一般的な使用例
セクション「一般的な使用例」- ベータテスト
{ "app_id": "com.example.app", "channel": "beta", "version": "1.2.0-beta", "public": false, "allow_emulator": true, "allow_dev": true}- 生産リリース
{ "app_id": "com.example.app", "channel": "production", "version": "1.2.0", "public": true, "disableAutoUpdate": "minor"}- プラットフォーム固有の更新
{ "app_id": "com.example.app", "channel": "ios-hotfix", "version": "1.2.1", "ios": true, "android": false}チャンネルから続けて
チャンネルから続けてCapgoのリリースチャンネル機能を使用している場合 チャンネル チャンネルとステージドロールアウトのルーティングを計画するには、 チャンネル チャンネルの実装詳細については、 チャンネル チャンネルの実装詳細について ベータテストソリューション ベータテストソリューションの製品ワークフローについて バージョン対象ソリューション バージョン対象ソリューションの製品ワークフローについて Capgo 環境ベストプラクティス: ステージングに1つのモバイルアプリID Capgo 環境ベストプラクティス: ステージングに1つのモバイルアプリIDの実用的な背景