@blogic-cz/agent-tools 1.10.0 → 1.10.1
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 +9 -4
- package/dist/gh-tool/issue/triage.d.ts +3 -3
- package/dist/gh-tool/issue/triage.d.ts.map +1 -1
- package/dist/gh-tool/pr/commands.d.ts +7 -5
- package/dist/gh-tool/pr/commands.d.ts.map +1 -1
- package/dist/gh-tool/pr/core.d.ts +18 -0
- package/dist/gh-tool/pr/core.d.ts.map +1 -1
- package/dist/gh-tool/pr/review.d.ts.map +1 -1
- package/dist/gh-tool/pr/stack.d.ts.map +1 -1
- package/dist/gh-tool/read/api.d.ts.map +1 -1
- package/dist/gh-tool/read/pulls.d.ts.map +1 -1
- package/dist/gh-tool/read/review-model.d.ts +11 -8
- package/dist/gh-tool/read/review-model.d.ts.map +1 -1
- package/dist/gh-tool/read/reviews.d.ts.map +1 -1
- package/dist/gh-tool/read/waits.d.ts +1 -1
- package/dist/gh-tool/read/waits.d.ts.map +1 -1
- package/dist/gh-tool/types.d.ts +9 -3
- package/dist/gh-tool/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/gh-tool/pr/commands.ts +12 -7
- package/src/gh-tool/pr/core.ts +41 -4
- package/src/gh-tool/pr/review.ts +18 -1
- package/src/gh-tool/pr/stack.ts +12 -2
- package/src/gh-tool/read/api.ts +6 -0
- package/src/gh-tool/read/pulls.ts +4 -1
- package/src/gh-tool/read/review-model.ts +11 -8
- package/src/gh-tool/read/reviews.ts +48 -2
- package/src/gh-tool/read/waits.ts +12 -2
- package/src/gh-tool/types.ts +15 -3
package/README.md
CHANGED
|
@@ -343,8 +343,9 @@ Merging such a member through the asynchronous endpoint would land those PRs too
|
|
|
343
343
|
its own dry-run never disclosed. The bottom member still merges normally.
|
|
344
344
|
|
|
345
345
|
`stack merge` targets the top open member, so one call lands the stack. It checks every open
|
|
346
|
-
member first and refuses the whole operation if any is a draft, conflicting,
|
|
347
|
-
pending checks
|
|
346
|
+
member first and refuses the whole operation if any is a draft, conflicting, has failing or
|
|
347
|
+
pending checks, or has no reported checks. A partial stack merge leaves a parent on the trunk
|
|
348
|
+
and a broken child. A `checks_none_reported` blocker means GitHub gave no CI verdict.
|
|
348
349
|
|
|
349
350
|
`pr stack unstack` dissolves a stack. GitHub owns the base of every stacked PR, so `pr edit
|
|
350
351
|
--base` on a member refuses and names that command rather than letting GitHub's bare 422
|
|
@@ -368,7 +369,7 @@ replayed inside its child.
|
|
|
368
369
|
|
|
369
370
|
### gh-tool machine contracts
|
|
370
371
|
|
|
371
|
-
`pr view` adds `headSha` and `baseSha`; failed-check evidence adds the same SHA pair. Review summaries, inline comments, and threads add `commitSha` plus `feedbackOrigin`: `current_head` only for an exact `commitSha === headSha`, `pre_existing` for a different known SHA (not an obsolescence verdict), and `unknown` when either SHA is absent. Issue comments always use `commitSha: null` and `feedbackOrigin: unknown`. `review-triage` preserves existing fields and adds `inlineComments` plus per-kind `feedbackOriginCounts`; batch triage returns the same object per PR. `pr request-review --reviewers alice,bob` emits sorted `submittedReviewers` (normalized input), `newlyRequested` and `alreadyPending` (the submitted logins split by whether a pending request already existed, so a fresh re-request is distinguishable from a no-op), and `requestedReviewers` (GitHub-confirmed result). `pr last-human-reviewer` derives `currentRequestedReviewers` from live `reviewRequests` only; timeline events are not replayed because GitHub clears a pending request on review submit without emitting `ReviewRequestRemovedEvent`.
|
|
372
|
+
`pr view` adds `headSha` and `baseSha`; failed-check evidence adds the same SHA pair. Review summaries, inline comments, and threads add `commitSha` plus `feedbackOrigin`: `current_head` only for an exact `commitSha === headSha`, `pre_existing` for a different known SHA (not an obsolescence verdict), and `unknown` when either SHA is absent. Issue comments always use `commitSha: null` and `feedbackOrigin: unknown`. `review-triage` preserves existing fields and adds `inlineComments` plus per-kind `feedbackOriginCounts`; batch triage returns the same object per PR. Review triage also returns `checksStatus`. When `checksStatus` is `none_reported`, it includes `checksReason`, adds `checks_not_reported` to `ready.blocking` and `classification.reasons`, and keeps `checks` empty. It does not report the PR as ready or claim a failed check. `pr request-review --reviewers alice,bob` emits sorted `submittedReviewers` (normalized input), `newlyRequested` and `alreadyPending` (the submitted logins split by whether a pending request already existed, so a fresh re-request is distinguishable from a no-op), and `requestedReviewers` (GitHub-confirmed result). `pr last-human-reviewer` derives `currentRequestedReviewers` from live `reviewRequests` only; timeline events are not replayed because GitHub clears a pending request on review submit without emitting `ReviewRequestRemovedEvent`.
|
|
372
373
|
|
|
373
374
|
`pr watch --prs 12,34 --until terminal --format jsonl` accepts at most 50 unique, digits-only PR numbers and emits only JSONL state transitions. Identity uses `repo/pr/headSha/runId/attempt/jobId`; `runId`, `attempt`, and `jobId` are omitted from an event rather than emitted as `null`, and `checkId` is no longer emitted. State/bucket revisions emit even when identity stays stable; `supersedes` appears only when identity changes. Open PRs with no checks become terminal only after three stable empty snapshots, allowing bounded GitHub eventual consistency, and carry `checksObserved: false` — a terminal snapshot with no observed check is never green evidence. `pr checks`, batch checks, triage, and batch triage keep stderr silent with `--format json`; JSONL watch is also informationally silent. Failures still return structured nonzero errors on stderr.
|
|
374
375
|
|
|
@@ -399,10 +400,14 @@ also verifies the comment belongs to that pull request.
|
|
|
399
400
|
|
|
400
401
|
Reruns preflight every target before mutation and fail closed with `evidence_unavailable` when attempt jobs or logs cannot be read. Failed jobs use one `gh run rerun RUN --failed` mutation per workflow run. Without `--watch`, output returns current attempt metadata immediately; with `--watch`, discovery and watching share one absolute `--timeout` deadline and report `discovery_timeout` or `watch_timeout` with latest attempt state. Repeated matching pre-test infrastructure failures return `escalation_required` without mutation. See [`skills/gh-tool/SKILL.md`](skills/gh-tool/SKILL.md) for operating guidance; this section is canonical for added output fields.
|
|
401
402
|
|
|
402
|
-
Zero reported checks is a state, not an error
|
|
403
|
+
Zero reported checks is a state, not an error. `gh pr checks` exits nonzero on an empty result. `stack merge`, `review-triage`, and `checks-failed` preserve `none_reported` so they do not report a green or ready PR. `pr checks` batch output includes `checksStatus: "none_reported"` and a reason. `fetchCheckResults` still maps this state to `[]` for rerun, trigger, and watch flows that handle empty results. `pr trigger-checks` covers the case where GitHub dropped the `pull_request` event and no run exists at all. It dispatches the named `workflow_dispatch` workflow **on the PR head branch**, then compares the created run's `headSha` back to the PR head and reports `matchesPrHead`. A run dispatched on the wrong ref goes green for another branch and must never be read as PR evidence, so `workflow run` also returns the discovered `runId`/`headSha` instead of a bare `dispatched: true`.
|
|
404
|
+
|
|
405
|
+
`pr checks-failed` returns `status: "none_reported"`, the reason, and a hint when GitHub reports no checks for the stable PR head. It does not return `no_failures` for that state.
|
|
403
406
|
|
|
404
407
|
`pr feedback` returns the whole inventory by default. Narrow it with `--only visible-open|needs-human-reply|current-head` (narrowed filters drop issue comments), drop bots with `--exclude-authors github-actions,dependabot`, and read `omitted` for what each filter removed. Base64 report payloads in bodies are replaced with `[base64 payload omitted]`; pass `--raw-bodies` to keep them. `review-triage --omit reviews,inlineComments` trims a repeated snapshot to the verdict and check state, and lists what it left out in `omittedSections`.
|
|
405
408
|
|
|
409
|
+
Inline review comments and threads expose nullable `originalLine`, `originalCommitSha`, and `diffHunk` in `pr comments`, `pr threads`, `pr feedback`, and review triage. Use these to locate an outdated comment when `line` is null; `line` and `commitSha` keep their current values. Missing original metadata is null. Threads with a null current line are deduplicated only when their known original line, original commit, diff hunk, path, and body match.
|
|
410
|
+
|
|
406
411
|
An empty thread list can mean the reviewer is still drafting: comments inside a pending review are invisible to the API until the reviewer submits, and they keep their draft time in `createdAt`. `pr threads` and `pr comments` therefore also report `reviewId` and `updatedAt`. Equal `reviewId` values mark one submitted batch; join that id to the matching `reviews[].submittedAt` from `pr feedback` for the exact time the batch became visible. `updatedAt` is a cheap proxy for the same moment, but it also moves when someone edits the comment. Never conclude from an older `createdAt` that an earlier scan missed anything.
|
|
407
412
|
|
|
408
413
|
Call the wrappers through `bun run --silent <tool>` in repos that expose them as package scripts; without `--silent` every invocation echoes the resolved command line into the agent's context.
|
|
@@ -68,11 +68,11 @@ export declare const collectLinkedPullRequestNumbers: (body: string, comments: r
|
|
|
68
68
|
export declare const fetchIssueSnapshot: (opts: {
|
|
69
69
|
issue: number;
|
|
70
70
|
owner: string | null;
|
|
71
|
-
}) => Effect.Effect<IssueSnapshot, import("
|
|
71
|
+
}) => Effect.Effect<IssueSnapshot, import("#gh/read/transport").GhError, GitHubService>;
|
|
72
72
|
export declare const fetchIssueSnapshotBatch: (opts: {
|
|
73
73
|
issues: readonly number[];
|
|
74
74
|
owner: string | null;
|
|
75
|
-
}) => Effect.Effect<IssueSnapshot[], import("
|
|
75
|
+
}) => Effect.Effect<IssueSnapshot[], import("#gh/read/transport").GhError, GitHubService>;
|
|
76
76
|
export declare const issueTriageCommand: Command.Command<"triage", {
|
|
77
77
|
readonly format: "json" | "toon";
|
|
78
78
|
readonly issue: number;
|
|
@@ -84,6 +84,6 @@ export declare const issueSnapshotBatchCommand: Command.Command<"snapshot-batch"
|
|
|
84
84
|
readonly issues: string;
|
|
85
85
|
readonly owner: Option.Option<string>;
|
|
86
86
|
readonly repo: Option.Option<string>;
|
|
87
|
-
}, {}, import("
|
|
87
|
+
}, {}, import("#gh/read/transport").GhError, GitHubService>;
|
|
88
88
|
export {};
|
|
89
89
|
//# sourceMappingURL=triage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triage.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/issue/triage.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"triage.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/issue/triage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAQ,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGrF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAiBnD,QAAA,MAAM,eAAe,+CAAuC,CAAC;AAC7D,KAAK,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAEnD,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,CAAC,cAAc,EAAE;QACvB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,qBAAqB,CAAC;QACjD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;KACrC,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,SAAS,YAAY,EAAE,CAAC;IACpD,QAAQ,CAAC,kBAAkB,EAAE,SAAS,YAAY,EAAE,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;QAC/C,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC;QAC7C,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;QAC9C,QAAQ,CAAC,kBAAkB,EAAE,YAAY,GAAG,IAAI,CAAC;KAClD,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;CACzC,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,qBAAqB,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,wBAAwB,EAAE,SAAS,MAAM,EAAE,CAAC;IACrD,QAAQ,CAAC,kBAAkB,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC7D,QAAQ,CAAC,cAAc,EAAE,2BAA2B,CAAC;CACtD,CAAC;AAiBF,eAAO,MAAM,gBAAgB;WACpB,MAAM;eACF,eAAe;8GAuC1B,CAAC;AAEH,eAAO,MAAM,iBAAiB,UAAW,MAAM,KAAG,SAAS,MAAM,EAIF,CAAC;AAEhE,eAAO,MAAM,+BAA+B,SACpC,MAAM,YACF,SAAS;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,KAC7C,SAAS,MAAM,EAWjB,CAAC;AAqBF,eAAO,MAAM,kBAAkB;WACtB,MAAM;WACN,MAAM,GAAG,IAAI;uFAoCpB,CAAC;AAEH,eAAO,MAAM,uBAAuB;YAC1B,SAAS,MAAM,EAAE;WAClB,MAAM,GAAG,IAAI;yFAMpB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;2DAqB9B,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;2DA0BrC,CAAC"}
|
|
@@ -20,7 +20,7 @@ type ReviewTriageClassification = {
|
|
|
20
20
|
readonly status: "clear" | "needs_investigation";
|
|
21
21
|
readonly reasons: readonly string[];
|
|
22
22
|
};
|
|
23
|
-
export declare const classifyReviewTriage: (summary: ReviewTriageSummary, checks: readonly CheckResult[]) => ReviewTriageClassification;
|
|
23
|
+
export declare const classifyReviewTriage: (summary: ReviewTriageSummary, checks: readonly CheckResult[], checksStatus?: "reported" | "none_reported") => ReviewTriageClassification;
|
|
24
24
|
export declare const parsePrNumbers: (input: string) => Effect.Effect<readonly number[], GitHubCommandError>;
|
|
25
25
|
export declare const fetchCurrentThreads: (pr: number | null, unresolvedOnly: boolean, visibleOpenOnly: boolean) => Effect.Effect<import("#gh/types").ReviewThread[], import("#gh/read/transport").GhError, GitHubService>;
|
|
26
26
|
export declare const fetchCurrentComments: (pr: number | null, since: string | null) => Effect.Effect<import("#gh/types").ReviewComment[], import("#gh/read/transport").GhError, GitHubService>;
|
|
@@ -97,7 +97,7 @@ export declare const filterFeedback: <T extends FeedbackInventory>(feedback: T,
|
|
|
97
97
|
feedbackOrigin: string;
|
|
98
98
|
}[];
|
|
99
99
|
};
|
|
100
|
-
export declare const fetchReviewTriage: (prNumber: number | null
|
|
100
|
+
export declare const fetchReviewTriage: (prNumber: number | null) => Effect.Effect<{
|
|
101
101
|
ready: {
|
|
102
102
|
ready: boolean;
|
|
103
103
|
mergeable: "CONFLICTING" | "MERGEABLE" | "UNKNOWN";
|
|
@@ -147,6 +147,8 @@ export declare const fetchReviewTriage: (prNumber: number | null, format?: "json
|
|
|
147
147
|
unresolvedUnrepliedReviewThreadsCount: number;
|
|
148
148
|
};
|
|
149
149
|
checks: CheckResult[];
|
|
150
|
+
checksStatus: "none_reported" | "reported";
|
|
151
|
+
checksReason?: string | undefined;
|
|
150
152
|
reviews: import("#gh/types").PullRequestReview[];
|
|
151
153
|
inlineComments: import("#gh/types").ReviewComment[];
|
|
152
154
|
feedbackOriginCounts: {
|
|
@@ -166,7 +168,7 @@ export declare const fetchReviewTriage: (prNumber: number | null, format?: "json
|
|
|
166
168
|
unknown: number;
|
|
167
169
|
};
|
|
168
170
|
};
|
|
169
|
-
}, import("#gh/
|
|
171
|
+
}, import("#gh/read/transport").GhError, GitHubService>;
|
|
170
172
|
export declare const prViewCommand: Command.Command<"view", {
|
|
171
173
|
readonly format: "json" | "toon";
|
|
172
174
|
readonly pr: Option.Option<number>;
|
|
@@ -394,7 +396,7 @@ export declare const prReviewTriageCommand: Command.Command<"review-triage", {
|
|
|
394
396
|
readonly omit: Option.Option<string>;
|
|
395
397
|
readonly pr: Option.Option<number>;
|
|
396
398
|
readonly repo: Option.Option<string>;
|
|
397
|
-
}, {}, import("#gh/
|
|
399
|
+
}, {}, import("#gh/read/transport").GhError, GitHubService>;
|
|
398
400
|
export declare const prRequestReviewCommand: Command.Command<"request-review", {
|
|
399
401
|
readonly format: "json" | "toon";
|
|
400
402
|
readonly pr: number;
|
|
@@ -405,7 +407,7 @@ export declare const prReviewTriageBatchCommand: Command.Command<"review-triage-
|
|
|
405
407
|
readonly format: "json" | "toon";
|
|
406
408
|
readonly prs: string;
|
|
407
409
|
readonly repo: Option.Option<string>;
|
|
408
|
-
}, {}, import("#gh/
|
|
410
|
+
}, {}, import("#gh/read/transport").GhError, GitHubService>;
|
|
409
411
|
export declare const prReplyAndResolveCommand: Command.Command<"reply-and-resolve", {
|
|
410
412
|
readonly body: Option.Option<string>;
|
|
411
413
|
readonly bodyFile: Option.Option<string>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/pr/commands.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAe,MAAM,YAAY,CAAC;AAClD,OAAO,EAAW,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,WAAW,CAAC;AAG7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAoGhD,eAAO,MAAM,cAAc,cAAe,MAAM,4FAM/C,CAAC;AAiCF,eAAO,MAAM,aAAa,OAAQ,MAAM,aAAa,MAAM;;;;;;uDA6BvD,CAAC;AAEL,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;IAC/C,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC;IAC7C,QAAQ,CAAC,4BAA4B,EAAE,MAAM,CAAC;CAC/C,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,qBAAqB,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC,CAAC;AAEF,eAAO,MAAM,oBAAoB,YACtB,mBAAmB,UACpB,SAAS,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/pr/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -359,6 +359,24 @@ export declare const fetchFailedChecks: (pr: number | null, withLogs?: any, full
|
|
|
359
359
|
pendingChecks: CheckResult[];
|
|
360
360
|
hint: string;
|
|
361
361
|
nextCommands: string[];
|
|
362
|
+
} | {
|
|
363
|
+
evidence: {
|
|
364
|
+
headSha: string | null;
|
|
365
|
+
baseSha: string | null;
|
|
366
|
+
};
|
|
367
|
+
status: string;
|
|
368
|
+
reason: string;
|
|
369
|
+
message: string;
|
|
370
|
+
summary: {
|
|
371
|
+
total: number;
|
|
372
|
+
failed: number;
|
|
373
|
+
pending: number;
|
|
374
|
+
passed: number;
|
|
375
|
+
};
|
|
376
|
+
failedChecks: never[];
|
|
377
|
+
pendingChecks: never[];
|
|
378
|
+
hint: string;
|
|
379
|
+
nextCommands: string[];
|
|
362
380
|
}, import("#gh/read/transport").GhError, GitHubService>;
|
|
363
381
|
export declare const fetchChecksForCommand: (pr: number | null, watch: boolean, failFast: boolean, timeoutSeconds: number, quiet?: any) => Effect.Effect<CheckResult[] | {
|
|
364
382
|
evidence: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/pr/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,MAAM,EAAkB,MAAM,QAAQ,CAAC;AAEhE,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,iBAAiB,EAEjB,WAAW,EACX,aAAa,EACb,MAAM,EAEN,iBAAiB,EAGlB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAsB,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAyBnD,OAAO,EAAE,UAAU,IAAI,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAgNlE,eAAO,MAAM,qBAAqB,QAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/pr/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/pr/review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAEV,YAAY,EAGZ,iBAAiB,EACjB,aAAa,EACb,YAAY,EAEb,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/pr/review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAEV,YAAY,EAGZ,iBAAiB,EACjB,aAAa,EACb,YAAY,EAEb,MAAM,WAAW,CAAC;AAEnB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAmLnD;;;GAGG;AACH,eAAO,MAAM,YAAY,uMAcvB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa,8KAmCxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,kBAAkB,qLAkC7B,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,YAAY,sOA2CvB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;uDAaxB,CAAC;AAEH,eAAO,MAAM,uBAAuB,oKAgBlC,CAAC;AAEH,eAAO,MAAM,gBAAgB,uHA4C3B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;;;;;;uDA4CjC,CAAC;AAIH,eAAO,MAAM,WAAW;;;;;;uDA4FtB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,cAAc;;;uDA8FzB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;uDA0FjC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,aAAa;;;uDAexB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAgCzD;;;GAGG;AACH,eAAO,MAAM,YAAY;QACnB,MAAM,GAAG,IAAI;WACV,WAAW;UACZ,MAAM;aACH,OAAO;;;;;;;uDAmDhB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;uDA4M9B,CAAC;AAeH,eAAO,MAAM,sBAAsB;;;;uDA6CjC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/pr/stack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAe,iBAAiB,EAAoB,MAAM,WAAW,CAAC;AAGjG,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/pr/stack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAe,iBAAiB,EAAoB,MAAM,WAAW,CAAC;AAGjG,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,CAAC;AAmFrB,eAAO,MAAM,UAAU;QACjB,MAAM;cACA,aAAa;aACd,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0EAiJhB,CAAC;AAEH,eAAO,MAAM,YAAY;QACnB,MAAM;aACD,OAAO;;;;;;;;0EA4ChB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhD,OAAO,EAAE,eAAe,EAA2C,MAAM,YAAY,CAAC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAWjD,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAYF,eAAO,MAAM,iBAAiB,kCAK7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,qDAgC7B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhD,OAAO,EAAE,eAAe,EAA2C,MAAM,YAAY,CAAC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAWjD,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAYF,eAAO,MAAM,iBAAiB,kCAK7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,qDAgC7B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AA4IF,eAAO,MAAM,SAAS,GAAI,CAAC,QACnB,gBAAgB,KACrB,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,cAAc,CA2CjD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pulls.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/pulls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAO7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGtC,eAAO,MAAM,cAAc,oKACwI,CAAC;AACpK,eAAO,MAAM,cAAc,yHAC6F,CAAC;AACzH,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,UAAU,GAAG;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,eAAe,CAAA;CAAE,CAAC;AACpF,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;EAeR,CAAC;AAEH,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBZ,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAC;AAC1C,MAAM,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC;AAQ1C,eAAO,MAAM,MAAM;;;;uDA2BjB,CAAC;AAEH,eAAO,MAAM,WAAW,4GAkBtB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAsCjB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;yDAmCjB,CAAC;AAEH,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"pulls.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/pulls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAO7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAGtC,eAAO,MAAM,cAAc,oKACwI,CAAC;AACpK,eAAO,MAAM,cAAc,yHAC6F,CAAC;AACzH,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AACF,MAAM,MAAM,UAAU,GAAG;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,eAAe,CAAA;CAAE,CAAC;AACpF,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;EAeR,CAAC;AAEH,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBZ,CAAC;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,QAAQ,CAAC,IAAI,CAAC;AAC1C,MAAM,MAAM,UAAU,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC;AAQ1C,eAAO,MAAM,MAAM;;;;uDA2BjB,CAAC;AAEH,eAAO,MAAM,WAAW,4GAkBtB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uDAsCjB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;yDAmCjB,CAAC;AAEH,eAAO,MAAM,QAAQ,iJA2DnB,CAAC"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
export declare const REVIEW_THREADS_QUERY = "\n query($owner: String!, $name: String!, $pr: Int!, $after: String) {\n repository(owner: $owner, name: $name) {\n pullRequest(number: $pr) {\n reviewThreads(first: 100, after: $after) {\n nodes {\n id\n isResolved\n comments(first: 100) {\n nodes {\n id\n databaseId\n path\n line\n body\n author { login }\n commit { oid }\n }\n pageInfo { hasNextPage endCursor }\n }\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n }\n";
|
|
2
|
-
export declare const REVIEW_THREAD_COMMENTS_QUERY = "\n query($threadId: ID!, $after: String) {\n node(id: $threadId) {\n ... on PullRequestReviewThread {\n comments(first: 100, after: $after) {\n nodes {\n id\n databaseId\n path\n line\n body\n author { login }\n commit { oid }\n }\n pageInfo { hasNextPage endCursor }\n }\n }\n }\n }\n";
|
|
1
|
+
export declare const REVIEW_THREADS_QUERY = "\n query($owner: String!, $name: String!, $pr: Int!, $after: String) {\n repository(owner: $owner, name: $name) {\n pullRequest(number: $pr) {\n reviewThreads(first: 100, after: $after) {\n nodes {\n id\n isResolved\n comments(first: 100) {\n nodes {\n id\n databaseId: fullDatabaseId\n path\n line\n body\n author { login }\n commit { oid }\n }\n pageInfo { hasNextPage endCursor }\n }\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }\n }\n }\n }\n";
|
|
2
|
+
export declare const REVIEW_THREAD_COMMENTS_QUERY = "\n query($threadId: ID!, $after: String) {\n node(id: $threadId) {\n ... on PullRequestReviewThread {\n comments(first: 100, after: $after) {\n nodes {\n id\n databaseId: fullDatabaseId\n path\n line\n body\n author { login }\n commit { oid }\n }\n pageInfo { hasNextPage endCursor }\n }\n }\n }\n }\n";
|
|
3
3
|
export declare const RESOLVE_THREAD_MUTATION = "\n mutation($threadId: ID!) {\n resolveReviewThread(input: {threadId: $threadId}) {\n thread { id isResolved }\n }\n }\n";
|
|
4
4
|
export declare const PENDING_REVIEWS_QUERY = "\n query($owner: String!, $name: String!, $pr: Int!, $after: String) {\n viewer { login }\n repository(owner: $owner, name: $name) {\n pullRequest(number: $pr) {\n reviews(first: 100, after: $after, states: [PENDING]) {\n nodes {\n id\n state\n author { login }\n }\n pageInfo { hasNextPage endCursor }\n }\n }\n }\n }\n";
|
|
5
5
|
export declare const PENDING_REVIEW_CONTENT_QUERY = "\n query($reviewId: ID!, $after: String) {\n viewer { login }\n node(id: $reviewId) {\n ... on PullRequestReview {\n id\n state\n body\n author { login }\n pullRequest {\n number\n repository { nameWithOwner }\n }\n comments(first: 100, after: $after) {\n nodes { body }\n pageInfo { hasNextPage endCursor }\n }\n }\n }\n }\n";
|
|
6
6
|
export declare const SUBMIT_REVIEW_MUTATION = "\n mutation($reviewId: ID!, $event: PullRequestReviewEvent!, $body: String) {\n submitPullRequestReview(input: { pullRequestReviewId: $reviewId, event: $event, body: $body }) {\n pullRequestReview { id state }\n }\n }\n";
|
|
7
7
|
export declare const LAST_HUMAN_REVIEWER_QUERY = "\n query($owner: String!, $name: String!, $pr: Int!) {\n repository(owner: $owner, name: $name) {\n pullRequest(number: $pr) {\n reviewRequests(first: 100) {\n nodes {\n requestedReviewer {\n __typename\n ... on User { login }\n ... on Team { name }\n ... on Bot { login }\n }\n }\n }\n reviews(last: 100) {\n nodes {\n author { login }\n state\n submittedAt\n }\n }\n }\n }\n }\n";
|
|
8
|
-
export type ThreadNode = {
|
|
8
|
+
export type ThreadNode<DatabaseId = number> = {
|
|
9
9
|
id: string;
|
|
10
10
|
isResolved: boolean;
|
|
11
11
|
comments: {
|
|
12
12
|
nodes: Array<{
|
|
13
13
|
id: string;
|
|
14
|
-
databaseId:
|
|
14
|
+
databaseId: DatabaseId;
|
|
15
15
|
path: string;
|
|
16
|
-
line: number;
|
|
16
|
+
line: number | null;
|
|
17
17
|
body: string;
|
|
18
18
|
author: {
|
|
19
19
|
login: string;
|
|
@@ -30,14 +30,14 @@ export type ThreadNode = {
|
|
|
30
30
|
};
|
|
31
31
|
export type ThreadCommentsQueryResult = {
|
|
32
32
|
node: {
|
|
33
|
-
comments: ThreadNode["comments"];
|
|
33
|
+
comments: ThreadNode<string | null>["comments"];
|
|
34
34
|
} | null;
|
|
35
35
|
};
|
|
36
36
|
export type ThreadsQueryResult = {
|
|
37
37
|
repository: {
|
|
38
38
|
pullRequest: {
|
|
39
39
|
reviewThreads: {
|
|
40
|
-
nodes: ThreadNode[];
|
|
40
|
+
nodes: ThreadNode<string | null>[];
|
|
41
41
|
pageInfo: {
|
|
42
42
|
hasNextPage: boolean;
|
|
43
43
|
endCursor: string | null;
|
|
@@ -145,7 +145,10 @@ export type RawReviewComment = {
|
|
|
145
145
|
};
|
|
146
146
|
body: string;
|
|
147
147
|
path: string;
|
|
148
|
-
line: number;
|
|
148
|
+
line: number | null;
|
|
149
|
+
original_line?: number | null;
|
|
150
|
+
original_commit_id?: string | null;
|
|
151
|
+
diff_hunk?: string | null;
|
|
149
152
|
created_at: string;
|
|
150
153
|
updated_at: string;
|
|
151
154
|
pull_request_review_id?: number | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review-model.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/review-model.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"review-model.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/review-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reviews.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/reviews.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"reviews.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/reviews.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAMtC,OAAO,KAAK,EACV,UAAU,EAGV,4BAA4B,EAC5B,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AA8FxB,eAAO,MAAM,UAAU,uHAGrB,CAAC;AACH,eAAO,MAAM,SAAS,2HAGpB,CAAC;AACH,eAAO,MAAM,aAAa,gKAgBxB,CAAC;AACH,eAAO,MAAM,iBAAiB,iIAmB5B,CAAC"}
|
|
@@ -7,7 +7,7 @@ export type WaitOutcome<A> = {
|
|
|
7
7
|
readonly last: A;
|
|
8
8
|
};
|
|
9
9
|
declare const until: <A, E, R>(read: Effect.Effect<A, E, R>, done: (value: A) => boolean, opts: {
|
|
10
|
-
readonly intervalMs: number;
|
|
10
|
+
readonly intervalMs: number | ((value: A) => number);
|
|
11
11
|
readonly timeoutMs: number;
|
|
12
12
|
readonly initial?: {
|
|
13
13
|
readonly value: A;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"waits.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/waits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEjD,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAC5C;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC;AACpD,QAAA,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QACd,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QACtB,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,QACrB;IACJ,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"waits.d.ts","sourceRoot":"","sources":["../../../src/gh-tool/read/waits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEjD,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAC5C;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC;AACpD,QAAA,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QACd,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,QACtB,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,QACrB;IACJ,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAA;KAAE,CAAC;IACzC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;CAChE,KACA,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CA6CjC,CAAC;AACL,eAAO,MAAM,KAAK;;CAAY,CAAC"}
|
package/dist/gh-tool/types.d.ts
CHANGED
|
@@ -37,7 +37,10 @@ export type ReviewThread = {
|
|
|
37
37
|
feedbackOrigin: FeedbackOrigin;
|
|
38
38
|
commentId: number;
|
|
39
39
|
path: string;
|
|
40
|
-
line: number;
|
|
40
|
+
line: number | null;
|
|
41
|
+
originalLine: number | null;
|
|
42
|
+
originalCommitSha: string | null;
|
|
43
|
+
diffHunk: string | null;
|
|
41
44
|
body: string;
|
|
42
45
|
isResolved: boolean;
|
|
43
46
|
hasReply: boolean;
|
|
@@ -59,7 +62,10 @@ export type ReviewComment = {
|
|
|
59
62
|
author: string;
|
|
60
63
|
body: string;
|
|
61
64
|
path: string;
|
|
62
|
-
line: number;
|
|
65
|
+
line: number | null;
|
|
66
|
+
originalLine: number | null;
|
|
67
|
+
originalCommitSha: string | null;
|
|
68
|
+
diffHunk: string | null;
|
|
63
69
|
createdAt: string;
|
|
64
70
|
reviewId: number | null;
|
|
65
71
|
/**
|
|
@@ -301,7 +307,7 @@ export type StackView = {
|
|
|
301
307
|
};
|
|
302
308
|
export type StackMergeBlocker = {
|
|
303
309
|
number: number;
|
|
304
|
-
reason: "draft" | "not_mergeable" | "mergeability_unknown" | "checks_failing" | "checks_pending";
|
|
310
|
+
reason: "draft" | "not_mergeable" | "mergeability_unknown" | "checks_failing" | "checks_pending" | "checks_none_reported";
|
|
305
311
|
detail: string;
|
|
306
312
|
};
|
|
307
313
|
export type StackMergeResult = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/gh-tool/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE1D,MAAM,MAAM,MAAM,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,aAAa,GACrB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAChC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3C,cAAc,EAAE,UAAU,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,EAAE,CAAC;IAC1E,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,cAAc,uEAA+D,CAAC;AAC3F,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAC;AAExD,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/gh-tool/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -41,7 +41,7 @@ import {
|
|
|
41
41
|
detectPRStatus,
|
|
42
42
|
editPR,
|
|
43
43
|
fetchPRView,
|
|
44
|
-
|
|
44
|
+
fetchCheckReport,
|
|
45
45
|
fetchChecksBatch,
|
|
46
46
|
fetchChecksForCommand,
|
|
47
47
|
fetchFailedChecks,
|
|
@@ -191,8 +191,10 @@ type ReviewTriageClassification = {
|
|
|
191
191
|
export const classifyReviewTriage = (
|
|
192
192
|
summary: ReviewTriageSummary,
|
|
193
193
|
checks: readonly CheckResult[],
|
|
194
|
+
checksStatus: "reported" | "none_reported" = "reported",
|
|
194
195
|
): ReviewTriageClassification => {
|
|
195
196
|
const reasons = [
|
|
197
|
+
...(checksStatus === "none_reported" ? ["checks_not_reported"] : []),
|
|
196
198
|
...(checks.some((check) => check.bucket === "fail") ? ["failed_checks"] : []),
|
|
197
199
|
...(checks.some((check) => check.bucket === "cancel") ? ["cancelled_checks"] : []),
|
|
198
200
|
...(checks.some(
|
|
@@ -397,7 +399,6 @@ const countFeedbackOrigins = (items: ReadonlyArray<{ feedbackOrigin: string }>)
|
|
|
397
399
|
|
|
398
400
|
export const fetchReviewTriage = Effect.fn("pr.fetchReviewTriage")(function* (
|
|
399
401
|
prNumber: number | null,
|
|
400
|
-
format: "toon" | "json" = "toon",
|
|
401
402
|
) {
|
|
402
403
|
const { info, value } = yield* withStableHead(
|
|
403
404
|
prNumber,
|
|
@@ -405,16 +406,17 @@ export const fetchReviewTriage = Effect.fn("pr.fetchReviewTriage")(function* (
|
|
|
405
406
|
Effect.all([
|
|
406
407
|
fetchThreads(number, false, false, headSha),
|
|
407
408
|
fetchDiscussionSummary(number),
|
|
408
|
-
|
|
409
|
+
fetchCheckReport(number),
|
|
409
410
|
fetchReviews(number, null, null, null, headSha),
|
|
410
411
|
fetchComments(number, null, headSha),
|
|
411
412
|
]),
|
|
412
413
|
{ operation: "review triage", command: "gh-tool pr review-triage" },
|
|
413
414
|
);
|
|
414
|
-
const [allThreads, summary,
|
|
415
|
+
const [allThreads, summary, checkReport, reviews, inlineComments] = value;
|
|
416
|
+
const checks = checkReport.checks ?? [];
|
|
415
417
|
const unresolvedThreads = allThreads.filter((thread) => !thread.isResolved);
|
|
416
418
|
const visibleOpenThreads = allThreads.filter((thread) => thread.isVisibleOpen);
|
|
417
|
-
const classification = classifyReviewTriage(summary, checks);
|
|
419
|
+
const classification = classifyReviewTriage(summary, checks, checkReport.checksStatus);
|
|
418
420
|
|
|
419
421
|
// Single merge-readiness verdict so agents stop re-stitching mergeable + checks + threads +
|
|
420
422
|
// review state across separate calls (F2). `blocking` names exactly what's left to do.
|
|
@@ -423,6 +425,7 @@ export const fetchReviewTriage = Effect.fn("pr.fetchReviewTriage")(function* (
|
|
|
423
425
|
if (checks.some((check) => check.bucket === "fail")) blocking.push("failing_checks");
|
|
424
426
|
if (checks.some((check) => check.bucket === "pending")) blocking.push("pending_checks");
|
|
425
427
|
if (checks.some((check) => check.bucket === "cancel")) blocking.push("cancelled_checks");
|
|
428
|
+
if (checkReport.checksStatus === "none_reported") blocking.push("checks_not_reported");
|
|
426
429
|
if (
|
|
427
430
|
checks.some(
|
|
428
431
|
(check) => !["pass", "fail", "pending", "skipping", "cancel"].includes(check.bucket),
|
|
@@ -466,6 +469,8 @@ export const fetchReviewTriage = Effect.fn("pr.fetchReviewTriage")(function* (
|
|
|
466
469
|
visibleOpenThreads,
|
|
467
470
|
summary,
|
|
468
471
|
checks,
|
|
472
|
+
checksStatus: checkReport.checksStatus,
|
|
473
|
+
...(checkReport.checksStatus === "none_reported" ? { checksReason: checkReport.reason } : {}),
|
|
469
474
|
reviews,
|
|
470
475
|
inlineComments,
|
|
471
476
|
feedbackOriginCounts: {
|
|
@@ -1609,7 +1614,7 @@ export const prReviewTriageCommand = Command.make(
|
|
|
1609
1614
|
repo,
|
|
1610
1615
|
Effect.gen(function* () {
|
|
1611
1616
|
const prNumber = Option.getOrNull(pr);
|
|
1612
|
-
const result = yield* fetchReviewTriage(prNumber
|
|
1617
|
+
const result = yield* fetchReviewTriage(prNumber);
|
|
1613
1618
|
yield* logFormatted(
|
|
1614
1619
|
omitTriageSections(result, Option.getOrNull(omit)?.split(",") ?? []),
|
|
1615
1620
|
format,
|
|
@@ -1654,7 +1659,7 @@ export const prReviewTriageBatchCommand = Command.make(
|
|
|
1654
1659
|
Effect.gen(function* () {
|
|
1655
1660
|
const numbers = yield* parsePrNumbers(prs);
|
|
1656
1661
|
const results = yield* Effect.all(
|
|
1657
|
-
numbers.map((prNumber) => fetchReviewTriage(prNumber
|
|
1662
|
+
numbers.map((prNumber) => fetchReviewTriage(prNumber)),
|
|
1658
1663
|
{ concurrency: "unbounded" },
|
|
1659
1664
|
);
|
|
1660
1665
|
yield* logFormatted(results, format);
|
package/src/gh-tool/pr/core.ts
CHANGED
|
@@ -257,6 +257,8 @@ export const NO_CHECKS_REPORTED_RE = /no checks reported/i;
|
|
|
257
257
|
// for the caller's whole --timeout.
|
|
258
258
|
const CHECK_REGISTRATION_POLL_SECONDS = 5;
|
|
259
259
|
const CHECK_REGISTRATION_GRACE_SECONDS = 60;
|
|
260
|
+
const CHECK_POLL_INTERVAL_MS = 15_000;
|
|
261
|
+
const CHECK_POLL_MAX_INTERVAL_MS = 60_000;
|
|
260
262
|
const NO_CHECKS_REPORTED_REASON =
|
|
261
263
|
"gh reported no checks for this head. Checks may not be registered yet, the PR may have no CI, or GitHub returned an empty rollup. This is not a CI verdict.";
|
|
262
264
|
|
|
@@ -1469,9 +1471,21 @@ export const fetchChecks = Effect.fn("pr.fetchChecks")(function* (
|
|
|
1469
1471
|
const started = Number(yield* Clock.currentTimeMillis);
|
|
1470
1472
|
const graceDeadlineMs =
|
|
1471
1473
|
started + Math.min(CHECK_REGISTRATION_GRACE_SECONDS, timeoutSeconds) * 1000;
|
|
1474
|
+
let previousChecks = "";
|
|
1475
|
+
let intervalMs = CHECK_POLL_INTERVAL_MS;
|
|
1472
1476
|
const poll = Effect.gen(function* () {
|
|
1473
1477
|
const checks = yield* fetchCheckResults(pr);
|
|
1474
|
-
|
|
1478
|
+
const signature = JSON.stringify(checks);
|
|
1479
|
+
intervalMs =
|
|
1480
|
+
signature === previousChecks
|
|
1481
|
+
? Math.min(CHECK_POLL_MAX_INTERVAL_MS, intervalMs * 2)
|
|
1482
|
+
: CHECK_POLL_INTERVAL_MS;
|
|
1483
|
+
previousChecks = signature;
|
|
1484
|
+
return {
|
|
1485
|
+
checks,
|
|
1486
|
+
at: Number(yield* Clock.currentTimeMillis),
|
|
1487
|
+
intervalMs: checks.length === 0 ? CHECK_REGISTRATION_POLL_SECONDS * 1000 : intervalMs,
|
|
1488
|
+
};
|
|
1475
1489
|
});
|
|
1476
1490
|
const watchOutcome = yield* waits
|
|
1477
1491
|
.until(
|
|
@@ -1481,7 +1495,7 @@ export const fetchChecks = Effect.fn("pr.fetchChecks")(function* (
|
|
|
1481
1495
|
? at >= graceDeadlineMs
|
|
1482
1496
|
: (failFast && checks.some((check) => check.bucket === "fail")) ||
|
|
1483
1497
|
checks.every((check) => check.bucket !== "pending"),
|
|
1484
|
-
{ intervalMs:
|
|
1498
|
+
{ intervalMs: (value) => value.intervalMs, timeoutMs: timeoutSeconds * 1000 },
|
|
1485
1499
|
)
|
|
1486
1500
|
.pipe(
|
|
1487
1501
|
Effect.timeoutOrElse({
|
|
@@ -1504,6 +1518,16 @@ export const fetchChecks = Effect.fn("pr.fetchChecks")(function* (
|
|
|
1504
1518
|
stderr: "",
|
|
1505
1519
|
});
|
|
1506
1520
|
const results = yield* fetchCheckResults(pr);
|
|
1521
|
+
if (
|
|
1522
|
+
results.some((check) => check.bucket === "fail") &&
|
|
1523
|
+
(failFast || !results.some((check) => check.bucket === "pending"))
|
|
1524
|
+
)
|
|
1525
|
+
return yield* new GitHubCommandError({
|
|
1526
|
+
command: buildChecksCommand(pr, true),
|
|
1527
|
+
exitCode: 1,
|
|
1528
|
+
message: "",
|
|
1529
|
+
stderr: "",
|
|
1530
|
+
});
|
|
1507
1531
|
if (!quiet && graceExpired) {
|
|
1508
1532
|
const prRef = pr === null ? "<number>" : String(pr);
|
|
1509
1533
|
yield* Console.warn(
|
|
@@ -1608,7 +1632,7 @@ export const fetchFailedChecks = Effect.fn("pr.fetchFailedChecks")(function* (
|
|
|
1608
1632
|
const initial = yield* viewPR(pr);
|
|
1609
1633
|
const snapshot = yield* collectWithStableState(
|
|
1610
1634
|
initial,
|
|
1611
|
-
(info) =>
|
|
1635
|
+
(info) => fetchCheckReport(info.number),
|
|
1612
1636
|
(info) =>
|
|
1613
1637
|
fetchPRView(info.number, "origin").pipe(
|
|
1614
1638
|
Effect.map((refreshed) => ({ ...refreshed, baseSha: initial.baseSha })),
|
|
@@ -1616,7 +1640,20 @@ export const fetchFailedChecks = Effect.fn("pr.fetchFailedChecks")(function* (
|
|
|
1616
1640
|
(before, after) => after.headSha === before.headSha,
|
|
1617
1641
|
);
|
|
1618
1642
|
if (snapshot !== null) {
|
|
1619
|
-
|
|
1643
|
+
if (snapshot.value.checksStatus === "none_reported") {
|
|
1644
|
+
return {
|
|
1645
|
+
evidence: { headSha: snapshot.state.headSha, baseSha: snapshot.state.baseSha },
|
|
1646
|
+
status: "none_reported",
|
|
1647
|
+
reason: snapshot.value.reason,
|
|
1648
|
+
message: "No checks were reported for this PR head.",
|
|
1649
|
+
summary: { total: 0, failed: 0, pending: 0, passed: 0 },
|
|
1650
|
+
failedChecks: [],
|
|
1651
|
+
pendingChecks: [],
|
|
1652
|
+
hint: "This is not a CI verdict. Check whether CI exists or has registered for this head.",
|
|
1653
|
+
nextCommands: [`bun agent-tools-gh pr checks --pr ${snapshot.state.number}`],
|
|
1654
|
+
};
|
|
1655
|
+
}
|
|
1656
|
+
return yield* buildFailedChecksReport(snapshot.state.number, snapshot.value.checks, {
|
|
1620
1657
|
withLogs: withLogs || fullLogs,
|
|
1621
1658
|
fullLogs,
|
|
1622
1659
|
evidence: { headSha: snapshot.state.headSha, baseSha: snapshot.state.baseSha },
|
package/src/gh-tool/pr/review.ts
CHANGED
|
@@ -113,6 +113,9 @@ const enrichThreads = (
|
|
|
113
113
|
feedbackOrigin: feedbackOrigin(comment.commit?.oid ?? null, currentHeadSha),
|
|
114
114
|
path: comment.path,
|
|
115
115
|
line: comment.line,
|
|
116
|
+
originalLine: root?.originalLine ?? null,
|
|
117
|
+
originalCommitSha: root?.originalCommitSha ?? null,
|
|
118
|
+
diffHunk: root?.diffHunk ?? null,
|
|
116
119
|
body: comment.body,
|
|
117
120
|
isResolved: node.isResolved,
|
|
118
121
|
hasReply,
|
|
@@ -131,7 +134,18 @@ const enrichThreads = (
|
|
|
131
134
|
const dedupedByKey = new Map<string, number>();
|
|
132
135
|
const deduped: ReviewThread[] = [];
|
|
133
136
|
for (const thread of mapped) {
|
|
134
|
-
const
|
|
137
|
+
const originalLocation =
|
|
138
|
+
thread.line === null
|
|
139
|
+
? JSON.stringify([
|
|
140
|
+
thread.originalLine,
|
|
141
|
+
thread.originalCommitSha,
|
|
142
|
+
thread.diffHunk,
|
|
143
|
+
thread.originalLine === null || thread.originalCommitSha === null
|
|
144
|
+
? thread.commentId
|
|
145
|
+
: null,
|
|
146
|
+
])
|
|
147
|
+
: "";
|
|
148
|
+
const key = `${thread.path}\u0000${thread.line}\u0000${thread.body.trim()}\u0000${originalLocation}`;
|
|
135
149
|
const existingIndex = dedupedByKey.get(key);
|
|
136
150
|
if (existingIndex === undefined) {
|
|
137
151
|
dedupedByKey.set(key, deduped.length);
|
|
@@ -224,6 +238,9 @@ export const fetchComments = Effect.fn("pr.fetchComments")(function* (
|
|
|
224
238
|
body: c.body,
|
|
225
239
|
path: c.path,
|
|
226
240
|
line: c.line,
|
|
241
|
+
originalLine: c.original_line ?? null,
|
|
242
|
+
originalCommitSha: c.original_commit_id ?? null,
|
|
243
|
+
diffHunk: c.diff_hunk ?? null,
|
|
227
244
|
createdAt: c.created_at,
|
|
228
245
|
reviewId: c.pull_request_review_id ?? null,
|
|
229
246
|
updatedAt: c.updated_at,
|
package/src/gh-tool/pr/stack.ts
CHANGED
|
@@ -10,7 +10,7 @@ import { GitHubMergeError } from "#gh/errors";
|
|
|
10
10
|
|
|
11
11
|
import type { MergeStrategy, StackMember, StackMergeBlocker, StackMergeResult } from "#gh/types";
|
|
12
12
|
|
|
13
|
-
import {
|
|
13
|
+
import { fetchCheckReport, fetchPRView } from "./core";
|
|
14
14
|
import { readStack } from "./stack-read";
|
|
15
15
|
|
|
16
16
|
export { readStack };
|
|
@@ -62,7 +62,17 @@ const collectBlockers = Effect.fn("pr.collectStackBlockers")(function* (members:
|
|
|
62
62
|
continue;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
const
|
|
65
|
+
const report = yield* fetchCheckReport(member.number);
|
|
66
|
+
if (report.checksStatus === "none_reported") {
|
|
67
|
+
blockers.push({
|
|
68
|
+
number: member.number,
|
|
69
|
+
reason: "checks_none_reported",
|
|
70
|
+
detail: `checks: none_reported. ${report.reason}`,
|
|
71
|
+
});
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const checks = report.checks;
|
|
66
76
|
const failing = checks.filter((check) => check.bucket === "fail");
|
|
67
77
|
if (failing.length > 0) {
|
|
68
78
|
blockers.push({
|
package/src/gh-tool/read/api.ts
CHANGED
|
@@ -208,6 +208,12 @@ const githubApiAttempt = Effect.fn("gh.githubApiAttempt")(function* <T>(
|
|
|
208
208
|
command: `${method} ${opts.path}`,
|
|
209
209
|
exitCode: response.status,
|
|
210
210
|
stderr: text,
|
|
211
|
+
...(rateLimit
|
|
212
|
+
? {
|
|
213
|
+
hint: "Wait for the reset before retrying. Check the remaining quota once with the shown command; it does not consume the quota.",
|
|
214
|
+
nextCommand: "gh api rate_limit",
|
|
215
|
+
}
|
|
216
|
+
: {}),
|
|
211
217
|
...(response.status >= 500 || (rateLimit && canWait) ? { retryable: true } : {}),
|
|
212
218
|
});
|
|
213
219
|
if (rateLimit && canWait && waitMs !== undefined) rateLimitRetryDelays.set(error, waitMs);
|
|
@@ -227,7 +227,10 @@ export const prChecks = Effect.fn("reads.prChecks")(function* (
|
|
|
227
227
|
const sha = head.headSha;
|
|
228
228
|
let verified = true;
|
|
229
229
|
const stableFetch = Effect.gen(function* () {
|
|
230
|
-
const before =
|
|
230
|
+
const before =
|
|
231
|
+
headSha === null
|
|
232
|
+
? head
|
|
233
|
+
: yield* prHead(repo, number, "origin").pipe(Effect.orElseSucceed(() => null));
|
|
231
234
|
if (before !== null && before.headSha !== sha) return yield* movedHead(number);
|
|
232
235
|
const value = yield* gh.runGhJson<CheckResult[]>([
|
|
233
236
|
"pr",
|
|
@@ -9,7 +9,7 @@ export const REVIEW_THREADS_QUERY = `
|
|
|
9
9
|
comments(first: 100) {
|
|
10
10
|
nodes {
|
|
11
11
|
id
|
|
12
|
-
databaseId
|
|
12
|
+
databaseId: fullDatabaseId
|
|
13
13
|
path
|
|
14
14
|
line
|
|
15
15
|
body
|
|
@@ -36,7 +36,7 @@ export const REVIEW_THREAD_COMMENTS_QUERY = `
|
|
|
36
36
|
comments(first: 100, after: $after) {
|
|
37
37
|
nodes {
|
|
38
38
|
id
|
|
39
|
-
databaseId
|
|
39
|
+
databaseId: fullDatabaseId
|
|
40
40
|
path
|
|
41
41
|
line
|
|
42
42
|
body
|
|
@@ -136,15 +136,15 @@ export const LAST_HUMAN_REVIEWER_QUERY = `
|
|
|
136
136
|
// Internal types
|
|
137
137
|
// ---------------------------------------------------------------------------
|
|
138
138
|
|
|
139
|
-
export type ThreadNode = {
|
|
139
|
+
export type ThreadNode<DatabaseId = number> = {
|
|
140
140
|
id: string;
|
|
141
141
|
isResolved: boolean;
|
|
142
142
|
comments: {
|
|
143
143
|
nodes: Array<{
|
|
144
144
|
id: string;
|
|
145
|
-
databaseId:
|
|
145
|
+
databaseId: DatabaseId;
|
|
146
146
|
path: string;
|
|
147
|
-
line: number;
|
|
147
|
+
line: number | null;
|
|
148
148
|
body: string;
|
|
149
149
|
author: { login: string };
|
|
150
150
|
commit: { oid: string } | null;
|
|
@@ -154,14 +154,14 @@ export type ThreadNode = {
|
|
|
154
154
|
};
|
|
155
155
|
|
|
156
156
|
export type ThreadCommentsQueryResult = {
|
|
157
|
-
node: { comments: ThreadNode["comments"] } | null;
|
|
157
|
+
node: { comments: ThreadNode<string | null>["comments"] } | null;
|
|
158
158
|
};
|
|
159
159
|
|
|
160
160
|
export type ThreadsQueryResult = {
|
|
161
161
|
repository: {
|
|
162
162
|
pullRequest: {
|
|
163
163
|
reviewThreads: {
|
|
164
|
-
nodes: ThreadNode[];
|
|
164
|
+
nodes: ThreadNode<string | null>[];
|
|
165
165
|
pageInfo: {
|
|
166
166
|
hasNextPage: boolean;
|
|
167
167
|
endCursor: string | null;
|
|
@@ -243,7 +243,10 @@ export type RawReviewComment = {
|
|
|
243
243
|
user: { login: string };
|
|
244
244
|
body: string;
|
|
245
245
|
path: string;
|
|
246
|
-
line: number;
|
|
246
|
+
line: number | null;
|
|
247
|
+
original_line?: number | null;
|
|
248
|
+
original_commit_id?: string | null;
|
|
249
|
+
diff_hunk?: string | null;
|
|
247
250
|
created_at: string;
|
|
248
251
|
updated_at: string;
|
|
249
252
|
pull_request_review_id?: number | null;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Effect, Schema } from "effect";
|
|
2
2
|
import { GitHubService } from "#gh/read/transport";
|
|
3
|
+
import { GitHubCommandError } from "#gh/errors";
|
|
3
4
|
import { cachedRead } from "./cache";
|
|
4
5
|
import { gatedRead } from "./gated";
|
|
5
6
|
import { restSnapshot, snapshotDigest } from "./rest";
|
|
@@ -20,6 +21,28 @@ import type {
|
|
|
20
21
|
RawPullRequestReview,
|
|
21
22
|
} from "./review-model";
|
|
22
23
|
|
|
24
|
+
const CachedThreads = Schema.Array(
|
|
25
|
+
Schema.Struct({
|
|
26
|
+
id: Schema.String,
|
|
27
|
+
isResolved: Schema.Boolean,
|
|
28
|
+
comments: Schema.Struct({
|
|
29
|
+
nodes: Schema.Array(
|
|
30
|
+
Schema.Struct({
|
|
31
|
+
id: Schema.String,
|
|
32
|
+
databaseId: Schema.Number.check(
|
|
33
|
+
Schema.makeFilter((id) => Number.isSafeInteger(id) && id > 0),
|
|
34
|
+
),
|
|
35
|
+
path: Schema.String,
|
|
36
|
+
line: Schema.NullOr(Schema.Number),
|
|
37
|
+
body: Schema.String,
|
|
38
|
+
author: Schema.Struct({ login: Schema.String }),
|
|
39
|
+
commit: Schema.NullOr(Schema.Struct({ oid: Schema.String })),
|
|
40
|
+
}),
|
|
41
|
+
),
|
|
42
|
+
}),
|
|
43
|
+
}),
|
|
44
|
+
);
|
|
45
|
+
|
|
23
46
|
const originThreads = Effect.fn("pr.fetchAllThreadNodes")(function* (
|
|
24
47
|
repoInfo: RepoRef,
|
|
25
48
|
pr: number,
|
|
@@ -50,7 +73,27 @@ const originThreads = Effect.fn("pr.fetchAllThreadNodes")(function* (
|
|
|
50
73
|
node.comments.pageInfo = commentsResponse.node.comments.pageInfo;
|
|
51
74
|
commentsAfter = commentsResponse.node.comments.pageInfo?.endCursor ?? null;
|
|
52
75
|
}
|
|
53
|
-
nodes
|
|
76
|
+
const comments: ThreadNode["comments"]["nodes"] = [];
|
|
77
|
+
for (const comment of node.comments.nodes) {
|
|
78
|
+
// fullDatabaseId is a GraphQL BigInt string, aliased to the existing internal key.
|
|
79
|
+
const rawId: unknown = comment.databaseId;
|
|
80
|
+
const databaseId = typeof rawId === "string" ? Number(rawId) : rawId;
|
|
81
|
+
if (
|
|
82
|
+
typeof databaseId !== "number" ||
|
|
83
|
+
!Number.isSafeInteger(databaseId) ||
|
|
84
|
+
databaseId < 1 ||
|
|
85
|
+
(typeof rawId === "string" && String(databaseId) !== rawId)
|
|
86
|
+
) {
|
|
87
|
+
return yield* new GitHubCommandError({
|
|
88
|
+
command: "gh api graphql",
|
|
89
|
+
exitCode: 1,
|
|
90
|
+
message: "GitHub returned a missing or unsafe review comment ID",
|
|
91
|
+
stderr: "Cannot represent fullDatabaseId as a positive safe integer",
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
comments.push({ ...comment, databaseId });
|
|
95
|
+
}
|
|
96
|
+
nodes.push({ ...node, comments: { ...node.comments, nodes: comments } });
|
|
54
97
|
}
|
|
55
98
|
|
|
56
99
|
if (!page.pageInfo.hasNextPage || page.pageInfo.endCursor === null) {
|
|
@@ -86,7 +129,10 @@ export const reviewThreads = Effect.fn("reads.reviewThreads")(function* (
|
|
|
86
129
|
return yield* gatedRead({
|
|
87
130
|
key: { op: "reviewThreads", repo, pr },
|
|
88
131
|
consistency,
|
|
89
|
-
decode: (raw)
|
|
132
|
+
decode: (raw): ThreadNode[] => {
|
|
133
|
+
Schema.decodeUnknownSync(CachedThreads)(raw);
|
|
134
|
+
return raw as ThreadNode[];
|
|
135
|
+
},
|
|
90
136
|
fetch: originThreads(repo, pr),
|
|
91
137
|
signal: reviewPages(repo, pr, "prComments").pipe(Effect.map(snapshotDigest)),
|
|
92
138
|
maxAgeMs: () => OPS.reviewThreads.maxAgeMs,
|
|
@@ -7,7 +7,7 @@ const until = <A, E, R>(
|
|
|
7
7
|
read: Effect.Effect<A, E, R>,
|
|
8
8
|
done: (value: A) => boolean,
|
|
9
9
|
opts: {
|
|
10
|
-
readonly intervalMs: number;
|
|
10
|
+
readonly intervalMs: number | ((value: A) => number);
|
|
11
11
|
readonly timeoutMs: number;
|
|
12
12
|
readonly initial?: { readonly value: A };
|
|
13
13
|
readonly readAtDeadline?: boolean;
|
|
@@ -31,7 +31,17 @@ const until = <A, E, R>(
|
|
|
31
31
|
return;
|
|
32
32
|
}
|
|
33
33
|
yield* Effect.sleep(
|
|
34
|
-
Duration.millis(
|
|
34
|
+
Duration.millis(
|
|
35
|
+
Math.min(
|
|
36
|
+
Math.max(
|
|
37
|
+
5000,
|
|
38
|
+
typeof opts.intervalMs === "number"
|
|
39
|
+
? opts.intervalMs
|
|
40
|
+
: opts.intervalMs(state.value),
|
|
41
|
+
),
|
|
42
|
+
remaining,
|
|
43
|
+
),
|
|
44
|
+
),
|
|
35
45
|
);
|
|
36
46
|
if (
|
|
37
47
|
Number(yield* Clock.currentTimeMillis) >= deadline &&
|
package/src/gh-tool/types.ts
CHANGED
|
@@ -35,7 +35,10 @@ export type ReviewThread = {
|
|
|
35
35
|
feedbackOrigin: FeedbackOrigin;
|
|
36
36
|
commentId: number;
|
|
37
37
|
path: string;
|
|
38
|
-
line: number;
|
|
38
|
+
line: number | null;
|
|
39
|
+
originalLine: number | null;
|
|
40
|
+
originalCommitSha: string | null;
|
|
41
|
+
diffHunk: string | null;
|
|
39
42
|
body: string;
|
|
40
43
|
isResolved: boolean;
|
|
41
44
|
hasReply: boolean;
|
|
@@ -58,7 +61,10 @@ export type ReviewComment = {
|
|
|
58
61
|
author: string;
|
|
59
62
|
body: string;
|
|
60
63
|
path: string;
|
|
61
|
-
line: number;
|
|
64
|
+
line: number | null;
|
|
65
|
+
originalLine: number | null;
|
|
66
|
+
originalCommitSha: string | null;
|
|
67
|
+
diffHunk: string | null;
|
|
62
68
|
createdAt: string;
|
|
63
69
|
reviewId: number | null;
|
|
64
70
|
/**
|
|
@@ -340,7 +346,13 @@ export type StackView = {
|
|
|
340
346
|
|
|
341
347
|
export type StackMergeBlocker = {
|
|
342
348
|
number: number;
|
|
343
|
-
reason:
|
|
349
|
+
reason:
|
|
350
|
+
| "draft"
|
|
351
|
+
| "not_mergeable"
|
|
352
|
+
| "mergeability_unknown"
|
|
353
|
+
| "checks_failing"
|
|
354
|
+
| "checks_pending"
|
|
355
|
+
| "checks_none_reported";
|
|
344
356
|
detail: string;
|
|
345
357
|
};
|
|
346
358
|
|