@generacy-ai/workflow-engine 0.2.1 → 0.3.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/actions/builtin/speckit/operations/clarify.d.ts +11 -0
- package/dist/actions/builtin/speckit/operations/clarify.d.ts.map +1 -1
- package/dist/actions/builtin/speckit/operations/clarify.js +81 -11
- package/dist/actions/builtin/speckit/operations/clarify.js.map +1 -1
- package/dist/actions/epic/update-status.d.ts.map +1 -1
- package/dist/actions/epic/update-status.js +2 -0
- package/dist/actions/epic/update-status.js.map +1 -1
- package/dist/actions/github/classify-label-provisioning-error.d.ts +25 -0
- package/dist/actions/github/classify-label-provisioning-error.d.ts.map +1 -0
- package/dist/actions/github/classify-label-provisioning-error.js +30 -0
- package/dist/actions/github/classify-label-provisioning-error.js.map +1 -0
- package/dist/actions/github/client/gh-cli.d.ts +24 -4
- package/dist/actions/github/client/gh-cli.d.ts.map +1 -1
- package/dist/actions/github/client/gh-cli.js +263 -4
- package/dist/actions/github/client/gh-cli.js.map +1 -1
- package/dist/actions/github/client/interface.d.ts +96 -2
- package/dist/actions/github/client/interface.d.ts.map +1 -1
- package/dist/actions/github/label-definitions.d.ts.map +1 -1
- package/dist/actions/github/label-definitions.js +18 -0
- package/dist/actions/github/label-definitions.js.map +1 -1
- package/dist/actions/github/preflight.d.ts.map +1 -1
- package/dist/actions/github/preflight.js +8 -6
- package/dist/actions/github/preflight.js.map +1 -1
- package/dist/actions/github/read-pr-feedback.d.ts.map +1 -1
- package/dist/actions/github/read-pr-feedback.js +40 -10
- package/dist/actions/github/read-pr-feedback.js.map +1 -1
- package/dist/actions/workflow/update-stage.d.ts.map +1 -1
- package/dist/actions/workflow/update-stage.js +2 -0
- package/dist/actions/workflow/update-stage.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/security/comment-trust-config.d.ts +34 -0
- package/dist/security/comment-trust-config.d.ts.map +1 -0
- package/dist/security/comment-trust-config.js +67 -0
- package/dist/security/comment-trust-config.js.map +1 -0
- package/dist/security/comment-trust.d.ts +40 -0
- package/dist/security/comment-trust.d.ts.map +1 -0
- package/dist/security/comment-trust.js +119 -0
- package/dist/security/comment-trust.js.map +1 -0
- package/dist/security/untrusted-data-fence.d.ts +19 -0
- package/dist/security/untrusted-data-fence.d.ts.map +1 -0
- package/dist/security/untrusted-data-fence.js +33 -0
- package/dist/security/untrusted-data-fence.js.map +1 -0
- package/dist/types/github.d.ts +54 -1
- package/dist/types/github.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
import type { ActionContext } from '../../../../types/index.js';
|
|
2
2
|
import type { ClarifyInput, ClarifyOutput } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Fetch issue comments and partition through the author-trust helper.
|
|
5
|
+
* Returns a `<untrusted-data>`-fenced block of trusted comment content
|
|
6
|
+
* suitable for embedding in an agent prompt.
|
|
7
|
+
*
|
|
8
|
+
* Emits one structured info skip-log per skipped comment (FR-010). Never
|
|
9
|
+
* emits comment bodies to logs (SC-003).
|
|
10
|
+
*
|
|
11
|
+
* Exported for direct testability.
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildTrustedIssueCommentsBlock(context: ActionContext, issueNumber: number): Promise<string>;
|
|
3
14
|
/**
|
|
4
15
|
* Execute the clarify operation using agent.invoke delegation
|
|
5
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clarify.d.ts","sourceRoot":"","sources":["../../../../../src/actions/builtin/speckit/operations/clarify.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"clarify.d.ts","sourceRoot":"","sources":["../../../../../src/actions/builtin/speckit/operations/clarify.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAyB,MAAM,aAAa,CAAC;AA2GtF;;;;;;;;;GASG;AACH,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAkEjB;AA+CD;;GAEG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,YAAY,EACnB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,aAAa,CAAC,CA8LxB"}
|
|
@@ -6,6 +6,10 @@ import { join } from 'node:path';
|
|
|
6
6
|
import { executeCommand } from '../../../cli-utils.js';
|
|
7
7
|
import { exists, readFile } from '../lib/fs.js';
|
|
8
8
|
import { StreamBatcher } from '../lib/stream-batcher.js';
|
|
9
|
+
import { createGitHubClient } from '../../../github/client/index.js';
|
|
10
|
+
import { isTrustedCommentAuthor } from '../../../../security/comment-trust.js';
|
|
11
|
+
import { tryLoadCommentTrustConfig } from '../../../../security/comment-trust-config.js';
|
|
12
|
+
import { wrapUntrustedData } from '../../../../security/untrusted-data-fence.js';
|
|
9
13
|
/**
|
|
10
14
|
* Build the prompt for initial clarification question generation
|
|
11
15
|
*/
|
|
@@ -51,10 +55,13 @@ Return the count of questions generated.`;
|
|
|
51
55
|
}
|
|
52
56
|
/**
|
|
53
57
|
* Build the prompt for resuming after developer answers.
|
|
54
|
-
*
|
|
55
|
-
*
|
|
58
|
+
*
|
|
59
|
+
* `trustedCommentsBlock` is the pre-filtered, pre-fenced content of the
|
|
60
|
+
* issue's trusted comments (author-trust gated per #842). The agent no
|
|
61
|
+
* longer runs `gh issue view --comments` itself; that would ingest raw
|
|
62
|
+
* untrusted content into the prompt.
|
|
56
63
|
*/
|
|
57
|
-
function buildResumePrompt(featureDir, specContent, existingClarifications, issueNumber) {
|
|
64
|
+
function buildResumePrompt(featureDir, specContent, existingClarifications, issueNumber, trustedCommentsBlock) {
|
|
58
65
|
return `You are resuming a clarification round for a feature specification.
|
|
59
66
|
Previously, clarification questions were posted to GitHub issue #${issueNumber}.
|
|
60
67
|
The developer has answered the questions and signaled that answers are ready.
|
|
@@ -68,17 +75,19 @@ ${specContent}
|
|
|
68
75
|
Previous clarification questions:
|
|
69
76
|
${existingClarifications}
|
|
70
77
|
|
|
78
|
+
Developer answers (issue #${issueNumber} trusted comments):
|
|
79
|
+
${trustedCommentsBlock}
|
|
80
|
+
|
|
71
81
|
Instructions:
|
|
72
|
-
1.
|
|
73
|
-
2.
|
|
74
|
-
3.
|
|
75
|
-
4.
|
|
76
|
-
5.
|
|
77
|
-
6. If all questions are adequately answered:
|
|
82
|
+
1. Read the existing clarifications.md file
|
|
83
|
+
2. For each question, find the developer's answer in the trusted comments block above and fill in the **Answer** field
|
|
84
|
+
3. Update the clarifications.md file with the consolidated answers
|
|
85
|
+
4. Evaluate whether the answers are sufficient or if follow-up questions are needed
|
|
86
|
+
5. If all questions are adequately answered:
|
|
78
87
|
- Update ## Status to "Resolved"
|
|
79
88
|
- Do NOT add any new questions
|
|
80
89
|
- Return 0 for the count of NEW questions
|
|
81
|
-
|
|
90
|
+
6. If follow-up questions are needed (answers are ambiguous, incomplete, or raise new concerns):
|
|
82
91
|
- Keep the answered questions with their answers
|
|
83
92
|
- Add NEW follow-up questions at the end using the same format (### Q{N+1}: [Topic] etc.)
|
|
84
93
|
- Update ## Status to "Follow-up Required"
|
|
@@ -91,6 +100,64 @@ can proceed.
|
|
|
91
100
|
Write updates to the clarifications file directly.
|
|
92
101
|
Return the count of NEW questions generated (0 if all resolved).`;
|
|
93
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Fetch issue comments and partition through the author-trust helper.
|
|
105
|
+
* Returns a `<untrusted-data>`-fenced block of trusted comment content
|
|
106
|
+
* suitable for embedding in an agent prompt.
|
|
107
|
+
*
|
|
108
|
+
* Emits one structured info skip-log per skipped comment (FR-010). Never
|
|
109
|
+
* emits comment bodies to logs (SC-003).
|
|
110
|
+
*
|
|
111
|
+
* Exported for direct testability.
|
|
112
|
+
*/
|
|
113
|
+
export async function buildTrustedIssueCommentsBlock(context, issueNumber) {
|
|
114
|
+
const workdir = context.workdir;
|
|
115
|
+
const trustConfig = tryLoadCommentTrustConfig(workdir, context.logger);
|
|
116
|
+
const botLogin = process.env['CLUSTER_GITHUB_USERNAME'] ?? process.env['GH_USERNAME'];
|
|
117
|
+
// #910: switched from REST getIssueComments() to GraphQL
|
|
118
|
+
// getIssueCommentsWithViewerAuth() so App-identity clusters' own posts
|
|
119
|
+
// carry the viewerDidAuthor primitive and pass through the trust helper
|
|
120
|
+
// as `self-authored`. Retry once on transient failure; fail closed on
|
|
121
|
+
// second failure (FR-010 — no REST fallback). The final failure lands
|
|
122
|
+
// on the same `(no comments available)` string as before.
|
|
123
|
+
let comments;
|
|
124
|
+
try {
|
|
125
|
+
const client = createGitHubClient(workdir);
|
|
126
|
+
const repoInfo = await client.getRepoInfo();
|
|
127
|
+
try {
|
|
128
|
+
comments = await client.getIssueCommentsWithViewerAuth(repoInfo.owner, repoInfo.repo, issueNumber);
|
|
129
|
+
}
|
|
130
|
+
catch (firstErr) {
|
|
131
|
+
context.logger.warn(`getIssueCommentsWithViewerAuth failed for issue #${issueNumber}; retrying once: ${firstErr instanceof Error ? firstErr.message : String(firstErr)}`);
|
|
132
|
+
comments = await client.getIssueCommentsWithViewerAuth(repoInfo.owner, repoInfo.repo, issueNumber);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
context.logger.warn(`getIssueCommentsWithViewerAuth failed twice for issue #${issueNumber}; failing closed (no REST fallback): ${error instanceof Error ? error.message : String(error)}`);
|
|
137
|
+
return wrapUntrustedData('(no comments available)', `issue #${issueNumber} comments`);
|
|
138
|
+
}
|
|
139
|
+
const trusted = [];
|
|
140
|
+
for (const c of comments) {
|
|
141
|
+
const decision = isTrustedCommentAuthor(c, 'clarify-resume', {
|
|
142
|
+
logger: context.logger,
|
|
143
|
+
...(botLogin ? { botLogin } : {}),
|
|
144
|
+
...(trustConfig ? { config: trustConfig } : {}),
|
|
145
|
+
});
|
|
146
|
+
if (decision.trusted) {
|
|
147
|
+
trusted.push(c);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
context.logger.info(`comment-skipped surface=clarify-resume commentId=${c.id} author=${c.author} authorAssociation=${c.authorAssociation ?? '<unset>'} reason=${decision.reason}`);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
if (trusted.length === 0) {
|
|
154
|
+
return wrapUntrustedData('(no trusted comments)', `issue #${issueNumber} comments`);
|
|
155
|
+
}
|
|
156
|
+
const rendered = trusted
|
|
157
|
+
.map((c) => `<comment id="${c.id}" author="${c.author}" association="${c.authorAssociation ?? 'unknown'}">\n${c.body}\n</comment>`)
|
|
158
|
+
.join('\n\n');
|
|
159
|
+
return wrapUntrustedData(rendered, `issue #${issueNumber} comments`);
|
|
160
|
+
}
|
|
94
161
|
/**
|
|
95
162
|
* Parse questions from clarifications file content
|
|
96
163
|
*/
|
|
@@ -171,7 +238,10 @@ export async function executeClarify(input, context) {
|
|
|
171
238
|
existingClarifications = await readFile(clarificationsFile);
|
|
172
239
|
}
|
|
173
240
|
catch { /* will proceed with empty */ }
|
|
174
|
-
|
|
241
|
+
// Fetch + trust-gate + fence issue comments (#842). The agent no
|
|
242
|
+
// longer runs `gh issue view --comments` itself.
|
|
243
|
+
const trustedCommentsBlock = await buildTrustedIssueCommentsBlock(context, input.issue_number);
|
|
244
|
+
prompt = buildResumePrompt(input.feature_dir, specContent, existingClarifications, input.issue_number, trustedCommentsBlock);
|
|
175
245
|
}
|
|
176
246
|
else {
|
|
177
247
|
prompt = buildClarifyPrompt(input.feature_dir, specContent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clarify.js","sourceRoot":"","sources":["../../../../../src/actions/builtin/speckit/operations/clarify.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"clarify.js","sourceRoot":"","sources":["../../../../../src/actions/builtin/speckit/operations/clarify.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-status.d.ts","sourceRoot":"","sources":["../../../src/actions/epic/update-status.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,cAAc,EAIf,MAAM,sBAAsB,CAAC;AAM9B;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,UAAU;IAChD,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAwB;IAEvD,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO;cAOxB,eAAe,CAC7B,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"update-status.d.ts","sourceRoot":"","sources":["../../../src/actions/epic/update-status.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,cAAc,EAIf,MAAM,sBAAsB,CAAC;AAM9B;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,UAAU;IAChD,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAwB;IAEvD,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO;cAOxB,eAAe,CAC7B,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IA8F1C;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAmC7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAK5B"}
|
|
@@ -40,6 +40,8 @@ export class UpdateStatusAction extends BaseAction {
|
|
|
40
40
|
// Generate status comment
|
|
41
41
|
const commentBody = this.generateStatusComment(epicIssueNumber, status.percentage, status.total_children, status.completed_children, status.in_progress_children, status.blocked_children, status.children);
|
|
42
42
|
// Find existing status comment
|
|
43
|
+
// #842 audit: whitelist — reads only for the `<!-- epic-status -->` marker
|
|
44
|
+
// to dedupe bot's own postings; body content is never surfaced to an agent.
|
|
43
45
|
const comments = await client.getIssueComments(repoInfo.owner, repoInfo.repo, epicIssueNumber);
|
|
44
46
|
const marker = '<!-- epic-status -->';
|
|
45
47
|
const existingComment = comments.find(c => c.body.includes(marker));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-status.js","sourceRoot":"","sources":["../../../src/actions/epic/update-status.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"update-status.js","sourceRoot":"","sources":["../../../src/actions/epic/update-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared classification of label-provisioning errors.
|
|
3
|
+
*
|
|
4
|
+
* Both `LabelManager.ensureRepoLabelsExist` (per-worker per-phase ensure-pass)
|
|
5
|
+
* and `LabelSyncService.syncRepo` (boot-time bulk sync) consume this helper to
|
|
6
|
+
* distinguish a benign create-race (`already exists` / `already_exists`) from a
|
|
7
|
+
* real provisioning failure (422 validation, 401 auth, 403 permission, 5xx).
|
|
8
|
+
*
|
|
9
|
+
* Single home per FR-004 / Q1→A — prevents the two provisioning surfaces from
|
|
10
|
+
* drifting apart (the very bug shape #916 fixes).
|
|
11
|
+
*/
|
|
12
|
+
export type ProvisioningErrorClassification = {
|
|
13
|
+
readonly kind: 'already-exists';
|
|
14
|
+
} | {
|
|
15
|
+
readonly kind: 'error';
|
|
16
|
+
readonly cause: string;
|
|
17
|
+
readonly statusCode?: number;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Classify a caught error from `createLabel` (or an equivalent provisioning
|
|
21
|
+
* call) into a race vs a real failure. Pure function — no I/O, no logging,
|
|
22
|
+
* no throws.
|
|
23
|
+
*/
|
|
24
|
+
export declare function classifyLabelProvisioningError(err: unknown): ProvisioningErrorClassification;
|
|
25
|
+
//# sourceMappingURL=classify-label-provisioning-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify-label-provisioning-error.d.ts","sourceRoot":"","sources":["../../../src/actions/github/classify-label-provisioning-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,+BAA+B,GACvC;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GACnC;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAIN;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,OAAO,GAAG,+BAA+B,CAe5F"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared classification of label-provisioning errors.
|
|
3
|
+
*
|
|
4
|
+
* Both `LabelManager.ensureRepoLabelsExist` (per-worker per-phase ensure-pass)
|
|
5
|
+
* and `LabelSyncService.syncRepo` (boot-time bulk sync) consume this helper to
|
|
6
|
+
* distinguish a benign create-race (`already exists` / `already_exists`) from a
|
|
7
|
+
* real provisioning failure (422 validation, 401 auth, 403 permission, 5xx).
|
|
8
|
+
*
|
|
9
|
+
* Single home per FR-004 / Q1→A — prevents the two provisioning surfaces from
|
|
10
|
+
* drifting apart (the very bug shape #916 fixes).
|
|
11
|
+
*/
|
|
12
|
+
const CREATE_LABEL_PREFIX = /^Failed to create label [^:]+: /;
|
|
13
|
+
/**
|
|
14
|
+
* Classify a caught error from `createLabel` (or an equivalent provisioning
|
|
15
|
+
* call) into a race vs a real failure. Pure function — no I/O, no logging,
|
|
16
|
+
* no throws.
|
|
17
|
+
*/
|
|
18
|
+
export function classifyLabelProvisioningError(err) {
|
|
19
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
20
|
+
if (/already[ _]exists/i.test(message)) {
|
|
21
|
+
return { kind: 'already-exists' };
|
|
22
|
+
}
|
|
23
|
+
const statusMatch = message.match(/HTTP\s+(\d{3})/);
|
|
24
|
+
const statusCode = statusMatch ? Number.parseInt(statusMatch[1], 10) : undefined;
|
|
25
|
+
const cause = message.replace(CREATE_LABEL_PREFIX, '');
|
|
26
|
+
return statusCode !== undefined
|
|
27
|
+
? { kind: 'error', cause, statusCode }
|
|
28
|
+
: { kind: 'error', cause };
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=classify-label-provisioning-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify-label-provisioning-error.js","sourceRoot":"","sources":["../../../src/actions/github/classify-label-provisioning-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,MAAM,mBAAmB,GAAG,iCAAiC,CAAC;AAE9D;;;;GAIG;AACH,MAAM,UAAU,8BAA8B,CAAC,GAAY;IACzD,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAEjE,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAElF,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAEvD,OAAO,UAAU,KAAK,SAAS;QAC7B,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;QACtC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -3,15 +3,16 @@
|
|
|
3
3
|
* Uses the GitHub CLI for all GitHub API operations and git for local operations.
|
|
4
4
|
*/
|
|
5
5
|
import type { GitHubClient, IssueUpdate, PRCreate, PRUpdate, MergeResult, CommitResult, PushResult, GitStatus, LabelDefinition } from './interface.js';
|
|
6
|
-
import type { Issue, PullRequest, Comment, Label, RepoInfo } from '../../../types/github.js';
|
|
6
|
+
import type { Issue, PullRequest, Comment, Label, RepoInfo, ReviewThread } from '../../../types/github.js';
|
|
7
7
|
/**
|
|
8
|
-
* Thrown by `executeGh()` when the gh CLI's stderr signals HTTP 401.
|
|
8
|
+
* Thrown by `executeGh()` when the gh CLI's stderr signals HTTP 401 or 403.
|
|
9
9
|
* Callers (label/PR-feedback monitors) catch this to drive auth-health state.
|
|
10
|
+
* See #861 for the 403 widening (GraphQL scope-denial paths).
|
|
10
11
|
*/
|
|
11
12
|
export declare class GhAuthError extends Error {
|
|
12
|
-
readonly statusCode: 401;
|
|
13
|
+
readonly statusCode: 401 | 403;
|
|
13
14
|
readonly stderr: string;
|
|
14
|
-
constructor(statusCode: 401, stderr: string, message?: string);
|
|
15
|
+
constructor(statusCode: 401 | 403, stderr: string, message?: string);
|
|
15
16
|
}
|
|
16
17
|
/**
|
|
17
18
|
* Extract the first HTTP status code from gh CLI stderr.
|
|
@@ -44,18 +45,24 @@ export declare class GhCliGitHubClient implements GitHubClient {
|
|
|
44
45
|
private executeGh;
|
|
45
46
|
getRepoInfo(): Promise<RepoInfo>;
|
|
46
47
|
getIssue(owner: string, repo: string, number: number): Promise<Issue>;
|
|
48
|
+
getIssueLabels(owner: string, repo: string, number: number): Promise<string[]>;
|
|
47
49
|
listIssuesWithLabel(owner: string, repo: string, label: string): Promise<Issue[]>;
|
|
48
50
|
updateIssue(owner: string, repo: string, number: number, data: IssueUpdate): Promise<void>;
|
|
49
51
|
addIssueComment(owner: string, repo: string, number: number, body: string): Promise<Comment>;
|
|
50
52
|
getIssueComments(owner: string, repo: string, number: number): Promise<Comment[]>;
|
|
53
|
+
getIssueCommentsWithViewerAuth(owner: string, repo: string, number: number): Promise<Comment[]>;
|
|
51
54
|
updateComment(owner: string, repo: string, commentId: number, body: string): Promise<void>;
|
|
52
55
|
createPullRequest(owner: string, repo: string, data: PRCreate): Promise<PullRequest>;
|
|
53
56
|
getPullRequest(owner: string, repo: string, number: number): Promise<PullRequest>;
|
|
54
57
|
updatePullRequest(owner: string, repo: string, number: number, data: PRUpdate): Promise<void>;
|
|
55
58
|
markPRReady(owner: string, repo: string, number: number): Promise<void>;
|
|
56
59
|
getPRComments(owner: string, repo: string, number: number): Promise<Comment[]>;
|
|
60
|
+
getPRReviewThreads(owner: string, repo: string, number: number): Promise<ReviewThread[]>;
|
|
57
61
|
replyToPRComment(owner: string, repo: string, number: number, commentId: number, body: string): Promise<Comment>;
|
|
62
|
+
resolveReviewThread(threadId: string): Promise<void>;
|
|
58
63
|
listOpenPullRequests(owner: string, repo: string): Promise<PullRequest[]>;
|
|
64
|
+
listPrCommentBodies(owner: string, repo: string, prNumber: number): Promise<string[]>;
|
|
65
|
+
postPrComment(owner: string, repo: string, prNumber: number, body: string): Promise<void>;
|
|
59
66
|
findPRForBranch(owner: string, repo: string, branch: string): Promise<PullRequest | null>;
|
|
60
67
|
addLabels(owner: string, repo: string, number: number, labels: string[]): Promise<void>;
|
|
61
68
|
removeLabels(owner: string, repo: string, number: number, labels: string[]): Promise<void>;
|
|
@@ -86,6 +93,19 @@ export declare class GhCliGitHubClient implements GitHubClient {
|
|
|
86
93
|
sha: string;
|
|
87
94
|
message: string;
|
|
88
95
|
}[]>;
|
|
96
|
+
getFilesChangedBetween(base: string, head: string): Promise<string[]>;
|
|
97
|
+
/**
|
|
98
|
+
* Fetch the head commit SHA for a branch/ref (#892).
|
|
99
|
+
* Uses `gh api repos/{o}/{r}/commits/{ref} --jq .sha` and validates that the
|
|
100
|
+
* response is a 40-char lower-case hex SHA. Non-conforming output → throw.
|
|
101
|
+
* 401 → `GhAuthError` via `executeGh` (existing #762 path).
|
|
102
|
+
*/
|
|
103
|
+
getRefHeadSha(owner: string, repo: string, ref: string): Promise<string>;
|
|
104
|
+
/**
|
|
105
|
+
* List file names touched by a PR (`gh pr diff --name-only`, #892).
|
|
106
|
+
* Non-zero exit → throw with stderr for visibility.
|
|
107
|
+
*/
|
|
108
|
+
prDiffNames(ownerRepo: string, prNumber: number): Promise<string[]>;
|
|
89
109
|
listBranches(owner: string, repo: string): Promise<string[]>;
|
|
90
110
|
createPR(owner: string, repo: string, data: PRCreate): Promise<PullRequest>;
|
|
91
111
|
updatePR(owner: string, repo: string, number: number, data: PRUpdate): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gh-cli.d.ts","sourceRoot":"","sources":["../../../../src/actions/github/client/gh-cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,UAAU,EACV,SAAS,EACT,eAAe,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,KAAK,EACL,WAAW,EACX,OAAO,EACP,KAAK,EACL,QAAQ,
|
|
1
|
+
{"version":3,"file":"gh-cli.d.ts","sourceRoot":"","sources":["../../../../src/actions/github/client/gh-cli.ts"],"names":[],"mappings":"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"}
|