@capgo/cli 7.85.0 → 7.86.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/index.js +304 -303
- package/dist/package.json +10 -3
- package/dist/src/github-command.d.ts +9 -0
- package/dist/src/github.d.ts +6 -0
- package/dist/src/schemas/sdk.d.ts +1 -0
- package/dist/src/sdk.d.ts +2 -2
- package/dist/src/sdk.js +216 -216
- package/dist/src/utils/safeWrites.d.ts +2 -2
- package/dist/src/utils.d.ts +7 -1
- package/package.json +10 -3
- package/skills/_artifacts/domain_map.yaml +32 -0
- package/skills/_artifacts/skill_spec.md +30 -0
- package/skills/_artifacts/skill_tree.yaml +17 -0
- package/skills/native-builds/SKILL.md +177 -0
- package/skills/organization-management/SKILL.md +93 -0
- package/skills/release-management/SKILL.md +222 -0
- package/skills/usage/SKILL.md +89 -0
package/dist/src/utils.d.ts
CHANGED
|
@@ -1889,7 +1889,9 @@ export declare function createSupabaseClient(apikey: string, supaHost?: string,
|
|
|
1889
1889
|
credits_estimated: number;
|
|
1890
1890
|
details?: import("./types/supabase.types").Json | null;
|
|
1891
1891
|
id?: string;
|
|
1892
|
-
metric: Database["public"]["Enums"]
|
|
1892
|
+
metric: Database["public"]["Enums"] /**
|
|
1893
|
+
* Read directory recursively and return full paths for all files
|
|
1894
|
+
*/["credit_metric_type"];
|
|
1893
1895
|
org_id: string;
|
|
1894
1896
|
overage_amount: number;
|
|
1895
1897
|
};
|
|
@@ -3658,6 +3660,10 @@ export declare function getPMAndCommand(): {
|
|
|
3658
3660
|
installCommand: string;
|
|
3659
3661
|
runner: PackageManagerRunner;
|
|
3660
3662
|
};
|
|
3663
|
+
export declare function getNativeProjectResetAdvice(platformRunner: string, nativePlatform: 'ios' | 'android'): {
|
|
3664
|
+
summary: string;
|
|
3665
|
+
command: string;
|
|
3666
|
+
};
|
|
3661
3667
|
export declare function getLocalDependencies(packageJsonPath: string | undefined, nodeModulesString: string | undefined): Promise<{
|
|
3662
3668
|
name: string;
|
|
3663
3669
|
version: string;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@capgo/cli",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "7.
|
|
4
|
+
"version": "7.86.0",
|
|
5
5
|
"description": "A CLI to upload to capgo servers",
|
|
6
6
|
"author": "Martin martin@capgo.app",
|
|
7
7
|
"license": "Apache 2.0",
|
|
@@ -23,7 +23,8 @@
|
|
|
23
23
|
"cli",
|
|
24
24
|
"upload",
|
|
25
25
|
"capgo-cli",
|
|
26
|
-
"sdk"
|
|
26
|
+
"sdk",
|
|
27
|
+
"tanstack-intent"
|
|
27
28
|
],
|
|
28
29
|
"exports": {
|
|
29
30
|
".": {
|
|
@@ -40,6 +41,11 @@
|
|
|
40
41
|
"bin": {
|
|
41
42
|
"capgo": "dist/index.js"
|
|
42
43
|
},
|
|
44
|
+
"files": [
|
|
45
|
+
"!skills/_artifacts",
|
|
46
|
+
"dist",
|
|
47
|
+
"skills"
|
|
48
|
+
],
|
|
43
49
|
"engines": {
|
|
44
50
|
"npm": ">=8.0.0",
|
|
45
51
|
"node": ">=20.0.0"
|
|
@@ -83,6 +89,7 @@
|
|
|
83
89
|
"@sauber/table": "npm:@jsr/sauber__table",
|
|
84
90
|
"@std/semver": "npm:@jsr/std__semver@1.0.8",
|
|
85
91
|
"@supabase/supabase-js": "^2.79.0",
|
|
92
|
+
"@tanstack/intent": "^0.0.23",
|
|
86
93
|
"@types/adm-zip": "^0.5.7",
|
|
87
94
|
"@types/node": "^25.0.0",
|
|
88
95
|
"@types/prettyjson": "^0.0.33",
|
|
@@ -97,11 +104,11 @@
|
|
|
97
104
|
"is-wsl": "^3.1.0",
|
|
98
105
|
"micromatch": "^4.0.8",
|
|
99
106
|
"open": "^11.0.0",
|
|
107
|
+
"partysocket": "^1.1.11",
|
|
100
108
|
"prettyjson": "^1.2.5",
|
|
101
109
|
"tmp": "^0.2.5",
|
|
102
110
|
"tus-js-client": "^4.3.1",
|
|
103
111
|
"typescript": "^5.9.3",
|
|
104
|
-
"partysocket": "^1.1.11",
|
|
105
112
|
"ws": "^8.18.3",
|
|
106
113
|
"zod": "^4.3.6"
|
|
107
114
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
domains:
|
|
2
|
+
- name: cli-usage
|
|
3
|
+
summary: High-level command routing, setup, diagnostics, app management, docs generation, MCP, and GitHub support commands.
|
|
4
|
+
primary_sources:
|
|
5
|
+
- webdocs/init.mdx
|
|
6
|
+
- webdocs/doctor.mdx
|
|
7
|
+
- webdocs/login.mdx
|
|
8
|
+
- webdocs/app.mdx
|
|
9
|
+
- webdocs/account.mdx
|
|
10
|
+
- webdocs/probe.mdx
|
|
11
|
+
- webdocs/star.mdx
|
|
12
|
+
- webdocs/star-all.mdx
|
|
13
|
+
- src/index.ts
|
|
14
|
+
- name: ota-release-management
|
|
15
|
+
summary: OTA bundle uploads, channel operations, compatibility checks, cleanup, and encryption-key workflows.
|
|
16
|
+
primary_sources:
|
|
17
|
+
- webdocs/bundle.mdx
|
|
18
|
+
- webdocs/channel.mdx
|
|
19
|
+
- webdocs/key.mdx
|
|
20
|
+
- src/index.ts
|
|
21
|
+
- name: native-builds
|
|
22
|
+
summary: Native cloud build requests and local build credential management for iOS and Android.
|
|
23
|
+
primary_sources:
|
|
24
|
+
- webdocs/build.mdx
|
|
25
|
+
- src/index.ts
|
|
26
|
+
- name: organization-management
|
|
27
|
+
summary: Account lookup, organization administration, and deprecated organisation aliases.
|
|
28
|
+
primary_sources:
|
|
29
|
+
- webdocs/account.mdx
|
|
30
|
+
- webdocs/organization.mdx
|
|
31
|
+
- webdocs/organisation.mdx
|
|
32
|
+
- src/index.ts
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Capgo CLI skill spec
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
Provide a small Capgo CLI skill set that helps an agent choose and invoke the correct CLI commands for app setup, OTA release operations, organization administration, MCP setup, GitHub support commands, and native cloud builds without exceeding TanStack Intent size limits.
|
|
6
|
+
|
|
7
|
+
## Sources
|
|
8
|
+
|
|
9
|
+
- `webdocs/*.mdx` for published command descriptions, examples, and option tables.
|
|
10
|
+
- `src/index.ts` for the currently registered commands, aliases, and flags that may not yet be fully reflected in the web docs.
|
|
11
|
+
- `AGENTS.md` for repository-specific maintenance requirements.
|
|
12
|
+
|
|
13
|
+
## Skill set
|
|
14
|
+
|
|
15
|
+
- `usage`: routing, setup, diagnostics, app commands, docs generation, MCP, and GitHub support commands.
|
|
16
|
+
- `release-management`: bundle, channel, compatibility, cleanup, and encryption-key workflows.
|
|
17
|
+
- `native-builds`: native cloud build requests and build credential storage/update flows.
|
|
18
|
+
- `organization-management`: account ID lookup, organization admin flows, and deprecated `organisation` aliases.
|
|
19
|
+
|
|
20
|
+
## Scope
|
|
21
|
+
|
|
22
|
+
- Include the documented command purpose, invocation patterns, key options, and important caveats.
|
|
23
|
+
- Prefer the public user-facing examples already used by the project.
|
|
24
|
+
- Keep the skills aligned with the published docs and current CLI registration.
|
|
25
|
+
|
|
26
|
+
## Maintenance rules
|
|
27
|
+
|
|
28
|
+
- Any CLI command or option change should update the relevant `skills/*/SKILL.md` file in the same pull request.
|
|
29
|
+
- Use `webdocs/` as the primary wording source and `src/index.ts` as the completeness check.
|
|
30
|
+
- Validate the skills with `bunx @tanstack/intent@latest validate` before release.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
skills:
|
|
2
|
+
- name: usage
|
|
3
|
+
path: skills/usage/SKILL.md
|
|
4
|
+
domain: cli-usage
|
|
5
|
+
focus: High-level routing and shared invocation rules.
|
|
6
|
+
- name: release-management
|
|
7
|
+
path: skills/release-management/SKILL.md
|
|
8
|
+
domain: ota-release-management
|
|
9
|
+
focus: OTA bundle, channel, compatibility, cleanup, and encryption workflows.
|
|
10
|
+
- name: native-builds
|
|
11
|
+
path: skills/native-builds/SKILL.md
|
|
12
|
+
domain: native-builds
|
|
13
|
+
focus: Native build request flows and local build credential management.
|
|
14
|
+
- name: organization-management
|
|
15
|
+
path: skills/organization-management/SKILL.md
|
|
16
|
+
domain: organization-management
|
|
17
|
+
focus: Account and organization administration commands, including deprecated aliases.
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: native-builds
|
|
3
|
+
description: Use when working with Capgo Cloud native iOS and Android build requests, credential storage, credential updates, and build output upload settings.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Capgo CLI Native Builds
|
|
7
|
+
|
|
8
|
+
Use this skill for Capgo Cloud native iOS and Android build workflows.
|
|
9
|
+
|
|
10
|
+
## Core build request
|
|
11
|
+
|
|
12
|
+
### `build request [appId]`
|
|
13
|
+
|
|
14
|
+
- Example: `npx @capgo/cli@latest build request com.example.app --platform ios --path .`
|
|
15
|
+
- Notes:
|
|
16
|
+
- Zips the current project directory and uploads it to Capgo for building.
|
|
17
|
+
- Builds are processed for store distribution.
|
|
18
|
+
- Credentials are never stored permanently on Capgo servers.
|
|
19
|
+
- Build outputs can be uploaded for time-limited download links.
|
|
20
|
+
- Before requesting a build, save credentials with `build credentials save`.
|
|
21
|
+
- Core options:
|
|
22
|
+
- `--path <path>`
|
|
23
|
+
- `--platform <platform>`: `ios` or `android`, required.
|
|
24
|
+
- `--build-mode <buildMode>`: `debug` or `release`.
|
|
25
|
+
- `-a, --apikey <apikey>`
|
|
26
|
+
- `--verbose`
|
|
27
|
+
|
|
28
|
+
#### iOS request options
|
|
29
|
+
|
|
30
|
+
- `--build-certificate-base64 <cert>`
|
|
31
|
+
- `--p12-password <password>`
|
|
32
|
+
- `--apple-id <email>`
|
|
33
|
+
- `--apple-app-specific-password <password>`
|
|
34
|
+
- `--apple-key-id <id>`
|
|
35
|
+
- `--apple-issuer-id <id>`
|
|
36
|
+
- `--apple-key-content <content>`
|
|
37
|
+
- `--app-store-connect-team-id <id>`
|
|
38
|
+
- `--ios-scheme <scheme>`
|
|
39
|
+
- `--ios-target <target>`
|
|
40
|
+
- `--ios-distribution <mode>`: `app_store` or `ad_hoc`
|
|
41
|
+
- `--ios-provisioning-profile <mapping>`: repeatable path or `bundleId=path`
|
|
42
|
+
|
|
43
|
+
#### Android request options
|
|
44
|
+
|
|
45
|
+
- `--android-keystore-file <keystore>`
|
|
46
|
+
- `--keystore-key-alias <alias>`
|
|
47
|
+
- `--keystore-key-password <password>`
|
|
48
|
+
- `--keystore-store-password <password>`
|
|
49
|
+
- `--play-config-json <json>`
|
|
50
|
+
- `--android-flavor <flavor>`
|
|
51
|
+
|
|
52
|
+
#### Output behavior options
|
|
53
|
+
|
|
54
|
+
- `--no-playstore-upload`: skip Play Store upload for the build, requires `--output-upload`
|
|
55
|
+
- `--output-upload`
|
|
56
|
+
- `--no-output-upload`
|
|
57
|
+
- `--output-retention <duration>`: `1h` to `7d`
|
|
58
|
+
- `--skip-build-number-bump`
|
|
59
|
+
- `--no-skip-build-number-bump`
|
|
60
|
+
|
|
61
|
+
## Local credential management
|
|
62
|
+
|
|
63
|
+
Credentials are stored locally, either globally in `~/.capgo-credentials/credentials.json` or locally in `.capgo-credentials.json`.
|
|
64
|
+
|
|
65
|
+
### `build credentials save`
|
|
66
|
+
|
|
67
|
+
- Required before build requests.
|
|
68
|
+
- Supports global storage by default and local storage with `--local`.
|
|
69
|
+
- Example iOS flow:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npx @capgo/cli build credentials save --platform ios \
|
|
73
|
+
--certificate ./cert.p12 --p12-password "password" \
|
|
74
|
+
--ios-provisioning-profile ./profile.mobileprovision \
|
|
75
|
+
--apple-key ./AuthKey.p8 --apple-key-id "KEY123" \
|
|
76
|
+
--apple-issuer-id "issuer-uuid" --apple-team-id "team-id"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
- Example multi-target iOS flow:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
npx @capgo/cli build credentials save --platform ios \
|
|
83
|
+
--ios-provisioning-profile ./App.mobileprovision \
|
|
84
|
+
--ios-provisioning-profile com.example.widget=./Widget.mobileprovision
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
- Example Android flow:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
npx @capgo/cli build credentials save --platform android \
|
|
91
|
+
--keystore ./release.keystore --keystore-alias "my-key" \
|
|
92
|
+
--keystore-key-password "key-pass" \
|
|
93
|
+
--play-config ./service-account.json
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
- Core options:
|
|
97
|
+
- `--appId <appId>`
|
|
98
|
+
- `--platform <platform>`
|
|
99
|
+
- `--local`
|
|
100
|
+
- `--output-upload`, `--no-output-upload`
|
|
101
|
+
- `--output-retention <duration>`
|
|
102
|
+
- `--skip-build-number-bump`, `--no-skip-build-number-bump`
|
|
103
|
+
|
|
104
|
+
#### iOS credential save options
|
|
105
|
+
|
|
106
|
+
- `--certificate <path>`
|
|
107
|
+
- `--ios-provisioning-profile <mapping>`
|
|
108
|
+
- `--p12-password <password>`
|
|
109
|
+
- `--apple-key <path>`
|
|
110
|
+
- `--apple-key-id <id>`
|
|
111
|
+
- `--apple-issuer-id <id>`
|
|
112
|
+
- `--apple-team-id <id>`
|
|
113
|
+
- `--ios-distribution <mode>`
|
|
114
|
+
- `--apple-id <email>`
|
|
115
|
+
- `--apple-app-password <password>`
|
|
116
|
+
|
|
117
|
+
#### Android credential save options
|
|
118
|
+
|
|
119
|
+
- `--keystore <path>`
|
|
120
|
+
- `--keystore-alias <alias>`
|
|
121
|
+
- `--keystore-key-password <password>`
|
|
122
|
+
- `--keystore-store-password <password>`
|
|
123
|
+
- `--play-config <path>`
|
|
124
|
+
- `--android-flavor <flavor>`
|
|
125
|
+
|
|
126
|
+
### `build credentials list`
|
|
127
|
+
|
|
128
|
+
- Examples:
|
|
129
|
+
- `npx @capgo/cli build credentials list`
|
|
130
|
+
- `npx @capgo/cli build credentials list --appId com.example.app`
|
|
131
|
+
- Options:
|
|
132
|
+
- `--appId <appId>`
|
|
133
|
+
- `--local`
|
|
134
|
+
|
|
135
|
+
### `build credentials clear`
|
|
136
|
+
|
|
137
|
+
- Examples:
|
|
138
|
+
- `npx @capgo/cli build credentials clear`
|
|
139
|
+
- `npx @capgo/cli build credentials clear --local`
|
|
140
|
+
- `npx @capgo/cli build credentials clear --appId com.example.app --platform ios`
|
|
141
|
+
- Options:
|
|
142
|
+
- `--appId <appId>`
|
|
143
|
+
- `--platform <platform>`
|
|
144
|
+
- `--local`
|
|
145
|
+
|
|
146
|
+
### `build credentials update`
|
|
147
|
+
|
|
148
|
+
- Use to update specific credential fields without re-entering all data.
|
|
149
|
+
- Platform is auto-detected from the supplied options.
|
|
150
|
+
- Examples:
|
|
151
|
+
- `npx @capgo/cli build credentials update --ios-provisioning-profile ./new-profile.mobileprovision`
|
|
152
|
+
- `npx @capgo/cli build credentials update --local --keystore ./new-keystore.jks`
|
|
153
|
+
- Core options:
|
|
154
|
+
- `--appId <appId>`
|
|
155
|
+
- `--platform <platform>`
|
|
156
|
+
- `--local`
|
|
157
|
+
- `--overwrite-ios-provisioning-map`
|
|
158
|
+
- `--output-upload`, `--no-output-upload`
|
|
159
|
+
- `--output-retention <duration>`
|
|
160
|
+
- `--skip-build-number-bump`, `--no-skip-build-number-bump`
|
|
161
|
+
- Supports the same iOS and Android credential fields as `build credentials save`.
|
|
162
|
+
|
|
163
|
+
### `build credentials migrate`
|
|
164
|
+
|
|
165
|
+
- Example: `npx @capgo/cli build credentials migrate --platform ios`
|
|
166
|
+
- Notes:
|
|
167
|
+
- Converts `BUILD_PROVISION_PROFILE_BASE64` to `CAPGO_IOS_PROVISIONING_MAP`.
|
|
168
|
+
- Discovers the main bundle ID from the Xcode project automatically.
|
|
169
|
+
- Options:
|
|
170
|
+
- `--appId <appId>`
|
|
171
|
+
- `--platform <platform>`: only `ios`
|
|
172
|
+
- `--local`
|
|
173
|
+
|
|
174
|
+
## Supporting docs
|
|
175
|
+
|
|
176
|
+
- iOS setup: `https://capgo.app/docs/cli/cloud-build/ios/`
|
|
177
|
+
- Android setup: `https://capgo.app/docs/cli/cloud-build/android/`
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: organization-management
|
|
3
|
+
description: Use when working with Capgo account lookup, organization administration, member security settings, and deprecated organisation aliases.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Capgo CLI Organization Management
|
|
7
|
+
|
|
8
|
+
Use this skill for account and organization administration commands.
|
|
9
|
+
|
|
10
|
+
## Account command
|
|
11
|
+
|
|
12
|
+
### `account id`
|
|
13
|
+
|
|
14
|
+
- Example: `npx @capgo/cli@latest account id`
|
|
15
|
+
- Use to retrieve an account ID that is safe to share for collaboration or support.
|
|
16
|
+
- Key option:
|
|
17
|
+
- `-a, --apikey <apikey>`
|
|
18
|
+
|
|
19
|
+
## Organization commands
|
|
20
|
+
|
|
21
|
+
### `organization list`
|
|
22
|
+
|
|
23
|
+
- Alias: `l`
|
|
24
|
+
- Example: `npx @capgo/cli@latest organization list`
|
|
25
|
+
- Lists all organizations the current user can access.
|
|
26
|
+
|
|
27
|
+
### `organization add`
|
|
28
|
+
|
|
29
|
+
- Alias: `a`
|
|
30
|
+
- Example: `npx @capgo/cli@latest organization add --name "My Company" --email admin@mycompany.com`
|
|
31
|
+
- Key options:
|
|
32
|
+
- `-n, --name <name>`
|
|
33
|
+
- `-e, --email <email>`
|
|
34
|
+
|
|
35
|
+
### `organization members [orgId]`
|
|
36
|
+
|
|
37
|
+
- Alias: `m`
|
|
38
|
+
- Example: `npx @capgo/cli@latest organization members ORG_ID`
|
|
39
|
+
- Notes:
|
|
40
|
+
- Lists members, roles, and 2FA status.
|
|
41
|
+
- Useful before enabling 2FA enforcement.
|
|
42
|
+
- Viewing 2FA status requires `super_admin` rights.
|
|
43
|
+
|
|
44
|
+
### `organization set [orgId]`
|
|
45
|
+
|
|
46
|
+
- Alias: `s`
|
|
47
|
+
- Example: `npx @capgo/cli@latest organization set ORG_ID --name "New Name"`
|
|
48
|
+
- Security examples:
|
|
49
|
+
- `npx @capgo/cli@latest organization set ORG_ID --enforce-2fa`
|
|
50
|
+
- `npx @capgo/cli@latest organization set ORG_ID --password-policy --min-length 12`
|
|
51
|
+
- `npx @capgo/cli@latest organization set ORG_ID --require-apikey-expiration --max-apikey-expiration-days 90`
|
|
52
|
+
- `npx @capgo/cli@latest organization set ORG_ID --enforce-hashed-api-keys`
|
|
53
|
+
- Notes:
|
|
54
|
+
- Security settings require `super_admin` role.
|
|
55
|
+
- Key options:
|
|
56
|
+
- `-n, --name <name>`
|
|
57
|
+
- `-e, --email <email>`
|
|
58
|
+
- `--enforce-2fa`, `--no-enforce-2fa`
|
|
59
|
+
- `--password-policy`, `--no-password-policy`
|
|
60
|
+
- `--min-length <minLength>`
|
|
61
|
+
- `--require-uppercase`, `--no-require-uppercase`
|
|
62
|
+
- `--require-number`, `--no-require-number`
|
|
63
|
+
- `--require-special`, `--no-require-special`
|
|
64
|
+
- `--require-apikey-expiration`, `--no-require-apikey-expiration`
|
|
65
|
+
- `--max-apikey-expiration-days <days>`
|
|
66
|
+
- `--enforce-hashed-api-keys`, `--no-enforce-hashed-api-keys`
|
|
67
|
+
|
|
68
|
+
### `organization delete [orgId]`
|
|
69
|
+
|
|
70
|
+
- Alias: `d`
|
|
71
|
+
- Example: `npx @capgo/cli@latest organization delete ORG_ID`
|
|
72
|
+
- Notes:
|
|
73
|
+
- This action cannot be undone.
|
|
74
|
+
- Only organization owners can delete organizations.
|
|
75
|
+
|
|
76
|
+
## Deprecated aliases
|
|
77
|
+
|
|
78
|
+
The `organisation` command group is deprecated in favor of `organization` and will be removed in a future version.
|
|
79
|
+
|
|
80
|
+
### Deprecated commands
|
|
81
|
+
|
|
82
|
+
- `organisation list`
|
|
83
|
+
- `organisation add`
|
|
84
|
+
- `organisation set [orgId]`
|
|
85
|
+
- `organisation delete [orgId]`
|
|
86
|
+
|
|
87
|
+
Use the `organization` equivalents for all new documentation and examples.
|
|
88
|
+
|
|
89
|
+
## Shared options
|
|
90
|
+
|
|
91
|
+
Most account and organization commands support:
|
|
92
|
+
|
|
93
|
+
- `-a, --apikey <apikey>`
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: release-management
|
|
3
|
+
description: Use when working on Capgo OTA release workflows including bundle uploads, compatibility checks, channel management, cleanup, and encryption key setup.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Capgo CLI Release Management
|
|
7
|
+
|
|
8
|
+
Use this skill for OTA update workflows in Capgo Cloud.
|
|
9
|
+
|
|
10
|
+
## Shared notes
|
|
11
|
+
|
|
12
|
+
- Prefer `npx @capgo/cli@latest ...` examples.
|
|
13
|
+
- `appId` can often be inferred from the current Capacitor project.
|
|
14
|
+
- Shared public flags often include `-a, --apikey`.
|
|
15
|
+
|
|
16
|
+
## Bundle workflows
|
|
17
|
+
|
|
18
|
+
### `bundle upload [appId]`
|
|
19
|
+
|
|
20
|
+
- Alias: `u`
|
|
21
|
+
- Example: `npx @capgo/cli@latest bundle upload com.example.app --path ./dist --channel production`
|
|
22
|
+
- Key behavior:
|
|
23
|
+
- Bundle version must be greater than `0.0.0` and unique.
|
|
24
|
+
- Deleted versions cannot be reused.
|
|
25
|
+
- External URL mode is useful for very large or privacy-sensitive bundles.
|
|
26
|
+
- Encryption is recommended for trustless distribution.
|
|
27
|
+
- Important options:
|
|
28
|
+
- `-p, --path <path>`
|
|
29
|
+
- `-c, --channel <channel>`
|
|
30
|
+
- `-e, --external <url>`
|
|
31
|
+
- `--iv-session-key <key>`
|
|
32
|
+
- `-b, --bundle <bundle>`
|
|
33
|
+
- `--link <link>`
|
|
34
|
+
- `--comment <comment>`
|
|
35
|
+
- `--min-update-version <minUpdateVersion>`
|
|
36
|
+
- `--auto-min-update-version`
|
|
37
|
+
- `--ignore-metadata-check`
|
|
38
|
+
- `--ignore-checksum-check`
|
|
39
|
+
- `--force-crc32-checksum`
|
|
40
|
+
- `--timeout <timeout>`
|
|
41
|
+
- `--zip`
|
|
42
|
+
- `--tus`
|
|
43
|
+
- `--tus-chunk-size <tusChunkSize>`
|
|
44
|
+
- `--delta`
|
|
45
|
+
- `--delta-only`
|
|
46
|
+
- `--no-delta`
|
|
47
|
+
- `--encrypted-checksum <encryptedChecksum>`
|
|
48
|
+
- `--auto-set-bundle`
|
|
49
|
+
- `--dry-upload`
|
|
50
|
+
- `--package-json <packageJson>`
|
|
51
|
+
- `--node-modules <nodeModules>`
|
|
52
|
+
- `--encrypt-partial`
|
|
53
|
+
- `--delete-linked-bundle-on-upload`
|
|
54
|
+
- `--no-brotli-patterns <patterns>`
|
|
55
|
+
- `--disable-brotli`
|
|
56
|
+
- `--version-exists-ok`
|
|
57
|
+
- `--self-assign`
|
|
58
|
+
- S3 options: `--s3-region`, `--s3-apikey`, `--s3-apisecret`, `--s3-endpoint`, `--s3-bucket-name`, `--s3-port`, `--no-s3-ssl`
|
|
59
|
+
- Signing options: `--key-v2`, `--key-data-v2`, `--bundle-url`, `--no-key`, `--display-iv-session`
|
|
60
|
+
- Deprecated options still supported: `--multipart`, `--partial`, `--partial-only`
|
|
61
|
+
|
|
62
|
+
### `bundle compatibility [appId]`
|
|
63
|
+
|
|
64
|
+
- Example: `npx @capgo/cli@latest bundle compatibility com.example.app --channel production`
|
|
65
|
+
- Use to check whether a bundle is safe for a given channel.
|
|
66
|
+
- Key options:
|
|
67
|
+
- `-c, --channel <channel>`
|
|
68
|
+
- `--text`
|
|
69
|
+
- `--package-json <packageJson>`
|
|
70
|
+
- `--node-modules <nodeModules>`
|
|
71
|
+
|
|
72
|
+
### `bundle releaseType [appId]`
|
|
73
|
+
|
|
74
|
+
- Example: `npx @capgo/cli@latest bundle releaseType com.example.app --channel production`
|
|
75
|
+
- Prints `native` or `OTA` based on channel compatibility.
|
|
76
|
+
- Key options:
|
|
77
|
+
- `-c, --channel <channel>`
|
|
78
|
+
- `--package-json <packageJson>`
|
|
79
|
+
- `--node-modules <nodeModules>`
|
|
80
|
+
|
|
81
|
+
### `bundle list [appId]`
|
|
82
|
+
|
|
83
|
+
- Alias: `l`
|
|
84
|
+
- Example: `npx @capgo/cli@latest bundle list com.example.app`
|
|
85
|
+
|
|
86
|
+
### `bundle delete [bundleId] [appId]`
|
|
87
|
+
|
|
88
|
+
- Alias: `d`
|
|
89
|
+
- Example: `npx @capgo/cli@latest bundle delete BUNDLE_ID com.example.app`
|
|
90
|
+
|
|
91
|
+
### `bundle cleanup [appId]`
|
|
92
|
+
|
|
93
|
+
- Alias: `c`
|
|
94
|
+
- Example: `npx @capgo/cli@latest bundle cleanup com.example.app --bundle=1.0 --keep=3`
|
|
95
|
+
- Notes:
|
|
96
|
+
- Linked bundles are preserved unless `--ignore-channel` is used.
|
|
97
|
+
- Key options:
|
|
98
|
+
- `-b, --bundle <bundle>`
|
|
99
|
+
- `-k, --keep <keep>`
|
|
100
|
+
- `-f, --force`
|
|
101
|
+
- `--ignore-channel`
|
|
102
|
+
|
|
103
|
+
### `bundle zip [appId]`
|
|
104
|
+
|
|
105
|
+
- Example: `npx @capgo/cli@latest bundle zip com.example.app --path ./dist`
|
|
106
|
+
- Notes:
|
|
107
|
+
- Produces a checksum for encryption workflows.
|
|
108
|
+
- Use `--json` for machine-readable output.
|
|
109
|
+
- Key options:
|
|
110
|
+
- `-p, --path <path>`
|
|
111
|
+
- `-b, --bundle <bundle>`
|
|
112
|
+
- `-n, --name <name>`
|
|
113
|
+
- `-j, --json`
|
|
114
|
+
- `--no-code-check`
|
|
115
|
+
- `--key-v2`
|
|
116
|
+
- `--package-json <packageJson>`
|
|
117
|
+
|
|
118
|
+
### `bundle encrypt [zipPath] [checksum]`
|
|
119
|
+
|
|
120
|
+
- Example: `npx @capgo/cli@latest bundle encrypt ./myapp.zip CHECKSUM`
|
|
121
|
+
- Notes:
|
|
122
|
+
- Returns the `ivSessionKey` needed for upload and later decryption.
|
|
123
|
+
- Key options:
|
|
124
|
+
- `--key <key>`
|
|
125
|
+
- `--key-data <keyData>`
|
|
126
|
+
- `-j, --json`
|
|
127
|
+
- `--package-json <packageJson>`
|
|
128
|
+
|
|
129
|
+
### `bundle decrypt [zipPath] [checksum]`
|
|
130
|
+
|
|
131
|
+
- Example: `npx @capgo/cli@latest bundle decrypt ./myapp_encrypted.zip CHECKSUM`
|
|
132
|
+
- Notes:
|
|
133
|
+
- Mainly for testing.
|
|
134
|
+
- Prints the base64 session key for verification.
|
|
135
|
+
- Key options:
|
|
136
|
+
- `--key <key>`
|
|
137
|
+
- `--key-data <keyData>`
|
|
138
|
+
- `--checksum <checksum>`
|
|
139
|
+
- `--package-json <packageJson>`
|
|
140
|
+
|
|
141
|
+
## Channel workflows
|
|
142
|
+
|
|
143
|
+
### `channel add [channelId] [appId]`
|
|
144
|
+
|
|
145
|
+
- Alias: `a`
|
|
146
|
+
- Example: `npx @capgo/cli@latest channel add production com.example.app --default`
|
|
147
|
+
- Key options:
|
|
148
|
+
- `-d, --default`
|
|
149
|
+
- `--self-assign`
|
|
150
|
+
|
|
151
|
+
### `channel list [appId]`
|
|
152
|
+
|
|
153
|
+
- Alias: `l`
|
|
154
|
+
- Example: `npx @capgo/cli@latest channel list com.example.app`
|
|
155
|
+
|
|
156
|
+
### `channel delete [channelId] [appId]`
|
|
157
|
+
|
|
158
|
+
- Alias: `d`
|
|
159
|
+
- Example: `npx @capgo/cli@latest channel delete production com.example.app`
|
|
160
|
+
- Key options:
|
|
161
|
+
- `--delete-bundle`
|
|
162
|
+
- `--success-if-not-found`
|
|
163
|
+
|
|
164
|
+
### `channel currentBundle [channel] [appId]`
|
|
165
|
+
|
|
166
|
+
- Example: `npx @capgo/cli@latest channel currentBundle production com.example.app`
|
|
167
|
+
- Key options:
|
|
168
|
+
- `-c, --channel <channel>`
|
|
169
|
+
- `--quiet`
|
|
170
|
+
|
|
171
|
+
### `channel set [channelId] [appId]`
|
|
172
|
+
|
|
173
|
+
- Alias: `s`
|
|
174
|
+
- Example: `npx @capgo/cli@latest channel set production com.example.app --bundle 1.0.0 --state default`
|
|
175
|
+
- Notes:
|
|
176
|
+
- One channel must remain default.
|
|
177
|
+
- Supports update policies `major`, `minor`, `metadata`, `patch`, and `none`.
|
|
178
|
+
- Supports platform and device targeting.
|
|
179
|
+
- Key options:
|
|
180
|
+
- `-b, --bundle <bundle>`
|
|
181
|
+
- `-s, --state <state>`
|
|
182
|
+
- `--latest-remote`
|
|
183
|
+
- `--latest`
|
|
184
|
+
- `--downgrade`, `--no-downgrade`
|
|
185
|
+
- `--ios`, `--no-ios`
|
|
186
|
+
- `--android`, `--no-android`
|
|
187
|
+
- `--self-assign`, `--no-self-assign`
|
|
188
|
+
- `--disable-auto-update <disableAutoUpdate>`
|
|
189
|
+
- `--dev`, `--no-dev`
|
|
190
|
+
- `--prod`, `--no-prod`
|
|
191
|
+
- `--emulator`, `--no-emulator`
|
|
192
|
+
- `--device`, `--no-device`
|
|
193
|
+
- `--package-json <packageJson>`
|
|
194
|
+
- `--ignore-metadata-check`
|
|
195
|
+
|
|
196
|
+
## Encryption key workflows
|
|
197
|
+
|
|
198
|
+
### `key save`
|
|
199
|
+
|
|
200
|
+
- Example: `npx @capgo/cli@latest key save --key ./path/to/key.pub`
|
|
201
|
+
- Notes:
|
|
202
|
+
- Saves the public key in Capacitor config.
|
|
203
|
+
- Useful for CI.
|
|
204
|
+
- Recommended not to commit the key.
|
|
205
|
+
- Key options:
|
|
206
|
+
- `-f, --force`
|
|
207
|
+
- `--key <key>`
|
|
208
|
+
- `--key-data <keyData>`
|
|
209
|
+
|
|
210
|
+
### `key create`
|
|
211
|
+
|
|
212
|
+
- Example: `npx @capgo/cli@latest key create`
|
|
213
|
+
- Notes:
|
|
214
|
+
- Creates `.capgo_key_v2` and `.capgo_key_v2.pub`.
|
|
215
|
+
- Saves the public key to Capacitor config.
|
|
216
|
+
- Never commit the private key.
|
|
217
|
+
- Key options:
|
|
218
|
+
- `-f, --force`
|
|
219
|
+
|
|
220
|
+
### `key delete_old`
|
|
221
|
+
|
|
222
|
+
- Example: `npx @capgo/cli@latest key delete_old`
|