@heychunky/core 0.8.2 → 0.10.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/dist/admin/chunks.d.ts +59 -0
- package/dist/admin/chunks.d.ts.map +1 -1
- package/dist/admin/chunks.js +171 -27
- package/dist/admin/chunks.js.map +1 -1
- package/dist/admin/decommission.d.ts +40 -0
- package/dist/admin/decommission.d.ts.map +1 -0
- package/dist/admin/decommission.js +134 -0
- package/dist/admin/decommission.js.map +1 -0
- package/dist/admin/entrypoints.d.ts +16 -0
- package/dist/admin/entrypoints.d.ts.map +1 -0
- package/dist/admin/entrypoints.js +41 -0
- package/dist/admin/entrypoints.js.map +1 -0
- package/dist/admin/index.d.ts +2 -0
- package/dist/admin/index.d.ts.map +1 -1
- package/dist/admin/index.js +2 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/provision.d.ts.map +1 -1
- package/dist/admin/provision.js +116 -4
- package/dist/admin/provision.js.map +1 -1
- package/dist/admin/services/bunny.d.ts +3 -0
- package/dist/admin/services/bunny.d.ts.map +1 -1
- package/dist/admin/services/bunny.js +12 -0
- package/dist/admin/services/bunny.js.map +1 -1
- package/dist/admin/services/cloudflare.d.ts +11 -0
- package/dist/admin/services/cloudflare.d.ts.map +1 -1
- package/dist/admin/services/cloudflare.js +19 -0
- package/dist/admin/services/cloudflare.js.map +1 -1
- package/dist/admin/services/github.d.ts +14 -0
- package/dist/admin/services/github.d.ts.map +1 -1
- package/dist/admin/services/github.js +47 -1
- package/dist/admin/services/github.js.map +1 -1
- package/dist/admin/services/neon.d.ts +3 -0
- package/dist/admin/services/neon.d.ts.map +1 -1
- package/dist/admin/services/neon.js +16 -0
- package/dist/admin/services/neon.js.map +1 -1
- package/dist/admin/services/vercel.d.ts +19 -9
- package/dist/admin/services/vercel.d.ts.map +1 -1
- package/dist/admin/services/vercel.js +40 -7
- package/dist/admin/services/vercel.js.map +1 -1
- package/dist/config/environments.d.ts +41 -1
- package/dist/config/environments.d.ts.map +1 -1
- package/dist/config/environments.js +50 -1
- package/dist/config/environments.js.map +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +8 -0
- package/dist/registry.js.map +1 -1
- package/package.json +4 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keeping an app's generated entry points in step with its manifest.
|
|
3
|
+
*
|
|
4
|
+
* `.heychunky/` is the app and `src/app/` is the framework's view of it. The
|
|
5
|
+
* second is derived from the first — two-line files that re-export the real
|
|
6
|
+
* implementation — which is what lets the same app be generated for another
|
|
7
|
+
* target later, and what stops anybody hand-maintaining a directory of shims.
|
|
8
|
+
*
|
|
9
|
+
* Derived, and therefore worth regenerating: a route added to the manifest and
|
|
10
|
+
* not to `src/app/` is a page that does not exist, and nothing would say so
|
|
11
|
+
* until somebody visited it.
|
|
12
|
+
*/
|
|
13
|
+
import { generate } from "@heychunky/framework";
|
|
14
|
+
/** The app's own manifest, as its repository holds it. */
|
|
15
|
+
export const MANIFEST = "heychunky.json";
|
|
16
|
+
/**
|
|
17
|
+
* What the framework target should contain, minus what it already does.
|
|
18
|
+
*
|
|
19
|
+
* Returns only files whose content differs, so a run that changes nothing
|
|
20
|
+
* commits nothing — the same rule the chunk installer follows, and the reason
|
|
21
|
+
* asking twice is safe.
|
|
22
|
+
*/
|
|
23
|
+
export async function entryPoints(repo, gh) {
|
|
24
|
+
let manifest;
|
|
25
|
+
try {
|
|
26
|
+
manifest = JSON.parse(await gh.readFile(repo, MANIFEST));
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
// An app with no manifest predates the format. Nothing to generate from,
|
|
30
|
+
// and guessing a route table would be worse than leaving it alone.
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
const out = [];
|
|
34
|
+
for (const file of generate(manifest)) {
|
|
35
|
+
const there = await gh.readFile(repo, file.path).catch(() => undefined);
|
|
36
|
+
if (there !== file.contents)
|
|
37
|
+
out.push({ path: file.path, content: file.contents });
|
|
38
|
+
}
|
|
39
|
+
return out;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=entrypoints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entrypoints.js","sourceRoot":"","sources":["../../src/admin/entrypoints.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,QAAQ,EAAiB,MAAM,sBAAsB,CAAC;AAG/D,0DAA0D;AAC1D,MAAM,CAAC,MAAM,QAAQ,GAAG,gBAAgB,CAAC;AAMzC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAY,EAAE,EAAU;IACxD,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAa,CAAC;IACvE,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,mEAAmE;QACnE,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,GAAG,GAAgB,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACxE,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrF,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/admin/index.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export * from "./apps.ts";
|
|
|
11
11
|
export * from "./users.ts";
|
|
12
12
|
export * from "./run.ts";
|
|
13
13
|
export * from "./provision.ts";
|
|
14
|
+
export * from "./decommission.ts";
|
|
15
|
+
export * from "./entrypoints.ts";
|
|
14
16
|
export * from "./chunks.ts";
|
|
15
17
|
export * from "./services/github.ts";
|
|
16
18
|
export * from "./services/vercel.ts";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAG5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAG5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC"}
|
package/dist/admin/index.js
CHANGED
|
@@ -11,6 +11,8 @@ export * from "./apps.js";
|
|
|
11
11
|
export * from "./users.js";
|
|
12
12
|
export * from "./run.js";
|
|
13
13
|
export * from "./provision.js";
|
|
14
|
+
export * from "./decommission.js";
|
|
15
|
+
export * from "./entrypoints.js";
|
|
14
16
|
export * from "./chunks.js";
|
|
15
17
|
// One file per service, matching the registry.
|
|
16
18
|
export * from "./services/github.js";
|
package/dist/admin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAE5B,+CAA+C;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/admin/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAE5B,+CAA+C;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provision.d.ts","sourceRoot":"","sources":["../../src/admin/provision.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"provision.d.ts","sourceRoot":"","sources":["../../src/admin/provision.ts"],"names":[],"mappings":"AA0BA,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAEoB,KAAK,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAiB5E,MAAM,WAAW,OAAO;IACtB,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,mCAAmC;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,MAAM,SAAS;AACnB,uCAAuC;AACrC,QAAQ;AACV,qBAAqB;GACnB,SAAS;AACX,6CAA6C;GAC3C,cAAc;AAChB,+CAA+C;GAC7C,QAAQ,CAAC;AAEb,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,uCAAuC;IACvC,EAAE,EAAE,OAAO,CAAC;CACb;AA8SD;;;;;;GAMG;AACH;;;;;;;;GAQG;AACH,MAAM,WAAW,OAAO;IACtB,6BAA6B;IAC7B,KAAK,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,mCAAmC;IACnC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;CACjC;AAED,4DAA4D;AAC5D,eAAO,MAAM,QAAQ,GAAI,MAAM,OAAO,KAAG,MAAM,EACS,CAAC;AAEzD,wBAAsB,SAAS,CAC7B,IAAI,EAAE,OAAO,EACb,GAAG,EAAE,UAAU,EACf,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC,GAAG,CAAC,CAqCd"}
|
package/dist/admin/provision.js
CHANGED
|
@@ -25,7 +25,19 @@ import { cloudflare } from "./services/cloudflare.js";
|
|
|
25
25
|
import { vercel } from "./services/vercel.js";
|
|
26
26
|
import { neon } from "./services/neon.js";
|
|
27
27
|
import { KEY_FOR } from "./run.js";
|
|
28
|
-
import { BRANCHED, DEFAULT_BRANCH, DEFAULT_ORG, defaultDomain, TEMPLATES, DEFAULT_TEMPLATE } from "../config/environments.js";
|
|
28
|
+
import { BRANCHED, DEFAULT_BRANCH, DEFAULT_ORG, defaultDomain, stagingDomain, customEnvironmentFor, GIT_BRANCH, GIT_BRANCHES, TEMPLATES, DEFAULT_TEMPLATE } from "../config/environments.js";
|
|
29
|
+
/** The environment shown to clients: what Vercel calls it, and what builds it. */
|
|
30
|
+
const STAGING = "staging";
|
|
31
|
+
const STAGING_SLUG = customEnvironmentFor(STAGING);
|
|
32
|
+
const STAGING_BRANCH = GIT_BRANCH[STAGING];
|
|
33
|
+
/**
|
|
34
|
+
* Where the app answers.
|
|
35
|
+
*
|
|
36
|
+
* One expression rather than four copies of it: the production domain, the
|
|
37
|
+
* staging domain and both of their lookups all have to agree on it, and a
|
|
38
|
+
* caller that got it wrong would attach a name and then look for another.
|
|
39
|
+
*/
|
|
40
|
+
const appDomain = (spec) => typeof spec.domain === "string" ? spec.domain : defaultDomain(spec.name);
|
|
29
41
|
const STEPS = [
|
|
30
42
|
{
|
|
31
43
|
name: "github repo",
|
|
@@ -39,6 +51,7 @@ const STEPS = [
|
|
|
39
51
|
if (!repo)
|
|
40
52
|
return undefined;
|
|
41
53
|
carry.repo = repo.full_name;
|
|
54
|
+
carry.repoThere = true;
|
|
42
55
|
return `${repo.full_name} · ${repo.private ? "private" : "PUBLIC"}`;
|
|
43
56
|
},
|
|
44
57
|
async create(spec, { gh }, carry) {
|
|
@@ -48,9 +61,45 @@ const STEPS = [
|
|
|
48
61
|
template,
|
|
49
62
|
});
|
|
50
63
|
carry.repo = repo.full_name;
|
|
64
|
+
carry.repoThere = true;
|
|
51
65
|
return `${repo.full_name} · private · from ${template}`;
|
|
52
66
|
},
|
|
53
67
|
},
|
|
68
|
+
{
|
|
69
|
+
/**
|
|
70
|
+
* The branches the environments are built from.
|
|
71
|
+
*
|
|
72
|
+
* The same shape as the Neon branches step below, and for the same reason:
|
|
73
|
+
* one step rather than one per branch, creating only what is absent, so a
|
|
74
|
+
* run that died after the first makes the second and no more.
|
|
75
|
+
*
|
|
76
|
+
* Until this existed an app's repository had one branch where its database
|
|
77
|
+
* had six, and `first deployment` pushed `main` to production because the
|
|
78
|
+
* branch the environment config says production builds from was never made.
|
|
79
|
+
*/
|
|
80
|
+
name: "git branches",
|
|
81
|
+
wanted: () => true,
|
|
82
|
+
async find(spec, { gh }, carry) {
|
|
83
|
+
if (!carry.repoThere || !carry.repo)
|
|
84
|
+
return undefined;
|
|
85
|
+
const have = new Set(await gh.branches(carry.repo));
|
|
86
|
+
const missing = GIT_BRANCHES.filter((b) => !have.has(b));
|
|
87
|
+
return missing.length ? undefined : GIT_BRANCHES.join(", ");
|
|
88
|
+
},
|
|
89
|
+
async create(spec, { gh }, carry) {
|
|
90
|
+
if (!carry.repo)
|
|
91
|
+
throw new Error("No repository to branch");
|
|
92
|
+
const have = new Set(await gh.branches(carry.repo));
|
|
93
|
+
const made = [];
|
|
94
|
+
// Each cut from `main` rather than from the one before it, so the two
|
|
95
|
+
// start as the same commit whichever order they are made in.
|
|
96
|
+
for (const branch of GIT_BRANCHES.filter((b) => !have.has(b))) {
|
|
97
|
+
await gh.createBranch(carry.repo, branch, DEFAULT_BRANCH);
|
|
98
|
+
made.push(branch);
|
|
99
|
+
}
|
|
100
|
+
return `${made.join(", ")} · from ${DEFAULT_BRANCH}`;
|
|
101
|
+
},
|
|
102
|
+
},
|
|
54
103
|
{
|
|
55
104
|
name: "neon project",
|
|
56
105
|
wanted: (spec) => spec.neon !== false,
|
|
@@ -131,7 +180,7 @@ const STEPS = [
|
|
|
131
180
|
name: "domain",
|
|
132
181
|
wanted: (spec) => spec.domain !== false && spec.vercel !== false,
|
|
133
182
|
async find(spec, { vc }, carry) {
|
|
134
|
-
const domain =
|
|
183
|
+
const domain = appDomain(spec);
|
|
135
184
|
if (!carry.vercelProject)
|
|
136
185
|
return undefined;
|
|
137
186
|
const already = (await vc.projectDomains(carry.vercelProject, await vc.teamId()))
|
|
@@ -139,7 +188,7 @@ const STEPS = [
|
|
|
139
188
|
return already && `${domain}${already.verified ? "" : " · DNS pending"}`;
|
|
140
189
|
},
|
|
141
190
|
async create(spec, { vc, cf }, carry) {
|
|
142
|
-
const domain =
|
|
191
|
+
const domain = appDomain(spec);
|
|
143
192
|
if (!carry.vercelProject)
|
|
144
193
|
throw new Error("No Vercel project to attach a domain to");
|
|
145
194
|
const teamId = await vc.teamId();
|
|
@@ -159,6 +208,63 @@ const STEPS = [
|
|
|
159
208
|
return domain;
|
|
160
209
|
},
|
|
161
210
|
},
|
|
211
|
+
{
|
|
212
|
+
/**
|
|
213
|
+
* A second copy of the app, on its own address.
|
|
214
|
+
*
|
|
215
|
+
* A Vercel custom environment rather than the preview target: staging is
|
|
216
|
+
* stable enough to show a client, and sharing `preview` with every pull
|
|
217
|
+
* request would let one break it.
|
|
218
|
+
*
|
|
219
|
+
* The branch matcher is what makes this a deployment environment rather
|
|
220
|
+
* than a bag of variables — without one, nothing ever builds here and the
|
|
221
|
+
* address serves nothing. Syncing variables can create this environment
|
|
222
|
+
* too, which is why the client applies the matcher to an environment that
|
|
223
|
+
* already exists as well as to one it makes.
|
|
224
|
+
*
|
|
225
|
+
* The domain is scoped to the environment. A staging name that resolved to
|
|
226
|
+
* the live app would be worse than having no staging name at all.
|
|
227
|
+
*/
|
|
228
|
+
name: "staging environment",
|
|
229
|
+
wanted: (spec) => spec.vercel !== false,
|
|
230
|
+
async find(spec, { vc }, carry) {
|
|
231
|
+
if (!carry.vercelProject)
|
|
232
|
+
return undefined;
|
|
233
|
+
const teamId = await vc.teamId();
|
|
234
|
+
const found = (await vc.customEnvironments(carry.vercelProject, teamId))
|
|
235
|
+
.find((e) => e.slug === STAGING_SLUG);
|
|
236
|
+
if (!found || found.branchMatcher?.pattern !== STAGING_BRANCH)
|
|
237
|
+
return undefined;
|
|
238
|
+
if (spec.domain === false)
|
|
239
|
+
return `${found.slug} · from ${STAGING_BRANCH}`;
|
|
240
|
+
const domain = stagingDomain(appDomain(spec));
|
|
241
|
+
const attached = (await vc.projectDomains(carry.vercelProject, teamId))
|
|
242
|
+
.find((d) => d.name === domain);
|
|
243
|
+
return attached && `${domain} · from ${STAGING_BRANCH}`;
|
|
244
|
+
},
|
|
245
|
+
async create(spec, { vc, cf }, carry) {
|
|
246
|
+
if (!carry.vercelProject)
|
|
247
|
+
throw new Error("No Vercel project to give a staging environment");
|
|
248
|
+
const teamId = await vc.teamId();
|
|
249
|
+
const env = await vc.ensureCustomEnvironment(carry.vercelProject, STAGING_SLUG, teamId, {
|
|
250
|
+
type: "equals", pattern: STAGING_BRANCH,
|
|
251
|
+
});
|
|
252
|
+
if (spec.domain === false)
|
|
253
|
+
return `${env.slug} · from ${STAGING_BRANCH}`;
|
|
254
|
+
// The same two providers as the production domain, agreeing the same way.
|
|
255
|
+
const domain = stagingDomain(appDomain(spec));
|
|
256
|
+
await vc.addDomain(carry.vercelProject, domain, teamId, env.id);
|
|
257
|
+
const zone = await cf.zoneFor(domain);
|
|
258
|
+
if (!zone)
|
|
259
|
+
return `${domain} · attached, DNS is yours to set`;
|
|
260
|
+
await cf.setDnsRecord(zone.name, {
|
|
261
|
+
type: "CNAME",
|
|
262
|
+
name: domain,
|
|
263
|
+
content: await vc.domainTarget(domain),
|
|
264
|
+
});
|
|
265
|
+
return `${domain} · from ${STAGING_BRANCH}`;
|
|
266
|
+
},
|
|
267
|
+
},
|
|
162
268
|
{
|
|
163
269
|
/**
|
|
164
270
|
* The first build.
|
|
@@ -171,6 +277,12 @@ const STEPS = [
|
|
|
171
277
|
*
|
|
172
278
|
* Invisible until the repository had something in it worth building, which
|
|
173
279
|
* is what an end-to-end run is for.
|
|
280
|
+
*
|
|
281
|
+
* Built from the `production` branch, which is what the environment config
|
|
282
|
+
* has always said production is built from. It deployed `main` instead for
|
|
283
|
+
* as long as that branch was the only one a new repository had — the same
|
|
284
|
+
* commit, so it worked, and it meant the first push to `production` would
|
|
285
|
+
* have been the first thing that branch ever served.
|
|
174
286
|
*/
|
|
175
287
|
name: "first deployment",
|
|
176
288
|
wanted: (spec) => spec.vercel !== false,
|
|
@@ -185,7 +297,7 @@ const STEPS = [
|
|
|
185
297
|
throw new Error("No repository to deploy from");
|
|
186
298
|
const built = await vc.deploy(spec.name, {
|
|
187
299
|
repo: carry.repo,
|
|
188
|
-
ref:
|
|
300
|
+
ref: GIT_BRANCH.production,
|
|
189
301
|
target: "production",
|
|
190
302
|
teamId: await vc.teamId(),
|
|
191
303
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provision.js","sourceRoot":"","sources":["../../src/admin/provision.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provision.js","sourceRoot":"","sources":["../../src/admin/provision.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,9 @@ export interface StorageZone {
|
|
|
8
8
|
}
|
|
9
9
|
export declare function bunny(token: string): {
|
|
10
10
|
storageZones: () => Promise<StorageZone[]>;
|
|
11
|
+
deleteStorageZone: (id: number, opts: {
|
|
12
|
+
confirmed: true;
|
|
13
|
+
}) => Promise<void>;
|
|
11
14
|
/** Zones for one app, by the `<app>` / `<app>-private` convention. */
|
|
12
15
|
zonesForApp(app: string): Promise<StorageZone[]>;
|
|
13
16
|
status(): Promise<ServiceStatus>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bunny.d.ts","sourceRoot":"","sources":["../../../src/admin/services/bunny.ts"],"names":[],"mappings":"AAcA,OAAO,EAAsB,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAIrG,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM;wBAGF,OAAO,CAAC,WAAW,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"bunny.d.ts","sourceRoot":"","sources":["../../../src/admin/services/bunny.ts"],"names":[],"mappings":"AAcA,OAAO,EAAsB,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAIrG,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM;wBAGF,OAAO,CAAC,WAAW,EAAE,CAAC;4BAmBhB,MAAM,QAAQ;QAAE,SAAS,EAAE,IAAI,CAAA;KAAE,KAAG,OAAO,CAAC,IAAI,CAAC;IAQpF,sEAAsE;qBAC/C,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;cAKtC,OAAO,CAAC,aAAa,CAAC;cAQtB,OAAO,CAAC,aAAa,CAAC;EAczC"}
|
|
@@ -27,8 +27,20 @@ export function bunny(token) {
|
|
|
27
27
|
FilesStored: z.FilesStored,
|
|
28
28
|
}));
|
|
29
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Delete a storage zone and everything stored in it.
|
|
32
|
+
*
|
|
33
|
+
* Bunny takes the numeric `Id`, not the name — the name is what a person
|
|
34
|
+
* knows, so a caller looks the zone up first and this refuses to guess.
|
|
35
|
+
*/
|
|
36
|
+
async function deleteStorageZone(id, opts) {
|
|
37
|
+
if (!opts?.confirmed)
|
|
38
|
+
throw new Error(`Refusing to delete storage zone ${id} without confirmation`);
|
|
39
|
+
await request(`${BASE}/storagezone/${id}`, { credentials: creds, method: "DELETE" });
|
|
40
|
+
}
|
|
30
41
|
return {
|
|
31
42
|
storageZones,
|
|
43
|
+
deleteStorageZone,
|
|
32
44
|
/** Zones for one app, by the `<app>` / `<app>-private` convention. */
|
|
33
45
|
async zonesForApp(app) {
|
|
34
46
|
const base = baseName(app);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bunny.js","sourceRoot":"","sources":["../../../src/admin/services/bunny.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,OAAO,EAAoB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,WAAW,EAA0C,MAAM,yBAAyB,CAAC;AAErG,MAAM,IAAI,GAAG,uBAAuB,CAAC;AAUrC,MAAM,UAAU,KAAK,CAAC,KAAa;IACjC,MAAM,KAAK,GAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAE1D,KAAK,UAAU,YAAY;QACzB,MAAM,GAAG,GAAG,MAAM,OAAO,CACvB,GAAG,IAAI,cAAc,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACzD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrB,EAAE,EAAE,CAAC,CAAC,EAAY;YAClB,IAAI,EAAE,CAAC,CAAC,IAAc;YACtB,MAAM,EAAE,CAAC,CAAC,MAAgB;YAC1B,WAAW,EAAE,CAAC,CAAC,WAAqB;YACpC,WAAW,EAAE,CAAC,CAAC,WAAiC;SACjD,CAAC,CAAC,CAAC;IACN,CAAC;IAED,OAAO;QACL,YAAY;QACZ,sEAAsE;QACtE,KAAK,CAAC,WAAW,CAAC,GAAW;YAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC3B,OAAO,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;QAChG,CAAC;QAED,KAAK,CAAC,MAAM;YACV,OAAO,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;gBAC/B,MAAM,CAAC,GAAG,MAAM,YAAY,EAAE,CAAC;gBAC/B,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;gBACjE,OAAO,GAAG,CAAC,CAAC,MAAM,mBAAmB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;YACjE,CAAC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,MAAM;YACV,OAAO,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;gBACrC,MAAM,CAAC,GAAG,MAAM,YAAY,EAAE,CAAC;gBAC/B,OAAO;oBACL,QAAQ,EAAE,cAAuB;oBACjC,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAC,MAAM,gBAAgB,EAAE,mDAAmD,CAAC;oBACvG,KAAK,EAAE;wBACL,+DAA+D;wBAC/D,+GAA+G;qBAChH;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"bunny.js","sourceRoot":"","sources":["../../../src/admin/services/bunny.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,OAAO,EAAoB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,WAAW,EAA0C,MAAM,yBAAyB,CAAC;AAErG,MAAM,IAAI,GAAG,uBAAuB,CAAC;AAUrC,MAAM,UAAU,KAAK,CAAC,KAAa;IACjC,MAAM,KAAK,GAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAE1D,KAAK,UAAU,YAAY;QACzB,MAAM,GAAG,GAAG,MAAM,OAAO,CACvB,GAAG,IAAI,cAAc,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACzD,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrB,EAAE,EAAE,CAAC,CAAC,EAAY;YAClB,IAAI,EAAE,CAAC,CAAC,IAAc;YACtB,MAAM,EAAE,CAAC,CAAC,MAAgB;YAC1B,WAAW,EAAE,CAAC,CAAC,WAAqB;YACpC,WAAW,EAAE,CAAC,CAAC,WAAiC;SACjD,CAAC,CAAC,CAAC;IACN,CAAC;IAED;;;;;OAKG;IACH,KAAK,UAAU,iBAAiB,CAAC,EAAU,EAAE,IAAyB;QACpE,IAAI,CAAC,IAAI,EAAE,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,EAAE,uBAAuB,CAAC,CAAC;QACpG,MAAM,OAAO,CAAC,GAAG,IAAI,gBAAgB,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,OAAO;QACL,YAAY;QACZ,iBAAiB;QACjB,sEAAsE;QACtE,KAAK,CAAC,WAAW,CAAC,GAAW;YAC3B,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC3B,OAAO,CAAC,MAAM,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;QAChG,CAAC;QAED,KAAK,CAAC,MAAM;YACV,OAAO,KAAK,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;gBAC/B,MAAM,CAAC,GAAG,MAAM,YAAY,EAAE,CAAC;gBAC/B,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;gBACjE,OAAO,GAAG,CAAC,CAAC,MAAM,mBAAmB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;YACjE,CAAC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,MAAM;YACV,OAAO,WAAW,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;gBACrC,MAAM,CAAC,GAAG,MAAM,YAAY,EAAE,CAAC;gBAC/B,OAAO;oBACL,QAAQ,EAAE,cAAuB;oBACjC,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAC,MAAM,gBAAgB,EAAE,mDAAmD,CAAC;oBACvG,KAAK,EAAE;wBACL,+DAA+D;wBAC/D,+GAA+G;qBAChH;iBACF,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -44,6 +44,17 @@ export declare function cloudflare(token: string): {
|
|
|
44
44
|
ttl?: number;
|
|
45
45
|
priority?: number;
|
|
46
46
|
}): Promise<DnsRecord>;
|
|
47
|
+
/**
|
|
48
|
+
* Remove every record of one name, whatever their type.
|
|
49
|
+
*
|
|
50
|
+
* Named rather than identified: a caller taking an app down knows the
|
|
51
|
+
* hostname it gave out, not the record ids Cloudflare minted for it.
|
|
52
|
+
* Returns how many went, so a run can say "already gone" rather than
|
|
53
|
+
* claiming to have removed something that was not there.
|
|
54
|
+
*/
|
|
55
|
+
deleteDnsRecords(domain: string, name: string, opts: {
|
|
56
|
+
confirmed: true;
|
|
57
|
+
}): Promise<number>;
|
|
47
58
|
status(): Promise<ServiceStatus>;
|
|
48
59
|
access(): Promise<ServiceAccess>;
|
|
49
60
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/admin/services/cloudflare.ts"],"names":[],"mappings":"AASA,OAAO,EAAsB,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAIrG,MAAM,WAAW,IAAI;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE;AACzG,MAAM,WAAW,SAAS;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AAErH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM;;iBAeZ,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;IAS9C;;;;;;OAMG;oBACmB,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;uBAO/B,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAItD;;;;;;;;OAQG;yBAEO,MAAM,UACN;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GACvF,OAAO,CAAC,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"cloudflare.d.ts","sourceRoot":"","sources":["../../../src/admin/services/cloudflare.ts"],"names":[],"mappings":"AASA,OAAO,EAAsB,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAIrG,MAAM,WAAW,IAAI;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE;AACzG,MAAM,WAAW,SAAS;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AAErH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM;;iBAeZ,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;IAS9C;;;;;;OAMG;oBACmB,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;uBAO/B,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAItD;;;;;;;;OAQG;yBAEO,MAAM,UACN;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GACvF,OAAO,CAAC,SAAS,CAAC;IAYrB;;;;;;;OAOG;6BAEO,MAAM,QAAQ,MAAM,QAAQ;QAAE,SAAS,EAAE,IAAI,CAAA;KAAE,GACtD,OAAO,CAAC,MAAM,CAAC;cAWF,OAAO,CAAC,aAAa,CAAC;cAQtB,OAAO,CAAC,aAAa,CAAC;EA8BzC"}
|
|
@@ -65,6 +65,25 @@ export function cloudflare(token) {
|
|
|
65
65
|
body: { ttl: 1, ...record },
|
|
66
66
|
});
|
|
67
67
|
},
|
|
68
|
+
/**
|
|
69
|
+
* Remove every record of one name, whatever their type.
|
|
70
|
+
*
|
|
71
|
+
* Named rather than identified: a caller taking an app down knows the
|
|
72
|
+
* hostname it gave out, not the record ids Cloudflare minted for it.
|
|
73
|
+
* Returns how many went, so a run can say "already gone" rather than
|
|
74
|
+
* claiming to have removed something that was not there.
|
|
75
|
+
*/
|
|
76
|
+
async deleteDnsRecords(domain, name, opts) {
|
|
77
|
+
if (!opts?.confirmed)
|
|
78
|
+
throw new Error(`Refusing to delete ${name} without confirmation`);
|
|
79
|
+
const zoneId = (await zone(domain)).id;
|
|
80
|
+
const query = new URLSearchParams({ name });
|
|
81
|
+
const found = await cf(`/zones/${zoneId}/dns_records?${query}`);
|
|
82
|
+
for (const record of found) {
|
|
83
|
+
await cf(`/zones/${zoneId}/dns_records/${record.id}`, { method: "DELETE" });
|
|
84
|
+
}
|
|
85
|
+
return found.length;
|
|
86
|
+
},
|
|
68
87
|
async status() {
|
|
69
88
|
return probe("cloudflare", async () => {
|
|
70
89
|
const z = await zones();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../../src/admin/services/cloudflare.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cloudflare.js","sourceRoot":"","sources":["../../../src/admin/services/cloudflare.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
import { type ServiceAccess, type ServiceStatus } from "../../services/types.ts";
|
|
2
|
+
/** A pull request, as much of one as anything here needs. */
|
|
3
|
+
export interface PullRequest {
|
|
4
|
+
number: number;
|
|
5
|
+
html_url: string;
|
|
6
|
+
}
|
|
2
7
|
export interface Repo {
|
|
3
8
|
name: string;
|
|
4
9
|
full_name: string;
|
|
@@ -9,6 +14,7 @@ export interface Repo {
|
|
|
9
14
|
export declare function github(token: string): {
|
|
10
15
|
login: () => Promise<string>;
|
|
11
16
|
readFile: (fullName: string, path: string) => Promise<string>;
|
|
17
|
+
readBinaryFile: (fullName: string, path: string) => Promise<string>;
|
|
12
18
|
listFiles: (fullName: string, dir: string) => Promise<string[]>;
|
|
13
19
|
commitFiles: (fullName: string, o: {
|
|
14
20
|
branch: string;
|
|
@@ -16,6 +22,7 @@ export declare function github(token: string): {
|
|
|
16
22
|
files: {
|
|
17
23
|
path: string;
|
|
18
24
|
content: string;
|
|
25
|
+
encoding?: "base64";
|
|
19
26
|
}[];
|
|
20
27
|
}) => Promise<string>;
|
|
21
28
|
listRepos: (affiliation?: string) => Promise<Repo[]>;
|
|
@@ -30,7 +37,14 @@ export declare function github(token: string): {
|
|
|
30
37
|
deleteRepo: (fullName: string, o: {
|
|
31
38
|
confirmed: true;
|
|
32
39
|
}) => Promise<void>;
|
|
40
|
+
branches: (fullName: string) => Promise<string[]>;
|
|
33
41
|
createBranch: (fullName: string, branch: string, from: string) => Promise<void>;
|
|
42
|
+
createPullRequest: (fullName: string, o: {
|
|
43
|
+
title: string;
|
|
44
|
+
body: string;
|
|
45
|
+
head: string;
|
|
46
|
+
base: string;
|
|
47
|
+
}) => Promise<PullRequest>;
|
|
34
48
|
status(): Promise<ServiceStatus>;
|
|
35
49
|
access(): Promise<ServiceAccess>;
|
|
36
50
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../src/admin/services/github.ts"],"names":[],"mappings":"AAYA,OAAO,EAAsB,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAKrG,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAaD,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM;;
|
|
1
|
+
{"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../src/admin/services/github.ts"],"names":[],"mappings":"AAYA,OAAO,EAAsB,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAKrG,6DAA6D;AAC7D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAaD,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM;;yBAuKA,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;+BAThC,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;0BAmB3C,MAAM,OAAO,MAAM,KAAG,OAAO,CAAC,MAAM,EAAE,CAAC;4BAsB9D,MAAM,KACb;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;SAAE,EAAE,CAAA;KAAE,KACtG,OAAO,CAAC,MAAM,CAAC;yCArMmD,OAAO,CAAC,IAAI,EAAE,CAAC;2BAYlD,OAAO,CAAC,IAAI,EAAE,CAAC;yBAaf,MAAM,KAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;uBAqBpC,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC;uBA0BxE,MAAM,MACT;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAC3D,OAAO,CAAC,IAAI,CAAC;2BA6BoB,MAAM,KAAK;QAAE,SAAS,EAAE,IAAI,CAAA;KAAE,KAAG,OAAO,CAAC,IAAI,CAAC;yBAWhD,MAAM,KAAG,OAAO,CAAC,MAAM,EAAE,CAAC;6BAItB,MAAM,UAAU,MAAM,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;kCAgB9E,MAAM,KACb;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAC7D,OAAO,CAAC,WAAW,CAAC;cA+GL,OAAO,CAAC,aAAa,CAAC;cAStB,OAAO,CAAC,aAAa,CAAC;EAgCzC"}
|
|
@@ -128,6 +128,14 @@ export function github(token) {
|
|
|
128
128
|
throw new Error(`Refusing to delete ${fullName} without confirmation`);
|
|
129
129
|
await request(`${GH}/repos/${fullName}`, { ...opts, method: "DELETE" });
|
|
130
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Every branch on the repository, by name.
|
|
133
|
+
*
|
|
134
|
+
* Asked for before creating any, so a repository that already has `staging`
|
|
135
|
+
* is left alone rather than answered with a 422 that reads like a failure.
|
|
136
|
+
*/
|
|
137
|
+
const branches = async (fullName) => (await request(`${GH}/repos/${fullName}/branches?per_page=100`, opts))
|
|
138
|
+
.map((b) => b.name);
|
|
131
139
|
async function createBranch(fullName, branch, from) {
|
|
132
140
|
const ref = await request(`${GH}/repos/${fullName}/git/ref/heads/${from}`, opts);
|
|
133
141
|
await request(`${GH}/repos/${fullName}/git/refs`, {
|
|
@@ -135,7 +143,37 @@ export function github(token) {
|
|
|
135
143
|
body: { ref: `refs/heads/${branch}`, sha: ref.object.sha },
|
|
136
144
|
});
|
|
137
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* Open a pull request, or hand back the one already open for this branch.
|
|
148
|
+
*
|
|
149
|
+
* Idempotent like everything else here: a run that died after pushing the
|
|
150
|
+
* branch has to be safe to repeat, and GitHub answers a second identical
|
|
151
|
+
* request with a 422 rather than with the pull request that already exists.
|
|
152
|
+
*/
|
|
153
|
+
async function createPullRequest(fullName, o) {
|
|
154
|
+
const [owner] = fullName.split("/");
|
|
155
|
+
const query = new URLSearchParams({ head: `${owner}:${o.head}`, base: o.base, state: "open" });
|
|
156
|
+
const [open] = await request(`${GH}/repos/${fullName}/pulls?${query}`, opts);
|
|
157
|
+
if (open)
|
|
158
|
+
return open;
|
|
159
|
+
return await request(`${GH}/repos/${fullName}/pulls`, {
|
|
160
|
+
...opts, method: "POST", body: o,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
138
163
|
/** One file's contents, decoded. Throws when it is not there. */
|
|
164
|
+
/**
|
|
165
|
+
* A file's bytes, base64 as GitHub stores them.
|
|
166
|
+
*
|
|
167
|
+
* `readFile` decodes to UTF-8, which is right for source and destroys
|
|
168
|
+
* anything else: a PNG read that way and written back is noise. Images and
|
|
169
|
+
* fonts go through here instead and are never decoded at all.
|
|
170
|
+
*/
|
|
171
|
+
async function readBinaryFile(fullName, path) {
|
|
172
|
+
const res = await request(`${GH}/repos/${fullName}/contents/${path.split("/").map(encodeURIComponent).join("/")}`, opts);
|
|
173
|
+
if (!res.content)
|
|
174
|
+
throw new Error(`${fullName}:${path} is not a file`);
|
|
175
|
+
return res.content.replace(/\n/g, "");
|
|
176
|
+
}
|
|
139
177
|
async function readFile(fullName, path) {
|
|
140
178
|
const res = await request(`${GH}/repos/${fullName}/contents/${path.split("/").map(encodeURIComponent).join("/")}`, opts);
|
|
141
179
|
if (!res.content)
|
|
@@ -169,7 +207,12 @@ export function github(token) {
|
|
|
169
207
|
const tree = await Promise.all(o.files.map(async (f) => {
|
|
170
208
|
const blob = await request(`${GH}/repos/${fullName}/git/blobs`, {
|
|
171
209
|
...opts, method: "POST",
|
|
172
|
-
|
|
210
|
+
// Already base64 when the file is not text; encoding it again would
|
|
211
|
+
// store the encoding rather than the image.
|
|
212
|
+
body: {
|
|
213
|
+
content: f.encoding === "base64" ? f.content : Buffer.from(f.content, "utf8").toString("base64"),
|
|
214
|
+
encoding: "base64",
|
|
215
|
+
},
|
|
173
216
|
});
|
|
174
217
|
return { path: f.path, mode: "100644", type: "blob", sha: blob.sha };
|
|
175
218
|
}));
|
|
@@ -188,6 +231,7 @@ export function github(token) {
|
|
|
188
231
|
return {
|
|
189
232
|
login,
|
|
190
233
|
readFile,
|
|
234
|
+
readBinaryFile,
|
|
191
235
|
listFiles,
|
|
192
236
|
commitFiles,
|
|
193
237
|
listRepos,
|
|
@@ -196,7 +240,9 @@ export function github(token) {
|
|
|
196
240
|
findRepoFor,
|
|
197
241
|
createRepo,
|
|
198
242
|
deleteRepo,
|
|
243
|
+
branches,
|
|
199
244
|
createBranch,
|
|
245
|
+
createPullRequest,
|
|
200
246
|
async status() {
|
|
201
247
|
return probe("github", async () => {
|
|
202
248
|
const me = await request(`${GH}/user`, opts);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../src/admin/services/github.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAoB,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,WAAW,EAA0C,MAAM,yBAAyB,CAAC;AAErG,MAAM,EAAE,GAAG,wBAAwB,CAAC;AACpC,MAAM,OAAO,GAAG,EAAE,sBAAsB,EAAE,YAAY,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../src/admin/services/github.ts"],"names":[],"mappings":"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"}
|