@handong66/evidoc-core 0.1.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/src/agent-runtime.d.ts +15 -0
- package/dist/src/agent-runtime.js +149 -0
- package/dist/src/agent-runtime.js.map +1 -0
- package/dist/src/detectors.d.ts +2 -0
- package/dist/src/detectors.js +852 -0
- package/dist/src/detectors.js.map +1 -0
- package/dist/src/finding-documents.d.ts +2 -0
- package/dist/src/finding-documents.js +13 -0
- package/dist/src/finding-documents.js.map +1 -0
- package/dist/src/index.d.ts +17 -0
- package/dist/src/index.js +297 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/path-safety.d.ts +7 -0
- package/dist/src/path-safety.js +94 -0
- package/dist/src/path-safety.js.map +1 -0
- package/dist/src/repository.d.ts +6 -0
- package/dist/src/repository.js +277 -0
- package/dist/src/repository.js.map +1 -0
- package/dist/src/types.d.ts +157 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/workflow-warnings.d.ts +18 -0
- package/dist/src/workflow-warnings.js +458 -0
- package/dist/src/workflow-warnings.js.map +1 -0
- package/package.json +27 -0
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
import { readFile } from "node:fs/promises";
|
|
2
|
+
import { resolveExistingPathInsideRoot } from "./path-safety.js";
|
|
3
|
+
const DEFAULT_MAX_LOCAL_ACTION_DEPTH = 5;
|
|
4
|
+
export function isEvidocWorkflowText(text) {
|
|
5
|
+
return workflowUsesPackagedEvidocAction(text) || workflowRunsEvidocCli(text);
|
|
6
|
+
}
|
|
7
|
+
export async function detectEvidocWorkflowText(text, readLocalAction, options = {}) {
|
|
8
|
+
const localActions = [];
|
|
9
|
+
const seenActionPaths = new Set();
|
|
10
|
+
const direct = isEvidocWorkflowText(text);
|
|
11
|
+
const maxDepth = options.maxLocalActionDepth ?? DEFAULT_MAX_LOCAL_ACTION_DEPTH;
|
|
12
|
+
async function visitLocalActions(currentText, depth) {
|
|
13
|
+
if (depth >= maxDepth)
|
|
14
|
+
return false;
|
|
15
|
+
let matched = false;
|
|
16
|
+
for (const actionPath of workflowLocalActionPaths(currentText)) {
|
|
17
|
+
if (seenActionPaths.has(actionPath))
|
|
18
|
+
continue;
|
|
19
|
+
seenActionPaths.add(actionPath);
|
|
20
|
+
const action = await readLocalAction(actionPath);
|
|
21
|
+
if (!action)
|
|
22
|
+
continue;
|
|
23
|
+
if (isEvidocWorkflowText(action.text)) {
|
|
24
|
+
localActions.push(action);
|
|
25
|
+
matched = true;
|
|
26
|
+
}
|
|
27
|
+
if (await visitLocalActions(action.text, depth + 1)) {
|
|
28
|
+
matched = true;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return matched;
|
|
32
|
+
}
|
|
33
|
+
const indirect = await visitLocalActions(text, 0);
|
|
34
|
+
return { matches: direct || indirect, localActions };
|
|
35
|
+
}
|
|
36
|
+
export async function detectRepositoryEvidocWorkflowText(root, text, options = {}) {
|
|
37
|
+
return detectEvidocWorkflowText(text, (actionPath) => readRepositoryLocalActionDefinition(root, actionPath), options);
|
|
38
|
+
}
|
|
39
|
+
async function readRepositoryLocalActionDefinition(root, actionPath) {
|
|
40
|
+
for (const candidate of [`${actionPath}/action.yml`, `${actionPath}/action.yaml`]) {
|
|
41
|
+
const target = await resolveExistingPathInsideRoot(root, candidate);
|
|
42
|
+
if (!target)
|
|
43
|
+
continue;
|
|
44
|
+
try {
|
|
45
|
+
return { path: candidate, text: await readFile(target, "utf8") };
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return undefined;
|
|
52
|
+
}
|
|
53
|
+
export function workflowLocalActionPaths(text) {
|
|
54
|
+
const paths = [];
|
|
55
|
+
const seen = new Set();
|
|
56
|
+
for (const value of workflowStepUsesValues(text)) {
|
|
57
|
+
const actionPath = workflowLocalActionPathFromValue(value);
|
|
58
|
+
if (!actionPath || seen.has(actionPath))
|
|
59
|
+
continue;
|
|
60
|
+
seen.add(actionPath);
|
|
61
|
+
paths.push(actionPath);
|
|
62
|
+
}
|
|
63
|
+
return paths;
|
|
64
|
+
}
|
|
65
|
+
function workflowStepUsesValues(text) {
|
|
66
|
+
const values = [];
|
|
67
|
+
let blockScalarIndent;
|
|
68
|
+
let stepsIndent;
|
|
69
|
+
let stepItemIndent;
|
|
70
|
+
for (const line of text.replaceAll("\r\n", "\n").split("\n")) {
|
|
71
|
+
const indent = leadingSpaces(line);
|
|
72
|
+
if (blockScalarIndent !== undefined) {
|
|
73
|
+
if (!line.trim())
|
|
74
|
+
continue;
|
|
75
|
+
if (indent > blockScalarIndent)
|
|
76
|
+
continue;
|
|
77
|
+
blockScalarIndent = undefined;
|
|
78
|
+
}
|
|
79
|
+
if (stepsIndent !== undefined && line.trim() && indent <= stepsIndent) {
|
|
80
|
+
stepsIndent = undefined;
|
|
81
|
+
stepItemIndent = undefined;
|
|
82
|
+
}
|
|
83
|
+
if (lineStartsStepsBlock(line)) {
|
|
84
|
+
stepsIndent = indent;
|
|
85
|
+
stepItemIndent = undefined;
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
if (lineStartsYamlBlockScalar(line)) {
|
|
89
|
+
blockScalarIndent = indent;
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
if (stepsIndent === undefined)
|
|
93
|
+
continue;
|
|
94
|
+
if (/^-\s+/.test(line.trim()))
|
|
95
|
+
stepItemIndent = indent;
|
|
96
|
+
if (stepItemIndent === undefined || indent < stepItemIndent)
|
|
97
|
+
continue;
|
|
98
|
+
const value = workflowUsesValue(line);
|
|
99
|
+
if (value)
|
|
100
|
+
values.push(value);
|
|
101
|
+
}
|
|
102
|
+
return values;
|
|
103
|
+
}
|
|
104
|
+
function lineStartsStepsBlock(line) {
|
|
105
|
+
const trimmed = line.trim();
|
|
106
|
+
if (!trimmed || trimmed.startsWith("#"))
|
|
107
|
+
return false;
|
|
108
|
+
const withoutListMarker = trimmed.replace(/^-\s+/, "");
|
|
109
|
+
return /^steps\s*:\s*(?:#.*)?$/.test(withoutListMarker);
|
|
110
|
+
}
|
|
111
|
+
function lineStartsYamlBlockScalar(line) {
|
|
112
|
+
const trimmed = line.trim();
|
|
113
|
+
if (!trimmed || trimmed.startsWith("#"))
|
|
114
|
+
return false;
|
|
115
|
+
const withoutListMarker = trimmed.replace(/^-\s+/, "");
|
|
116
|
+
return /^[^:#]+:\s*[>|][+-]?\s*(?:#.*)?$/.test(withoutListMarker);
|
|
117
|
+
}
|
|
118
|
+
export function evidocWorkflowWarnings(path, text, defaultBranch) {
|
|
119
|
+
const warnings = [];
|
|
120
|
+
if (workflowHasPullRequestAndUnfilteredPush(text)) {
|
|
121
|
+
warnings.push(`${path} uses pull_request plus unfiltered push triggers; add push.branches for default branches to avoid duplicate push and pull-request checks on same-repository PR branches.`);
|
|
122
|
+
}
|
|
123
|
+
const pushBranches = workflowPushBranches(text);
|
|
124
|
+
if (defaultBranch && pushBranches && !pushBranches.includes(defaultBranch)) {
|
|
125
|
+
warnings.push(`${path} push.branches does not include detected default branch ${defaultBranch}; add it so default-branch pushes run Evidoc full scans.`);
|
|
126
|
+
}
|
|
127
|
+
if (workflowSupportsPrCommentInput(text) && !workflowEnablesPrComments(text)) {
|
|
128
|
+
warnings.push(`${path} PR comments are disabled; set pr-comment: "true" so pull requests show the repair plan, safe-fix commands, and agent prompt.`);
|
|
129
|
+
}
|
|
130
|
+
if (workflowGrantsSecurityEvents(text) && !workflowEnablesSarif(text)) {
|
|
131
|
+
warnings.push(`${path} grants security-events: write, but security-events: write is only needed when sarif: "true"; remove it for the default low-permission workflow.`);
|
|
132
|
+
}
|
|
133
|
+
if (workflowUsesAdvisoryFailOn(text)) {
|
|
134
|
+
warnings.push(`${path} uses fail-on: broken, but fail-on: broken is advisory for review-needed drift; set fail-on: review_needed so documentation and agent-instruction drift blocks CI.`);
|
|
135
|
+
}
|
|
136
|
+
return warnings;
|
|
137
|
+
}
|
|
138
|
+
function workflowUsesPackagedEvidocAction(text) {
|
|
139
|
+
return workflowStepUsesValues(text).some((action) => /(?:^|\/)(?:Evidoc|DriftGuard)\/packages\/github-action(?:@|$)/i.test(action));
|
|
140
|
+
}
|
|
141
|
+
function workflowLocalActionPathFromValue(value) {
|
|
142
|
+
if (!value.startsWith("./") || value.includes("@"))
|
|
143
|
+
return undefined;
|
|
144
|
+
return normalizeLocalActionPath(value.slice(2));
|
|
145
|
+
}
|
|
146
|
+
function workflowUsesValue(line) {
|
|
147
|
+
const trimmed = line.trim();
|
|
148
|
+
if (!trimmed || trimmed.startsWith("#"))
|
|
149
|
+
return undefined;
|
|
150
|
+
const withoutListMarker = trimmed.replace(/^-\s+/, "");
|
|
151
|
+
const match = withoutListMarker.match(/^uses\s*:\s*(.+)$/);
|
|
152
|
+
if (!match)
|
|
153
|
+
return undefined;
|
|
154
|
+
return stripTokenQuotes(stripInlineYamlComment(match[1]).trim());
|
|
155
|
+
}
|
|
156
|
+
function normalizeLocalActionPath(path) {
|
|
157
|
+
const normalized = path.replaceAll("\\", "/");
|
|
158
|
+
if (!normalized ||
|
|
159
|
+
normalized.includes("\0") ||
|
|
160
|
+
normalized.includes("\n") ||
|
|
161
|
+
normalized.includes("\r") ||
|
|
162
|
+
normalized.startsWith("/") ||
|
|
163
|
+
normalized.includes(":")) {
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
if (normalized.split("/").some((part) => !part || part === "." || part === "..")) {
|
|
167
|
+
return undefined;
|
|
168
|
+
}
|
|
169
|
+
return normalized;
|
|
170
|
+
}
|
|
171
|
+
function stripInlineYamlComment(value) {
|
|
172
|
+
let quote;
|
|
173
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
174
|
+
const char = value[index];
|
|
175
|
+
if ((char === "'" || char === '"') && !quote) {
|
|
176
|
+
quote = char;
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
if (char === quote) {
|
|
180
|
+
quote = undefined;
|
|
181
|
+
continue;
|
|
182
|
+
}
|
|
183
|
+
if (char === "#" && !quote && /\s/.test(value[index - 1] ?? " ")) {
|
|
184
|
+
return value.slice(0, index);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return value;
|
|
188
|
+
}
|
|
189
|
+
function workflowRunsEvidocCli(text) {
|
|
190
|
+
return workflowCommandSegments(text).some((command) => isEvidocCommand(command));
|
|
191
|
+
}
|
|
192
|
+
function workflowSupportsPrCommentInput(text) {
|
|
193
|
+
return workflowUsesPackagedEvidocAction(text);
|
|
194
|
+
}
|
|
195
|
+
function workflowEnablesPrComments(text) {
|
|
196
|
+
return /^\s*pr-comment\s*:\s*["']?true["']?\s*(?:#.*)?$/im.test(text);
|
|
197
|
+
}
|
|
198
|
+
function workflowEnablesSarif(text) {
|
|
199
|
+
return /^\s*sarif\s*:\s*["']?true["']?\s*(?:#.*)?$/im.test(text);
|
|
200
|
+
}
|
|
201
|
+
function workflowGrantsSecurityEvents(text) {
|
|
202
|
+
return /^\s*security-events\s*:\s*write\s*(?:#.*)?$/im.test(text);
|
|
203
|
+
}
|
|
204
|
+
function workflowUsesAdvisoryFailOn(text) {
|
|
205
|
+
return (/^\s*fail-on\s*:\s*["']?broken["']?\s*(?:#.*)?$/im.test(text) ||
|
|
206
|
+
workflowCommandSegments(text).some((command) => isEvidocCommand(command) && commandUsesAdvisoryFailOn(command)));
|
|
207
|
+
}
|
|
208
|
+
function isEvidocCommand(command) {
|
|
209
|
+
const tokens = command
|
|
210
|
+
.replace(/\s+#.*$/, "")
|
|
211
|
+
.replace(/\\\s*$/, "")
|
|
212
|
+
.split(/\s+/)
|
|
213
|
+
.map(stripTokenQuotes)
|
|
214
|
+
.filter((token) => token.length > 0 && token !== "\\");
|
|
215
|
+
if (tokens.length === 0)
|
|
216
|
+
return false;
|
|
217
|
+
const subcommandIndex = commandNameIndexAfterOptions(tokens, 1);
|
|
218
|
+
const subcommand = subcommandIndex === undefined ? undefined : tokens[subcommandIndex];
|
|
219
|
+
const subcommandArgsIndex = subcommandIndex === undefined ? 1 : subcommandIndex + 1;
|
|
220
|
+
if (tokens[0] === "npm" && subcommand === "run") {
|
|
221
|
+
return scriptNameAfterOptions(tokens, subcommandArgsIndex) === "evidoc";
|
|
222
|
+
}
|
|
223
|
+
if (tokens[0] === "npx")
|
|
224
|
+
return hasEvidocPackageToken(tokens);
|
|
225
|
+
if (tokens[0] === "pnpm") {
|
|
226
|
+
if (subcommand === "run")
|
|
227
|
+
return scriptNameAfterOptions(tokens, subcommandArgsIndex) === "evidoc";
|
|
228
|
+
if (subcommand === "evidoc")
|
|
229
|
+
return true;
|
|
230
|
+
if (subcommand === "exec") {
|
|
231
|
+
return (commandNameAfterOptions(tokens, subcommandArgsIndex) === "evidoc" ||
|
|
232
|
+
hasEvidocPackageToken(tokens));
|
|
233
|
+
}
|
|
234
|
+
if (subcommand === "dlx")
|
|
235
|
+
return hasEvidocPackageToken(tokens);
|
|
236
|
+
}
|
|
237
|
+
if (tokens[0] === "yarn") {
|
|
238
|
+
if (subcommand === "run")
|
|
239
|
+
return scriptNameAfterOptions(tokens, subcommandArgsIndex) === "evidoc";
|
|
240
|
+
if (subcommand === "exec") {
|
|
241
|
+
return (commandNameAfterOptions(tokens, subcommandArgsIndex) === "evidoc" ||
|
|
242
|
+
hasEvidocPackageToken(tokens));
|
|
243
|
+
}
|
|
244
|
+
return hasEvidocPackageToken(tokens) || subcommand === "evidoc";
|
|
245
|
+
}
|
|
246
|
+
if (tokens[0] === "bun") {
|
|
247
|
+
return subcommand === "run" && scriptNameAfterOptions(tokens, subcommandArgsIndex) === "evidoc";
|
|
248
|
+
}
|
|
249
|
+
if (tokens[0] === "bunx")
|
|
250
|
+
return hasEvidocPackageToken(tokens);
|
|
251
|
+
if (tokens[0] === "evidoc")
|
|
252
|
+
return true;
|
|
253
|
+
return false;
|
|
254
|
+
}
|
|
255
|
+
function hasEvidocPackageToken(tokens) {
|
|
256
|
+
return tokens.includes("evidoc") || tokens.includes("@handong66/evidoc");
|
|
257
|
+
}
|
|
258
|
+
function commandUsesAdvisoryFailOn(command) {
|
|
259
|
+
const tokens = command
|
|
260
|
+
.replace(/\s+#.*$/, "")
|
|
261
|
+
.split(/\s+/)
|
|
262
|
+
.map(stripTokenQuotes)
|
|
263
|
+
.filter((token) => token.length > 0 && token !== "\\");
|
|
264
|
+
for (let index = 0; index < tokens.length; index += 1) {
|
|
265
|
+
const token = tokens[index];
|
|
266
|
+
if (token.startsWith("--fail-on=")) {
|
|
267
|
+
return stripTokenQuotes(token.slice("--fail-on=".length)) === "broken";
|
|
268
|
+
}
|
|
269
|
+
if (token === "--fail-on") {
|
|
270
|
+
return stripTokenQuotes(tokens[index + 1] ?? "") === "broken";
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
275
|
+
function scriptNameAfterOptions(tokens, startIndex) {
|
|
276
|
+
for (let index = startIndex; index < tokens.length; index += 1) {
|
|
277
|
+
const token = tokens[index];
|
|
278
|
+
if (token === "--")
|
|
279
|
+
return undefined;
|
|
280
|
+
if (!token.startsWith("-"))
|
|
281
|
+
return token;
|
|
282
|
+
if (!token.includes("=") && PACKAGE_MANAGER_VALUE_OPTIONS.has(token))
|
|
283
|
+
index += 1;
|
|
284
|
+
}
|
|
285
|
+
return undefined;
|
|
286
|
+
}
|
|
287
|
+
function commandNameAfterOptions(tokens, startIndex) {
|
|
288
|
+
const index = commandNameIndexAfterOptions(tokens, startIndex);
|
|
289
|
+
return index === undefined ? undefined : tokens[index];
|
|
290
|
+
}
|
|
291
|
+
function commandNameIndexAfterOptions(tokens, startIndex) {
|
|
292
|
+
for (let index = startIndex; index < tokens.length; index += 1) {
|
|
293
|
+
const token = tokens[index];
|
|
294
|
+
if (token === "--")
|
|
295
|
+
return undefined;
|
|
296
|
+
if (!token.startsWith("-"))
|
|
297
|
+
return index;
|
|
298
|
+
if (!token.includes("=") && PACKAGE_MANAGER_VALUE_OPTIONS.has(token))
|
|
299
|
+
index += 1;
|
|
300
|
+
}
|
|
301
|
+
return undefined;
|
|
302
|
+
}
|
|
303
|
+
const PACKAGE_MANAGER_VALUE_OPTIONS = new Set(["--prefix", "--workspace", "-w", "--filter", "-F", "--cwd"]);
|
|
304
|
+
function stripTokenQuotes(token) {
|
|
305
|
+
return token.replace(/^["']|["']$/g, "");
|
|
306
|
+
}
|
|
307
|
+
function workflowCommandSegments(text) {
|
|
308
|
+
const segments = [];
|
|
309
|
+
let continued;
|
|
310
|
+
for (const line of text.replaceAll("\r\n", "\n").split("\n")) {
|
|
311
|
+
const command = workflowCommandLine(line)?.trim();
|
|
312
|
+
if (!command || isYamlBlockMarker(command))
|
|
313
|
+
continue;
|
|
314
|
+
const continues = /\\\s*$/.test(command);
|
|
315
|
+
const withoutContinuation = command.replace(/\\\s*$/, "").trim();
|
|
316
|
+
if (continued) {
|
|
317
|
+
continued = `${continued} ${withoutContinuation}`.trim();
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
continued = withoutContinuation;
|
|
321
|
+
}
|
|
322
|
+
if (!continues) {
|
|
323
|
+
segments.push(continued);
|
|
324
|
+
continued = undefined;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
if (continued)
|
|
328
|
+
segments.push(continued);
|
|
329
|
+
return segments;
|
|
330
|
+
}
|
|
331
|
+
function isYamlBlockMarker(command) {
|
|
332
|
+
return /^(?:[>|][+-]?)$/.test(command);
|
|
333
|
+
}
|
|
334
|
+
function workflowCommandLine(line) {
|
|
335
|
+
const trimmed = line.trim();
|
|
336
|
+
if (!trimmed || trimmed.startsWith("#"))
|
|
337
|
+
return undefined;
|
|
338
|
+
const withoutListMarker = trimmed.replace(/^-\s+/, "");
|
|
339
|
+
const runMatch = withoutListMarker.match(/^run\s*:\s*(.*)$/);
|
|
340
|
+
if (runMatch)
|
|
341
|
+
return runMatch[1];
|
|
342
|
+
return withoutListMarker;
|
|
343
|
+
}
|
|
344
|
+
function workflowHasPullRequestAndUnfilteredPush(text) {
|
|
345
|
+
const lines = text.replaceAll("\r\n", "\n").split("\n");
|
|
346
|
+
const inlineTrigger = lines.find((line) => /^\s*on\s*:/.test(line));
|
|
347
|
+
const inlineValue = inlineTrigger?.replace(/^\s*on\s*:\s*/, "").trim();
|
|
348
|
+
if (inlineValue && inlineValue !== "") {
|
|
349
|
+
const normalized = inlineValue.toLowerCase();
|
|
350
|
+
return normalized.includes("pull_request") && /\bpush\b/.test(normalized);
|
|
351
|
+
}
|
|
352
|
+
const onIndex = lines.findIndex((line) => /^\s*on\s*:\s*(?:#.*)?$/.test(line));
|
|
353
|
+
if (onIndex === -1)
|
|
354
|
+
return false;
|
|
355
|
+
const onIndent = leadingSpaces(lines[onIndex]);
|
|
356
|
+
let hasPullRequest = false;
|
|
357
|
+
let hasUnfilteredPush = false;
|
|
358
|
+
for (let index = onIndex + 1; index < lines.length; index += 1) {
|
|
359
|
+
const line = lines[index];
|
|
360
|
+
if (/^\s*(?:#.*)?$/.test(line))
|
|
361
|
+
continue;
|
|
362
|
+
const indent = leadingSpaces(line);
|
|
363
|
+
if (indent <= onIndent)
|
|
364
|
+
break;
|
|
365
|
+
if (indent !== onIndent + 2)
|
|
366
|
+
continue;
|
|
367
|
+
const trimmed = line.trim();
|
|
368
|
+
if (/^-\s*pull_request\s*(?:#.*)?$/.test(trimmed)) {
|
|
369
|
+
hasPullRequest = true;
|
|
370
|
+
continue;
|
|
371
|
+
}
|
|
372
|
+
if (/^-\s*push\s*(?:#.*)?$/.test(trimmed)) {
|
|
373
|
+
hasUnfilteredPush = true;
|
|
374
|
+
continue;
|
|
375
|
+
}
|
|
376
|
+
if (/^pull_request\s*:/.test(trimmed)) {
|
|
377
|
+
hasPullRequest = true;
|
|
378
|
+
continue;
|
|
379
|
+
}
|
|
380
|
+
if (/^push\s*:/.test(trimmed)) {
|
|
381
|
+
hasUnfilteredPush = !pushTriggerHasBranches(lines, index, indent);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
return hasPullRequest && hasUnfilteredPush;
|
|
385
|
+
}
|
|
386
|
+
function workflowPushBranches(text) {
|
|
387
|
+
const lines = text.replaceAll("\r\n", "\n").split("\n");
|
|
388
|
+
const onIndex = lines.findIndex((line) => /^\s*on\s*:\s*(?:#.*)?$/.test(line));
|
|
389
|
+
if (onIndex === -1)
|
|
390
|
+
return undefined;
|
|
391
|
+
const onIndent = leadingSpaces(lines[onIndex]);
|
|
392
|
+
for (let index = onIndex + 1; index < lines.length; index += 1) {
|
|
393
|
+
const line = lines[index];
|
|
394
|
+
if (/^\s*(?:#.*)?$/.test(line))
|
|
395
|
+
continue;
|
|
396
|
+
const indent = leadingSpaces(line);
|
|
397
|
+
if (indent <= onIndent)
|
|
398
|
+
break;
|
|
399
|
+
if (indent !== onIndent + 2)
|
|
400
|
+
continue;
|
|
401
|
+
if (/^push\s*:/.test(line.trim())) {
|
|
402
|
+
return pushTriggerBranches(lines, index, indent);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
return undefined;
|
|
406
|
+
}
|
|
407
|
+
function pushTriggerBranches(lines, pushIndex, pushIndent) {
|
|
408
|
+
const branches = [];
|
|
409
|
+
let branchListIndent;
|
|
410
|
+
for (let index = pushIndex + 1; index < lines.length; index += 1) {
|
|
411
|
+
const line = lines[index];
|
|
412
|
+
if (/^\s*(?:#.*)?$/.test(line))
|
|
413
|
+
continue;
|
|
414
|
+
const indent = leadingSpaces(line);
|
|
415
|
+
if (indent <= pushIndent)
|
|
416
|
+
break;
|
|
417
|
+
const trimmed = line.trim();
|
|
418
|
+
if (branchListIndent === undefined) {
|
|
419
|
+
const inlineBranches = trimmed.match(/^branches\s*:\s*\[(.*)]\s*(?:#.*)?$/);
|
|
420
|
+
if (inlineBranches)
|
|
421
|
+
return parseInlineBranchList(inlineBranches[1]);
|
|
422
|
+
if (/^branches\s*:\s*(?:#.*)?$/.test(trimmed)) {
|
|
423
|
+
branchListIndent = indent;
|
|
424
|
+
}
|
|
425
|
+
continue;
|
|
426
|
+
}
|
|
427
|
+
if (indent <= branchListIndent)
|
|
428
|
+
break;
|
|
429
|
+
const match = trimmed.match(/^-\s*["']?([^"'#\s]+)["']?\s*(?:#.*)?$/);
|
|
430
|
+
if (match)
|
|
431
|
+
branches.push(match[1]);
|
|
432
|
+
}
|
|
433
|
+
return branchListIndent === undefined ? undefined : branches;
|
|
434
|
+
}
|
|
435
|
+
function pushTriggerHasBranches(lines, pushIndex, pushIndent) {
|
|
436
|
+
for (let index = pushIndex + 1; index < lines.length; index += 1) {
|
|
437
|
+
const line = lines[index];
|
|
438
|
+
if (/^\s*(?:#.*)?$/.test(line))
|
|
439
|
+
continue;
|
|
440
|
+
const indent = leadingSpaces(line);
|
|
441
|
+
if (indent <= pushIndent)
|
|
442
|
+
return false;
|
|
443
|
+
if (/^branches\s*:/.test(line.trim()))
|
|
444
|
+
return true;
|
|
445
|
+
}
|
|
446
|
+
return false;
|
|
447
|
+
}
|
|
448
|
+
function parseInlineBranchList(value) {
|
|
449
|
+
const branches = value
|
|
450
|
+
.split(",")
|
|
451
|
+
.map((branch) => branch.trim().replace(/^["']|["']$/g, ""))
|
|
452
|
+
.filter((branch) => branch.length > 0);
|
|
453
|
+
return branches.every((branch) => /^[^"'#\s]+$/.test(branch)) ? branches : undefined;
|
|
454
|
+
}
|
|
455
|
+
function leadingSpaces(line) {
|
|
456
|
+
return line.length - line.trimStart().length;
|
|
457
|
+
}
|
|
458
|
+
//# sourceMappingURL=workflow-warnings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-warnings.js","sourceRoot":"","sources":["../../src/workflow-warnings.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@handong66/evidoc-core",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"prepublishOnly": "node ../../scripts/ensure-built-package.mjs"
|
|
7
|
+
},
|
|
8
|
+
"exports": {
|
|
9
|
+
".": "./dist/src/index.js"
|
|
10
|
+
},
|
|
11
|
+
"types": "./dist/src/index.d.ts",
|
|
12
|
+
"files": [
|
|
13
|
+
"dist/src"
|
|
14
|
+
],
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"typescript": "^5.8.3"
|
|
17
|
+
},
|
|
18
|
+
"license": "MIT",
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "git+https://github.com/handong66/Evidoc.git"
|
|
22
|
+
},
|
|
23
|
+
"bugs": {
|
|
24
|
+
"url": "https://github.com/handong66/Evidoc/issues"
|
|
25
|
+
},
|
|
26
|
+
"homepage": "https://github.com/handong66/Evidoc#readme"
|
|
27
|
+
}
|