gh-inari 0.3.0 → 0.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +97 -13
- package/dist/artifact.d.ts +1 -1
- package/dist/artifact.js +1 -1
- package/dist/artifact.js.map +1 -1
- package/dist/cli.d.ts +7 -0
- package/dist/cli.js +497 -47
- package/dist/cli.js.map +1 -1
- package/dist/github/adapter.js +15 -4
- package/dist/github/adapter.js.map +1 -1
- package/dist/github/transport.js +10 -8
- package/dist/github/transport.js.map +1 -1
- package/dist/governance.d.ts +41 -5
- package/dist/governance.js +190 -15
- package/dist/governance.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/pr-policy.js +109 -1
- package/dist/pr-policy.js.map +1 -1
- package/dist/pull-request-template.js +5 -1
- package/dist/pull-request-template.js.map +1 -1
- package/dist/reconciliation.d.ts +65 -0
- package/dist/reconciliation.js +274 -0
- package/dist/reconciliation.js.map +1 -0
- package/dist/semantic-template.d.ts +107 -0
- package/dist/semantic-template.js +1151 -0
- package/dist/semantic-template.js.map +1 -0
- package/gh-inari +7 -6
- package/package.json +26 -20
package/dist/governance.js
CHANGED
|
@@ -5,6 +5,7 @@ import { compileIssueFormTemplate, compileIssueFormYaml, } from "./contract/issu
|
|
|
5
5
|
import { assertCanonicalContract, } from "./contract/ir.js";
|
|
6
6
|
import { compilePullRequestPolicyFile, compilePullRequestPolicyOverlay } from "./pr-policy.js";
|
|
7
7
|
import { compilePullRequestTemplate, parsePullRequestTemplate } from "./pull-request-template.js";
|
|
8
|
+
import { compileSemanticTemplate, compileSemanticTemplateSource, discoverSemanticTemplates, readSemanticTemplate, selectSemanticTemplate, normalizeSemanticTemplate, } from "./semantic-template.js";
|
|
8
9
|
import { discoverTemplates, selectIssueTemplate, selectPullRequestTemplate, discoverTemplatesFromPaths, classifyTemplatePath, isTemplateContainerPath, isTemplatePathInNativeDirectory, TemplateNotFoundError, } from "./template-discovery.js";
|
|
9
10
|
/** Stable, machine-readable failures for repository governance acquisition. */
|
|
10
11
|
export class GovernanceError extends Error {
|
|
@@ -36,8 +37,14 @@ export function rejectGovernedPolicyOverride(policyPath) {
|
|
|
36
37
|
*/
|
|
37
38
|
export async function compileLocalGovernedContract(domain, root, selector, policyPath) {
|
|
38
39
|
const discovery = await discoverTemplates(root);
|
|
40
|
+
const semanticTemplates = await discoverSemanticTemplates(root);
|
|
41
|
+
const semanticCandidates = semanticTemplates.filter((template) => template.kind === (domain === "issue" ? "issue" : "pull_request"));
|
|
39
42
|
let contract;
|
|
40
|
-
if (
|
|
43
|
+
if (semanticCandidates.length > 0) {
|
|
44
|
+
const semanticIdentity = selectSemanticTemplate(semanticTemplates, domain === "issue" ? "issue" : "pull_request", selector);
|
|
45
|
+
contract = await compileSemanticTemplate(root, await readSemanticTemplate(root, semanticIdentity));
|
|
46
|
+
}
|
|
47
|
+
else if (domain === "issue") {
|
|
41
48
|
contract = await compileIssueFormTemplate(discovery, selector);
|
|
42
49
|
}
|
|
43
50
|
else {
|
|
@@ -54,6 +61,10 @@ export async function compileLocalGovernedContract(domain, root, selector, polic
|
|
|
54
61
|
}
|
|
55
62
|
/** Compile every repository-native Issue Form with the shared compiler. */
|
|
56
63
|
export async function compileLocalIssueFormContracts(root) {
|
|
64
|
+
const semanticTemplates = (await discoverSemanticTemplates(root)).filter((template) => template.kind === "issue");
|
|
65
|
+
if (semanticTemplates.length > 0) {
|
|
66
|
+
return Promise.all(semanticTemplates.map(async (identity) => compileSemanticTemplate(root, await readSemanticTemplate(root, identity))));
|
|
67
|
+
}
|
|
57
68
|
const discovery = await discoverTemplates(root);
|
|
58
69
|
return Promise.all(discovery.issueTemplates.map((template) => compileIssueFormTemplate(discovery, template.id)));
|
|
59
70
|
}
|
|
@@ -78,6 +89,11 @@ async function resolveLocalPolicyPath(root, policyPath) {
|
|
|
78
89
|
*/
|
|
79
90
|
export async function compileRepositoryGovernedContract(adapter, domain, selector) {
|
|
80
91
|
const source = await readRepositoryGovernanceSource(adapter);
|
|
92
|
+
const semanticCandidates = source.semanticTemplates.filter((template) => template.kind === (domain === "issue" ? "issue" : "pull_request"));
|
|
93
|
+
if (semanticCandidates.length > 0) {
|
|
94
|
+
const semanticIdentity = selectSemanticTemplate(source.semanticTemplates, domain === "issue" ? "issue" : "pull_request", selector);
|
|
95
|
+
return compileRepositorySemanticContractFromSource(adapter, source, semanticIdentity);
|
|
96
|
+
}
|
|
81
97
|
const { discovery } = source;
|
|
82
98
|
const selectedTemplate = domain === "issue" ? selectIssueTemplate(discovery, selector) : selectPullRequestTemplate(discovery, selector);
|
|
83
99
|
return compileRepositoryGovernedContractFromSource(adapter, source, domain, selectedTemplate, createRepositoryPolicySourceLoader(adapter, source));
|
|
@@ -86,20 +102,58 @@ export async function compileRepositoryGovernedContract(adapter, domain, selecto
|
|
|
86
102
|
* Compile every supported native template from the target repository's
|
|
87
103
|
* trusted default-branch governance. Read commands use this candidate set to
|
|
88
104
|
* identify an existing artifact without inventing a second template grammar.
|
|
105
|
+
*
|
|
106
|
+
* A template that fails to compile does not abort its siblings: it is
|
|
107
|
+
* reported as a bounded "failed" outcome so an unrelated malformed template
|
|
108
|
+
* cannot make every existing-artifact read in the repository fail. Callers
|
|
109
|
+
* that need fail-closed behavior for a single selected template should use
|
|
110
|
+
* compileRepositoryGovernedContract instead.
|
|
89
111
|
*/
|
|
90
112
|
export async function compileRepositoryGovernedContracts(adapter, domain) {
|
|
91
113
|
const source = await readRepositoryGovernanceSource(adapter);
|
|
114
|
+
const semanticTemplates = source.semanticTemplates.filter((template) => template.kind === (domain === "issue" ? "issue" : "pull_request"));
|
|
115
|
+
if (semanticTemplates.length > 0) {
|
|
116
|
+
const outcomes = [];
|
|
117
|
+
for (const identity of semanticTemplates) {
|
|
118
|
+
try {
|
|
119
|
+
outcomes.push({
|
|
120
|
+
status: "compiled",
|
|
121
|
+
contract: await compileRepositorySemanticContractFromSource(adapter, source, identity),
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
outcomes.push({
|
|
126
|
+
status: "failed",
|
|
127
|
+
path: identity.sourcePath,
|
|
128
|
+
message: error instanceof Error ? error.message : String(error),
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return outcomes;
|
|
133
|
+
}
|
|
92
134
|
const templates = domain === "issue"
|
|
93
135
|
? source.discovery.issueTemplates.filter((template) => template.type === "issue-form")
|
|
94
136
|
: source.discovery.pullRequestTemplates;
|
|
95
137
|
if (templates.length === 0)
|
|
96
138
|
throw new TemplateNotFoundError(undefined, templates);
|
|
97
139
|
const policySourceLoader = createRepositoryPolicySourceLoader(adapter, source);
|
|
98
|
-
const
|
|
140
|
+
const outcomes = [];
|
|
99
141
|
for (const template of templates) {
|
|
100
|
-
|
|
142
|
+
try {
|
|
143
|
+
outcomes.push({
|
|
144
|
+
status: "compiled",
|
|
145
|
+
contract: await compileRepositoryGovernedContractFromSource(adapter, source, domain, template, policySourceLoader),
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
outcomes.push({
|
|
150
|
+
status: "failed",
|
|
151
|
+
path: template.path,
|
|
152
|
+
message: error instanceof Error ? error.message : String(error),
|
|
153
|
+
});
|
|
154
|
+
}
|
|
101
155
|
}
|
|
102
|
-
return
|
|
156
|
+
return outcomes;
|
|
103
157
|
}
|
|
104
158
|
async function compileRepositoryGovernedContractFromSource(adapter, source, domain, selectedTemplate, policySourceLoader) {
|
|
105
159
|
const { context, ref, tree, discovery } = source;
|
|
@@ -139,6 +193,49 @@ async function compileRepositoryGovernedContractFromSource(adapter, source, doma
|
|
|
139
193
|
assertCanonicalContract(bound);
|
|
140
194
|
return bound;
|
|
141
195
|
}
|
|
196
|
+
async function compileRepositorySemanticContractFromSource(adapter, source, identity) {
|
|
197
|
+
const { context, ref, tree, discovery } = source;
|
|
198
|
+
const sourceEntry = findBlob(tree, identity.sourcePath, context, ref);
|
|
199
|
+
const serialized = await readGovernedValue("repository.governance.blob", context, ref, () => adapter.getRepositoryBlob(sourceEntry.sha));
|
|
200
|
+
let semanticSource;
|
|
201
|
+
try {
|
|
202
|
+
semanticSource = normalizeSemanticTemplate(JSON.parse(serialized), identity.sourcePath);
|
|
203
|
+
}
|
|
204
|
+
catch (error) {
|
|
205
|
+
throw invalidSource(context, identity.sourcePath, error instanceof Error ? error.message : "semantic source is invalid");
|
|
206
|
+
}
|
|
207
|
+
let contract = compileSemanticTemplateSource(semanticSource, identity.generatedPath);
|
|
208
|
+
let policySource;
|
|
209
|
+
if (semanticSource.kind === "pull_request") {
|
|
210
|
+
const repositoryPolicy = await createRepositoryPolicySourceLoader(adapter, source)();
|
|
211
|
+
if (repositoryPolicy !== undefined) {
|
|
212
|
+
contract = compilePullRequestPolicyOverlay(contract, repositoryPolicy.source, {
|
|
213
|
+
templateIdentities: discovery.pullRequestTemplates,
|
|
214
|
+
});
|
|
215
|
+
policySource = sourceIdentity(repositoryPolicy.entry, ref, repositoryPolicy.source);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
const nativeEntry = findBlob(tree, identity.generatedPath, context, ref);
|
|
219
|
+
const nativeSource = await readGovernedValue("repository.governance.blob", context, ref, () => adapter.getRepositoryBlob(nativeEntry.sha));
|
|
220
|
+
const bound = {
|
|
221
|
+
...contract,
|
|
222
|
+
provenance: {
|
|
223
|
+
authority: "repository-default-branch",
|
|
224
|
+
repository: {
|
|
225
|
+
host: context.hostname,
|
|
226
|
+
owner: context.owner,
|
|
227
|
+
name: context.name,
|
|
228
|
+
nameWithOwner: context.nameWithOwner,
|
|
229
|
+
},
|
|
230
|
+
ref,
|
|
231
|
+
treeSha: source.treeSha,
|
|
232
|
+
template: sourceIdentity(nativeEntry, ref, nativeSource),
|
|
233
|
+
...(policySource === undefined ? {} : { policy: policySource }),
|
|
234
|
+
},
|
|
235
|
+
};
|
|
236
|
+
assertCanonicalContract(bound);
|
|
237
|
+
return bound;
|
|
238
|
+
}
|
|
142
239
|
function createRepositoryPolicySourceLoader(adapter, source) {
|
|
143
240
|
let pending;
|
|
144
241
|
return () => {
|
|
@@ -178,27 +275,39 @@ export async function discoverRepositoryTemplates(adapter) {
|
|
|
178
275
|
*/
|
|
179
276
|
export async function verifyGovernedMutationFreshness(adapter, provenance) {
|
|
180
277
|
const source = await readRepositoryGovernanceSource(adapter);
|
|
278
|
+
const assessment = assessGovernanceFreshness(source, provenance);
|
|
279
|
+
if (!assessment.fresh)
|
|
280
|
+
throw staleGenerationError(source, provenance, assessment.reason);
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Judge whether a previously validated contract's governance inputs are
|
|
284
|
+
* still content-equivalent to the currently observed repository governance.
|
|
285
|
+
* Shared by the pre-mutation freshness gate and post-mutation reconciliation
|
|
286
|
+
* so both use identical stale-generation semantics.
|
|
287
|
+
*/
|
|
288
|
+
function assessGovernanceFreshness(source, provenance) {
|
|
181
289
|
if (source.context.nameWithOwner !== provenance.repository.nameWithOwner) {
|
|
182
|
-
|
|
290
|
+
return { fresh: false, reason: "target repository does not match validated provenance" };
|
|
183
291
|
}
|
|
184
292
|
if (source.treeSha === provenance.treeSha)
|
|
185
|
-
return;
|
|
293
|
+
return { fresh: true };
|
|
186
294
|
const templateEntry = source.tree.find((entry) => entry.path === provenance.template.path);
|
|
187
295
|
if (templateEntry === undefined || templateEntry.type !== "blob" || templateEntry.sha !== provenance.template.sha) {
|
|
188
|
-
|
|
296
|
+
return { fresh: false, reason: "template governance input changed" };
|
|
189
297
|
}
|
|
190
298
|
const currentPolicyEntry = findPolicy(source.tree);
|
|
191
299
|
if (provenance.policy === undefined) {
|
|
192
300
|
if (currentPolicyEntry !== undefined) {
|
|
193
|
-
|
|
301
|
+
return { fresh: false, reason: "a policy governance input was introduced" };
|
|
194
302
|
}
|
|
195
|
-
return;
|
|
303
|
+
return { fresh: true };
|
|
196
304
|
}
|
|
197
305
|
if (currentPolicyEntry === undefined ||
|
|
198
306
|
currentPolicyEntry.type !== "blob" ||
|
|
199
307
|
currentPolicyEntry.sha !== provenance.policy.sha) {
|
|
200
|
-
|
|
308
|
+
return { fresh: false, reason: "policy governance input changed" };
|
|
201
309
|
}
|
|
310
|
+
return { fresh: true };
|
|
202
311
|
}
|
|
203
312
|
function staleGenerationError(source, provenance, reason) {
|
|
204
313
|
return new GovernanceError("GOVERNANCE_GENERATION_STALE", "The target repository governance changed since this artifact was validated and rendered; recompile and revalidate before mutating.", {
|
|
@@ -210,31 +319,97 @@ function staleGenerationError(source, provenance, reason) {
|
|
|
210
319
|
currentTreeSha: source.treeSha,
|
|
211
320
|
});
|
|
212
321
|
}
|
|
322
|
+
async function reconcileGovernanceAfterMutation(adapter, provenance) {
|
|
323
|
+
const source = await readRepositoryGovernanceSource(adapter);
|
|
324
|
+
const assessment = assessGovernanceFreshness(source, provenance);
|
|
325
|
+
return {
|
|
326
|
+
validatedGeneration: provenance.treeSha,
|
|
327
|
+
currentGeneration: source.treeSha,
|
|
328
|
+
reconciled: assessment.fresh,
|
|
329
|
+
...(assessment.fresh ? {} : { reason: assessment.reason }),
|
|
330
|
+
};
|
|
331
|
+
}
|
|
213
332
|
/** Create an Issue only after verifying its governance generation is still fresh. */
|
|
214
333
|
export async function createGovernedIssue(adapter, artifact) {
|
|
215
334
|
await verifyGovernedMutationFreshness(adapter, artifact.provenance);
|
|
216
|
-
|
|
335
|
+
const created = await adapter.createIssue(artifact);
|
|
336
|
+
const governance = await reconcileGovernanceAfterMutation(adapter, artifact.provenance);
|
|
337
|
+
return { artifact: created, governance };
|
|
217
338
|
}
|
|
218
339
|
/** Update an Issue only after verifying its governance generation is still fresh. */
|
|
219
340
|
export async function updateGovernedIssue(adapter, issueNumber, artifact) {
|
|
220
341
|
await verifyGovernedMutationFreshness(adapter, artifact.provenance);
|
|
221
|
-
|
|
342
|
+
const updated = await adapter.updateIssue(issueNumber, artifact);
|
|
343
|
+
const governance = await reconcileGovernanceAfterMutation(adapter, artifact.provenance);
|
|
344
|
+
return { artifact: updated, governance };
|
|
222
345
|
}
|
|
223
346
|
/** Create a pull request only after verifying its governance generation is still fresh. */
|
|
224
347
|
export async function createGovernedPullRequest(adapter, artifact) {
|
|
225
348
|
await verifyGovernedMutationFreshness(adapter, artifact.provenance);
|
|
226
|
-
|
|
349
|
+
const created = await adapter.createPullRequest(artifact);
|
|
350
|
+
const governance = await reconcileGovernanceAfterMutation(adapter, artifact.provenance);
|
|
351
|
+
return { artifact: created, governance };
|
|
227
352
|
}
|
|
228
353
|
/** Update a pull request only after verifying its governance generation is still fresh. */
|
|
229
354
|
export async function updateGovernedPullRequest(adapter, pullRequestNumber, artifact) {
|
|
230
355
|
await verifyGovernedMutationFreshness(adapter, artifact.provenance);
|
|
231
|
-
|
|
356
|
+
const updated = await adapter.updatePullRequest(pullRequestNumber, artifact);
|
|
357
|
+
const governance = await reconcileGovernanceAfterMutation(adapter, artifact.provenance);
|
|
358
|
+
return { artifact: updated, governance };
|
|
232
359
|
}
|
|
233
360
|
async function readRepositoryGovernanceSource(adapter) {
|
|
234
361
|
const context = await adapter.resolveRepositoryContext();
|
|
235
362
|
const ref = await readGovernedValue("repository.default_branch", context, undefined, () => adapter.getRepositoryDefaultBranch());
|
|
236
363
|
const { sha: treeSha, entries: tree } = await readGovernedValue("repository.governance.tree", context, ref, () => adapter.getRepositoryTree(ref));
|
|
237
|
-
return {
|
|
364
|
+
return {
|
|
365
|
+
context,
|
|
366
|
+
ref,
|
|
367
|
+
treeSha,
|
|
368
|
+
tree,
|
|
369
|
+
discovery: createRemoteDiscovery(context, tree),
|
|
370
|
+
semanticTemplates: createRemoteSemanticIdentities(tree),
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
function createRemoteSemanticIdentities(tree) {
|
|
374
|
+
const identities = [];
|
|
375
|
+
for (const entry of tree) {
|
|
376
|
+
if (entry.type !== "blob" || !entry.path.endsWith(".json"))
|
|
377
|
+
continue;
|
|
378
|
+
if (entry.path.startsWith(".github/inari/issues/") && entry.path.split("/").length === 4) {
|
|
379
|
+
const id = entry.path.slice(".github/inari/issues/".length, -".json".length);
|
|
380
|
+
if (id.length > 0) {
|
|
381
|
+
identities.push({
|
|
382
|
+
id,
|
|
383
|
+
kind: "issue",
|
|
384
|
+
name: id,
|
|
385
|
+
sourcePath: entry.path,
|
|
386
|
+
generatedPath: `.github/ISSUE_TEMPLATE/${id}.yml`,
|
|
387
|
+
});
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
else if (entry.path === ".github/inari/pull-request.json") {
|
|
391
|
+
identities.push({
|
|
392
|
+
id: "pull-request",
|
|
393
|
+
kind: "pull_request",
|
|
394
|
+
name: "Pull request",
|
|
395
|
+
sourcePath: entry.path,
|
|
396
|
+
generatedPath: ".github/PULL_REQUEST_TEMPLATE.md",
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
else if (entry.path.startsWith(".github/inari/pull-requests/") && entry.path.split("/").length === 4) {
|
|
400
|
+
const id = entry.path.slice(".github/inari/pull-requests/".length, -".json".length);
|
|
401
|
+
if (id.length > 0) {
|
|
402
|
+
identities.push({
|
|
403
|
+
id,
|
|
404
|
+
kind: "pull_request",
|
|
405
|
+
name: id,
|
|
406
|
+
sourcePath: entry.path,
|
|
407
|
+
generatedPath: `.github/PULL_REQUEST_TEMPLATE/${id}.md`,
|
|
408
|
+
});
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
return identities.sort((left, right) => left.sourcePath.localeCompare(right.sourcePath, "en-US"));
|
|
238
413
|
}
|
|
239
414
|
function createRemoteDiscovery(context, tree) {
|
|
240
415
|
for (const entry of tree) {
|
package/dist/governance.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"governance.js","sourceRoot":"","sources":["../src/governance.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"governance.js","sourceRoot":"","sources":["../src/governance.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
import { runCli } from "./cli.js";
|
|
3
3
|
export { runCli };
|
|
4
4
|
export * from "./artifact.js";
|
|
5
|
+
export * from "./reconciliation.js";
|
|
5
6
|
export * from "./pr-policy.js";
|
|
6
7
|
export * from "./governance.js";
|
|
7
8
|
export * from "./contract/index.js";
|
|
8
9
|
export * from "./github/index.js";
|
|
9
10
|
export * from "./pull-request-template.js";
|
|
11
|
+
export * from "./semantic-template.js";
|
|
10
12
|
export { discoverTemplates, discoverTemplatesSync, discoverTemplatesFromPaths, classifyTemplatePath, isTemplateContainerPath, isTemplatePathInNativeDirectory, selectTemplate, selectIssueTemplate, selectPullRequestTemplate, TemplateDiscoveryError, TemplateFilesystemError, TemplateNotFoundError, TemplateSelectionAmbiguousError, TemplateNameConflictError, InvalidTemplateSelectorError, } from "./template-discovery.js";
|
|
11
13
|
export type { TemplateDiscoveryResult, TemplateSelector, TemplateType, TemplateKind, TemplateDiscoveryErrorCode, TemplateDiscoveryErrorDetails, } from "./template-discovery.js";
|
package/dist/index.js
CHANGED
|
@@ -5,11 +5,13 @@ import { fileURLToPath } from "node:url";
|
|
|
5
5
|
import { runCli } from "./cli.js";
|
|
6
6
|
export { runCli };
|
|
7
7
|
export * from "./artifact.js";
|
|
8
|
+
export * from "./reconciliation.js";
|
|
8
9
|
export * from "./pr-policy.js";
|
|
9
10
|
export * from "./governance.js";
|
|
10
11
|
export * from "./contract/index.js";
|
|
11
12
|
export * from "./github/index.js";
|
|
12
13
|
export * from "./pull-request-template.js";
|
|
14
|
+
export * from "./semantic-template.js";
|
|
13
15
|
export { discoverTemplates, discoverTemplatesSync, discoverTemplatesFromPaths, classifyTemplatePath, isTemplateContainerPath, isTemplatePathInNativeDirectory, selectTemplate, selectIssueTemplate, selectPullRequestTemplate, TemplateDiscoveryError, TemplateFilesystemError, TemplateNotFoundError, TemplateSelectionAmbiguousError, TemplateNameConflictError, InvalidTemplateSelectorError, } from "./template-discovery.js";
|
|
14
16
|
let invokedPath;
|
|
15
17
|
try {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,EACvB,+BAA+B,EAC/B,cAAc,EACd,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,+BAA+B,EAC/B,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AAUjC,IAAI,WAA+B,CAAC;AACpC,IAAI,CAAC;IACH,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,CAAC;AAAC,MAAM,CAAC;IACP,WAAW,GAAG,SAAS,CAAC;AAC1B,CAAC;AACD,IAAI,WAAW,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACnD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC1B,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjB,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC9B,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACxB,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC7D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,0BAA0B,EAC1B,oBAAoB,EACpB,uBAAuB,EACvB,+BAA+B,EAC/B,cAAc,EACd,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,EACrB,+BAA+B,EAC/B,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AAUjC,IAAI,WAA+B,CAAC;AACpC,IAAI,CAAC;IACH,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,CAAC;AAAC,MAAM,CAAC;IACP,WAAW,GAAG,SAAS,CAAC;AAC1B,CAAC;AACD,IAAI,WAAW,KAAK,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACnD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC1B,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;QACjB,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC9B,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACxB,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC7D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
package/dist/pr-policy.js
CHANGED
|
@@ -208,6 +208,105 @@ function parseRule(value, path) {
|
|
|
208
208
|
...(checklistRequireComplete === undefined ? {} : { checklistRequireComplete }),
|
|
209
209
|
};
|
|
210
210
|
}
|
|
211
|
+
const QUANTIFIER_PATTERN = /^(?:[*+?]|\{\d*,?\d*\})/u;
|
|
212
|
+
/**
|
|
213
|
+
* Rejects the structural shapes that cause catastrophic backtracking in a
|
|
214
|
+
* backtracking regex engine: a quantified group nested inside another
|
|
215
|
+
* quantified group, and a quantified group whose top-level alternatives can
|
|
216
|
+
* match overlapping text (e.g. "(a|a)+" or "(a|ab)+"). Overlap is judged by
|
|
217
|
+
* literal prefix comparison, which only inspects alternatives with no
|
|
218
|
+
* metacharacters; alternatives containing metacharacters are treated as
|
|
219
|
+
* potentially safe rather than guessed at. This is a conservative syntactic
|
|
220
|
+
* check, not a full NFA ambiguity analysis: it may reject some safe nested
|
|
221
|
+
* patterns but never a pattern the compiler previously accepted, and it does
|
|
222
|
+
* not claim to catch every possible ambiguous alternation.
|
|
223
|
+
*/
|
|
224
|
+
function hasCatastrophicBacktrackingRisk(pattern) {
|
|
225
|
+
const stack = [];
|
|
226
|
+
let inCharClass = false;
|
|
227
|
+
const pushGroup = (startIndex) => {
|
|
228
|
+
stack.push({ hasQuantifiedChild: false, alternatives: [], currentAlternativeStart: startIndex });
|
|
229
|
+
};
|
|
230
|
+
for (let index = 0; index < pattern.length; index += 1) {
|
|
231
|
+
const char = pattern[index];
|
|
232
|
+
if (inCharClass) {
|
|
233
|
+
if (char === "\\") {
|
|
234
|
+
index += 1;
|
|
235
|
+
}
|
|
236
|
+
else if (char === "]") {
|
|
237
|
+
inCharClass = false;
|
|
238
|
+
markIfQuantifiedAtom(stack, pattern, index + 1);
|
|
239
|
+
}
|
|
240
|
+
continue;
|
|
241
|
+
}
|
|
242
|
+
if (char === "\\") {
|
|
243
|
+
index += 1;
|
|
244
|
+
markIfQuantifiedAtom(stack, pattern, index + 1);
|
|
245
|
+
continue;
|
|
246
|
+
}
|
|
247
|
+
if (char === "[") {
|
|
248
|
+
inCharClass = true;
|
|
249
|
+
continue;
|
|
250
|
+
}
|
|
251
|
+
if (char === "(") {
|
|
252
|
+
pushGroup(index + 1);
|
|
253
|
+
continue;
|
|
254
|
+
}
|
|
255
|
+
if (char === "|") {
|
|
256
|
+
const current = stack.at(-1);
|
|
257
|
+
if (current !== undefined) {
|
|
258
|
+
current.alternatives.push(pattern.slice(current.currentAlternativeStart, index));
|
|
259
|
+
current.currentAlternativeStart = index + 1;
|
|
260
|
+
}
|
|
261
|
+
continue;
|
|
262
|
+
}
|
|
263
|
+
if (char === ")") {
|
|
264
|
+
const closed = stack.pop();
|
|
265
|
+
if (closed === undefined)
|
|
266
|
+
continue;
|
|
267
|
+
closed.alternatives.push(pattern.slice(closed.currentAlternativeStart, index));
|
|
268
|
+
const rest = pattern.slice(index + 1);
|
|
269
|
+
const quantifierMatch = QUANTIFIER_PATTERN.exec(rest);
|
|
270
|
+
const isQuantified = quantifierMatch !== null;
|
|
271
|
+
if (isQuantified) {
|
|
272
|
+
if (closed.hasQuantifiedChild)
|
|
273
|
+
return true;
|
|
274
|
+
if (closed.alternatives.length > 1 && alternativesOverlap(closed.alternatives))
|
|
275
|
+
return true;
|
|
276
|
+
}
|
|
277
|
+
const parent = stack.at(-1);
|
|
278
|
+
if (parent !== undefined && isQuantified)
|
|
279
|
+
parent.hasQuantifiedChild = true;
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
if (QUANTIFIER_PATTERN.test(char))
|
|
283
|
+
continue;
|
|
284
|
+
// An ordinary literal atom: a quantifier immediately following it (e.g. "a+")
|
|
285
|
+
// still contributes unbounded repetition inside whatever group contains it.
|
|
286
|
+
markIfQuantifiedAtom(stack, pattern, index + 1);
|
|
287
|
+
}
|
|
288
|
+
return false;
|
|
289
|
+
}
|
|
290
|
+
function markIfQuantifiedAtom(stack, pattern, fromIndex) {
|
|
291
|
+
const current = stack.at(-1);
|
|
292
|
+
if (current === undefined)
|
|
293
|
+
return;
|
|
294
|
+
if (QUANTIFIER_PATTERN.test(pattern.slice(fromIndex)))
|
|
295
|
+
current.hasQuantifiedChild = true;
|
|
296
|
+
}
|
|
297
|
+
const LITERAL_ALTERNATIVE_PATTERN = /^[^\\^$.*+?()[\]{}|]*$/u;
|
|
298
|
+
/** True if any two alternatives are literal text where one is a prefix of (or equal to) the other. */
|
|
299
|
+
function alternativesOverlap(alternatives) {
|
|
300
|
+
const literals = alternatives.filter((alternative) => LITERAL_ALTERNATIVE_PATTERN.test(alternative));
|
|
301
|
+
for (let i = 0; i < literals.length; i += 1) {
|
|
302
|
+
for (let j = i + 1; j < literals.length; j += 1) {
|
|
303
|
+
const [shorter, longer] = literals[i].length <= literals[j].length ? [literals[i], literals[j]] : [literals[j], literals[i]];
|
|
304
|
+
if (shorter.length > 0 && longer.startsWith(shorter))
|
|
305
|
+
return true;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
return false;
|
|
309
|
+
}
|
|
211
310
|
function ruleToConstraint(rule, field, path) {
|
|
212
311
|
if (rule.linkedIssue === true && field.type !== "string" && field.type !== "enum") {
|
|
213
312
|
throw new PullRequestPolicyError("PR_POLICY_UNSUPPORTED_CONSTRAINT", "linkedIssue requires a string-like section.", path);
|
|
@@ -223,6 +322,12 @@ function ruleToConstraint(rule, field, path) {
|
|
|
223
322
|
catch {
|
|
224
323
|
throw new PullRequestPolicyError("PR_POLICY_INVALID_VALUE", "pattern must be a valid regular expression.", path);
|
|
225
324
|
}
|
|
325
|
+
if (rule.pattern.includes("\\1") || /\\[1-9]/u.test(rule.pattern)) {
|
|
326
|
+
throw new PullRequestPolicyError("PR_POLICY_INVALID_VALUE", "pattern must not use backreferences.", path);
|
|
327
|
+
}
|
|
328
|
+
if (hasCatastrophicBacktrackingRisk(rule.pattern)) {
|
|
329
|
+
throw new PullRequestPolicyError("PR_POLICY_INVALID_VALUE", "pattern must not nest quantified groups or repeat overlapping alternatives, which can cause unbounded regex evaluation.", path);
|
|
330
|
+
}
|
|
226
331
|
}
|
|
227
332
|
if (rule.linkedIssue === true && rule.required === false) {
|
|
228
333
|
throw new PullRequestPolicyError("PR_POLICY_CONFLICT", "linkedIssue cannot be combined with required=false.", path);
|
|
@@ -314,7 +419,10 @@ function validatePolicyTemplateBindings(overlay, contract, templateIdentities) {
|
|
|
314
419
|
});
|
|
315
420
|
}
|
|
316
421
|
function identityMatchesContract(identity, contract) {
|
|
317
|
-
|
|
422
|
+
// A semantic source may provide the display name while the generated native
|
|
423
|
+
// identity derives its name from the committed path. The repository path is
|
|
424
|
+
// the stable authority boundary; it must remain an exact match.
|
|
425
|
+
return identity.path === contract.templateIdentity.path;
|
|
318
426
|
}
|
|
319
427
|
function assertTemplateMatch(selector, contract, templateIdentities, path = "$.template") {
|
|
320
428
|
if (selector === undefined)
|