@pretorian-worx/runclaudia-cli 0.14.0 → 0.16.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/index.js +128 -1
- package/dist/index.js.map +1 -1
- package/dist/pr.d.ts +40 -0
- package/dist/pr.js +258 -0
- package/dist/pr.js.map +1 -0
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -11,6 +11,7 @@ import { formatJson, formatMarkdown } from "./format.js";
|
|
|
11
11
|
import { loadConfig } from "./config.js";
|
|
12
12
|
import { aggregateRatings, formatRatings } from "./ratings.js";
|
|
13
13
|
import { dispatchReporters } from "./reporters.js";
|
|
14
|
+
import { openDraftPr } from "./pr.js";
|
|
14
15
|
const planCmd = defineCommand({
|
|
15
16
|
meta: { name: "plan", description: "Produce a diff-aware test plan" },
|
|
16
17
|
args: {
|
|
@@ -266,7 +267,7 @@ function resolveSha(cwd, ref) {
|
|
|
266
267
|
const generateCmd = defineCommand({
|
|
267
268
|
meta: {
|
|
268
269
|
name: "generate",
|
|
269
|
-
description: "Draft Playwright specs for routes in the diff that have no existing coverage.
|
|
270
|
+
description: "Draft Playwright specs for routes in the diff that have no existing coverage. By default writes drafts to .claudia/generated/ for human review. Add --run --target <url> to also execute each generated spec against the deployed URL and report pass/fail.",
|
|
270
271
|
},
|
|
271
272
|
args: {
|
|
272
273
|
base: { type: "string", required: true, description: "Base ref (the last-deployed SHA)" },
|
|
@@ -275,9 +276,28 @@ const generateCmd = defineCommand({
|
|
|
275
276
|
"out-dir": { type: "string", description: "Output directory for generated specs (default: <cwd>/.claudia/generated/)" },
|
|
276
277
|
"max-flows": { type: "string", description: "Cap on how many uncovered routes to generate for in one run (default: 5)" },
|
|
277
278
|
model: { type: "string", description: "Override the generator model (default: claude-sonnet-4-6)" },
|
|
279
|
+
run: { type: "boolean", description: "After generating, execute each draft against --target via npx playwright test" },
|
|
280
|
+
target: { type: "string", description: "Deployed URL to run generated specs against (required with --run)" },
|
|
281
|
+
"playwright-config": { type: "string", description: "Path to Playwright config file (only used with --run)" },
|
|
282
|
+
pr: {
|
|
283
|
+
type: "boolean",
|
|
284
|
+
description: "After --run, move drafts that PASSED into the team's spec directory and open a draft PR via gh. Requires --run. Uses a deterministic branch (claudia/specs-<sha>) so re-runs update the same PR.",
|
|
285
|
+
},
|
|
286
|
+
"pr-dry-run": {
|
|
287
|
+
type: "boolean",
|
|
288
|
+
description: "Prepare the PR (move files, choose branch) but don't push or call gh.",
|
|
289
|
+
},
|
|
278
290
|
json: { type: "boolean", description: "Emit JSON summary instead of markdown" },
|
|
279
291
|
},
|
|
280
292
|
async run({ args }) {
|
|
293
|
+
if (args.run && !args.target) {
|
|
294
|
+
process.stderr.write("claudia: --run requires --target <url>\n");
|
|
295
|
+
process.exit(2);
|
|
296
|
+
}
|
|
297
|
+
if (args.pr && !args.run) {
|
|
298
|
+
process.stderr.write("claudia: --pr requires --run (so we know which drafts passed)\n");
|
|
299
|
+
process.exit(2);
|
|
300
|
+
}
|
|
281
301
|
const rootDir = resolve(args.cwd ?? process.cwd());
|
|
282
302
|
let result;
|
|
283
303
|
try {
|
|
@@ -298,14 +318,121 @@ const generateCmd = defineCommand({
|
|
|
298
318
|
}
|
|
299
319
|
throw err;
|
|
300
320
|
}
|
|
321
|
+
// Phase B.2: optionally execute each draft against the target.
|
|
322
|
+
if (args.run && result.generated.length > 0 && args.target) {
|
|
323
|
+
for (const spec of result.generated) {
|
|
324
|
+
spec.runOutcome = await runGeneratedSpec(rootDir, spec.filePath, args.target, args["playwright-config"]);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
301
327
|
if (args.json) {
|
|
302
328
|
process.stdout.write(JSON.stringify(result, null, 2) + "\n");
|
|
303
329
|
}
|
|
304
330
|
else {
|
|
305
331
|
process.stdout.write(formatGenerationMarkdown(result, { base: args.base, head: args.head }) + "\n");
|
|
306
332
|
}
|
|
333
|
+
// Phase B.3: optionally open a draft PR for drafts that passed.
|
|
334
|
+
if (args.pr) {
|
|
335
|
+
const map = loadOrBuildMap({ rootDir });
|
|
336
|
+
const headSha = resolveSha(rootDir, args.head);
|
|
337
|
+
const prResult = openDraftPr({
|
|
338
|
+
rootDir,
|
|
339
|
+
generation: result,
|
|
340
|
+
map,
|
|
341
|
+
headSha,
|
|
342
|
+
dryRun: Boolean(args["pr-dry-run"]),
|
|
343
|
+
});
|
|
344
|
+
process.stdout.write("\n");
|
|
345
|
+
process.stdout.write(formatPrResultMarkdown(prResult) + "\n");
|
|
346
|
+
}
|
|
307
347
|
},
|
|
308
348
|
});
|
|
349
|
+
function formatPrResultMarkdown(r) {
|
|
350
|
+
const lines = ["## claudia — draft PR"];
|
|
351
|
+
switch (r.status) {
|
|
352
|
+
case "no-passing-drafts":
|
|
353
|
+
lines.push("");
|
|
354
|
+
lines.push("**No PR opened** — no drafts passed against prod.");
|
|
355
|
+
break;
|
|
356
|
+
case "dry-run":
|
|
357
|
+
lines.push("");
|
|
358
|
+
lines.push(`**Dry run.** Would have opened a PR for ${r.movedFiles.length} spec(s) on branch \`${r.branchName}\`.`);
|
|
359
|
+
lines.push("");
|
|
360
|
+
lines.push("Files prepared:");
|
|
361
|
+
for (const f of r.movedFiles)
|
|
362
|
+
lines.push(`- \`${f}\``);
|
|
363
|
+
break;
|
|
364
|
+
case "skipped":
|
|
365
|
+
lines.push("");
|
|
366
|
+
lines.push(`**PR not opened** — see notes below.`);
|
|
367
|
+
break;
|
|
368
|
+
case "opened":
|
|
369
|
+
lines.push("");
|
|
370
|
+
lines.push(`**✅ Draft PR opened:** ${r.prUrl}`);
|
|
371
|
+
lines.push("");
|
|
372
|
+
lines.push(`Branch: \`${r.branchName}\``);
|
|
373
|
+
lines.push("");
|
|
374
|
+
lines.push(`Files moved into the team's spec directory:`);
|
|
375
|
+
for (const f of r.movedFiles)
|
|
376
|
+
lines.push(`- \`${f}\``);
|
|
377
|
+
break;
|
|
378
|
+
}
|
|
379
|
+
if (r.notes.length > 0) {
|
|
380
|
+
lines.push("");
|
|
381
|
+
lines.push("### Notes");
|
|
382
|
+
for (const n of r.notes)
|
|
383
|
+
lines.push(`- ${n}`);
|
|
384
|
+
}
|
|
385
|
+
return lines.join("\n");
|
|
386
|
+
}
|
|
387
|
+
/**
|
|
388
|
+
* Execute a single generated spec via `npx playwright test <file>` against the
|
|
389
|
+
* given target URL. Returns the post-run outcome. Reuses the same JSON-reporter
|
|
390
|
+
* + parsePlaywrightReport plumbing as `claudia run` so failure details are
|
|
391
|
+
* structured and serializable.
|
|
392
|
+
*/
|
|
393
|
+
async function runGeneratedSpec(rootDir, specFile, target, playwrightConfig) {
|
|
394
|
+
const tmpDir = mkdtempSync(join(tmpdir(), "claudia-gen-run-"));
|
|
395
|
+
const jsonReportPath = join(tmpDir, "report.json");
|
|
396
|
+
const args = ["-y", "playwright", "test", specFile, "--reporter=line,json"];
|
|
397
|
+
if (playwrightConfig)
|
|
398
|
+
args.push("--config", playwrightConfig);
|
|
399
|
+
const env = {
|
|
400
|
+
...process.env,
|
|
401
|
+
PLAYWRIGHT_BASE_URL: target,
|
|
402
|
+
PLAYWRIGHT_JSON_OUTPUT_FILE: jsonReportPath,
|
|
403
|
+
PLAYWRIGHT_JSON_OUTPUT_NAME: jsonReportPath,
|
|
404
|
+
};
|
|
405
|
+
process.stderr.write(`claudia: running generated spec ${specFile}\n`);
|
|
406
|
+
const child = spawn("npx", args, { cwd: rootDir, env, stdio: ["ignore", "inherit", "inherit"] });
|
|
407
|
+
const exitCode = await new Promise((resolveCode) => {
|
|
408
|
+
child.on("close", (code) => resolveCode(code ?? 1));
|
|
409
|
+
child.on("error", () => resolveCode(127));
|
|
410
|
+
});
|
|
411
|
+
if (!existsSync(jsonReportPath)) {
|
|
412
|
+
return {
|
|
413
|
+
status: "errored",
|
|
414
|
+
error: `playwright exited with code ${exitCode} and produced no JSON report`,
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
try {
|
|
418
|
+
const raw = JSON.parse(readFileSync(jsonReportPath, "utf8"));
|
|
419
|
+
const report = parsePlaywrightReport(raw);
|
|
420
|
+
if (report.failed === 0 && report.totalTests > 0) {
|
|
421
|
+
return { status: "passed", durationMs: report.durationMs };
|
|
422
|
+
}
|
|
423
|
+
if (report.totalTests === 0) {
|
|
424
|
+
return { status: "errored", error: "playwright ran but executed zero tests" };
|
|
425
|
+
}
|
|
426
|
+
const errMsg = report.failedTests.map((t) => `${t.title}: ${t.error}`).join("\n---\n");
|
|
427
|
+
return { status: "failed", durationMs: report.durationMs, error: errMsg || "(no error captured)" };
|
|
428
|
+
}
|
|
429
|
+
catch (err) {
|
|
430
|
+
return {
|
|
431
|
+
status: "errored",
|
|
432
|
+
error: `could not parse playwright JSON report: ${err instanceof Error ? err.message : String(err)}`,
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
}
|
|
309
436
|
const ratingsCmd = defineCommand({
|
|
310
437
|
meta: { name: "ratings", description: "Aggregate 👍/👎 reactions on claudia comments across a repo's PRs" },
|
|
311
438
|
args: {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/pr.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { AppMap, GenerationResult } from "@pretorian-worx/runclaudia-core";
|
|
2
|
+
export interface OpenPrOptions {
|
|
3
|
+
rootDir: string;
|
|
4
|
+
/** Generation result. We only PR specs whose runOutcome.status === "passed". */
|
|
5
|
+
generation: GenerationResult;
|
|
6
|
+
/** Map of the indexed repo, used to pick the team's existing spec directory. */
|
|
7
|
+
map: AppMap;
|
|
8
|
+
/** SHA the deploy verified — used in branch name and PR body. */
|
|
9
|
+
headSha: string;
|
|
10
|
+
/** Override the target spec directory; otherwise inferred from map.specs. */
|
|
11
|
+
targetDir?: string;
|
|
12
|
+
/** Override the upstream branch name; otherwise `claudia/specs-<head7>`. */
|
|
13
|
+
branchName?: string;
|
|
14
|
+
/** Dry-run mode: prepare files + print the commands but don't push or open the PR. */
|
|
15
|
+
dryRun?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface PrResult {
|
|
18
|
+
status: "no-passing-drafts" | "opened" | "dry-run" | "skipped";
|
|
19
|
+
/** Files (relative to rootDir) that were moved into the team's spec dir. */
|
|
20
|
+
movedFiles: string[];
|
|
21
|
+
branchName?: string;
|
|
22
|
+
prUrl?: string;
|
|
23
|
+
/** Whatever stderr-worthy message we want to surface to the user. */
|
|
24
|
+
notes: string[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Phase B.3: take the passing drafts from a generation run, move them into the
|
|
28
|
+
* team's spec directory, push a branch, and open a draft PR.
|
|
29
|
+
*
|
|
30
|
+
* Intentionally conservative:
|
|
31
|
+
* - Only acts on drafts whose runOutcome.status === "passed".
|
|
32
|
+
* - Only moves files we wrote in this run (the GeneratedSpec.filePath entries).
|
|
33
|
+
* - Uses a deterministic branch name so re-runs on the same SHA update the
|
|
34
|
+
* same branch (force-with-lease, not force).
|
|
35
|
+
* - Stages ONLY the new spec files, not whatever else is dirty in the tree.
|
|
36
|
+
*/
|
|
37
|
+
export declare function openDraftPr(opts: OpenPrOptions): PrResult;
|
|
38
|
+
export declare function detectSpecDir(map: AppMap): string;
|
|
39
|
+
/** Local helper to read a file relative to rootDir (used in some tests). */
|
|
40
|
+
export declare function readGeneratedSpec(rootDir: string, rel: string): string;
|
package/dist/pr.js
ADDED
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
import { execFileSync } from "node:child_process";
|
|
2
|
+
import { mkdirSync, readFileSync, renameSync, rmSync, writeFileSync, } from "node:fs";
|
|
3
|
+
import { dirname, join, resolve } from "node:path";
|
|
4
|
+
/**
|
|
5
|
+
* Phase B.3: take the passing drafts from a generation run, move them into the
|
|
6
|
+
* team's spec directory, push a branch, and open a draft PR.
|
|
7
|
+
*
|
|
8
|
+
* Intentionally conservative:
|
|
9
|
+
* - Only acts on drafts whose runOutcome.status === "passed".
|
|
10
|
+
* - Only moves files we wrote in this run (the GeneratedSpec.filePath entries).
|
|
11
|
+
* - Uses a deterministic branch name so re-runs on the same SHA update the
|
|
12
|
+
* same branch (force-with-lease, not force).
|
|
13
|
+
* - Stages ONLY the new spec files, not whatever else is dirty in the tree.
|
|
14
|
+
*/
|
|
15
|
+
export function openDraftPr(opts) {
|
|
16
|
+
const passing = opts.generation.generated.filter((s) => s.runOutcome?.status === "passed");
|
|
17
|
+
if (passing.length === 0) {
|
|
18
|
+
return {
|
|
19
|
+
status: "no-passing-drafts",
|
|
20
|
+
movedFiles: [],
|
|
21
|
+
notes: ["No drafts passed against prod — nothing to PR."],
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
const rootDir = resolve(opts.rootDir);
|
|
25
|
+
const notes = [];
|
|
26
|
+
const targetDir = opts.targetDir ?? detectSpecDir(opts.map);
|
|
27
|
+
mkdirSync(join(rootDir, targetDir), { recursive: true });
|
|
28
|
+
const branchName = opts.branchName ?? `claudia/specs-${opts.headSha.slice(0, 7)}`;
|
|
29
|
+
const movedFiles = [];
|
|
30
|
+
// Move passing drafts from .claudia/generated/ into the team's spec dir.
|
|
31
|
+
// Files have already been syntax-checked by Playwright (they ran) so this is
|
|
32
|
+
// just a copy + delete. Use rename for atomicity within the same filesystem.
|
|
33
|
+
for (const spec of passing) {
|
|
34
|
+
const filename = spec.filePath.split("/").pop();
|
|
35
|
+
const targetRel = join(targetDir, filename);
|
|
36
|
+
const targetAbs = join(rootDir, targetRel);
|
|
37
|
+
renameSync(spec.filePath, targetAbs);
|
|
38
|
+
movedFiles.push(targetRel);
|
|
39
|
+
}
|
|
40
|
+
if (opts.dryRun) {
|
|
41
|
+
return {
|
|
42
|
+
status: "dry-run",
|
|
43
|
+
movedFiles,
|
|
44
|
+
branchName,
|
|
45
|
+
notes: [
|
|
46
|
+
`Would create branch '${branchName}'`,
|
|
47
|
+
`Would commit ${movedFiles.length} file(s) and push`,
|
|
48
|
+
`Would open a draft PR via gh`,
|
|
49
|
+
],
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
// Detect default branch for the PR base. Falls back to "main" if anything
|
|
53
|
+
// about the remote lookup fails.
|
|
54
|
+
let baseBranch = "main";
|
|
55
|
+
try {
|
|
56
|
+
const head = git(["remote", "show", "origin"], rootDir);
|
|
57
|
+
const match = head.match(/HEAD branch: (\S+)/);
|
|
58
|
+
if (match)
|
|
59
|
+
baseBranch = match[1];
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
notes.push("Could not detect default branch from origin; defaulting to 'main'.");
|
|
63
|
+
}
|
|
64
|
+
// Branch creation: prefer creating from origin/<base> so the PR diff is
|
|
65
|
+
// strictly the new test files, not the whole deploy diff. If the local
|
|
66
|
+
// branch already exists (re-run case), reset it to origin/<base> first.
|
|
67
|
+
try {
|
|
68
|
+
git(["fetch", "origin", baseBranch, "--quiet"], rootDir);
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
notes.push(`git fetch failed: ${msg(err)} — branch will be cut from local HEAD.`);
|
|
72
|
+
}
|
|
73
|
+
const branchExistsLocally = (() => {
|
|
74
|
+
try {
|
|
75
|
+
git(["rev-parse", "--verify", `refs/heads/${branchName}`], rootDir);
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
})();
|
|
82
|
+
if (branchExistsLocally) {
|
|
83
|
+
git(["checkout", "-B", branchName, `origin/${baseBranch}`], rootDir);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
git(["checkout", "-b", branchName, `origin/${baseBranch}`], rootDir);
|
|
87
|
+
}
|
|
88
|
+
for (const rel of movedFiles) {
|
|
89
|
+
git(["add", rel], rootDir);
|
|
90
|
+
}
|
|
91
|
+
const commitMsg = `test: claudia-generated specs for ${opts.headSha.slice(0, 7)}\n\n${movedFiles
|
|
92
|
+
.map((f) => `- ${f}`)
|
|
93
|
+
.join("\n")}\n\nGenerated specs all passed against the deployed production URL\nbefore this PR was opened.`;
|
|
94
|
+
try {
|
|
95
|
+
git(["commit", "--message", commitMsg], rootDir);
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
// Most common cause: the move left the tree identical to what's already on
|
|
99
|
+
// origin/<base> (e.g. the workflow re-ran and the previous run already
|
|
100
|
+
// landed). Surface clearly rather than crash.
|
|
101
|
+
notes.push(`git commit failed: ${msg(err)}. Nothing new to commit — skipping.`);
|
|
102
|
+
return { status: "skipped", movedFiles, branchName, notes };
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
git(["push", "--force-with-lease", "origin", branchName, "--quiet"], rootDir);
|
|
106
|
+
}
|
|
107
|
+
catch (err) {
|
|
108
|
+
notes.push(`git push failed: ${msg(err)}`);
|
|
109
|
+
return { status: "skipped", movedFiles, branchName, notes };
|
|
110
|
+
}
|
|
111
|
+
// Open or update the PR via gh. We make it a draft so the team always
|
|
112
|
+
// reviews before merging — claudia is not authoritative on test quality.
|
|
113
|
+
const body = buildPrBody(passing, opts.headSha, movedFiles);
|
|
114
|
+
let prUrl;
|
|
115
|
+
try {
|
|
116
|
+
prUrl = ghCreateOrUpdatePr({
|
|
117
|
+
rootDir,
|
|
118
|
+
branchName,
|
|
119
|
+
base: baseBranch,
|
|
120
|
+
title: `test: claudia-generated specs for ${opts.headSha.slice(0, 7)}`,
|
|
121
|
+
body,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
catch (err) {
|
|
125
|
+
notes.push(`gh pr create/edit failed: ${msg(err)}`);
|
|
126
|
+
return { status: "skipped", movedFiles, branchName, notes };
|
|
127
|
+
}
|
|
128
|
+
return { status: "opened", movedFiles, branchName, prUrl, notes };
|
|
129
|
+
}
|
|
130
|
+
export function detectSpecDir(map) {
|
|
131
|
+
const counts = new Map();
|
|
132
|
+
for (const s of map.specs ?? []) {
|
|
133
|
+
const dir = dirname(s.file);
|
|
134
|
+
if (!dir || dir === ".")
|
|
135
|
+
continue;
|
|
136
|
+
counts.set(dir, (counts.get(dir) ?? 0) + 1);
|
|
137
|
+
}
|
|
138
|
+
if (counts.size === 0)
|
|
139
|
+
return "e2e";
|
|
140
|
+
// Highest count wins; tie-break by lexicographic order for determinism.
|
|
141
|
+
const sorted = [...counts.entries()].sort((a, b) => (b[1] - a[1]) || a[0].localeCompare(b[0]));
|
|
142
|
+
return sorted[0][0];
|
|
143
|
+
}
|
|
144
|
+
function buildPrBody(passing, headSha, movedFiles) {
|
|
145
|
+
const lines = [];
|
|
146
|
+
lines.push(`Automated test coverage for the flows changed in \`${headSha.slice(0, 7)}\`. Every spec in this PR:`);
|
|
147
|
+
lines.push("");
|
|
148
|
+
lines.push("- was drafted by claudia from the team's existing spec style");
|
|
149
|
+
lines.push("- was executed against the deployed production URL");
|
|
150
|
+
lines.push("- **passed** before this PR was opened");
|
|
151
|
+
lines.push("");
|
|
152
|
+
lines.push("Treat this as a starting point: review, refactor to use your usual helpers if you prefer (claudia generates self-contained specs), and merge when happy.");
|
|
153
|
+
lines.push("");
|
|
154
|
+
lines.push("## Drafted specs");
|
|
155
|
+
for (let i = 0; i < passing.length; i++) {
|
|
156
|
+
const spec = passing[i];
|
|
157
|
+
const movedTo = movedFiles[i];
|
|
158
|
+
lines.push("");
|
|
159
|
+
lines.push(`### \`${movedTo}\` — covers \`${spec.flow}\``);
|
|
160
|
+
lines.push("");
|
|
161
|
+
lines.push(spec.reasoning);
|
|
162
|
+
if (spec.runOutcome?.status === "passed") {
|
|
163
|
+
lines.push("");
|
|
164
|
+
lines.push(`Run time: ${(spec.runOutcome.durationMs / 1000).toFixed(1)}s against prod.`);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
lines.push("");
|
|
168
|
+
lines.push("---");
|
|
169
|
+
lines.push("");
|
|
170
|
+
lines.push(`<sub>Generated by [claudia](https://github.com/pretorian-worx/runclaudia). If a draft looks wrong, delete it — claudia will re-draft on the next deploy that touches the same uncovered route.</sub>`);
|
|
171
|
+
return lines.join("\n");
|
|
172
|
+
}
|
|
173
|
+
function ghCreateOrUpdatePr(args) {
|
|
174
|
+
const repo = detectRepo(args.rootDir);
|
|
175
|
+
if (!repo)
|
|
176
|
+
throw new Error("Could not detect GitHub repo from origin remote");
|
|
177
|
+
// Check if a PR already exists for this branch (re-run case).
|
|
178
|
+
let existingUrl = "";
|
|
179
|
+
try {
|
|
180
|
+
existingUrl = execGh(["pr", "list", "-R", repo, "--head", args.branchName, "--state", "open", "--json", "url", "--jq", "[.[] | .url] | first"], args.rootDir).trim();
|
|
181
|
+
}
|
|
182
|
+
catch {
|
|
183
|
+
// gh failures here are usually "no PRs found" rendered as empty — treat as none.
|
|
184
|
+
}
|
|
185
|
+
if (existingUrl && existingUrl !== "null") {
|
|
186
|
+
// Update the body on the existing PR.
|
|
187
|
+
const tmp = join(args.rootDir, ".claudia", "pr-body.tmp.md");
|
|
188
|
+
mkdirSync(dirname(tmp), { recursive: true });
|
|
189
|
+
writeFileSync(tmp, args.body, "utf8");
|
|
190
|
+
try {
|
|
191
|
+
execGh(["pr", "edit", existingUrl, "--body-file", tmp], args.rootDir);
|
|
192
|
+
}
|
|
193
|
+
finally {
|
|
194
|
+
try {
|
|
195
|
+
rmSync(tmp);
|
|
196
|
+
}
|
|
197
|
+
catch { /* best effort */ }
|
|
198
|
+
}
|
|
199
|
+
return existingUrl;
|
|
200
|
+
}
|
|
201
|
+
// Create a new draft PR.
|
|
202
|
+
const tmp = join(args.rootDir, ".claudia", "pr-body.tmp.md");
|
|
203
|
+
mkdirSync(dirname(tmp), { recursive: true });
|
|
204
|
+
writeFileSync(tmp, args.body, "utf8");
|
|
205
|
+
try {
|
|
206
|
+
const out = execGh([
|
|
207
|
+
"pr",
|
|
208
|
+
"create",
|
|
209
|
+
"-R",
|
|
210
|
+
repo,
|
|
211
|
+
"--draft",
|
|
212
|
+
"--base",
|
|
213
|
+
args.base,
|
|
214
|
+
"--head",
|
|
215
|
+
args.branchName,
|
|
216
|
+
"--title",
|
|
217
|
+
args.title,
|
|
218
|
+
"--body-file",
|
|
219
|
+
tmp,
|
|
220
|
+
], args.rootDir);
|
|
221
|
+
// gh prints the PR URL on its own line.
|
|
222
|
+
const url = out.split("\n").map((s) => s.trim()).find((s) => s.startsWith("https://"));
|
|
223
|
+
return url ?? out.trim();
|
|
224
|
+
}
|
|
225
|
+
finally {
|
|
226
|
+
try {
|
|
227
|
+
rmSync(tmp);
|
|
228
|
+
}
|
|
229
|
+
catch { /* best effort */ }
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
function detectRepo(rootDir) {
|
|
233
|
+
try {
|
|
234
|
+
const out = execFileSync("gh", ["repo", "view", "--json", "nameWithOwner", "--jq", ".nameWithOwner"], {
|
|
235
|
+
cwd: rootDir,
|
|
236
|
+
encoding: "utf8",
|
|
237
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
238
|
+
});
|
|
239
|
+
return out.trim() || null;
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
return null;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
function git(args, cwd) {
|
|
246
|
+
return execFileSync("git", args, { cwd, encoding: "utf8", maxBuffer: 16 * 1024 * 1024 });
|
|
247
|
+
}
|
|
248
|
+
function execGh(args, cwd) {
|
|
249
|
+
return execFileSync("gh", args, { cwd, encoding: "utf8", maxBuffer: 16 * 1024 * 1024 });
|
|
250
|
+
}
|
|
251
|
+
function msg(err) {
|
|
252
|
+
return err instanceof Error ? err.message : String(err);
|
|
253
|
+
}
|
|
254
|
+
/** Local helper to read a file relative to rootDir (used in some tests). */
|
|
255
|
+
export function readGeneratedSpec(rootDir, rel) {
|
|
256
|
+
return readFileSync(join(rootDir, rel), "utf8");
|
|
257
|
+
}
|
|
258
|
+
//# sourceMappingURL=pr.js.map
|
package/dist/pr.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pr.js","sourceRoot":"","sources":["../src/pr.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pretorian-worx/runclaudia-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Diff-aware post-deploy test agent CLI — picks a relevant Playwright subset for a diff and runs it against the deployed prod artifact, with reporting to GitHub Actions, the merged PR, and Slack.",
|
|
6
6
|
"keywords": [
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"citty": "^0.1.6",
|
|
41
|
-
"@pretorian-worx/runclaudia-core": "^0.
|
|
41
|
+
"@pretorian-worx/runclaudia-core": "^0.16.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@types/node": "^22.0.0",
|