@mmnto/cli 2.0.0 → 2.2.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/commands/describe.d.ts +13 -1
- package/dist/commands/describe.d.ts.map +1 -1
- package/dist/commands/describe.js +29 -1
- package/dist/commands/describe.js.map +1 -1
- package/dist/commands/describe.test.js +86 -3
- package/dist/commands/describe.test.js.map +1 -1
- package/dist/commands/doctor-parity-fetch.d.ts +93 -2
- package/dist/commands/doctor-parity-fetch.d.ts.map +1 -1
- package/dist/commands/doctor-parity-fetch.js +332 -11
- package/dist/commands/doctor-parity-fetch.js.map +1 -1
- package/dist/commands/doctor-parity-fetch.test.d.ts +6 -0
- package/dist/commands/doctor-parity-fetch.test.d.ts.map +1 -1
- package/dist/commands/doctor-parity-fetch.test.js +405 -1
- package/dist/commands/doctor-parity-fetch.test.js.map +1 -1
- package/dist/commands/doctor-parity.d.ts.map +1 -1
- package/dist/commands/doctor-parity.js +27 -1
- package/dist/commands/doctor-parity.js.map +1 -1
- package/dist/commands/doctor-parity.test.js +67 -0
- package/dist/commands/doctor-parity.test.js.map +1 -1
- package/dist/commands/eject-gate-needle.test.d.ts +2 -0
- package/dist/commands/eject-gate-needle.test.d.ts.map +1 -0
- package/dist/commands/eject-gate-needle.test.js +48 -0
- package/dist/commands/eject-gate-needle.test.js.map +1 -0
- package/dist/commands/eject.d.ts +10 -0
- package/dist/commands/eject.d.ts.map +1 -1
- package/dist/commands/eject.js +67 -12
- package/dist/commands/eject.js.map +1 -1
- package/dist/commands/eject.test.js +113 -0
- package/dist/commands/eject.test.js.map +1 -1
- package/dist/commands/gate-install.d.ts +37 -5
- package/dist/commands/gate-install.d.ts.map +1 -1
- package/dist/commands/gate-install.js +26 -38
- package/dist/commands/gate-install.js.map +1 -1
- package/dist/commands/gate-install.test.js +294 -48
- package/dist/commands/gate-install.test.js.map +1 -1
- package/dist/commands/gate.d.ts +24 -9
- package/dist/commands/gate.d.ts.map +1 -1
- package/dist/commands/gate.js +36 -17
- package/dist/commands/gate.js.map +1 -1
- package/dist/commands/gate.test.js +74 -3
- package/dist/commands/gate.test.js.map +1 -1
- package/dist/commands/host-hooks.d.ts +8 -2
- package/dist/commands/host-hooks.d.ts.map +1 -1
- package/dist/commands/host-hooks.js.map +1 -1
- package/dist/commands/init-templates.d.ts +3 -3
- package/dist/commands/init-templates.d.ts.map +1 -1
- package/dist/commands/init-templates.js +107 -48
- package/dist/commands/init-templates.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +20 -16
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/install-hooks.d.ts.map +1 -1
- package/dist/commands/install-hooks.js +159 -27
- package/dist/commands/install-hooks.js.map +1 -1
- package/dist/commands/install-hooks.test.js +460 -12
- package/dist/commands/install-hooks.test.js.map +1 -1
- package/dist/commands/legs.d.ts +35 -7
- package/dist/commands/legs.d.ts.map +1 -1
- package/dist/commands/legs.js +26 -7
- package/dist/commands/legs.js.map +1 -1
- package/dist/commands/legs.test.js +87 -0
- package/dist/commands/legs.test.js.map +1 -1
- package/dist/commands/release-train-shape.test.d.ts +2 -0
- package/dist/commands/release-train-shape.test.d.ts.map +1 -0
- package/dist/commands/release-train-shape.test.js +226 -0
- package/dist/commands/release-train-shape.test.js.map +1 -0
- package/dist/commands/tools-hook-parity.test.js +200 -0
- package/dist/commands/tools-hook-parity.test.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -24,9 +24,38 @@
|
|
|
24
24
|
* JSON and NEVER spawn `gh`. The default spawns `gh api` via `safeExec` (arg
|
|
25
25
|
* arrays, no `shell: true`, bounded timeout) — the git-subprocess pattern the
|
|
26
26
|
* core detectors already use.
|
|
27
|
+
*
|
|
28
|
+
* The two 472-charter orientation rows (mmnto-ai/totem#2791) join the same
|
|
29
|
+
* family here: `gh-issue-label-canon` adds a paginated REST label walk plus the
|
|
30
|
+
* roster-wide canon text ({@link resolveLabelCanon}), and
|
|
31
|
+
* `gh-project-vocabulary` adds a second read-only transport ({@link GhGraphql})
|
|
32
|
+
* for the bound project's single-select fields. Both keep the §14 edges above:
|
|
33
|
+
* read-only, per-surface honest degradation, no retries, never partial.
|
|
27
34
|
*/
|
|
35
|
+
import * as fs from 'node:fs';
|
|
36
|
+
import * as path from 'node:path';
|
|
28
37
|
/** Bounded per-request `gh api` timeout (mirrors orient's GH adapters). */
|
|
29
38
|
const GH_TIMEOUT_MS = 15_000;
|
|
39
|
+
/** Page size for the labels REST walk (the API max). */
|
|
40
|
+
const LABELS_PER_PAGE = 100;
|
|
41
|
+
/**
|
|
42
|
+
* Hard ceiling on the labels walk. Beyond it the WHOLE surface degrades to
|
|
43
|
+
* `error` — never a partial list (the rulesets-boundary precedent: an
|
|
44
|
+
* undercount would let the detector certify conformance from a truncated read).
|
|
45
|
+
*/
|
|
46
|
+
const LABELS_MAX_PAGES = 10;
|
|
47
|
+
/** `first:` page size for the project single-select field read. */
|
|
48
|
+
const PROJECT_FIELDS_FIRST = 50;
|
|
49
|
+
/** The repo owning the canonical label script. */
|
|
50
|
+
const LABEL_CANON_REPO = 'mmnto-ai/totem';
|
|
51
|
+
/** The canonical label script's repo-relative path. */
|
|
52
|
+
const LABEL_CANON_PATH = 'scripts/sync-labels.ps1';
|
|
53
|
+
/** Detail prefix for a failed canonical (non-local) canon fetch. */
|
|
54
|
+
const LABEL_CANON_FETCH_PREFIX = `canonical fetch ${LABEL_CANON_REPO}:${LABEL_CANON_PATH}: `;
|
|
55
|
+
/** Short-sha length used in the canon's provenance detail. */
|
|
56
|
+
const CANON_SHA_LENGTH = 7;
|
|
57
|
+
/** Max chars of a GraphQL error message carried into a surface detail. */
|
|
58
|
+
const GRAPHQL_DETAIL_MAX = 120;
|
|
30
59
|
/**
|
|
31
60
|
* The registry mapping a capability-probe contract id to its network-posture
|
|
32
61
|
* row kind (mirrors `capabilityProbesFor` with a `default: undefined` → the
|
|
@@ -38,22 +67,43 @@ const NETWORK_POSTURE_ROW_IDS = {
|
|
|
38
67
|
'repo-merge-posture': 'repo-merge-posture',
|
|
39
68
|
'repo-required-checks-posture': 'repo-required-checks-posture',
|
|
40
69
|
'repo-branch-protection-posture': 'repo-branch-protection-posture',
|
|
70
|
+
'gh-issue-label-canon': 'gh-issue-label-canon',
|
|
71
|
+
'gh-project-vocabulary': 'gh-project-vocabulary',
|
|
41
72
|
};
|
|
42
73
|
/** Resolve a contract id to its network-posture row kind, or undefined when unregistered. */
|
|
43
74
|
export function networkPostureRowFor(contractId) {
|
|
44
75
|
return NETWORK_POSTURE_ROW_IDS[contractId];
|
|
45
76
|
}
|
|
77
|
+
/** A zero need — the per-repo accumulator's starting point. */
|
|
78
|
+
function noSurfaceNeed() {
|
|
79
|
+
return {
|
|
80
|
+
repoSettings: false,
|
|
81
|
+
rulesets: false,
|
|
82
|
+
branchProtection: false,
|
|
83
|
+
labels: false,
|
|
84
|
+
projectFields: false,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/** True when at least one surface is needed. */
|
|
88
|
+
function anySurfaceNeeded(need) {
|
|
89
|
+
return (need.repoSettings || need.rulesets || need.branchProtection || need.labels || need.projectFields);
|
|
90
|
+
}
|
|
46
91
|
/** Per-row surface requirements. */
|
|
47
92
|
function surfaceNeedsFor(row) {
|
|
93
|
+
const need = noSurfaceNeed();
|
|
48
94
|
switch (row) {
|
|
49
95
|
case 'repo-merge-posture':
|
|
50
|
-
return { repoSettings: true
|
|
96
|
+
return { ...need, repoSettings: true };
|
|
51
97
|
case 'repo-required-checks-posture':
|
|
52
|
-
return {
|
|
98
|
+
return { ...need, rulesets: true };
|
|
53
99
|
case 'repo-branch-protection-posture':
|
|
54
|
-
return {
|
|
100
|
+
return { ...need, rulesets: true, branchProtection: true };
|
|
101
|
+
case 'gh-issue-label-canon':
|
|
102
|
+
return { ...need, labels: true };
|
|
103
|
+
case 'gh-project-vocabulary':
|
|
104
|
+
return { ...need, projectFields: true };
|
|
55
105
|
default:
|
|
56
|
-
return
|
|
106
|
+
return need;
|
|
57
107
|
}
|
|
58
108
|
}
|
|
59
109
|
/**
|
|
@@ -73,38 +123,71 @@ export async function resolveNetworkSnapshots(options) {
|
|
|
73
123
|
// never invoked, so no `gh`/`git` subprocess runs.
|
|
74
124
|
const { safeExec } = await import('@mmnto/totem');
|
|
75
125
|
const ghFetch = options.ghFetch ?? makeDefaultGhFetch(safeExec);
|
|
126
|
+
const ghGraphql = options.ghGraphql ?? makeDefaultGhGraphql(safeExec);
|
|
76
127
|
const readRemote = options.readRemote ?? makeDefaultReadRemote(safeExec);
|
|
77
128
|
const roster = resolveRoster(options, readRemote);
|
|
78
129
|
const snapshots = [];
|
|
79
130
|
for (const entry of roster) {
|
|
80
131
|
// Per-repo needed surfaces = union over the rows in scope for THIS repo
|
|
81
132
|
// (a `consumers: [totem]` row contributes its surfaces only to totem).
|
|
82
|
-
const need =
|
|
133
|
+
const need = noSurfaceNeed();
|
|
134
|
+
let vocabularyInScope = false;
|
|
83
135
|
for (const spec of options.rows) {
|
|
84
136
|
if (spec.consumers !== undefined && !spec.consumers.includes(entry.repoId))
|
|
85
137
|
continue;
|
|
138
|
+
if (spec.row === 'gh-project-vocabulary')
|
|
139
|
+
vocabularyInScope = true;
|
|
86
140
|
const rowNeed = surfaceNeedsFor(spec.row);
|
|
87
141
|
need.repoSettings ||= rowNeed.repoSettings;
|
|
88
142
|
need.rulesets ||= rowNeed.rulesets;
|
|
89
143
|
need.branchProtection ||= rowNeed.branchProtection;
|
|
144
|
+
need.labels ||= rowNeed.labels;
|
|
145
|
+
need.projectFields ||= rowNeed.projectFields;
|
|
90
146
|
}
|
|
91
|
-
|
|
147
|
+
// The project BINDING is part of the snapshot only when the vocabulary row
|
|
148
|
+
// is in scope here — every other snapshot keeps its exact prior shape.
|
|
149
|
+
const project = vocabularyInScope ? projectBindingFor(entry, options.projectNumber) : undefined;
|
|
150
|
+
// Only a BOUND project is addressable: an unbound current repo / a sibling
|
|
151
|
+
// renders honest-absent in the detector, so nothing is read for it.
|
|
152
|
+
if (project?.kind !== 'bound')
|
|
153
|
+
need.projectFields = false;
|
|
154
|
+
// A repo whose only in-scope row is the vocabulary row still gets a
|
|
155
|
+
// snapshot (binding, no surfaces) so the detector can render its line.
|
|
156
|
+
if (!anySurfaceNeeded(need) && project === undefined)
|
|
92
157
|
continue;
|
|
93
158
|
snapshots.push({
|
|
94
159
|
repoSlug: entry.repoSlug,
|
|
95
160
|
repoId: entry.repoId,
|
|
96
|
-
surfaces: fetchSurfaces(entry.repoSlug, need, ghFetch, options.gitRoot),
|
|
161
|
+
surfaces: fetchSurfaces(entry.repoSlug, need, ghFetch, ghGraphql, options.gitRoot, project),
|
|
162
|
+
...(project !== undefined ? { project } : {}),
|
|
97
163
|
});
|
|
98
164
|
}
|
|
99
165
|
return snapshots;
|
|
100
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* The project binding for one roster repo: the current repo binds
|
|
169
|
+
* `orient.projectNumber` under its own owner; an unset number is `unbound`; a
|
|
170
|
+
* cross-repo probe is `sibling` (its binding lives in ITS checkout's config,
|
|
171
|
+
* which this doctor does not read).
|
|
172
|
+
*/
|
|
173
|
+
function projectBindingFor(entry, projectNumber) {
|
|
174
|
+
if (!entry.current)
|
|
175
|
+
return { kind: 'sibling' };
|
|
176
|
+
if (projectNumber === undefined)
|
|
177
|
+
return { kind: 'unbound' };
|
|
178
|
+
return { kind: 'bound', owner: ownerSegment(entry.repoSlug), number: projectNumber };
|
|
179
|
+
}
|
|
101
180
|
/** Build the roster: the current repo (local-remote-derived) plus any opt-in cross-repo slugs. */
|
|
102
181
|
function resolveRoster(options, readRemote) {
|
|
103
182
|
const entries = [];
|
|
104
183
|
const seen = new Set();
|
|
105
184
|
const currentSlug = deriveCurrentSlug(options, readRemote);
|
|
106
185
|
if (currentSlug !== undefined) {
|
|
107
|
-
entries.push({
|
|
186
|
+
entries.push({
|
|
187
|
+
repoSlug: currentSlug,
|
|
188
|
+
repoId: options.repoId ?? repoSegment(currentSlug),
|
|
189
|
+
current: true,
|
|
190
|
+
});
|
|
108
191
|
seen.add(currentSlug);
|
|
109
192
|
}
|
|
110
193
|
for (const raw of options.probeRepos ?? []) {
|
|
@@ -112,7 +195,7 @@ function resolveRoster(options, readRemote) {
|
|
|
112
195
|
if (slug.length === 0 || seen.has(slug))
|
|
113
196
|
continue;
|
|
114
197
|
// A cross-repo entry's cohort id is the repo segment of its own slug.
|
|
115
|
-
entries.push({ repoSlug: slug, repoId: repoSegment(slug) });
|
|
198
|
+
entries.push({ repoSlug: slug, repoId: repoSegment(slug), current: false });
|
|
116
199
|
seen.add(slug);
|
|
117
200
|
}
|
|
118
201
|
return entries;
|
|
@@ -134,16 +217,25 @@ function repoSegment(slug) {
|
|
|
134
217
|
const parts = slug.split('/');
|
|
135
218
|
return parts[parts.length - 1] ?? slug;
|
|
136
219
|
}
|
|
220
|
+
/** The owner segment of an `owner/repo` slug (the GH Project's org login). */
|
|
221
|
+
function ownerSegment(slug) {
|
|
222
|
+
const parts = slug.split('/');
|
|
223
|
+
return parts[0] ?? slug;
|
|
224
|
+
}
|
|
137
225
|
/**
|
|
138
226
|
* Extract `owner/repo` from an ssh (`git@host:owner/repo.git`) or https
|
|
139
227
|
* (`https://host/owner/repo.git`) remote URL, tolerating a trailing `.git` and
|
|
140
|
-
* slashes.
|
|
228
|
+
* slashes in either order (`…/totem.git/` too — falsification pass 5, p5-F5).
|
|
229
|
+
* The HOST is not part of the result: a mirror at the same `owner/repo` path
|
|
230
|
+
* yields the same slug, the same host-blindness the cohort-id derivation has.
|
|
231
|
+
* Returns undefined when no `owner/repo` pair resolves.
|
|
141
232
|
*/
|
|
142
233
|
export function slugFromRemoteUrl(remoteUrl) {
|
|
143
234
|
if (typeof remoteUrl !== 'string' || remoteUrl.trim().length === 0)
|
|
144
235
|
return undefined;
|
|
145
236
|
const trimmed = remoteUrl
|
|
146
237
|
.trim()
|
|
238
|
+
.replace(/\/+$/, '')
|
|
147
239
|
.replace(/\.git$/i, '')
|
|
148
240
|
.replace(/\/+$/, '');
|
|
149
241
|
const match = /[/:]([^/:]+)\/([^/]+)$/.exec(trimmed);
|
|
@@ -157,7 +249,7 @@ export function slugFromRemoteUrl(remoteUrl) {
|
|
|
157
249
|
return `${owner}/${repo}`;
|
|
158
250
|
}
|
|
159
251
|
/** Fetch the union of needed surfaces for one repo. */
|
|
160
|
-
function fetchSurfaces(slug, need, ghFetch, cwd) {
|
|
252
|
+
function fetchSurfaces(slug, need, ghFetch, ghGraphql, cwd, project) {
|
|
161
253
|
const surfaces = {};
|
|
162
254
|
// Repo settings double as the source of `default_branch` for classic branch
|
|
163
255
|
// protection, so fetch it whenever either surface is needed.
|
|
@@ -174,6 +266,14 @@ function fetchSurfaces(slug, need, ghFetch, cwd) {
|
|
|
174
266
|
if (need.branchProtection) {
|
|
175
267
|
surfaces.branchProtection = fetchBranchProtectionSurface(slug, repoResult, ghFetch, cwd);
|
|
176
268
|
}
|
|
269
|
+
if (need.labels) {
|
|
270
|
+
surfaces.labels = fetchLabelsSurface(slug, ghFetch, cwd);
|
|
271
|
+
}
|
|
272
|
+
// `need.projectFields` is already gated on a BOUND binding by the caller; the
|
|
273
|
+
// narrowing here is what carries owner/number into the query.
|
|
274
|
+
if (need.projectFields && project !== undefined && project.kind === 'bound') {
|
|
275
|
+
surfaces.projectFields = fetchProjectFieldsSurface(project.owner, project.number, ghGraphql, cwd);
|
|
276
|
+
}
|
|
177
277
|
return surfaces;
|
|
178
278
|
}
|
|
179
279
|
/** Narrow a {@link GhFetchResult} to a {@link NetworkSurfaceSnapshot}. */
|
|
@@ -277,6 +377,100 @@ function defaultBranchOf(data) {
|
|
|
277
377
|
const branch = data.default_branch;
|
|
278
378
|
return typeof branch === 'string' && branch.length > 0 ? branch : undefined;
|
|
279
379
|
}
|
|
380
|
+
/**
|
|
381
|
+
* The labels surface: walk `GET /repos/<slug>/labels?per_page=100&page=N` until
|
|
382
|
+
* a page returns fewer than a full page. NEVER partial — a non-ok page
|
|
383
|
+
* propagates its outcome, a non-array page degrades, and a walk that reaches the
|
|
384
|
+
* page cap degrades the WHOLE surface (an undercount would let the detector
|
|
385
|
+
* certify canon-conformance from a truncated list).
|
|
386
|
+
*/
|
|
387
|
+
function fetchLabelsSurface(slug, ghFetch, cwd) {
|
|
388
|
+
const all = [];
|
|
389
|
+
for (let page = 1; page <= LABELS_MAX_PAGES; page += 1) {
|
|
390
|
+
const result = ghFetch(`/repos/${slug}/labels?per_page=${LABELS_PER_PAGE}&page=${page}`, cwd);
|
|
391
|
+
if (result.outcome !== 'ok')
|
|
392
|
+
return toSnapshot(result);
|
|
393
|
+
if (!Array.isArray(result.data)) {
|
|
394
|
+
return { outcome: 'error', detail: 'unparseable labels page' };
|
|
395
|
+
}
|
|
396
|
+
all.push(...result.data);
|
|
397
|
+
if (result.data.length < LABELS_PER_PAGE)
|
|
398
|
+
return { outcome: 'ok', data: all };
|
|
399
|
+
}
|
|
400
|
+
return {
|
|
401
|
+
outcome: 'error',
|
|
402
|
+
detail: `label list exceeds ${LABELS_MAX_PAGES * LABELS_PER_PAGE} — cannot certify`,
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* The bound project's single-select vocabulary. `hasNextPage` rides in the body
|
|
407
|
+
* so the detector (not this edge) decides that an overflowed field list cannot
|
|
408
|
+
* certify — the edge stays a transport.
|
|
409
|
+
*/
|
|
410
|
+
const PROJECT_FIELDS_QUERY = `query($org: String!, $number: Int!) { organization(login: $org) { projectV2(number: $number) { title fields(first: ${PROJECT_FIELDS_FIRST}) { pageInfo { hasNextPage } nodes { ... on ProjectV2SingleSelectField { name options { name } } } } } } }`;
|
|
411
|
+
/** Read the bound project's single-select fields (one GraphQL query). */
|
|
412
|
+
function fetchProjectFieldsSurface(owner, number, ghGraphql, cwd) {
|
|
413
|
+
return toSnapshot(ghGraphql(PROJECT_FIELDS_QUERY, { org: owner, number }, cwd));
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Resolve the ROSTER-WIDE label canon: the TEXT of
|
|
417
|
+
* `mmnto-ai/totem:scripts/sync-labels.ps1`, plus a `detail` naming its
|
|
418
|
+
* provenance. In the canon repository's own checkout (origin exactly
|
|
419
|
+
* `mmnto-ai/totem`) the file is local (no network, no rate limit); every other
|
|
420
|
+
* checkout — every other cohort repo AND every fork — reads the canonical blob
|
|
421
|
+
* over the contents API and discloses the blob sha. Parsing happens in core
|
|
422
|
+
* (Tenet 20) — this only resolves TEXT. Never throws: an unreadable canon is a
|
|
423
|
+
* cannot-verify outcome.
|
|
424
|
+
*/
|
|
425
|
+
export function resolveLabelCanon(options) {
|
|
426
|
+
if (options.currentSlug === LABEL_CANON_REPO) {
|
|
427
|
+
const readFile = options.readFile ?? ((absPath) => fs.readFileSync(absPath, 'utf-8'));
|
|
428
|
+
try {
|
|
429
|
+
const text = readFile(path.join(options.gitRoot, ...LABEL_CANON_PATH.split('/')));
|
|
430
|
+
return { outcome: 'ok', data: text, detail: `local checkout ${LABEL_CANON_PATH}` };
|
|
431
|
+
// totem-context: an absent/unreadable script in this checkout is a cannot-verify outcome for the canon (the detector renders `unknown`), never a throw and never a conformance verdict.
|
|
432
|
+
}
|
|
433
|
+
catch (err) {
|
|
434
|
+
void err;
|
|
435
|
+
return { outcome: 'error', detail: `local checkout ${LABEL_CANON_PATH} unreadable` };
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
const ghFetch = options.ghFetch;
|
|
439
|
+
if (ghFetch === undefined) {
|
|
440
|
+
return { outcome: 'no-transport', detail: `${LABEL_CANON_FETCH_PREFIX}no transport` };
|
|
441
|
+
}
|
|
442
|
+
const result = ghFetch(`/repos/${LABEL_CANON_REPO}/contents/${LABEL_CANON_PATH}`, options.gitRoot);
|
|
443
|
+
if (result.outcome !== 'ok') {
|
|
444
|
+
return {
|
|
445
|
+
outcome: result.outcome,
|
|
446
|
+
detail: `${LABEL_CANON_FETCH_PREFIX}${result.detail ?? result.outcome}`,
|
|
447
|
+
};
|
|
448
|
+
}
|
|
449
|
+
const contents = narrowContentsResponse(result.data);
|
|
450
|
+
if (contents === undefined) {
|
|
451
|
+
return { outcome: 'error', detail: 'unparseable contents response' };
|
|
452
|
+
}
|
|
453
|
+
// The API wraps the base64 payload at 60 columns and the script itself is
|
|
454
|
+
// CRLF — `Buffer.from(…, 'base64')` skips the wrapping newlines and the
|
|
455
|
+
// decoded bytes keep their own line endings verbatim.
|
|
456
|
+
const text = Buffer.from(contents.content, 'base64').toString('utf8');
|
|
457
|
+
return {
|
|
458
|
+
outcome: 'ok',
|
|
459
|
+
data: text,
|
|
460
|
+
detail: `${LABEL_CANON_REPO}:${LABEL_CANON_PATH}@${contents.sha.slice(0, CANON_SHA_LENGTH)}`,
|
|
461
|
+
};
|
|
462
|
+
}
|
|
463
|
+
/** Narrow a contents-API 200 to the base64 payload we can decode, else undefined. */
|
|
464
|
+
function narrowContentsResponse(data) {
|
|
465
|
+
if (typeof data !== 'object' || data === null)
|
|
466
|
+
return undefined;
|
|
467
|
+
const body = data;
|
|
468
|
+
if (body.encoding !== 'base64')
|
|
469
|
+
return undefined;
|
|
470
|
+
if (typeof body.content !== 'string' || typeof body.sha !== 'string')
|
|
471
|
+
return undefined;
|
|
472
|
+
return { content: body.content, sha: body.sha };
|
|
473
|
+
}
|
|
280
474
|
/**
|
|
281
475
|
* Build the default {@link GhFetch}: spawn `gh api <path>` via `safeExec` (arg
|
|
282
476
|
* array, no shell, bounded timeout) and classify the outcome. `safeExec` is
|
|
@@ -306,6 +500,133 @@ function makeDefaultGhFetch(safeExec) {
|
|
|
306
500
|
}
|
|
307
501
|
};
|
|
308
502
|
}
|
|
503
|
+
/**
|
|
504
|
+
* Build the production {@link GhFetch} for callers OUTSIDE
|
|
505
|
+
* {@link resolveNetworkSnapshots} (e.g. the label-canon resolution in
|
|
506
|
+
* `doctor-parity.ts`). Async only because `safeExec` is lazily imported — the
|
|
507
|
+
* returned transport is synchronous, and NOTHING spawns until it is called, so
|
|
508
|
+
* a test that never calls it never touches `gh`.
|
|
509
|
+
*/
|
|
510
|
+
export async function defaultGhFetch() {
|
|
511
|
+
const { safeExec } = await import('@mmnto/totem');
|
|
512
|
+
return makeDefaultGhFetch(safeExec);
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* The current repo's `owner/repo` slug from its LOCAL `origin` remote, for
|
|
516
|
+
* callers outside {@link resolveNetworkSnapshots} (the label-canon source
|
|
517
|
+
* selection in `doctor-parity.ts`). No network: one `git remote get-url`
|
|
518
|
+
* read, degraded to `undefined` when there is no remote, no git, or no
|
|
519
|
+
* parseable `owner/repo`. Async only for the lazy `safeExec` import.
|
|
520
|
+
*/
|
|
521
|
+
export async function defaultCurrentSlug(gitRoot) {
|
|
522
|
+
const { safeExec } = await import('@mmnto/totem');
|
|
523
|
+
return slugFromRemoteUrl(makeDefaultReadRemote(safeExec)(gitRoot));
|
|
524
|
+
}
|
|
525
|
+
/**
|
|
526
|
+
* Build the default {@link GhGraphql}: `gh api graphql -f query=… -f/-F k=v`
|
|
527
|
+
* (a `-F` variable is sent typed, which the `$number: Int!` argument requires).
|
|
528
|
+
* Read-only like the REST default; a spawn/HTTP failure classifies through
|
|
529
|
+
* {@link classifyGhError}, and a 200 body classifies through
|
|
530
|
+
* {@link classifyGraphqlBody}.
|
|
531
|
+
*/
|
|
532
|
+
function makeDefaultGhGraphql(safeExec) {
|
|
533
|
+
return (query, variables, cwd) => {
|
|
534
|
+
const args = ['api', 'graphql', '-f', `query=${query}`];
|
|
535
|
+
for (const [key, value] of Object.entries(variables)) {
|
|
536
|
+
args.push(typeof value === 'number' ? '-F' : '-f', `${key}=${value}`);
|
|
537
|
+
}
|
|
538
|
+
let raw;
|
|
539
|
+
try {
|
|
540
|
+
raw = safeExec('gh', args, {
|
|
541
|
+
cwd,
|
|
542
|
+
timeout: GH_TIMEOUT_MS,
|
|
543
|
+
env: { ...process.env, GH_PROMPT_DISABLED: '1' },
|
|
544
|
+
});
|
|
545
|
+
// totem-context: a gh failure (no token, 4xx/5xx, offline, gh absent) is classified into a per-surface outcome (§14 clause 2/4), never rethrown — the sensor must degrade honestly, not crash.
|
|
546
|
+
}
|
|
547
|
+
catch (err) {
|
|
548
|
+
return classifyGhError(err);
|
|
549
|
+
}
|
|
550
|
+
let body;
|
|
551
|
+
try {
|
|
552
|
+
body = JSON.parse(raw);
|
|
553
|
+
// totem-context: an unparseable 200 body is a transient `error` outcome (→ unknown), not a throw.
|
|
554
|
+
}
|
|
555
|
+
catch {
|
|
556
|
+
return { outcome: 'error', detail: 'unparseable gh api graphql response' };
|
|
557
|
+
}
|
|
558
|
+
return classifyGraphqlBody(body);
|
|
559
|
+
};
|
|
560
|
+
}
|
|
561
|
+
/**
|
|
562
|
+
* Classify a GraphQL 200 BODY (GraphQL reports authorization + not-found in the
|
|
563
|
+
* body, not the HTTP status). ANY `errors` entry is decisive: GraphQL returns
|
|
564
|
+
* partial data beside its errors (a nested FORBIDDEN, a node-limit hit, a
|
|
565
|
+
* SERVICE_UNAVAILABLE on one field), and a partial field list verdicted as if
|
|
566
|
+
* complete is a drift verdict on a cannot-verify read — the one outcome §14
|
|
567
|
+
* clause 2 forbids (falsification pass 1, F1: a FORBIDDEN body with a half-read
|
|
568
|
+
* project rendered "Priority: field absent"). Pure: no I/O, exported for test.
|
|
569
|
+
*/
|
|
570
|
+
export function classifyGraphqlBody(body) {
|
|
571
|
+
// Decisive on PRESENCE, whatever the shape: a conforming server sends a
|
|
572
|
+
// non-empty list of maps, but a string entry, a null entry, or a bare object
|
|
573
|
+
// must still never read as "no errors" (falsification pass 2, p2-F3).
|
|
574
|
+
if (!graphqlBodyHasErrors(body)) {
|
|
575
|
+
return { outcome: 'ok', data: body };
|
|
576
|
+
}
|
|
577
|
+
const errors = graphqlErrorsOf(body);
|
|
578
|
+
const haystack = errors
|
|
579
|
+
.map((e) => typeof e === 'string'
|
|
580
|
+
? e
|
|
581
|
+
: `${typeof e.message === 'string' ? e.message : ''} ${typeof e.type === 'string' ? e.type : ''}`)
|
|
582
|
+
.join(' ');
|
|
583
|
+
const first = errors.find((e) => (typeof e === 'string' && e.length > 0) ||
|
|
584
|
+
(typeof e !== 'string' && typeof e.message === 'string' && e.message.length > 0));
|
|
585
|
+
const firstMessage = typeof first === 'string'
|
|
586
|
+
? first
|
|
587
|
+
: typeof first?.message === 'string'
|
|
588
|
+
? first.message
|
|
589
|
+
: 'graphql error';
|
|
590
|
+
const detail = firstMessage.slice(0, GRAPHQL_DETAIL_MAX);
|
|
591
|
+
if (/permission|scope|not accessible|FORBIDDEN|INSUFFICIENT_SCOPES/i.test(haystack)) {
|
|
592
|
+
return { outcome: 'auth', detail };
|
|
593
|
+
}
|
|
594
|
+
if (/NOT_FOUND|could not resolve/i.test(haystack)) {
|
|
595
|
+
return { outcome: 'not-found', detail };
|
|
596
|
+
}
|
|
597
|
+
return { outcome: 'error', detail };
|
|
598
|
+
}
|
|
599
|
+
/** True when the body carries an `errors` member that is not an empty list — any shape counts. */
|
|
600
|
+
function graphqlBodyHasErrors(body) {
|
|
601
|
+
if (typeof body !== 'object' || body === null)
|
|
602
|
+
return false;
|
|
603
|
+
const errors = body.errors;
|
|
604
|
+
if (errors === undefined || errors === null)
|
|
605
|
+
return false;
|
|
606
|
+
return !Array.isArray(errors) || errors.length > 0;
|
|
607
|
+
}
|
|
608
|
+
/** The readable `errors` entries of a GraphQL body: maps and bare strings (anything else contributes nothing). */
|
|
609
|
+
function graphqlErrorsOf(body) {
|
|
610
|
+
if (typeof body !== 'object' || body === null)
|
|
611
|
+
return [];
|
|
612
|
+
const errors = body.errors;
|
|
613
|
+
const list = Array.isArray(errors) ? errors : [errors];
|
|
614
|
+
return list.filter((e) => {
|
|
615
|
+
return typeof e === 'string' || (typeof e === 'object' && e !== null);
|
|
616
|
+
});
|
|
617
|
+
}
|
|
618
|
+
/**
|
|
619
|
+
* True when the label-canon row will verdict at least one roster repo — the
|
|
620
|
+
* gate on the roster-wide canon read (falsification pass 1, F7; pass 2, p2-F7).
|
|
621
|
+
* The SAME predicate core applies per repo (`consumers` undefined = every repo),
|
|
622
|
+
* so the canon is read exactly when some line will use it. Pure, exported for test.
|
|
623
|
+
*/
|
|
624
|
+
export function labelCanonNeeded(rows, snapshots) {
|
|
625
|
+
const labelRow = rows.find((s) => s.row === 'gh-issue-label-canon');
|
|
626
|
+
if (labelRow === undefined)
|
|
627
|
+
return false;
|
|
628
|
+
return snapshots.some((snap) => labelRow.consumers === undefined || labelRow.consumers.includes(snap.repoId));
|
|
629
|
+
}
|
|
309
630
|
/**
|
|
310
631
|
* Classify a `gh api` failure into a network-read-only outcome (§14 clause 2/4):
|
|
311
632
|
* - spawn failure (gh absent) → `no-transport` (offline honest-absent).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-parity-fetch.js","sourceRoot":"","sources":["../../src/commands/doctor-parity-fetch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor-parity-fetch.js","sourceRoot":"","sources":["../../src/commands/doctor-parity-fetch.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,12 @@
|
|
|
8
8
|
* opt-in cross-repo, dedup), per-repo surface selection under consumers scoping,
|
|
9
9
|
* the rulesets list→detail assembly, branch-protection default-branch resolution,
|
|
10
10
|
* and the no-remote / no-transport degradations.
|
|
11
|
+
*
|
|
12
|
+
* The two 472-charter orientation rows (mmnto-ai/totem#2791) are covered on the
|
|
13
|
+
* same terms: the label pagination walk, the project BINDING (bound / unbound /
|
|
14
|
+
* sibling) and its GraphQL read behind an injected {@link GhGraphql}, the
|
|
15
|
+
* roster-wide canon resolution (local read vs the canonical contents fetch), and
|
|
16
|
+
* the GraphQL body classifier. No test spawns `gh` for these either.
|
|
11
17
|
*/
|
|
12
18
|
export {};
|
|
13
19
|
//# sourceMappingURL=doctor-parity-fetch.test.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor-parity-fetch.test.d.ts","sourceRoot":"","sources":["../../src/commands/doctor-parity-fetch.test.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"doctor-parity-fetch.test.d.ts","sourceRoot":"","sources":["../../src/commands/doctor-parity-fetch.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
|