@renaiss-shipflow/cli 0.27.4 → 0.27.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +3 -1
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/inbox.d.ts +21 -0
- package/dist/commands/inbox.d.ts.map +1 -1
- package/dist/commands/inbox.js +69 -7
- package/dist/commands/inbox.js.map +1 -1
- package/dist/commands/pr.d.ts +110 -4
- package/dist/commands/pr.d.ts.map +1 -1
- package/dist/commands/pr.js +286 -20
- package/dist/commands/pr.js.map +1 -1
- package/dist/config.d.ts +5 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +9 -0
- package/dist/config.js.map +1 -1
- package/dist/gh.d.ts +22 -0
- package/dist/gh.d.ts.map +1 -1
- package/dist/gh.js +35 -1
- package/dist/gh.js.map +1 -1
- package/dist/pr-state.d.ts +41 -1
- package/dist/pr-state.d.ts.map +1 -1
- package/dist/pr-state.js +66 -1
- package/dist/pr-state.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgFzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0D5D"}
|
package/dist/commands/config.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { loadConfig, saveConfig, parseBool, parseIntOr, resolveAutoIssue, resolveLiveReload, resolveRequireCi, resolveMergePolicy, resolveMaxFixAttempts, resolveWipLimit, resolveStalePrHours, resolveBugHunt, resolveBugHuntCap, resolveRequireReview, resolveSignoffOwner, resolveLoopWorkerModel, } from "../config.js";
|
|
1
|
+
import { loadConfig, saveConfig, parseBool, parseIntOr, resolveAutoIssue, resolveLiveReload, resolveRequireCi, resolveMergePolicy, resolveMaxFixAttempts, resolveWipLimit, resolveStalePrHours, resolveBugHunt, resolveBugHuntCap, resolveRequireReview, resolveSignoffOwner, resolveConflictSweep, resolveLoopWorkerModel, } from "../config.js";
|
|
2
2
|
import { renderTable } from "../term-render.js";
|
|
3
3
|
const MERGE_POLICIES = ["manual", "auto-on-green", "auto-timeout"];
|
|
4
4
|
const SETTINGS = [
|
|
@@ -29,6 +29,8 @@ const SETTINGS = [
|
|
|
29
29
|
set: (v, c) => String((c.requireReview = parseBool(v))), effective: resolveRequireReview },
|
|
30
30
|
{ key: "signoff-owner", field: "signoffOwner",
|
|
31
31
|
set: (v, c) => (c.signoffOwner = v.trim().replace(/^@/, "")), effective: resolveSignoffOwner },
|
|
32
|
+
{ key: "conflict-sweep", field: "conflictSweep",
|
|
33
|
+
set: (v, c) => String((c.conflictSweep = parseBool(v))), effective: resolveConflictSweep },
|
|
32
34
|
{ key: "loop-worker-model", field: "loopWorkerModel",
|
|
33
35
|
set: (v, c) => (c.loopWorkerModel = v.trim()), effective: resolveLoopWorkerModel },
|
|
34
36
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/inbox.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Command } from "commander";
|
|
2
|
+
import { type ForeignConflictedPR, type PRClassification } from "../pr-state.js";
|
|
2
3
|
export { prAttentionReasons, issueNeedsReply } from "../pr-state.js";
|
|
3
4
|
/** Count unresolved review threads for one PR, tolerating a transient GraphQL
|
|
4
5
|
* blip: on failure return 0 + `degraded` so a single PR's error can't blank the
|
|
@@ -9,5 +10,25 @@ export declare function safeUnresolvedThreadCount(fetchThreads: () => {
|
|
|
9
10
|
count: number;
|
|
10
11
|
degraded: boolean;
|
|
11
12
|
};
|
|
13
|
+
/**
|
|
14
|
+
* The inbox row for one foreign conflicted PR (PR #394 review). Split out and
|
|
15
|
+
* pure because it encodes a security boundary, not formatting: an UNTRUSTED
|
|
16
|
+
* head (fork, or an author who is not OWNER/MEMBER/COLLABORATOR) is listed so a
|
|
17
|
+
* human can see it, but carries `needsAttention: false` + `humanOnly: true` so
|
|
18
|
+
* it can never be admitted to the autonomous queue — where a worker would check
|
|
19
|
+
* it out and run its test suite with the operator's credentials.
|
|
20
|
+
*/
|
|
21
|
+
export declare function foreignPrRow(entry: ForeignConflictedPR, cl: PRClassification): Record<string, unknown>;
|
|
22
|
+
/**
|
|
23
|
+
* Conflicted PRs the loop may actually ACT on (PR #394 review). `foreignPrRow`
|
|
24
|
+
* keeps `state: "conflict"` on untrusted heads by design — a human must see
|
|
25
|
+
* them — so counting state alone reported work the loop is FORBIDDEN to do:
|
|
26
|
+
* an orchestrator saw `conflicts: 1` beside `prsNeedingAttention: 0` and went
|
|
27
|
+
* hunting for it. Those rows stay counted, separately, in `humanOnlyConflicts`.
|
|
28
|
+
*/
|
|
29
|
+
export declare function actionableConflicts(prs: {
|
|
30
|
+
state: string;
|
|
31
|
+
humanOnly?: boolean;
|
|
32
|
+
}[]): number;
|
|
12
33
|
export declare function registerInboxCommand(program: Command): void;
|
|
13
34
|
//# sourceMappingURL=inbox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/commands/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"inbox.d.ts","sourceRoot":"","sources":["../../src/commands/inbox.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,EAAqD,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAOpI,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAErE;;4EAE4E;AAC5E,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM;IAAE,UAAU,EAAE,OAAO,CAAA;CAAE,EAAE,GAC5C;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAMtC;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,mBAAmB,EAAE,EAAE,EAAE,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYtG;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,GAAG,MAAM,CAEzF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8G3D"}
|
package/dist/commands/inbox.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { resolveStalePrHours } from "../config.js";
|
|
2
|
-
import { ghPRListMine, ghCurrentLogin, ghIssueListByLabel, ghReviewThreads } from "../gh.js";
|
|
3
|
-
import { classifyPR, issueNeedsReply } from "../pr-state.js";
|
|
1
|
+
import { resolveStalePrHours, resolveConflictSweep } from "../config.js";
|
|
2
|
+
import { ghPRListMine, ghPRListAll, ghCurrentLogin, ghIssueListByLabel, ghReviewThreads } from "../gh.js";
|
|
3
|
+
import { classifyPR, foreignConflictedPRs, issueNeedsReply } from "../pr-state.js";
|
|
4
4
|
import { IN_PROGRESS_LABEL } from "../issue-order.js";
|
|
5
5
|
import { emit, loadCtx, runAction } from "./helpers.js";
|
|
6
6
|
import { meter, renderTable } from "../term-render.js";
|
|
@@ -18,18 +18,52 @@ export function safeUnresolvedThreadCount(fetchThreads) {
|
|
|
18
18
|
return { count: 0, degraded: true };
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* The inbox row for one foreign conflicted PR (PR #394 review). Split out and
|
|
23
|
+
* pure because it encodes a security boundary, not formatting: an UNTRUSTED
|
|
24
|
+
* head (fork, or an author who is not OWNER/MEMBER/COLLABORATOR) is listed so a
|
|
25
|
+
* human can see it, but carries `needsAttention: false` + `humanOnly: true` so
|
|
26
|
+
* it can never be admitted to the autonomous queue — where a worker would check
|
|
27
|
+
* it out and run its test suite with the operator's credentials.
|
|
28
|
+
*/
|
|
29
|
+
export function foreignPrRow(entry, cl) {
|
|
30
|
+
const { pr, trusted, distrust } = entry;
|
|
31
|
+
return {
|
|
32
|
+
number: pr.number, title: pr.title, branch: pr.headRefName, base: pr.baseRefName ?? "", url: pr.url,
|
|
33
|
+
draft: pr.isDraft, reviewDecision: pr.reviewDecision || "none", unresolvedThreads: 0,
|
|
34
|
+
closesIssues: (pr.closingIssuesReferences ?? []).map((i) => i.number),
|
|
35
|
+
state: cl.state, ciState: cl.ciState, approved: cl.approved, ageHours: Math.round(cl.ageHours),
|
|
36
|
+
needsAttention: trusted && cl.needsAction,
|
|
37
|
+
reasons: trusted ? cl.reasons : [...cl.reasons, `untrusted_head:${distrust}`],
|
|
38
|
+
foreign: true, author: pr.author?.login ?? "", trustedHead: trusted,
|
|
39
|
+
...(trusted ? {} : { distrust, humanOnly: true }),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Conflicted PRs the loop may actually ACT on (PR #394 review). `foreignPrRow`
|
|
44
|
+
* keeps `state: "conflict"` on untrusted heads by design — a human must see
|
|
45
|
+
* them — so counting state alone reported work the loop is FORBIDDEN to do:
|
|
46
|
+
* an orchestrator saw `conflicts: 1` beside `prsNeedingAttention: 0` and went
|
|
47
|
+
* hunting for it. Those rows stay counted, separately, in `humanOnlyConflicts`.
|
|
48
|
+
*/
|
|
49
|
+
export function actionableConflicts(prs) {
|
|
50
|
+
return prs.filter((p) => p.state === "conflict" && !p.humanOnly).length;
|
|
51
|
+
}
|
|
21
52
|
export function registerInboxCommand(program) {
|
|
22
53
|
program
|
|
23
54
|
.command("inbox")
|
|
24
|
-
.description("Reconciler view: open PRs (by state: ci_failing / changes_requested / approved_ready / stale …) and in-progress issues with new comments")
|
|
55
|
+
.description("Reconciler view: open PRs (by state: conflict / ci_failing / changes_requested / approved_ready / stale …) and in-progress issues with new comments. With the OPT-IN repo-wide conflict sweep (`config set conflict-sweep true`, or --conflict-sweep) it also lists conflicted PRs by other authors — trusted same-repo heads only (issue #393)")
|
|
25
56
|
.option("--repo <fullname>", "Override target repo")
|
|
57
|
+
.option("--conflict-sweep", "Force the repo-wide foreign-PR conflict sweep on for this run (default: the `conflict-sweep` config key, which is off)")
|
|
26
58
|
.option("--json", "Output JSON")
|
|
27
59
|
.action(runAction(async (opts) => {
|
|
28
60
|
const { project } = await loadCtx(program);
|
|
29
61
|
const repo = opts.repo ?? project.repoFullName;
|
|
30
62
|
const me = ghCurrentLogin();
|
|
31
63
|
const staleHours = resolveStalePrHours();
|
|
32
|
-
const
|
|
64
|
+
const sweepEnabled = opts.conflictSweep === true || resolveConflictSweep();
|
|
65
|
+
const minePrs = ghPRListMine(repo);
|
|
66
|
+
const prs = minePrs.map((pr) => {
|
|
33
67
|
// Resolved-thread state is authoritative for review feedback — without it,
|
|
34
68
|
// classifyPR keeps flagging `review_comments` after the loop resolves them.
|
|
35
69
|
// Guard the per-PR GraphQL call so one PR's blip can't blank the inbox.
|
|
@@ -52,6 +86,24 @@ export function registerInboxCommand(program) {
|
|
|
52
86
|
needsAttention: !!reply,
|
|
53
87
|
};
|
|
54
88
|
});
|
|
89
|
+
// Repo-wide conflict sweep (issue #393) — OPT-IN (PR #394 review). When
|
|
90
|
+
// enabled, a foreign author's conflicted PR gets the same agentic
|
|
91
|
+
// resolution (and always a PR comment). An UNTRUSTED head (fork, or an
|
|
92
|
+
// author who is not OWNER/MEMBER/COLLABORATOR) is listed for visibility
|
|
93
|
+
// but carries `needsAttention: false` — the loop must never check out and
|
|
94
|
+
// run code it doesn't trust; a human decides. Best-effort: a listing blip
|
|
95
|
+
// must not blank the loop's own inbox.
|
|
96
|
+
if (sweepEnabled) {
|
|
97
|
+
try {
|
|
98
|
+
for (const entry of foreignConflictedPRs(minePrs, ghPRListAll(repo), me, { enabled: true })) {
|
|
99
|
+
const cl = classifyPR(entry.pr, me, { staleHours });
|
|
100
|
+
prs.push(foreignPrRow(entry, cl));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
/* foreign sweep is additive; the own-PR inbox stands on its own */
|
|
105
|
+
}
|
|
106
|
+
}
|
|
55
107
|
const count = (s) => prs.filter((p) => p.state === s).length;
|
|
56
108
|
// Count PRs whose review-thread data couldn't be fetched this tick so the
|
|
57
109
|
// loop knows the picture is partial (fetch again before acting on those).
|
|
@@ -62,24 +114,34 @@ export function registerInboxCommand(program) {
|
|
|
62
114
|
readyToMerge: count("approved_ready"),
|
|
63
115
|
ciFailing: count("ci_failing"),
|
|
64
116
|
changesRequested: count("changes_requested"),
|
|
117
|
+
conflicts: actionableConflicts(prs),
|
|
65
118
|
stale: count("stale"),
|
|
66
119
|
parked: prs.filter((p) => p.state === "awaiting_review" || p.state === "ci_pending").length,
|
|
67
120
|
degraded,
|
|
121
|
+
conflictSweep: sweepEnabled,
|
|
122
|
+
// Foreign conflicted PRs the loop is NOT allowed to touch — listed so a
|
|
123
|
+
// human sees them, excluded from `prsNeedingAttention` by construction.
|
|
124
|
+
humanOnlyConflicts: prs.filter((p) => "humanOnly" in p && p.humanOnly).length,
|
|
68
125
|
};
|
|
69
126
|
emit(opts, { repo, prs, issues, summary }, () => {
|
|
70
127
|
console.log(`📥 Inbox for ${repo}`);
|
|
71
128
|
console.log(`Needs action: ${meter(summary.prsNeedingAttention, prs.length)} PRs · ${meter(summary.issuesNeedingAttention, issues.length)} issues · ✅ ${summary.readyToMerge} ready to merge`);
|
|
72
129
|
if (degraded)
|
|
73
130
|
console.log(`⚠️ ${degraded} PR(s) with partial review-thread data (fetch blipped) — marked "degraded".`);
|
|
131
|
+
if (summary.humanOnlyConflicts) {
|
|
132
|
+
console.log(`🔒 ${summary.humanOnlyConflicts} conflicted PR(s) on an untrusted head (fork / non-collaborator) — reported only, never checked out by the loop.`);
|
|
133
|
+
}
|
|
74
134
|
const icon = {
|
|
75
|
-
ci_failing: "🔴", changes_requested: "✏️", review_comments: "💬", ci_pending: "⏳",
|
|
135
|
+
conflict: "🔀", ci_failing: "🔴", changes_requested: "✏️", review_comments: "💬", ci_pending: "⏳",
|
|
76
136
|
approved_ready: "✅", stale: "🕰️", awaiting_review: "·",
|
|
77
137
|
};
|
|
78
138
|
if (prs.length) {
|
|
79
139
|
console.log("");
|
|
80
140
|
const rows = prs.map((p) => [
|
|
81
141
|
`${icon[p.state] ?? "·"} #${p.number}`, p.state, `ci:${p.ciState}`, `${p.ageHours}h`,
|
|
82
|
-
p.title
|
|
142
|
+
p.title
|
|
143
|
+
+ ("degraded" in p && p.degraded ? " ⚠️ degraded" : "")
|
|
144
|
+
+ ("humanOnly" in p && p.humanOnly ? ` 🔒 ${p.distrust} — human only` : ""),
|
|
83
145
|
]);
|
|
84
146
|
for (const l of renderTable(["PR", "State", "CI", "Age", "Title"], rows))
|
|
85
147
|
console.log(` ${l}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/commands/inbox.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"inbox.js","sourceRoot":"","sources":["../../src/commands/inbox.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/pr.d.ts
CHANGED
|
@@ -1,7 +1,113 @@
|
|
|
1
1
|
import type { Command } from "commander";
|
|
2
2
|
export declare function registerPRCommand(program: Command): void;
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
*
|
|
6
|
-
|
|
3
|
+
export declare function detectIssueFromBranch(branch: string): number | undefined;
|
|
4
|
+
/** How the header links the issue. `closes` (default) emits the GitHub closing
|
|
5
|
+
* keyword `Closes #N` so merging resolves a whole-issue PR; `part-of` emits a
|
|
6
|
+
* plain `Part of #N` reference with NO closing keyword, so merging a partial
|
|
7
|
+
* slice leaves the parent issue open for the deferred follow-ups (issue #367). */
|
|
8
|
+
export type IssueLinkMode = "closes" | "part-of";
|
|
9
|
+
/** ShipFlow header for a PR body: reference the issue with a link, not a copy of
|
|
10
|
+
* its detail — GitHub renders the linked issue. In the default `closes` mode the
|
|
11
|
+
* keyword auto-closes the issue on merge; in `part-of` mode it emits a plain
|
|
12
|
+
* `Part of #N` reference (no closing keyword) for a slice PR. Pure + testable. */
|
|
13
|
+
export declare function buildShipFlowHeader(project: string, issueNumber?: number, issueUrl?: string, linkMode?: IssueLinkMode): string;
|
|
14
|
+
/** What `pr sync --keep-conflicts` prints as the resolution recipe. NEVER
|
|
15
|
+
* `git add -A`: the UNMERGED index state is the ONLY thing that makes git
|
|
16
|
+
* refuse to commit a file still containing `<<<<<<<`, and `add -A` clears
|
|
17
|
+
* exactly that. Stage the paths you actually resolved, then re-gate. */
|
|
18
|
+
export declare const RESOLUTION_RECIPE: readonly string[];
|
|
19
|
+
/** One conflict-marker line found in a tracked file. */
|
|
20
|
+
export interface ConflictMarkerHit {
|
|
21
|
+
path: string;
|
|
22
|
+
line: number;
|
|
23
|
+
text: string;
|
|
24
|
+
}
|
|
25
|
+
/** The `git grep -E` pattern for the four marker families git can leave behind
|
|
26
|
+
* (`<<<<<<<`, `|||||||` in diff3 mode, `=======`, `>>>>>>>`). */
|
|
27
|
+
export declare const CONFLICT_MARKER_PATTERN = "^(<{7}|\\|{7}|={7}|>{7})( |$)";
|
|
28
|
+
/**
|
|
29
|
+
* Parse `git grep -z -n` output into marker hits: a file counts as conflicted when
|
|
30
|
+
* it has a `<<<<<<<` start **OR** a `>>>>>>>` end. A bare `=======` (or a lone
|
|
31
|
+
* diff3 `|||||||`) never trips the gate on its own — that's the only line a
|
|
32
|
+
* changelog or a rule of prose plausibly starts with.
|
|
33
|
+
*
|
|
34
|
+
* This used to require BOTH arms (the "triad rule"), which let a half-resolved
|
|
35
|
+
* file through: delete one arm, leave `<<<<<<< HEAD` behind, and since `git add`
|
|
36
|
+
* has already cleared the UNMERGED state, `conflict-check` exits 0 and `pr sync`
|
|
37
|
+
* force-pushes a live marker. The triad's stated justification — protecting docs
|
|
38
|
+
* that quote a marker — does not hold: the `^` anchor already excludes the
|
|
39
|
+
* mid-line quoting this repo's own conflict-resolution docs use, and running
|
|
40
|
+
* this exact pattern across the whole repo matches ZERO lines. It bought no
|
|
41
|
+
* false-positive protection and cost real coverage (PR #394 review).
|
|
42
|
+
*
|
|
43
|
+
* Input is the `-z` (NUL-delimited) form — a stream of `path\0line\0text\n`
|
|
44
|
+
* records. The old parse read the plain `path:line:text` form with
|
|
45
|
+
* `^(.*?):(\d+):(.*)$`, which a path containing `:<digits>:` defeats: a tracked
|
|
46
|
+
* `a:12:b.ts` yields `a:12:b.ts:1:<<<<<<< HEAD`, parsed as path `a`, line 12,
|
|
47
|
+
* text `b.ts:1:<<<<<<< HEAD` — text that matches NEITHER marker regex, so the
|
|
48
|
+
* whole file's hits were discarded and the gate reported CLEAN on live markers
|
|
49
|
+
* (PR #394 review). git prints colons in paths unquoted, so no colon-based
|
|
50
|
+
* parse can be correct; NUL is the only unambiguous delimiter.
|
|
51
|
+
*
|
|
52
|
+
* Pure + testable (`pr sync` shells out to gh+git and has no harness).
|
|
53
|
+
*/
|
|
54
|
+
export declare function parseConflictMarkerGrep(out: string): ConflictMarkerHit[];
|
|
55
|
+
/** The outcome of enumerating paths for the gate. `ok: false` means the git
|
|
56
|
+
* command FAILED — which is emphatically NOT the same as "nothing changed".
|
|
57
|
+
* A gate that cannot enumerate has proved nothing and must fail CLOSED. */
|
|
58
|
+
export interface PathEnumeration {
|
|
59
|
+
paths: string[];
|
|
60
|
+
/** false = the command errored (unresolvable ref, git failure). */
|
|
61
|
+
ok: boolean;
|
|
62
|
+
/** The command, for the operator-facing failure message. */
|
|
63
|
+
cmd: string;
|
|
64
|
+
}
|
|
65
|
+
/** Paths from a `git diff --name-only` invocation. NUL-delimited (`-z`) so a
|
|
66
|
+
* filename containing a newline or a quotable byte can't split into two bogus
|
|
67
|
+
* pathspecs — which would silently drop that file from the marker scan.
|
|
68
|
+
* Failure is REPORTED (`ok: false`), never flattened into an empty result:
|
|
69
|
+
* `scanConflictMarkers([])` is `[]`, so a swallowed error would have read as a
|
|
70
|
+
* clean tree and let the push through (PR #394 review). */
|
|
71
|
+
export declare function gitPaths(cmd: string): PathEnumeration;
|
|
72
|
+
/** Files this branch changed relative to `baseRef` — the only place a rebase
|
|
73
|
+
* can have left markers, so the gate never scans (or trips on) unrelated files. */
|
|
74
|
+
export declare function changedPaths(baseRef: string): PathEnumeration;
|
|
75
|
+
/** Scan the working tree for leftover conflict markers in `paths`. `git grep`
|
|
76
|
+
* exits 1 on "no match" (clean) — any OTHER failure is rethrown so the gate
|
|
77
|
+
* fails CLOSED rather than silently reporting a clean tree.
|
|
78
|
+
*
|
|
79
|
+
* `--literal-pathspecs` is load-bearing: `shellQuote` stops the SHELL, but git
|
|
80
|
+
* still parses each argument as a PATHSPEC. A tracked file whose name begins
|
|
81
|
+
* with `:` is read as pathspec magic and matches nothing — `git grep` then
|
|
82
|
+
* exits 1 ("no match") and the file is silently UNSCANNED rather than erroring
|
|
83
|
+
* (PR #394 review). Note the flag is a main-git option, so it must precede the
|
|
84
|
+
* subcommand: `git grep --literal-pathspecs` is rejected as an unknown option.
|
|
85
|
+
*
|
|
86
|
+
* `-z` is load-bearing too: it makes git delimit `path\0line\0text`, so a path
|
|
87
|
+
* containing `:<digits>:` can't be mis-split by the parser and silently dropped
|
|
88
|
+
* from the results (PR #394 review — see `parseConflictMarkerGrep`). */
|
|
89
|
+
export declare function scanConflictMarkers(paths: string[]): ConflictMarkerHit[];
|
|
90
|
+
/** Which rebase state git has left in this worktree, if any. Reads the
|
|
91
|
+
* worktree's own git dir, so it is correct inside `git worktree` checkouts. */
|
|
92
|
+
export declare function rebaseInProgress(): "rebase-merge" | "rebase-apply" | null;
|
|
93
|
+
export type SyncEntryVerdict = {
|
|
94
|
+
ok: true;
|
|
95
|
+
} | {
|
|
96
|
+
ok: false;
|
|
97
|
+
message: string;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Whether `pr sync` may start, given the worktree's state. The loop reuses ONE
|
|
101
|
+
* worktree, so a worker turn that dies mid-`--keep-conflicts` strands it on a
|
|
102
|
+
* detached HEAD inside a rebase — after which the old branch check emitted the
|
|
103
|
+
* misleading `On branch "HEAD" but PR #N is "x"` and every later loop git op
|
|
104
|
+
* failed. Each refusal names the state AND the exact command that clears it.
|
|
105
|
+
* Pure (state is injected) so it's unit-testable without a git fixture.
|
|
106
|
+
*/
|
|
107
|
+
export declare function syncEntryGuard(i: {
|
|
108
|
+
rebase: "rebase-merge" | "rebase-apply" | null;
|
|
109
|
+
currentBranch: string;
|
|
110
|
+
head: string;
|
|
111
|
+
number: number;
|
|
112
|
+
}): SyncEntryVerdict;
|
|
7
113
|
//# sourceMappingURL=pr.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../../src/commands/pr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmDzC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6fxD;AA+BD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGxE;AAED;;;kFAGkF;AAClF,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD;;;kFAGkF;AAClF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,aAAwB,GAAG,MAAM,CAOxI;AAID;;;yEAGyE;AACzE,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAK9C,CAAC;AAEF,wDAAwD;AACxD,MAAM,WAAW,iBAAiB;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;AAE/E;kEACkE;AAClE,eAAO,MAAM,uBAAuB,kCAAkC,CAAC;AAKvE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,EAAE,CA2BxE;AAED;;4EAE4E;AAC5E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,mEAAmE;IACnE,EAAE,EAAE,OAAO,CAAC;IACZ,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;4DAK4D;AAC5D,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAOrD;AAED;oFACoF;AACpF,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAE7D;AAED;;;;;;;;;;;;;yEAayE;AACzE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAaxE;AAED;gFACgF;AAChF,wBAAgB,gBAAgB,IAAI,cAAc,GAAG,cAAc,GAAG,IAAI,CAUzE;AAED,MAAM,MAAM,gBAAgB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7E;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE;IAChC,MAAM,EAAE,cAAc,GAAG,cAAc,GAAG,IAAI,CAAC;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,gBAAgB,CAiBnB"}
|