@codyswann/lisa 3.51.7 → 3.53.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/cli/doctor-declared-contexts.d.ts +32 -0
- package/dist/cli/doctor-declared-contexts.d.ts.map +1 -0
- package/dist/cli/doctor-declared-contexts.js +144 -0
- package/dist/cli/doctor-declared-contexts.js.map +1 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +6 -0
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/gate-report-drift-section.d.ts +8 -0
- package/dist/cli/gate-report-drift-section.d.ts.map +1 -0
- package/dist/cli/gate-report-drift-section.js +68 -0
- package/dist/cli/gate-report-drift-section.js.map +1 -0
- package/dist/cli/gate-report-fragment.d.ts.map +1 -1
- package/dist/cli/gate-report-fragment.js +4 -0
- package/dist/cli/gate-report-fragment.js.map +1 -1
- package/dist/cli/gate-report-joins.d.ts +45 -0
- package/dist/cli/gate-report-joins.d.ts.map +1 -1
- package/dist/cli/gate-report-joins.js +56 -0
- package/dist/cli/gate-report-joins.js.map +1 -1
- package/dist/cli/gate-report-registry.d.ts +9 -0
- package/dist/cli/gate-report-registry.d.ts.map +1 -1
- package/dist/cli/gate-report-registry.js +15 -0
- package/dist/cli/gate-report-registry.js.map +1 -1
- package/dist/cli/gate-report-style.d.ts +1 -1
- package/dist/cli/gate-report-style.d.ts.map +1 -1
- package/dist/cli/gate-report-style.js +3 -0
- package/dist/cli/gate-report-style.js.map +1 -1
- package/dist/cli/gate-report-templates.d.ts +22 -0
- package/dist/cli/gate-report-templates.d.ts.map +1 -0
- package/dist/cli/gate-report-templates.js +110 -0
- package/dist/cli/gate-report-templates.js.map +1 -0
- package/dist/cli/gate-report-types.d.ts +19 -5
- package/dist/cli/gate-report-types.d.ts.map +1 -1
- package/dist/cli/gate-report-types.js.map +1 -1
- package/dist/cli/gate-report.d.ts +3 -0
- package/dist/cli/gate-report.d.ts.map +1 -1
- package/dist/cli/gate-report.js +26 -2
- package/dist/cli/gate-report.js.map +1 -1
- package/dist/core/gate-declaration-drift.d.ts +190 -0
- package/dist/core/gate-declaration-drift.d.ts.map +1 -0
- package/dist/core/gate-declaration-drift.js +300 -0
- package/dist/core/gate-declaration-drift.js.map +1 -0
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +17 -4
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/dist/health/declared-checks-inspection.d.ts +48 -0
- package/dist/health/declared-checks-inspection.d.ts.map +1 -0
- package/dist/health/declared-checks-inspection.js +154 -0
- package/dist/health/declared-checks-inspection.js.map +1 -0
- package/dist/health/deterministic-inputs.d.ts +40 -0
- package/dist/health/deterministic-inputs.d.ts.map +1 -0
- package/dist/health/deterministic-inputs.js +71 -0
- package/dist/health/deterministic-inputs.js.map +1 -0
- package/dist/health/deterministic.d.ts.map +1 -1
- package/dist/health/deterministic.js +10 -45
- package/dist/health/deterministic.js.map +1 -1
- package/dist/health/ruleset-inspection.d.ts +27 -0
- package/dist/health/ruleset-inspection.d.ts.map +1 -1
- package/dist/health/ruleset-inspection.js +70 -0
- package/dist/health/ruleset-inspection.js.map +1 -1
- package/expo/package-lisa/package.lisa.json +3 -1
- package/nestjs/package-lisa/package.lisa.json +2 -1
- package/package.json +1 -1
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-doctor/SKILL.md +33 -1
- package/plugins/lisa/skills/lisa-doctor/SKILL.md +33 -1
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-doctor/SKILL.md +33 -1
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/skills/lisa-doctor/SKILL.md +33 -1
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/skills/lisa-doctor/SKILL.md +33 -1
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/src/base/skills/lisa-doctor/SKILL.md +33 -1
- package/typescript/package-lisa/package.lisa.json +8 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Report where the settings file and the ruleset that enforces it disagree.
|
|
3
|
+
*
|
|
4
|
+
* The machine payload under `--json` carries the whole comparison, three states
|
|
5
|
+
* and all. This is the line an operator reads without asking for JSON, and it
|
|
6
|
+
* is deliberately the OFFLINE half: doctor is documented as making no network
|
|
7
|
+
* call, and the template is what a repository's protection is provisioned
|
|
8
|
+
* from, so a disagreement with it is drift the moment anyone provisions —
|
|
9
|
+
* whether or not the live ruleset has caught up. The live half runs in
|
|
10
|
+
* `lisa health`, which already reaches GitHub.
|
|
11
|
+
*
|
|
12
|
+
* A `warn` here is not a softer `fail`. Two of the verdicts are contradictions
|
|
13
|
+
* — the two surfaces state opposite things and one of them is wrong — and
|
|
14
|
+
* those fail. The other two are silences, and a silence must not send an
|
|
15
|
+
* operator to delete a required check; those warn and say what to declare.
|
|
16
|
+
* @module cli/doctor-declared-contexts
|
|
17
|
+
*/
|
|
18
|
+
import type { DeclarationDriftReport } from "../core/gate-declaration-drift.js";
|
|
19
|
+
import type { DoctorCheck } from "./doctor.js";
|
|
20
|
+
/**
|
|
21
|
+
* Turn a completed comparison into one operator-readable line.
|
|
22
|
+
* @param report - The comparison
|
|
23
|
+
* @returns The check
|
|
24
|
+
*/
|
|
25
|
+
export declare function declaredContextsCheck(report: DeclarationDriftReport): DoctorCheck;
|
|
26
|
+
/**
|
|
27
|
+
* Compare the settings file with the ruleset template it is enforced by.
|
|
28
|
+
* @param projectRoot - Project root
|
|
29
|
+
* @returns The check
|
|
30
|
+
*/
|
|
31
|
+
export declare function checkDeclaredContexts(projectRoot: string): Promise<DoctorCheck>;
|
|
32
|
+
//# sourceMappingURL=doctor-declared-contexts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-declared-contexts.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-declared-contexts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,EAEV,sBAAsB,EACvB,MAAM,mCAAmC,CAAC;AAM3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAuB/C;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,sBAAsB,GAC7B,WAAW,CA4Cb;AAsDD;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC,CAiCtB"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { readConfig } from "./gate-report-config.js";
|
|
2
|
+
import { readFacadeFacts } from "./gate-report-facade.js";
|
|
3
|
+
import { buildDeclarationDrift } from "./gate-report-joins.js";
|
|
4
|
+
import { loadGateRegistry } from "./gate-report-registry.js";
|
|
5
|
+
import { readTemplateEnforcement } from "./gate-report-templates.js";
|
|
6
|
+
/** The workflow whose name prefixes a run gate's status context. */
|
|
7
|
+
const QUALITY_WORKFLOW_NAME = "🔍 Quality Checks";
|
|
8
|
+
/** The moment a branch ruleset guards. */
|
|
9
|
+
const MERGE_MOMENT = "pull-request";
|
|
10
|
+
/** This check's operator-facing name. */
|
|
11
|
+
const NAME = "Required checks match what the settings file declares?";
|
|
12
|
+
/**
|
|
13
|
+
* Name at most a few contexts, so one line stays one line.
|
|
14
|
+
* @param contexts - Context strings
|
|
15
|
+
* @returns A bounded, sorted list
|
|
16
|
+
*/
|
|
17
|
+
function named(contexts) {
|
|
18
|
+
const shown = contexts.slice(0, 4);
|
|
19
|
+
const rest = contexts.length - shown.length;
|
|
20
|
+
return `${shown.join(", ")}${rest > 0 ? ` (+${String(rest)} more)` : ""}`;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Turn a completed comparison into one operator-readable line.
|
|
24
|
+
* @param report - The comparison
|
|
25
|
+
* @returns The check
|
|
26
|
+
*/
|
|
27
|
+
export function declaredContextsCheck(report) {
|
|
28
|
+
const contradictions = report.entries.filter(entry => entry.verdict === "declared-not-enforced" ||
|
|
29
|
+
entry.verdict === "enforced-declared-off");
|
|
30
|
+
if (contradictions.length > 0) {
|
|
31
|
+
return {
|
|
32
|
+
name: NAME,
|
|
33
|
+
status: "fail",
|
|
34
|
+
detail: `The settings file and the ruleset template say opposite things about ${named(contradictions.map(entry => entry.context))}. ${contradictions[0]?.detail ?? ""} Fix whichever is wrong; nothing here proposes removing a check.`,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const undeclared = report.entries.filter(entry => entry.verdict === "enforced-undeclared");
|
|
38
|
+
const optional = report.entries.filter(entry => entry.verdict === "enforced-declared-optional");
|
|
39
|
+
if (undeclared.length === 0 && optional.length === 0) {
|
|
40
|
+
return {
|
|
41
|
+
name: NAME,
|
|
42
|
+
status: "ok",
|
|
43
|
+
detail: "Every check the ruleset template requires is asked for by a declaration in the settings file, and every declared requirement is required by the template. Agreement between the two, not evidence that any of those checks proves its property.",
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
name: NAME,
|
|
48
|
+
status: "warn",
|
|
49
|
+
// The two gaps are kept in separate sentences on purpose. An undeclared
|
|
50
|
+
// gate and one declared `optional` both leave a required check ungoverned,
|
|
51
|
+
// but they are not the same thing to fix, and a single sentence covering
|
|
52
|
+
// both would have to say "no declaration governs these" about a context
|
|
53
|
+
// whose gate IS declared — which is untrue and sends the operator looking
|
|
54
|
+
// for a declaration that is already there.
|
|
55
|
+
detail: [
|
|
56
|
+
undeclaredClause(undeclared),
|
|
57
|
+
optionalClause(optional),
|
|
58
|
+
"Do NOT remove the required check to make this line go away.",
|
|
59
|
+
]
|
|
60
|
+
.filter(clause => clause.length > 0)
|
|
61
|
+
.join(" "),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The clause for contexts whose gate the settings file never mentions.
|
|
66
|
+
* @param entries - The undeclared entries
|
|
67
|
+
* @returns One sentence, or an empty string
|
|
68
|
+
*/
|
|
69
|
+
function undeclaredClause(entries) {
|
|
70
|
+
if (entries.length === 0)
|
|
71
|
+
return "";
|
|
72
|
+
const gates = gateIdsOf(entries);
|
|
73
|
+
return `The ruleset template requires ${named(entries.map(entry => entry.context))}, which no declaration governs — so changing the settings file cannot turn ${entries.length === 1 ? "it" : "them"} on, off, or into something else. Declare ${gates} at pull-request to take control.`;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The clause for contexts whose gate is declared optional.
|
|
77
|
+
* @param entries - The optional entries
|
|
78
|
+
* @returns One sentence, or an empty string
|
|
79
|
+
*/
|
|
80
|
+
function optionalClause(entries) {
|
|
81
|
+
if (entries.length === 0)
|
|
82
|
+
return "";
|
|
83
|
+
const gates = gateIdsOf(entries);
|
|
84
|
+
return `The template also requires ${named(entries.map(entry => entry.context))} while the settings file declares ${gates} optional at pull-request: the job runs, may fail, and merges anyway, yet the template says the check must pass. Two surfaces, two answers — name which one wins.`;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* The gates behind a set of entries, named once each.
|
|
88
|
+
* @param entries - The entries
|
|
89
|
+
* @returns A readable list, or a fallback phrase
|
|
90
|
+
*/
|
|
91
|
+
function gateIdsOf(entries) {
|
|
92
|
+
const ids = [
|
|
93
|
+
...new Set(entries.flatMap(entry => (entry.gateId === null ? [] : [entry.gateId]))),
|
|
94
|
+
];
|
|
95
|
+
return ids.length === 0 ? "the matching gate" : ids.join(", ");
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* The line emitted when a source could not be read.
|
|
99
|
+
* @param finding - The unreadable source
|
|
100
|
+
* @returns The check
|
|
101
|
+
*/
|
|
102
|
+
function unreadable(finding) {
|
|
103
|
+
return {
|
|
104
|
+
name: NAME,
|
|
105
|
+
status: "warn",
|
|
106
|
+
detail: finding.state === "verified"
|
|
107
|
+
? ""
|
|
108
|
+
: `Not checked this run: ${finding.message} This is not a pass — it means the comparison was not made.`,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Compare the settings file with the ruleset template it is enforced by.
|
|
113
|
+
* @param projectRoot - Project root
|
|
114
|
+
* @returns The check
|
|
115
|
+
*/
|
|
116
|
+
export async function checkDeclaredContexts(projectRoot) {
|
|
117
|
+
const registry = await loadGateRegistry();
|
|
118
|
+
if (registry === null) {
|
|
119
|
+
return unreadable({
|
|
120
|
+
state: "unknown",
|
|
121
|
+
reason: "registry-not-found",
|
|
122
|
+
message: "Lisa's shipped check registry could not be located, so no declaration could be turned into the name of a required check.",
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
const drift = buildDeclarationDrift({
|
|
126
|
+
registry,
|
|
127
|
+
gates: readConfig(registry, projectRoot).gates,
|
|
128
|
+
// The live half belongs to `lisa health`, which already reaches GitHub.
|
|
129
|
+
// Doctor is documented as offline, so it states the live surface as
|
|
130
|
+
// unread rather than quietly skipping it.
|
|
131
|
+
contexts: {
|
|
132
|
+
state: "unknown",
|
|
133
|
+
reason: "offline",
|
|
134
|
+
message: "lisa doctor makes no network call, so live branch protection was not read here.",
|
|
135
|
+
},
|
|
136
|
+
facade: await readFacadeFacts(projectRoot),
|
|
137
|
+
mergeMoment: MERGE_MOMENT,
|
|
138
|
+
workflowName: QUALITY_WORKFLOW_NAME,
|
|
139
|
+
}, "ruleset-templates", await readTemplateEnforcement({ projectRoot }));
|
|
140
|
+
return drift.state === "verified"
|
|
141
|
+
? declaredContextsCheck(drift.value)
|
|
142
|
+
: unreadable(drift);
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=doctor-declared-contexts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor-declared-contexts.js","sourceRoot":"","sources":["../../src/cli/doctor-declared-contexts.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/doctor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAmBnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAmBnE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAQzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,mDAAmD;AACnD,KAAK,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAO3C,oCAAoC;AACpC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,sCAAsC;AACtC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,OAAO,KAAK,CAAC;IACxB,cAAc,EAAE,OAAO,cAAc,CAAC;IACtC,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,kBAAkB,EAAE,OAAO,kBAAkB,CAAC;IAC9C,mBAAmB,EAAE,OAAO,mBAAmB,CAAC;CACjD;AAaD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,EAChD,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,WAAW,CAAC,CAyBtB;AA4MD;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,aAAa,EACtB,YAAY,GAAE,OAAO,CAAC,kBAAkB,CAAM,GAC7C,OAAO,CAAC,YAAY,CAAC,CAqFvB"}
|
package/dist/cli/doctor.js
CHANGED
|
@@ -22,6 +22,7 @@ import { checkSerializeLegsContract } from "./doctor-serialize-legs-contract.js"
|
|
|
22
22
|
import { checkApplyFailure } from "./doctor-apply-failure.js";
|
|
23
23
|
import { renderDoctorResult } from "./doctor-render.js";
|
|
24
24
|
import { checkSkipJobsMigration } from "./doctor-skip-jobs-migration.js";
|
|
25
|
+
import { checkDeclaredContexts } from "./doctor-declared-contexts.js";
|
|
25
26
|
import { checkTraceabilityGate } from "./doctor-traceability-gate.js";
|
|
26
27
|
import { checkHookCopyParity } from "./doctor-hook-copy-parity.js";
|
|
27
28
|
import { checkWorktreeHygiene } from "./doctor-worktree-hygiene.js";
|
|
@@ -273,6 +274,11 @@ export async function runDoctor(targetPath, options, dependencies = {}) {
|
|
|
273
274
|
// since an undeclared gate means the job never runs and there is no signal
|
|
274
275
|
// to notice (CodySwannGT/lisa#2677).
|
|
275
276
|
await checkTraceabilityGate(resolvedTarget),
|
|
277
|
+
// Immediately after, because both concern gate declarations and an
|
|
278
|
+
// operator wants them together. That check repairs ONE declaration; this
|
|
279
|
+
// one compares every declaration against the ruleset template that
|
|
280
|
+
// enforces it, which is the layer the traceability check only reports.
|
|
281
|
+
await checkDeclaredContexts(resolvedTarget),
|
|
276
282
|
await checkKaneProvider(resolvedTarget, deps),
|
|
277
283
|
await checkSonarProvider(resolvedTarget, deps),
|
|
278
284
|
await checkLegacyMonitorThresholds(resolvedTarget),
|
package/dist/cli/doctor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { GateReport } from "./gate-report-types.js";
|
|
2
|
+
/**
|
|
3
|
+
* The declaration-versus-enforcement section, one block per surface.
|
|
4
|
+
* @param report - The whole report
|
|
5
|
+
* @returns A section of HTML
|
|
6
|
+
*/
|
|
7
|
+
export declare function declarationDriftSection(report: GateReport): string;
|
|
8
|
+
//# sourceMappingURL=gate-report-drift-section.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-report-drift-section.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-drift-section.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAW,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAsElE;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAWlE"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { escapeHtml } from "./gate-report-html.js";
|
|
2
|
+
/** How each verdict is headed, in the operator's words. */
|
|
3
|
+
const VERDICT_HEADINGS = {
|
|
4
|
+
matched: "Declared required, and enforced",
|
|
5
|
+
"declared-not-enforced": "Declared required — enforced by nothing",
|
|
6
|
+
"enforced-declared-optional": "Enforced, declared optional",
|
|
7
|
+
"enforced-declared-off": "Enforced, declared OFF",
|
|
8
|
+
"enforced-undeclared": "Enforced, governed by no declaration",
|
|
9
|
+
"enforced-not-lisa-owned": "Enforced, produced by no Lisa gate",
|
|
10
|
+
};
|
|
11
|
+
/** Which verdicts are drawn as sharp rather than neutral. */
|
|
12
|
+
const SHARP_VERDICTS = new Set([
|
|
13
|
+
"declared-not-enforced",
|
|
14
|
+
"enforced-declared-off",
|
|
15
|
+
]);
|
|
16
|
+
/** The verdicts, in the order an operator should read them. */
|
|
17
|
+
const VERDICT_ORDER = [
|
|
18
|
+
"enforced-declared-off",
|
|
19
|
+
"declared-not-enforced",
|
|
20
|
+
"enforced-undeclared",
|
|
21
|
+
"enforced-declared-optional",
|
|
22
|
+
"enforced-not-lisa-owned",
|
|
23
|
+
"matched",
|
|
24
|
+
];
|
|
25
|
+
/**
|
|
26
|
+
* One verdict's card, listing every context that earned it.
|
|
27
|
+
* @param report - The completed comparison
|
|
28
|
+
* @param verdict - The verdict to card
|
|
29
|
+
* @returns A card of HTML, or an empty string when nothing earned it
|
|
30
|
+
*/
|
|
31
|
+
function verdictCard(report, verdict) {
|
|
32
|
+
const entries = report.entries.filter(entry => entry.verdict === verdict);
|
|
33
|
+
if (entries.length === 0)
|
|
34
|
+
return "";
|
|
35
|
+
const items = entries
|
|
36
|
+
.map(entry => `<li><code>${escapeHtml(entry.context)}</code><div class="lgr-why">${escapeHtml(entry.detail)}</div><div class="lgr-why">remedy: <strong>${escapeHtml(entry.remedy)}</strong></div></li>`)
|
|
37
|
+
.join("");
|
|
38
|
+
return `<div${SHARP_VERDICTS.has(verdict) ? ' class="lgr-sharp"' : ""}><h3>${escapeHtml(VERDICT_HEADINGS[verdict])} <span class="lgr-count">${entries.length}</span></h3><ul>${items}</ul></div>`;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* One enforcing surface's comparison — including the case where it was unread.
|
|
42
|
+
* @param finding - The comparison, or why there is none
|
|
43
|
+
* @param title - How to name the surface
|
|
44
|
+
* @returns A block of HTML
|
|
45
|
+
*/
|
|
46
|
+
function driftBlock(finding, title) {
|
|
47
|
+
if (finding.state !== "verified") {
|
|
48
|
+
return `<h3 class="lgr-surface">${escapeHtml(title)}</h3><p class="lgr-note">Not compared this run — <strong>${escapeHtml(finding.reason)}</strong>. ${escapeHtml(finding.message)} This is <em>not</em> a match.</p>`;
|
|
49
|
+
}
|
|
50
|
+
return [
|
|
51
|
+
`<h3 class="lgr-surface">${escapeHtml(title)}</h3>`,
|
|
52
|
+
'<div class="lgr-cols">',
|
|
53
|
+
VERDICT_ORDER.map(verdict => verdictCard(finding.value, verdict)).join(""),
|
|
54
|
+
"</div>",
|
|
55
|
+
].join("");
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The declaration-versus-enforcement section, one block per surface.
|
|
59
|
+
* @param report - The whole report
|
|
60
|
+
* @returns A section of HTML
|
|
61
|
+
*/
|
|
62
|
+
export function declarationDriftSection(report) {
|
|
63
|
+
return [
|
|
64
|
+
driftBlock(report.declarationDrift.templates, "Against the ruleset template this repository is provisioned from"),
|
|
65
|
+
driftBlock(report.declarationDrift.live, "Against the live branch-protection ruleset"),
|
|
66
|
+
].join("");
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=gate-report-drift-section.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-report-drift-section.js","sourceRoot":"","sources":["../../src/cli/gate-report-drift-section.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGnD,2DAA2D;AAC3D,MAAM,gBAAgB,GAA2C;IAC/D,OAAO,EAAE,iCAAiC;IAC1C,uBAAuB,EAAE,yCAAyC;IAClE,4BAA4B,EAAE,6BAA6B;IAC3D,uBAAuB,EAAE,wBAAwB;IACjD,qBAAqB,EAAE,sCAAsC;IAC7D,yBAAyB,EAAE,oCAAoC;CAChE,CAAC;AAEF,6DAA6D;AAC7D,MAAM,cAAc,GAA8B,IAAI,GAAG,CAAe;IACtE,uBAAuB;IACvB,uBAAuB;CACxB,CAAC,CAAC;AAEH,+DAA+D;AAC/D,MAAM,aAAa,GAA4B;IAC7C,uBAAuB;IACvB,uBAAuB;IACvB,qBAAqB;IACrB,4BAA4B;IAC5B,yBAAyB;IACzB,SAAS;CACV,CAAC;AAEF;;;;;GAKG;AACH,SAAS,WAAW,CAClB,MAA8B,EAC9B,OAAqB;IAErB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IAC1E,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,OAAO;SAClB,GAAG,CACF,KAAK,CAAC,EAAE,CACN,aAAa,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,+BAA+B,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,8CAA8C,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAC5L;SACA,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,QAAQ,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,4BAA4B,OAAO,CAAC,MAAM,mBAAmB,KAAK,aAAa,CAAC;AACpM,CAAC;AAED;;;;;GAKG;AACH,SAAS,UAAU,CACjB,OAAwC,EACxC,KAAa;IAEb,IAAI,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,2BAA2B,UAAU,CAAC,KAAK,CAAC,4DAA4D,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,oCAAoC,CAAC;IACzN,CAAC;IACD,OAAO;QACL,2BAA2B,UAAU,CAAC,KAAK,CAAC,OAAO;QACnD,wBAAwB;QACxB,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1E,QAAQ;KACT,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAkB;IACxD,OAAO;QACL,UAAU,CACR,MAAM,CAAC,gBAAgB,CAAC,SAAS,EACjC,kEAAkE,CACnE;QACD,UAAU,CACR,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAC5B,4CAA4C,CAC7C;KACF,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-report-fragment.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-fragment.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gate-report-fragment.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-fragment.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,oEAAoE;AACpE,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AAwCzD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,MAAM,GACnB,MAAM,CAiCR"}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
* always produces the same bytes.
|
|
21
21
|
* @module cli/gate-report-fragment
|
|
22
22
|
*/
|
|
23
|
+
import { declarationDriftSection } from "./gate-report-drift-section.js";
|
|
23
24
|
import { chip, escapeHtml } from "./gate-report-html.js";
|
|
24
25
|
import { gateRow } from "./gate-report-rows.js";
|
|
25
26
|
import { agentHooksSection, requiredContextsSection, rulesetSection, summarySection, upstreamSection, } from "./gate-report-sections.js";
|
|
@@ -86,6 +87,9 @@ export function renderGateReportFragment(report, projectLabel) {
|
|
|
86
87
|
"<h2>What your settings imply, against what the repository requires</h2>",
|
|
87
88
|
'<p class="lgr-lede">The contexts the settings file implies, beside the ones the repository\'s branch-protection rules really require. Nothing compares these two automatically, so they are only ever equal by hand.</p>',
|
|
88
89
|
rulesetSection(report),
|
|
90
|
+
"<h2>Where the settings file and the protection disagree</h2>",
|
|
91
|
+
'<p class="lgr-lede">The set comparison above says WHICH contexts differ. This says what each difference MEANS for the declaration that was supposed to govern it — a check declared off and one never declared at all are opposite problems, not one bucket. A surface this run could not read is said to be unread; it is never reported as agreement. And agreement is not proof: a matched row means the two surfaces name the same required context, not that the check proves the property. Nothing here proposes removing a required check.</p>',
|
|
92
|
+
declarationDriftSection(report),
|
|
89
93
|
"<h2>What else gates my merges, and where does it come from</h2>",
|
|
90
94
|
'<p class="lgr-lede">Everything above describes Lisa\'s own jobs. This is every required check standing between a change and a merge, whoever put it there — including the ones Lisa neither ships nor governs.</p>',
|
|
91
95
|
requiredContextsSection(report),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-report-fragment.js","sourceRoot":"","sources":["../../src/cli/gate-report-fragment.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gate-report-fragment.js","sourceRoot":"","sources":["../../src/cli/gate-report-fragment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The joins between one project's declarations and the world outside it.
|
|
3
|
+
*
|
|
4
|
+
* Three of them, and each is a place two sources of truth are compared for the
|
|
5
|
+
* first time: the ruleset against the declaration (#2854's finding — nothing
|
|
6
|
+
* compares these today, so they are only ever equal by hand), every required
|
|
7
|
+
* context against who owns it, and one gate's implied context against the
|
|
8
|
+
* moment a ruleset can actually guard.
|
|
9
|
+
*
|
|
10
|
+
* Kept out of the report assembly because the assembly is a list of steps and
|
|
11
|
+
* these are the reasoning. Every one of them carries an unknown through rather
|
|
12
|
+
* than resolving it: a run that could not read branch protection has nothing to
|
|
13
|
+
* compare, and an empty comparison would report agreement.
|
|
14
|
+
* @module cli/gate-report-joins
|
|
15
|
+
*/
|
|
16
|
+
import { type DeclarationDriftReport, type DriftSurface, type EnforcedContext } from "../core/gate-declaration-drift.js";
|
|
1
17
|
import type { FacadeFacts } from "./gate-report-facade.js";
|
|
2
18
|
import type { GateRegistryModule } from "./gate-report-registry.js";
|
|
3
19
|
import type { Finding, MergeBlock, RequiredContextRow, RulesetComparison } from "./gate-report-types.js";
|
|
@@ -34,4 +50,33 @@ export declare function buildRulesetFinding(context: JoinContext): Finding<Rules
|
|
|
34
50
|
* @returns One row per required context, or the same unknown
|
|
35
51
|
*/
|
|
36
52
|
export declare function buildRequiredContexts(context: JoinContext): Finding<readonly RequiredContextRow[]>;
|
|
53
|
+
/**
|
|
54
|
+
* Hold the declaration against one enforcing surface.
|
|
55
|
+
*
|
|
56
|
+
* The fourth join, and the one #2854 filed: `buildRulesetFinding` above says
|
|
57
|
+
* WHICH contexts differ, and `buildRequiredContexts` says WHO owns each live
|
|
58
|
+
* one, but neither says what the difference MEANS for the declaration that was
|
|
59
|
+
* supposed to govern it. A gate declared `off` and a gate never declared at all
|
|
60
|
+
* both show up as "required, not declared" in a set comparison, and they are
|
|
61
|
+
* opposite problems: one is a contradiction, the other is silence.
|
|
62
|
+
*
|
|
63
|
+
* The surface's own `unknown` is returned unchanged rather than replaced with a
|
|
64
|
+
* comparison of what little was read. A run that could not reach a surface has
|
|
65
|
+
* not compared anything, and saying so is the whole contract.
|
|
66
|
+
* @param context - The join inputs
|
|
67
|
+
* @param surface - Which surface `enforced` came from
|
|
68
|
+
* @param enforced - What the surface requires, or why it is unknown
|
|
69
|
+
* @returns The comparison, or the surface's unknown
|
|
70
|
+
*/
|
|
71
|
+
export declare function buildDeclarationDrift(context: JoinContext, surface: DriftSurface, enforced: Finding<readonly EnforcedContext[]>): Finding<DeclarationDriftReport>;
|
|
72
|
+
/**
|
|
73
|
+
* The live required contexts, restated as attributed enforcement.
|
|
74
|
+
*
|
|
75
|
+
* The live reader answers with bare strings because that is all branch
|
|
76
|
+
* protection gives it; the comparison wants to say WHERE a requirement was
|
|
77
|
+
* read, so the attribution is added here rather than invented downstream.
|
|
78
|
+
* @param contexts - Contexts read from the live ruleset, or an unknown
|
|
79
|
+
* @returns The same finding, in the comparison's shape
|
|
80
|
+
*/
|
|
81
|
+
export declare function liveEnforcement(contexts: Finding<readonly string[]>): Finding<readonly EnforcedContext[]>;
|
|
37
82
|
//# sourceMappingURL=gate-report-joins.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-report-joins.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-joins.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gate-report-joins.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-joins.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,YAAY,EACjB,KAAK,eAAe,EACrB,MAAM,mCAAmC,CAAC;AAK3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,KAAK,EACV,OAAO,EACP,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAEhC,gDAAgD;AAChD,MAAM,WAAW,WAAW;IAC1B,4BAA4B;IAC5B,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,CAAC;IACtC,iCAAiC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAC9C,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,mCAAmC;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAkBD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,WAAW,GACnB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,UAAU,CAAC,CAwBzE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,iBAAiB,CAAC,CAe5B;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC,CAaxC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC,GAC5C,OAAO,CAAC,sBAAsB,CAAC,CAcjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,GACnC,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC,CAUrC"}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* compare, and an empty comparison would report agreement.
|
|
14
14
|
* @module cli/gate-report-joins
|
|
15
15
|
*/
|
|
16
|
+
import { classifyDeclarationDrift, contextOwners, } from "../core/gate-declaration-drift.js";
|
|
16
17
|
import { classifyRequiredContexts, lisaContextUniverse, } from "./gate-report-contexts.js";
|
|
17
18
|
import { compareContexts } from "./gate-report-ruleset.js";
|
|
18
19
|
/**
|
|
@@ -101,4 +102,59 @@ export function buildRequiredContexts(context) {
|
|
|
101
102
|
projectContexts: context.facade.projectContexts,
|
|
102
103
|
});
|
|
103
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Hold the declaration against one enforcing surface.
|
|
107
|
+
*
|
|
108
|
+
* The fourth join, and the one #2854 filed: `buildRulesetFinding` above says
|
|
109
|
+
* WHICH contexts differ, and `buildRequiredContexts` says WHO owns each live
|
|
110
|
+
* one, but neither says what the difference MEANS for the declaration that was
|
|
111
|
+
* supposed to govern it. A gate declared `off` and a gate never declared at all
|
|
112
|
+
* both show up as "required, not declared" in a set comparison, and they are
|
|
113
|
+
* opposite problems: one is a contradiction, the other is silence.
|
|
114
|
+
*
|
|
115
|
+
* The surface's own `unknown` is returned unchanged rather than replaced with a
|
|
116
|
+
* comparison of what little was read. A run that could not reach a surface has
|
|
117
|
+
* not compared anything, and saying so is the whole contract.
|
|
118
|
+
* @param context - The join inputs
|
|
119
|
+
* @param surface - Which surface `enforced` came from
|
|
120
|
+
* @param enforced - What the surface requires, or why it is unknown
|
|
121
|
+
* @returns The comparison, or the surface's unknown
|
|
122
|
+
*/
|
|
123
|
+
export function buildDeclarationDrift(context, surface, enforced) {
|
|
124
|
+
if (enforced.state !== "verified")
|
|
125
|
+
return enforced;
|
|
126
|
+
return {
|
|
127
|
+
state: "verified",
|
|
128
|
+
value: classifyDeclarationDrift({
|
|
129
|
+
surface,
|
|
130
|
+
owners: contextOwners({
|
|
131
|
+
registry: context.registry,
|
|
132
|
+
gates: context.gates,
|
|
133
|
+
workflowName: context.workflowName,
|
|
134
|
+
}),
|
|
135
|
+
enforced: enforced.value,
|
|
136
|
+
}),
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* The live required contexts, restated as attributed enforcement.
|
|
141
|
+
*
|
|
142
|
+
* The live reader answers with bare strings because that is all branch
|
|
143
|
+
* protection gives it; the comparison wants to say WHERE a requirement was
|
|
144
|
+
* read, so the attribution is added here rather than invented downstream.
|
|
145
|
+
* @param contexts - Contexts read from the live ruleset, or an unknown
|
|
146
|
+
* @returns The same finding, in the comparison's shape
|
|
147
|
+
*/
|
|
148
|
+
export function liveEnforcement(contexts) {
|
|
149
|
+
if (contexts.state !== "verified")
|
|
150
|
+
return contexts;
|
|
151
|
+
return {
|
|
152
|
+
state: "verified",
|
|
153
|
+
value: contexts.value.map(context => ({
|
|
154
|
+
context,
|
|
155
|
+
ruleset: "the branch's live rules",
|
|
156
|
+
source: "the repository's live branch protection",
|
|
157
|
+
})),
|
|
158
|
+
};
|
|
159
|
+
}
|
|
104
160
|
//# sourceMappingURL=gate-report-joins.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-report-joins.js","sourceRoot":"","sources":["../../src/cli/gate-report-joins.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EACL,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAwB3D;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,OAAoB;IAC5C,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE;YACjD,MAAM,EAAE,OAAO,CAAC,WAAW;YAC3B,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAoB;IAEpB,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE;QACjC,IAAI,MAAM,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;YACnC,OAAO;gBACL,KAAK,EAAE,gBAAgB;gBACvB,MAAM,EAAE,kCAAkC;gBAC1C,OAAO,EAAE,0CAA0C,OAAO,CAAC,WAAW,qEAAqE,MAAM,mDAAmD;aACrM,CAAC;QACJ,CAAC;QACD,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC7B,OAAO;gBACL,KAAK,EAAE,gBAAgB;gBACvB,MAAM,EAAE,yBAAyB;gBACjC,OAAO,EACL,6GAA6G;aAChH,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC;QACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAClE,OAAO;YACL,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE;SAChE,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAAoB;IAEpB,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,UAAU;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC;IACnE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,2BAA2B;YACnC,OAAO,EACL,wGAAwG;SAC3G,CAAC;IACJ,CAAC;IACD,OAAO;QACL,KAAK,EAAE,UAAU;QACjB,KAAK,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;KACzD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAoB;IAEpB,OAAO,wBAAwB,CAAC,OAAO,CAAC,QAAQ,EAAE;QAChD,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE;QACzC,YAAY,EAAE,mBAAmB,CAAC;YAChC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;iBAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;iBAChE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACpB,MAAM,EAAE,OAAO,CAAC,WAAW;YAC3B,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,WAAW,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW;SAC1C,CAAC;QACF,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe;KAChD,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"gate-report-joins.js","sourceRoot":"","sources":["../../src/cli/gate-report-joins.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,6 +64,15 @@ export interface GateRegistryModule {
|
|
|
64
64
|
* @returns Absolute path, or null when it cannot be found
|
|
65
65
|
*/
|
|
66
66
|
export declare function resolveGateRegistryPath(): string | null;
|
|
67
|
+
/**
|
|
68
|
+
* Locate the running Lisa package's root.
|
|
69
|
+
*
|
|
70
|
+
* Derived from the registry's own location rather than walked a second time.
|
|
71
|
+
* Two walks would be two answers to "where is Lisa", and the one that went
|
|
72
|
+
* stale would be the one nobody measured.
|
|
73
|
+
* @returns Absolute package root, or null when the registry cannot be found
|
|
74
|
+
*/
|
|
75
|
+
export declare function resolveLisaPackageRoot(): string | null;
|
|
67
76
|
/**
|
|
68
77
|
* Import the shipped registry.
|
|
69
78
|
* @returns The registry module, or null when it is not installed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-report-registry.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gate-report-registry.d.ts","sourceRoot":"","sources":["../../src/cli/gate-report-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,21 @@ export function resolveGateRegistryPath() {
|
|
|
39
39
|
return fromPackageRoot;
|
|
40
40
|
return walkForPackageFile(__dirname, REGISTRY_RELATIVE);
|
|
41
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Locate the running Lisa package's root.
|
|
44
|
+
*
|
|
45
|
+
* Derived from the registry's own location rather than walked a second time.
|
|
46
|
+
* Two walks would be two answers to "where is Lisa", and the one that went
|
|
47
|
+
* stale would be the one nobody measured.
|
|
48
|
+
* @returns Absolute package root, or null when the registry cannot be found
|
|
49
|
+
*/
|
|
50
|
+
export function resolveLisaPackageRoot() {
|
|
51
|
+
const registry = resolveGateRegistryPath();
|
|
52
|
+
if (registry === null)
|
|
53
|
+
return null;
|
|
54
|
+
// <root>/all/copy-overwrite/scripts/lisa-gates.mjs -> <root>
|
|
55
|
+
return path.resolve(path.dirname(registry), "..", "..", "..");
|
|
56
|
+
}
|
|
42
57
|
/**
|
|
43
58
|
* Import the shipped registry.
|
|
44
59
|
* @returns The registry module, or null when it is not installed
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-report-registry.js","sourceRoot":"","sources":["../../src/cli/gate-report-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,yDAAyD;AACzD,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CACjC,KAAK,EACL,gBAAgB,EAChB,SAAS,EACT,gBAAgB,CACjB,CAAC;AAuEF;;;;;GAKG;AACH,SAAS,kBAAkB,CACzB,QAAgB,EAChB,YAAoB;IAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACpD,IAAI,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAC/E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC5E,IAAI,UAAU,CAAC,eAAe,CAAC;QAAE,OAAO,eAAe,CAAC;IACxD,OAAO,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,MAAM,GAAG,uBAAuB,EAAE,CAAC;IACzC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,CAAC,MAAM,MAAM,CAClB,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAC3B,CAAkC,CAAC;AACtC,CAAC"}
|
|
1
|
+
{"version":3,"file":"gate-report-registry.js","sourceRoot":"","sources":["../../src/cli/gate-report-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAExD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,yDAAyD;AACzD,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CACjC,KAAK,EACL,gBAAgB,EAChB,SAAS,EACT,gBAAgB,CACjB,CAAC;AAuEF;;;;;GAKG;AACH,SAAS,kBAAkB,CACzB,QAAgB,EAChB,YAAoB;IAEpB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACpD,IAAI,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAC/E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC;IAC5E,IAAI,UAAU,CAAC,eAAe,CAAC;QAAE,OAAO,eAAe,CAAC;IACxD,OAAO,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB;IACpC,MAAM,QAAQ,GAAG,uBAAuB,EAAE,CAAC;IAC3C,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,6DAA6D;IAC7D,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,MAAM,MAAM,GAAG,uBAAuB,EAAE,CAAC;IACzC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,OAAO,CAAC,MAAM,MAAM,CAClB,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,CAC3B,CAAkC,CAAC;AACtC,CAAC"}
|