@mediamonks/canopy-cli 0.7.31 → 0.7.33

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.
@@ -104,6 +104,11 @@ and never go stale.
104
104
  - Work bug reports & feedback: `canopy feedback list | show | comment | status | report`
105
105
  — see [Working feedback reports](#working-feedback-reports-issues) below
106
106
  - CI credentials: `canopy token create | list | revoke`
107
+ - Git: `canopy repo show --json` (is there a repository, and its remote) ·
108
+ `canopy repo create` · `canopy repo clone <slug>` · `canopy repo connect`
109
+ (set up an existing folder). Then plain `git`: the CLI gives git
110
+ short-lived credentials itself, so never ask for, paste or store a git
111
+ token. Pushing doesn't deploy — `canopy deploy` does.
107
112
 
108
113
  ## Working feedback reports (issues)
109
114
 
@@ -183,7 +188,8 @@ Non-interactive: `canopy create "My App" --template spa`. **When unsure between
183
188
 
184
189
  ## Safety rules
185
190
 
186
- - **Destructive commands** — `canopy db restore` and `canopy delete` wipe data.
191
+ - **Destructive commands** — `canopy db restore`, `canopy delete` and
192
+ `canopy repo delete` (the project's git history) wipe data.
187
193
  Confirm intent with the user first, and take a `canopy db snapshot` before
188
194
  restores.
189
195
  - **Deploys are public.** `canopy deploy` makes a version live. Confirm before
@@ -1,4 +1,4 @@
1
- import { t as version } from "./package-CiKTWo0_.mjs";
1
+ import { t as version } from "./package-CQIPmdcO.mjs";
2
2
  import { r as reportErrors } from "./ui-C_jSc1Kz.mjs";
3
3
  import { defineCommand } from "citty";
4
4
  import { cpSync, existsSync, mkdirSync, rmSync, symlinkSync, writeFileSync } from "node:fs";
@@ -35,6 +35,19 @@ the [Canopy dashboard](https://dashboard.thanarie.dev).
35
35
  `canopy promote` ships the exact tested version. Never promote with failing
36
36
  checks.
37
37
 
38
+ ## Git
39
+
40
+ Code can live in a git repository Canopy keeps for the project (no GitHub
41
+ account needed). `canopy repo show --json` says whether there is one and gives
42
+ its remote; `canopy repo create` makes one, `canopy repo clone <slug>` or
43
+ `canopy repo connect` sets a folder up. After that it is plain `git` — the CLI
44
+ hands git short-lived credentials by itself:
45
+
46
+ - Never ask for, paste or store a git token or password.
47
+ - Pushing doesn't deploy — `canopy deploy` still does.
48
+ - The `.github/workflows` file here only runs on GitHub; on a Canopy
49
+ repository it is kept but never runs.
50
+
38
51
  ## Boundaries
39
52
 
40
53
  - Do not add auth — the platform authenticates every request before it
@@ -2,3 +2,7 @@ node_modules/
2
2
  dist/
3
3
  .canopy/
4
4
  .DS_Store
5
+ # Local secrets never go into git (secrets belong in `canopy secrets`).
6
+ .dev.vars
7
+ .env*
8
+ !.env.example
@@ -34,6 +34,17 @@ the [Canopy dashboard](https://dashboard.thanarie.dev).
34
34
  `canopy promote` ships the exact tested version. Never promote with failing
35
35
  checks.
36
36
 
37
+ ## Git
38
+
39
+ Code can live in a git repository Canopy keeps for the project (no GitHub
40
+ account needed). `canopy repo show --json` says whether there is one and gives
41
+ its remote; `canopy repo create` makes one, `canopy repo clone <slug>` or
42
+ `canopy repo connect` sets a folder up. After that it is plain `git` — the CLI
43
+ hands git short-lived credentials by itself:
44
+
45
+ - Never ask for, paste or store a git token or password.
46
+ - Pushing doesn't deploy — `canopy deploy` still does.
47
+
37
48
  ## Boundaries
38
49
 
39
50
  - Do not add auth — the platform authenticates every request before it
@@ -1,2 +1,6 @@
1
1
  .canopy/
2
2
  .DS_Store
3
+ # Local secrets never go into git (secrets belong in `canopy secrets`).
4
+ .dev.vars
5
+ .env*
6
+ !.env.example
@@ -51,6 +51,19 @@ the [Canopy dashboard](https://dashboard.thanarie.dev).
51
51
  `canopy promote` ships the exact tested version. Never promote with failing
52
52
  checks.
53
53
 
54
+ ## Git
55
+
56
+ Code can live in a git repository Canopy keeps for the project (no GitHub
57
+ account needed). `canopy repo show --json` says whether there is one and gives
58
+ its remote; `canopy repo create` makes one, `canopy repo clone <slug>` or
59
+ `canopy repo connect` sets a folder up. After that it is plain `git` — the CLI
60
+ hands git short-lived credentials by itself:
61
+
62
+ - Never ask for, paste or store a git token or password.
63
+ - Pushing doesn't deploy — `canopy deploy` still does.
64
+ - The `.github/workflows` file here only runs on GitHub; on a Canopy
65
+ repository it is kept but never runs.
66
+
54
67
  ## Boundaries
55
68
 
56
69
  - Do not add auth — the platform authenticates every request before it
@@ -3,3 +3,6 @@ dist/
3
3
  .canopy/
4
4
  .dev.vars
5
5
  .DS_Store
6
+ # Local secrets never go into git (secrets belong in `canopy secrets`).
7
+ .env*
8
+ !.env.example
@@ -112,7 +112,7 @@ const upgradeCommand = defineCommand({
112
112
  const spec = `${PACKAGE_NAME}@${args.version ?? "latest"}`;
113
113
  const command = pmCommand(pm);
114
114
  const cmd = installArgs(pm, spec);
115
- const { skillInstalled } = await import("./skill-BWmXiJAz.mjs");
115
+ const { skillInstalled } = await import("./skill-Dg7dQF0k.mjs");
116
116
  const { homedir } = await import("node:os");
117
117
  const refreshGlobal = skillInstalled(homedir());
118
118
  const refreshRepo = process.cwd() !== homedir() && skillInstalled(process.cwd());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mediamonks/canopy-cli",
3
- "version": "0.7.31",
3
+ "version": "0.7.33",
4
4
  "description": "Canopy CLI — create, develop and deploy Canopy projects.",
5
5
  "bin": {
6
6
  "canopy": "./dist/index.mjs"
@@ -27,6 +27,7 @@
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/node": "^26.1.1",
30
+ "ai": "^7.0.82",
30
31
  "typescript": "^7.0.2",
31
32
  "vite-plus": "0.2.5",
32
33
  "@mediamonks/canopy-pages": "0.0.0"