@ghx-dev/core 0.2.0 → 0.2.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/.claude-plugin/plugin.json +2 -2
- package/README.md +44 -37
- package/dist/cards/issue.assignees.add.yaml +1 -0
- package/dist/cards/issue.assignees.remove.yaml +1 -0
- package/dist/cards/issue.assignees.set.yaml +1 -0
- package/dist/cards/issue.close.yaml +1 -0
- package/dist/cards/issue.comments.create.yaml +1 -0
- package/dist/cards/issue.comments.list.yaml +1 -0
- package/dist/cards/issue.create.yaml +1 -0
- package/dist/cards/issue.delete.yaml +1 -0
- package/dist/cards/issue.labels.add.yaml +1 -0
- package/dist/cards/issue.labels.remove.yaml +1 -0
- package/dist/cards/issue.labels.set.yaml +1 -0
- package/dist/cards/issue.list.yaml +1 -0
- package/dist/cards/issue.milestone.clear.yaml +1 -0
- package/dist/cards/issue.milestone.set.yaml +1 -0
- package/dist/cards/issue.relations.blocked_by.add.yaml +1 -0
- package/dist/cards/issue.relations.blocked_by.remove.yaml +1 -0
- package/dist/cards/issue.relations.parent.remove.yaml +1 -0
- package/dist/cards/issue.relations.parent.set.yaml +1 -0
- package/dist/cards/issue.relations.prs.list.yaml +1 -0
- package/dist/cards/issue.relations.view.yaml +1 -0
- package/dist/cards/issue.reopen.yaml +1 -0
- package/dist/cards/issue.update.yaml +1 -0
- package/dist/cards/issue.view.yaml +1 -0
- package/dist/cards/pr.assignees.add.yaml +6 -2
- package/dist/cards/pr.assignees.remove.yaml +6 -2
- package/dist/cards/pr.branch.update.yaml +6 -2
- package/dist/cards/pr.create.yaml +7 -3
- package/dist/cards/pr.diff.files.yaml +1 -0
- package/dist/cards/pr.list.yaml +1 -0
- package/dist/cards/pr.merge.status.yaml +1 -0
- package/dist/cards/pr.merge.yaml +9 -3
- package/dist/cards/pr.reviews.list.yaml +1 -0
- package/dist/cards/pr.reviews.request.yaml +6 -3
- package/dist/cards/pr.reviews.submit.yaml +1 -0
- package/dist/cards/pr.threads.list.yaml +1 -0
- package/dist/cards/pr.threads.reply.yaml +1 -0
- package/dist/cards/pr.threads.resolve.yaml +1 -0
- package/dist/cards/pr.threads.unresolve.yaml +1 -0
- package/dist/cards/pr.update.yaml +7 -2
- package/dist/cards/pr.view.yaml +1 -0
- package/dist/cards/project_v2.fields.list.yaml +18 -2
- package/dist/cards/project_v2.items.field.update.yaml +8 -5
- package/dist/cards/project_v2.items.issue.add.yaml +9 -5
- package/dist/cards/project_v2.items.issue.remove.yaml +8 -5
- package/dist/cards/project_v2.items.list.yaml +8 -2
- package/dist/cards/project_v2.org.view.yaml +6 -2
- package/dist/cards/project_v2.user.view.yaml +6 -2
- package/dist/cards/release.list.yaml +8 -3
- package/dist/cards/release.view.yaml +8 -4
- package/dist/cards/repo.issue_types.list.yaml +7 -3
- package/dist/cards/repo.labels.list.yaml +7 -2
- package/dist/cards/repo.view.yaml +1 -0
- package/dist/chunk-7HUKYNI2.js +536 -0
- package/dist/chunk-7HUKYNI2.js.map +1 -0
- package/dist/chunk-GQO6BHJV.js +98 -0
- package/dist/chunk-GQO6BHJV.js.map +1 -0
- package/dist/chunk-H7CLZHRO.js +280 -0
- package/dist/chunk-H7CLZHRO.js.map +1 -0
- package/dist/{chunk-3P3KHWFU.js → chunk-M5PJLKL5.js} +1079 -726
- package/dist/chunk-M5PJLKL5.js.map +1 -0
- package/dist/chunk-NQ53ETYV.js +128 -0
- package/dist/chunk-NQ53ETYV.js.map +1 -0
- package/dist/{chunk-BIWBJA2F.js → chunk-OQWLEFAH.js} +220 -12
- package/dist/chunk-OQWLEFAH.js.map +1 -0
- package/dist/{chunk-Q7RCIK2C.js → chunk-Q2NW7DJE.js} +167 -62
- package/dist/chunk-Q2NW7DJE.js.map +1 -0
- package/dist/{pr-queries-UOEOXIJQ.js → chunk-QRHKAMRY.js} +11 -131
- package/dist/chunk-QRHKAMRY.js.map +1 -0
- package/dist/{issue-queries-GRA4MKPD.js → chunk-TGL33GEA.js} +7 -83
- package/dist/chunk-TGL33GEA.js.map +1 -0
- package/dist/chunk-ZGBVX2VG.js +32 -0
- package/dist/chunk-ZGBVX2VG.js.map +1 -0
- package/dist/cli/index.js +79 -14
- package/dist/cli/index.js.map +1 -1
- package/dist/core/registry/cards/issue.assignees.add.yaml +1 -0
- package/dist/core/registry/cards/issue.assignees.remove.yaml +1 -0
- package/dist/core/registry/cards/issue.assignees.set.yaml +1 -0
- package/dist/core/registry/cards/issue.close.yaml +1 -0
- package/dist/core/registry/cards/issue.comments.create.yaml +1 -0
- package/dist/core/registry/cards/issue.comments.list.yaml +1 -0
- package/dist/core/registry/cards/issue.create.yaml +1 -0
- package/dist/core/registry/cards/issue.delete.yaml +1 -0
- package/dist/core/registry/cards/issue.labels.add.yaml +1 -0
- package/dist/core/registry/cards/issue.labels.remove.yaml +1 -0
- package/dist/core/registry/cards/issue.labels.set.yaml +1 -0
- package/dist/core/registry/cards/issue.list.yaml +1 -0
- package/dist/core/registry/cards/issue.milestone.clear.yaml +1 -0
- package/dist/core/registry/cards/issue.milestone.set.yaml +1 -0
- package/dist/core/registry/cards/issue.relations.blocked_by.add.yaml +1 -0
- package/dist/core/registry/cards/issue.relations.blocked_by.remove.yaml +1 -0
- package/dist/core/registry/cards/issue.relations.parent.remove.yaml +1 -0
- package/dist/core/registry/cards/issue.relations.parent.set.yaml +1 -0
- package/dist/core/registry/cards/issue.relations.prs.list.yaml +1 -0
- package/dist/core/registry/cards/issue.relations.view.yaml +1 -0
- package/dist/core/registry/cards/issue.reopen.yaml +1 -0
- package/dist/core/registry/cards/issue.update.yaml +1 -0
- package/dist/core/registry/cards/issue.view.yaml +1 -0
- package/dist/core/registry/cards/pr.assignees.add.yaml +6 -2
- package/dist/core/registry/cards/pr.assignees.remove.yaml +6 -2
- package/dist/core/registry/cards/pr.branch.update.yaml +6 -2
- package/dist/core/registry/cards/pr.create.yaml +7 -3
- package/dist/core/registry/cards/pr.diff.files.yaml +1 -0
- package/dist/core/registry/cards/pr.list.yaml +1 -0
- package/dist/core/registry/cards/pr.merge.status.yaml +1 -0
- package/dist/core/registry/cards/pr.merge.yaml +9 -3
- package/dist/core/registry/cards/pr.reviews.list.yaml +1 -0
- package/dist/core/registry/cards/pr.reviews.request.yaml +6 -3
- package/dist/core/registry/cards/pr.reviews.submit.yaml +1 -0
- package/dist/core/registry/cards/pr.threads.list.yaml +1 -0
- package/dist/core/registry/cards/pr.threads.reply.yaml +1 -0
- package/dist/core/registry/cards/pr.threads.resolve.yaml +1 -0
- package/dist/core/registry/cards/pr.threads.unresolve.yaml +1 -0
- package/dist/core/registry/cards/pr.update.yaml +7 -2
- package/dist/core/registry/cards/pr.view.yaml +1 -0
- package/dist/core/registry/cards/project_v2.fields.list.yaml +18 -2
- package/dist/core/registry/cards/project_v2.items.field.update.yaml +8 -5
- package/dist/core/registry/cards/project_v2.items.issue.add.yaml +9 -5
- package/dist/core/registry/cards/project_v2.items.issue.remove.yaml +8 -5
- package/dist/core/registry/cards/project_v2.items.list.yaml +8 -2
- package/dist/core/registry/cards/project_v2.org.view.yaml +6 -2
- package/dist/core/registry/cards/project_v2.user.view.yaml +6 -2
- package/dist/core/registry/cards/release.list.yaml +8 -3
- package/dist/core/registry/cards/release.view.yaml +8 -4
- package/dist/core/registry/cards/repo.issue_types.list.yaml +7 -3
- package/dist/core/registry/cards/repo.labels.list.yaml +7 -2
- package/dist/core/registry/cards/repo.view.yaml +1 -0
- package/dist/index.d.ts +297 -0
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/{issue-mutations-FJNZW7L5.js → issue-mutations-OW464JP3.js} +97 -120
- package/dist/issue-mutations-OW464JP3.js.map +1 -0
- package/dist/issue-queries-ORG3VPK4.js +93 -0
- package/dist/issue-queries-ORG3VPK4.js.map +1 -0
- package/dist/{pr-mutations-UG67YOF5.js → pr-mutations-WOTG6FAB.js} +234 -94
- package/dist/pr-mutations-WOTG6FAB.js.map +1 -0
- package/dist/pr-queries-6CJJW7BT.js +143 -0
- package/dist/pr-queries-6CJJW7BT.js.map +1 -0
- package/dist/project-QFSCYDDW.js +429 -0
- package/dist/project-QFSCYDDW.js.map +1 -0
- package/dist/release-33236BBA.js +57 -0
- package/dist/release-33236BBA.js.map +1 -0
- package/dist/repo-M6DKCWBG.js +82 -0
- package/dist/repo-M6DKCWBG.js.map +1 -0
- package/package.json +6 -6
- package/skills/using-ghx/SKILL.md +76 -10
- package/dist/chunk-3P3KHWFU.js.map +0 -1
- package/dist/chunk-BIWBJA2F.js.map +0 -1
- package/dist/chunk-Q7RCIK2C.js.map +0 -1
- package/dist/chunk-TDABI6C7.js +0 -167
- package/dist/chunk-TDABI6C7.js.map +0 -1
- package/dist/issue-mutations-FJNZW7L5.js.map +0 -1
- package/dist/issue-queries-GRA4MKPD.js.map +0 -1
- package/dist/pr-mutations-UG67YOF5.js.map +0 -1
- package/dist/pr-queries-UOEOXIJQ.js.map +0 -1
- package/dist/repo-JDUHFPZF.js +0 -66
- package/dist/repo-JDUHFPZF.js.map +0 -1
|
@@ -1,86 +1,40 @@
|
|
|
1
1
|
import {
|
|
2
|
-
getSdk,
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
getSdk as getSdk2,
|
|
3
|
+
getSdk10 as getSdk11,
|
|
4
|
+
getSdk11 as getSdk12,
|
|
5
|
+
getSdk12 as getSdk13,
|
|
6
|
+
getSdk13 as getSdk14,
|
|
7
|
+
getSdk14 as getSdk15,
|
|
8
|
+
getSdk2 as getSdk3,
|
|
9
|
+
getSdk3 as getSdk4,
|
|
10
|
+
getSdk4 as getSdk5,
|
|
11
|
+
getSdk5 as getSdk6,
|
|
12
|
+
getSdk6 as getSdk7,
|
|
13
|
+
getSdk7 as getSdk8,
|
|
14
|
+
getSdk8 as getSdk9,
|
|
15
|
+
getSdk9 as getSdk10
|
|
16
|
+
} from "./chunk-7HUKYNI2.js";
|
|
8
17
|
import {
|
|
9
|
-
|
|
10
|
-
} from "./chunk-
|
|
18
|
+
getSdk
|
|
19
|
+
} from "./chunk-ZGBVX2VG.js";
|
|
20
|
+
import "./chunk-R3CBGJZX.js";
|
|
11
21
|
import {
|
|
12
22
|
asRecord,
|
|
23
|
+
assertPrAssigneesInput,
|
|
24
|
+
assertPrBranchUpdateInput,
|
|
13
25
|
assertPrCommentsListInput,
|
|
26
|
+
assertPrCreateInput,
|
|
27
|
+
assertPrMergeInput,
|
|
28
|
+
assertPrReviewSubmitInput,
|
|
29
|
+
assertPrReviewsRequestInput,
|
|
30
|
+
assertPrUpdateInput,
|
|
14
31
|
assertReplyToReviewThreadInput,
|
|
15
32
|
assertReviewThreadInput
|
|
16
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-OQWLEFAH.js";
|
|
17
34
|
import {
|
|
18
35
|
createGraphqlRequestClient
|
|
19
36
|
} from "./chunk-HEHONZTO.js";
|
|
20
37
|
|
|
21
|
-
// src/gql/operations/pr-comments-list.generated.ts
|
|
22
|
-
var PrCommentsListDocument = `
|
|
23
|
-
query PrCommentsList($owner: String!, $name: String!, $prNumber: Int!, $first: Int!, $after: String) {
|
|
24
|
-
repository(owner: $owner, name: $name) {
|
|
25
|
-
pullRequest(number: $prNumber) {
|
|
26
|
-
reviewThreads(first: $first, after: $after) {
|
|
27
|
-
edges {
|
|
28
|
-
cursor
|
|
29
|
-
node {
|
|
30
|
-
id
|
|
31
|
-
path
|
|
32
|
-
line
|
|
33
|
-
startLine
|
|
34
|
-
diffSide
|
|
35
|
-
subjectType
|
|
36
|
-
isResolved
|
|
37
|
-
isOutdated
|
|
38
|
-
viewerCanReply
|
|
39
|
-
viewerCanResolve
|
|
40
|
-
viewerCanUnresolve
|
|
41
|
-
resolvedBy {
|
|
42
|
-
login
|
|
43
|
-
}
|
|
44
|
-
comments(first: 20) {
|
|
45
|
-
nodes {
|
|
46
|
-
id
|
|
47
|
-
body
|
|
48
|
-
createdAt
|
|
49
|
-
url
|
|
50
|
-
author {
|
|
51
|
-
login
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
pageInfo {
|
|
58
|
-
...PageInfoFields
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
${PageInfoFieldsFragmentDoc}`;
|
|
65
|
-
var defaultWrapper = (action, _operationName, _operationType, _variables) => action();
|
|
66
|
-
function getSdk6(client, withWrapper = defaultWrapper) {
|
|
67
|
-
return {
|
|
68
|
-
PrCommentsList(variables, requestHeaders, signal) {
|
|
69
|
-
return withWrapper(
|
|
70
|
-
(wrappedRequestHeaders) => client.request({
|
|
71
|
-
document: PrCommentsListDocument,
|
|
72
|
-
variables,
|
|
73
|
-
requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },
|
|
74
|
-
signal
|
|
75
|
-
}),
|
|
76
|
-
"PrCommentsList",
|
|
77
|
-
"query",
|
|
78
|
-
variables
|
|
79
|
-
);
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
|
|
84
38
|
// src/gql/operations/review-thread-state.generated.ts
|
|
85
39
|
var ReviewThreadStateDocument = `
|
|
86
40
|
query ReviewThreadState($threadId: ID!) {
|
|
@@ -92,8 +46,8 @@ var ReviewThreadStateDocument = `
|
|
|
92
46
|
}
|
|
93
47
|
}
|
|
94
48
|
`;
|
|
95
|
-
var
|
|
96
|
-
function
|
|
49
|
+
var defaultWrapper = (action, _operationName, _operationType, _variables) => action();
|
|
50
|
+
function getSdk16(client, withWrapper = defaultWrapper) {
|
|
97
51
|
return {
|
|
98
52
|
ReviewThreadState(variables, requestHeaders, signal) {
|
|
99
53
|
return withWrapper(
|
|
@@ -113,6 +67,12 @@ function getSdk7(client, withWrapper = defaultWrapper2) {
|
|
|
113
67
|
|
|
114
68
|
// src/gql/domains/pr-mutations.ts
|
|
115
69
|
var MAX_PR_REVIEW_THREAD_SCAN_PAGES = 5;
|
|
70
|
+
async function fetchPrNodeId(client, owner, name, prNumber) {
|
|
71
|
+
const result = await getSdk11(client).PrNodeId({ owner, name, prNumber });
|
|
72
|
+
const id = result.repository?.pullRequest?.id;
|
|
73
|
+
if (!id) throw new Error(`Pull request #${prNumber} not found in ${owner}/${name}`);
|
|
74
|
+
return id;
|
|
75
|
+
}
|
|
116
76
|
function normalizePrReviewThreadComment(comment) {
|
|
117
77
|
const commentRecord = asRecord(comment);
|
|
118
78
|
if (!commentRecord || typeof commentRecord.id !== "string") {
|
|
@@ -156,7 +116,7 @@ async function runPrCommentsList(transport, input) {
|
|
|
156
116
|
assertPrCommentsListInput(input);
|
|
157
117
|
const unresolvedOnly = input.unresolvedOnly ?? true;
|
|
158
118
|
const includeOutdated = input.includeOutdated ?? true;
|
|
159
|
-
const sdk =
|
|
119
|
+
const sdk = getSdk8(createGraphqlRequestClient(transport));
|
|
160
120
|
const filteredThreads = [];
|
|
161
121
|
let sourceEndCursor = input.after ?? null;
|
|
162
122
|
let sourceHasNextPage = false;
|
|
@@ -198,7 +158,7 @@ async function runPrCommentsList(transport, input) {
|
|
|
198
158
|
if (unresolvedOnly && normalized.isResolved) {
|
|
199
159
|
continue;
|
|
200
160
|
}
|
|
201
|
-
if (
|
|
161
|
+
if (!includeOutdated && normalized.isOutdated) {
|
|
202
162
|
continue;
|
|
203
163
|
}
|
|
204
164
|
filteredThreads.push({ thread: normalized, cursor: threadNode.cursor });
|
|
@@ -245,7 +205,7 @@ function parseReviewThreadMutationResult(result, mutationKey) {
|
|
|
245
205
|
async function runReplyToReviewThread(transport, input) {
|
|
246
206
|
assertReplyToReviewThreadInput(input);
|
|
247
207
|
const client = createGraphqlRequestClient(transport);
|
|
248
|
-
const replyResult = await
|
|
208
|
+
const replyResult = await getSdk5(client).PrCommentReply({
|
|
249
209
|
threadId: input.threadId,
|
|
250
210
|
body: input.body
|
|
251
211
|
});
|
|
@@ -254,7 +214,7 @@ async function runReplyToReviewThread(transport, input) {
|
|
|
254
214
|
if (!comment || typeof comment.id !== "string") {
|
|
255
215
|
throw new Error("Review thread mutation failed");
|
|
256
216
|
}
|
|
257
|
-
const threadStateResult = await
|
|
217
|
+
const threadStateResult = await getSdk16(client).ReviewThreadState({
|
|
258
218
|
threadId: input.threadId
|
|
259
219
|
});
|
|
260
220
|
const threadNode = asRecord(threadStateResult.node);
|
|
@@ -270,7 +230,7 @@ async function runReplyToReviewThread(transport, input) {
|
|
|
270
230
|
}
|
|
271
231
|
async function runResolveReviewThread(transport, input) {
|
|
272
232
|
assertReviewThreadInput(input);
|
|
273
|
-
const result = await
|
|
233
|
+
const result = await getSdk6(
|
|
274
234
|
createGraphqlRequestClient(transport)
|
|
275
235
|
).PrCommentResolve({
|
|
276
236
|
threadId: input.threadId
|
|
@@ -279,28 +239,17 @@ async function runResolveReviewThread(transport, input) {
|
|
|
279
239
|
}
|
|
280
240
|
async function runUnresolveReviewThread(transport, input) {
|
|
281
241
|
assertReviewThreadInput(input);
|
|
282
|
-
const result = await
|
|
242
|
+
const result = await getSdk7(
|
|
283
243
|
createGraphqlRequestClient(transport)
|
|
284
244
|
).PrCommentUnresolve({
|
|
285
245
|
threadId: input.threadId
|
|
286
246
|
});
|
|
287
247
|
return parseReviewThreadMutationResult(result, "unresolveReviewThread");
|
|
288
248
|
}
|
|
289
|
-
function assertPrReviewSubmitInput(input) {
|
|
290
|
-
if (input.owner.trim().length === 0 || input.name.trim().length === 0) {
|
|
291
|
-
throw new Error("Repository owner and name are required");
|
|
292
|
-
}
|
|
293
|
-
if (!Number.isInteger(input.prNumber) || input.prNumber <= 0) {
|
|
294
|
-
throw new Error("PR number must be a positive integer");
|
|
295
|
-
}
|
|
296
|
-
if (!input.event || typeof input.event !== "string") {
|
|
297
|
-
throw new Error("Review event is required");
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
249
|
async function runSubmitPrReview(transport, input) {
|
|
301
250
|
assertPrReviewSubmitInput(input);
|
|
302
251
|
const client = createGraphqlRequestClient(transport);
|
|
303
|
-
const prIdResult = await
|
|
252
|
+
const prIdResult = await getSdk11(client).PrNodeId({
|
|
304
253
|
owner: input.owner,
|
|
305
254
|
name: input.name,
|
|
306
255
|
prNumber: input.prNumber
|
|
@@ -317,7 +266,7 @@ async function runSubmitPrReview(transport, input) {
|
|
|
317
266
|
...comment.startLine ? { startLine: comment.startLine } : {},
|
|
318
267
|
...comment.startSide ? { startSide: comment.startSide } : {}
|
|
319
268
|
})) : [];
|
|
320
|
-
const result = await
|
|
269
|
+
const result = await getSdk12(client).PrReviewSubmit({
|
|
321
270
|
pullRequestId,
|
|
322
271
|
event: input.event,
|
|
323
272
|
...input.body === void 0 ? {} : { body: input.body },
|
|
@@ -334,11 +283,202 @@ async function runSubmitPrReview(transport, input) {
|
|
|
334
283
|
body: typeof review.body === "string" ? review.body : null
|
|
335
284
|
};
|
|
336
285
|
}
|
|
286
|
+
async function runPrCreate(transport, input) {
|
|
287
|
+
assertPrCreateInput(input);
|
|
288
|
+
const client = createGraphqlRequestClient(transport);
|
|
289
|
+
const repoResult = await getSdk(client).IssueCreateRepositoryId({
|
|
290
|
+
owner: input.owner,
|
|
291
|
+
name: input.name
|
|
292
|
+
});
|
|
293
|
+
const repositoryId = repoResult.repository?.id;
|
|
294
|
+
if (!repositoryId) {
|
|
295
|
+
throw new Error(`Repository ${input.owner}/${input.name} not found`);
|
|
296
|
+
}
|
|
297
|
+
const result = await getSdk9(client).PrCreate({
|
|
298
|
+
repositoryId,
|
|
299
|
+
baseRefName: input.baseRefName,
|
|
300
|
+
headRefName: input.headRefName,
|
|
301
|
+
title: input.title,
|
|
302
|
+
...input.body !== void 0 ? { body: input.body } : {},
|
|
303
|
+
...input.draft !== void 0 ? { draft: input.draft } : {}
|
|
304
|
+
});
|
|
305
|
+
const pr = result.createPullRequest?.pullRequest;
|
|
306
|
+
if (!pr) {
|
|
307
|
+
throw new Error("Failed to create pull request");
|
|
308
|
+
}
|
|
309
|
+
return {
|
|
310
|
+
number: pr.number,
|
|
311
|
+
url: String(pr.url),
|
|
312
|
+
title: pr.title,
|
|
313
|
+
state: String(pr.state),
|
|
314
|
+
draft: pr.isDraft
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
async function runPrUpdate(transport, input) {
|
|
318
|
+
assertPrUpdateInput(input);
|
|
319
|
+
if (input.draft !== void 0) {
|
|
320
|
+
throw new Error("draft update operation not available via GraphQL route");
|
|
321
|
+
}
|
|
322
|
+
const client = createGraphqlRequestClient(transport);
|
|
323
|
+
const pullRequestId = await fetchPrNodeId(client, input.owner, input.name, input.prNumber);
|
|
324
|
+
const result = await getSdk14(client).PrUpdate({
|
|
325
|
+
pullRequestId,
|
|
326
|
+
...input.title !== void 0 ? { title: input.title } : {},
|
|
327
|
+
...input.body !== void 0 ? { body: input.body } : {}
|
|
328
|
+
});
|
|
329
|
+
const pr = result.updatePullRequest?.pullRequest;
|
|
330
|
+
if (!pr) {
|
|
331
|
+
throw new Error("Failed to update pull request");
|
|
332
|
+
}
|
|
333
|
+
return {
|
|
334
|
+
number: pr.number,
|
|
335
|
+
url: String(pr.url),
|
|
336
|
+
title: pr.title,
|
|
337
|
+
state: String(pr.state),
|
|
338
|
+
draft: pr.isDraft
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
async function runPrMerge(transport, input) {
|
|
342
|
+
assertPrMergeInput(input);
|
|
343
|
+
if (input.deleteBranch === true) {
|
|
344
|
+
throw new Error(
|
|
345
|
+
"deleteBranch operation not available via GraphQL mergePullRequest mutation; use the CLI route to delete the branch after merging"
|
|
346
|
+
);
|
|
347
|
+
}
|
|
348
|
+
const client = createGraphqlRequestClient(transport);
|
|
349
|
+
const pullRequestId = await fetchPrNodeId(client, input.owner, input.name, input.prNumber);
|
|
350
|
+
const result = await getSdk10(client).PrMerge({
|
|
351
|
+
pullRequestId,
|
|
352
|
+
...input.mergeMethod !== void 0 ? { mergeMethod: input.mergeMethod } : {}
|
|
353
|
+
});
|
|
354
|
+
const pr = result.mergePullRequest?.pullRequest;
|
|
355
|
+
if (!pr) {
|
|
356
|
+
throw new Error("Failed to merge pull request");
|
|
357
|
+
}
|
|
358
|
+
return {
|
|
359
|
+
prNumber: input.prNumber,
|
|
360
|
+
// method echoes the input mergeMethod rather than reading from the GQL response,
|
|
361
|
+
// since GitHub's mergePullRequest mutation does not return the merge method used.
|
|
362
|
+
// isMethodAssumed is true when the caller did not specify a merge method; the
|
|
363
|
+
// returned value of "merge" is an assumption, not confirmed by GitHub.
|
|
364
|
+
method: input.mergeMethod?.toLowerCase() ?? "merge",
|
|
365
|
+
isMethodAssumed: input.mergeMethod === void 0,
|
|
366
|
+
// Note: GitHub GraphQL API does not expose merge queue state; queued is always false
|
|
367
|
+
queued: false,
|
|
368
|
+
deleteBranch: input.deleteBranch ?? false
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
async function runPrBranchUpdate(transport, input) {
|
|
372
|
+
assertPrBranchUpdateInput(input);
|
|
373
|
+
const client = createGraphqlRequestClient(transport);
|
|
374
|
+
const pullRequestId = await fetchPrNodeId(client, input.owner, input.name, input.prNumber);
|
|
375
|
+
const result = await getSdk4(client).PrBranchUpdate({
|
|
376
|
+
pullRequestId,
|
|
377
|
+
...input.updateMethod !== void 0 ? { updateMethod: input.updateMethod } : {}
|
|
378
|
+
});
|
|
379
|
+
const pr = result.updatePullRequestBranch?.pullRequest;
|
|
380
|
+
if (!pr) {
|
|
381
|
+
throw new Error("Failed to update pull request branch");
|
|
382
|
+
}
|
|
383
|
+
return {
|
|
384
|
+
prNumber: input.prNumber,
|
|
385
|
+
updated: true
|
|
386
|
+
};
|
|
387
|
+
}
|
|
388
|
+
async function resolveUserNodeIds(client, logins) {
|
|
389
|
+
const results = await Promise.all(
|
|
390
|
+
logins.map((login) => getSdk15(client).UserNodeId({ login }))
|
|
391
|
+
);
|
|
392
|
+
return logins.map((login, i) => {
|
|
393
|
+
const id = results[i]?.user?.id;
|
|
394
|
+
if (!id) throw new Error(`Could not resolve user: ${login}`);
|
|
395
|
+
return id;
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
async function runPrAssigneesAdd(transport, input) {
|
|
399
|
+
assertPrAssigneesInput(input);
|
|
400
|
+
const client = createGraphqlRequestClient(transport);
|
|
401
|
+
const pullRequestId = await fetchPrNodeId(client, input.owner, input.name, input.prNumber);
|
|
402
|
+
const userIds = await resolveUserNodeIds(client, input.assignees);
|
|
403
|
+
const result = await getSdk2(client).PrAssigneesAdd({
|
|
404
|
+
assignableId: pullRequestId,
|
|
405
|
+
assigneeIds: userIds
|
|
406
|
+
});
|
|
407
|
+
const assignable = result.addAssigneesToAssignable?.assignable;
|
|
408
|
+
const prAssignable = assignable?.__typename === "PullRequest" ? assignable : null;
|
|
409
|
+
if (!prAssignable) {
|
|
410
|
+
throw new Error("Failed to add assignees to pull request");
|
|
411
|
+
}
|
|
412
|
+
const confirmedLogins = (prAssignable.assignees.nodes ?? []).filter((node) => node !== null).map((node) => node.login);
|
|
413
|
+
return {
|
|
414
|
+
prNumber: input.prNumber,
|
|
415
|
+
added: confirmedLogins
|
|
416
|
+
};
|
|
417
|
+
}
|
|
418
|
+
async function runPrAssigneesRemove(transport, input) {
|
|
419
|
+
assertPrAssigneesInput(input);
|
|
420
|
+
const client = createGraphqlRequestClient(transport);
|
|
421
|
+
const pullRequestId = await fetchPrNodeId(client, input.owner, input.name, input.prNumber);
|
|
422
|
+
const userIds = await resolveUserNodeIds(client, input.assignees);
|
|
423
|
+
const result = await getSdk3(client).PrAssigneesRemove({
|
|
424
|
+
assignableId: pullRequestId,
|
|
425
|
+
assigneeIds: userIds
|
|
426
|
+
});
|
|
427
|
+
const assignable = result.removeAssigneesFromAssignable?.assignable;
|
|
428
|
+
const prAssignable = assignable?.__typename === "PullRequest" ? assignable : null;
|
|
429
|
+
if (!prAssignable) {
|
|
430
|
+
throw new Error("Failed to remove assignees from pull request");
|
|
431
|
+
}
|
|
432
|
+
const remainingLogins = (prAssignable.assignees.nodes ?? []).filter((node) => node !== null).map((node) => node.login);
|
|
433
|
+
const removed = input.assignees.filter((login) => !remainingLogins.includes(login));
|
|
434
|
+
return {
|
|
435
|
+
prNumber: input.prNumber,
|
|
436
|
+
removed
|
|
437
|
+
};
|
|
438
|
+
}
|
|
439
|
+
async function runPrReviewsRequest(transport, input) {
|
|
440
|
+
assertPrReviewsRequestInput(input);
|
|
441
|
+
const client = createGraphqlRequestClient(transport);
|
|
442
|
+
const pullRequestId = await fetchPrNodeId(client, input.owner, input.name, input.prNumber);
|
|
443
|
+
const reviewerUserIds = await resolveUserNodeIds(client, input.reviewers);
|
|
444
|
+
const result = await getSdk13(client).PrReviewsRequest({
|
|
445
|
+
pullRequestId,
|
|
446
|
+
userIds: reviewerUserIds,
|
|
447
|
+
reviewRequestsFirst: Math.min(Math.max(reviewerUserIds.length, 1), 100)
|
|
448
|
+
});
|
|
449
|
+
const pr = result.requestReviews?.pullRequest;
|
|
450
|
+
if (!pr) {
|
|
451
|
+
throw new Error("Failed to request pull request reviews");
|
|
452
|
+
}
|
|
453
|
+
const reviewRequests = (pr.reviewRequests?.nodes ?? []).flatMap((node) => {
|
|
454
|
+
if (!node) return [];
|
|
455
|
+
const reviewer = node.requestedReviewer;
|
|
456
|
+
if (reviewer?.__typename === "User" && "login" in reviewer) {
|
|
457
|
+
return [reviewer.login];
|
|
458
|
+
}
|
|
459
|
+
if (reviewer?.__typename === "Team" && "slug" in reviewer) {
|
|
460
|
+
return [reviewer.slug];
|
|
461
|
+
}
|
|
462
|
+
return [];
|
|
463
|
+
});
|
|
464
|
+
return {
|
|
465
|
+
prNumber: input.prNumber,
|
|
466
|
+
reviewers: reviewRequests,
|
|
467
|
+
updated: true
|
|
468
|
+
};
|
|
469
|
+
}
|
|
337
470
|
export {
|
|
471
|
+
runPrAssigneesAdd,
|
|
472
|
+
runPrAssigneesRemove,
|
|
473
|
+
runPrBranchUpdate,
|
|
338
474
|
runPrCommentsList,
|
|
475
|
+
runPrCreate,
|
|
476
|
+
runPrMerge,
|
|
477
|
+
runPrReviewsRequest,
|
|
478
|
+
runPrUpdate,
|
|
339
479
|
runReplyToReviewThread,
|
|
340
480
|
runResolveReviewThread,
|
|
341
481
|
runSubmitPrReview,
|
|
342
482
|
runUnresolveReviewThread
|
|
343
483
|
};
|
|
344
|
-
//# sourceMappingURL=pr-mutations-
|
|
484
|
+
//# sourceMappingURL=pr-mutations-WOTG6FAB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/gql/operations/review-thread-state.generated.ts","../src/gql/domains/pr-mutations.ts"],"sourcesContent":["import type { GraphQLClient, RequestOptions } from \"graphql-request\"\nimport type * as Types from \"./base-types.js\"\n\ntype GraphQLClientRequestHeaders = RequestOptions[\"requestHeaders\"]\nexport type ReviewThreadStateQueryVariables = Types.Exact<{\n threadId: Types.Scalars[\"ID\"][\"input\"]\n}>\n\nexport type ReviewThreadStateQuery = {\n __typename?: \"Query\"\n node?:\n | { __typename?: \"AddedToMergeQueueEvent\" }\n | { __typename?: \"AddedToProjectEvent\" }\n | { __typename?: \"AddedToProjectV2Event\" }\n | { __typename?: \"App\" }\n | { __typename?: \"AssignedEvent\" }\n | { __typename?: \"AutoMergeDisabledEvent\" }\n | { __typename?: \"AutoMergeEnabledEvent\" }\n | { __typename?: \"AutoRebaseEnabledEvent\" }\n | { __typename?: \"AutoSquashEnabledEvent\" }\n | { __typename?: \"AutomaticBaseChangeFailedEvent\" }\n | { __typename?: \"AutomaticBaseChangeSucceededEvent\" }\n | { __typename?: \"BaseRefChangedEvent\" }\n | { __typename?: \"BaseRefDeletedEvent\" }\n | { __typename?: \"BaseRefForcePushedEvent\" }\n | { __typename?: \"Blob\" }\n | { __typename?: \"BlockedByAddedEvent\" }\n | { __typename?: \"BlockedByRemovedEvent\" }\n | { __typename?: \"BlockingAddedEvent\" }\n | { __typename?: \"BlockingRemovedEvent\" }\n | { __typename?: \"Bot\" }\n | { __typename?: \"BranchProtectionRule\" }\n | { __typename?: \"BypassForcePushAllowance\" }\n | { __typename?: \"BypassPullRequestAllowance\" }\n | { __typename?: \"CWE\" }\n | { __typename?: \"CheckRun\" }\n | { __typename?: \"CheckSuite\" }\n | { __typename?: \"ClosedEvent\" }\n | { __typename?: \"CodeOfConduct\" }\n | { __typename?: \"CommentDeletedEvent\" }\n | { __typename?: \"Commit\" }\n | { __typename?: \"CommitComment\" }\n | { __typename?: \"CommitCommentThread\" }\n | { __typename?: \"Comparison\" }\n | { __typename?: \"ConnectedEvent\" }\n | { __typename?: \"ConvertToDraftEvent\" }\n | { __typename?: \"ConvertedFromDraftEvent\" }\n | { __typename?: \"ConvertedNoteToIssueEvent\" }\n | { __typename?: \"ConvertedToDiscussionEvent\" }\n | { __typename?: \"CrossReferencedEvent\" }\n | { __typename?: \"DemilestonedEvent\" }\n | { __typename?: \"DependencyGraphManifest\" }\n | { __typename?: \"DeployKey\" }\n | { __typename?: \"DeployedEvent\" }\n | { __typename?: \"Deployment\" }\n | { __typename?: \"DeploymentEnvironmentChangedEvent\" }\n | { __typename?: \"DeploymentReview\" }\n | { __typename?: \"DeploymentStatus\" }\n | { __typename?: \"DisconnectedEvent\" }\n | { __typename?: \"Discussion\" }\n | { __typename?: \"DiscussionCategory\" }\n | { __typename?: \"DiscussionComment\" }\n | { __typename?: \"DiscussionPoll\" }\n | { __typename?: \"DiscussionPollOption\" }\n | { __typename?: \"DraftIssue\" }\n | { __typename?: \"Enterprise\" }\n | { __typename?: \"EnterpriseAdministratorInvitation\" }\n | { __typename?: \"EnterpriseIdentityProvider\" }\n | { __typename?: \"EnterpriseMemberInvitation\" }\n | { __typename?: \"EnterpriseRepositoryInfo\" }\n | { __typename?: \"EnterpriseServerInstallation\" }\n | { __typename?: \"EnterpriseServerUserAccount\" }\n | { __typename?: \"EnterpriseServerUserAccountEmail\" }\n | { __typename?: \"EnterpriseServerUserAccountsUpload\" }\n | { __typename?: \"EnterpriseUserAccount\" }\n | { __typename?: \"Environment\" }\n | { __typename?: \"ExternalIdentity\" }\n | { __typename?: \"Gist\" }\n | { __typename?: \"GistComment\" }\n | { __typename?: \"HeadRefDeletedEvent\" }\n | { __typename?: \"HeadRefForcePushedEvent\" }\n | { __typename?: \"HeadRefRestoredEvent\" }\n | { __typename?: \"IpAllowListEntry\" }\n | { __typename?: \"Issue\" }\n | { __typename?: \"IssueComment\" }\n | { __typename?: \"IssueType\" }\n | { __typename?: \"IssueTypeAddedEvent\" }\n | { __typename?: \"IssueTypeChangedEvent\" }\n | { __typename?: \"IssueTypeRemovedEvent\" }\n | { __typename?: \"Label\" }\n | { __typename?: \"LabeledEvent\" }\n | { __typename?: \"Language\" }\n | { __typename?: \"License\" }\n | { __typename?: \"LinkedBranch\" }\n | { __typename?: \"LockedEvent\" }\n | { __typename?: \"Mannequin\" }\n | { __typename?: \"MarkedAsDuplicateEvent\" }\n | { __typename?: \"MarketplaceCategory\" }\n | { __typename?: \"MarketplaceListing\" }\n | { __typename?: \"MemberFeatureRequestNotification\" }\n | { __typename?: \"MembersCanDeleteReposClearAuditEntry\" }\n | { __typename?: \"MembersCanDeleteReposDisableAuditEntry\" }\n | { __typename?: \"MembersCanDeleteReposEnableAuditEntry\" }\n | { __typename?: \"MentionedEvent\" }\n | { __typename?: \"MergeQueue\" }\n | { __typename?: \"MergeQueueEntry\" }\n | { __typename?: \"MergedEvent\" }\n | { __typename?: \"MigrationSource\" }\n | { __typename?: \"Milestone\" }\n | { __typename?: \"MilestonedEvent\" }\n | { __typename?: \"MovedColumnsInProjectEvent\" }\n | { __typename?: \"OIDCProvider\" }\n | { __typename?: \"OauthApplicationCreateAuditEntry\" }\n | { __typename?: \"OrgAddBillingManagerAuditEntry\" }\n | { __typename?: \"OrgAddMemberAuditEntry\" }\n | { __typename?: \"OrgBlockUserAuditEntry\" }\n | { __typename?: \"OrgConfigDisableCollaboratorsOnlyAuditEntry\" }\n | { __typename?: \"OrgConfigEnableCollaboratorsOnlyAuditEntry\" }\n | { __typename?: \"OrgCreateAuditEntry\" }\n | { __typename?: \"OrgDisableOauthAppRestrictionsAuditEntry\" }\n | { __typename?: \"OrgDisableSamlAuditEntry\" }\n | { __typename?: \"OrgDisableTwoFactorRequirementAuditEntry\" }\n | { __typename?: \"OrgEnableOauthAppRestrictionsAuditEntry\" }\n | { __typename?: \"OrgEnableSamlAuditEntry\" }\n | { __typename?: \"OrgEnableTwoFactorRequirementAuditEntry\" }\n | { __typename?: \"OrgInviteMemberAuditEntry\" }\n | { __typename?: \"OrgInviteToBusinessAuditEntry\" }\n | { __typename?: \"OrgOauthAppAccessApprovedAuditEntry\" }\n | { __typename?: \"OrgOauthAppAccessBlockedAuditEntry\" }\n | { __typename?: \"OrgOauthAppAccessDeniedAuditEntry\" }\n | { __typename?: \"OrgOauthAppAccessRequestedAuditEntry\" }\n | { __typename?: \"OrgOauthAppAccessUnblockedAuditEntry\" }\n | { __typename?: \"OrgRemoveBillingManagerAuditEntry\" }\n | { __typename?: \"OrgRemoveMemberAuditEntry\" }\n | { __typename?: \"OrgRemoveOutsideCollaboratorAuditEntry\" }\n | { __typename?: \"OrgRestoreMemberAuditEntry\" }\n | { __typename?: \"OrgUnblockUserAuditEntry\" }\n | { __typename?: \"OrgUpdateDefaultRepositoryPermissionAuditEntry\" }\n | { __typename?: \"OrgUpdateMemberAuditEntry\" }\n | { __typename?: \"OrgUpdateMemberRepositoryCreationPermissionAuditEntry\" }\n | { __typename?: \"OrgUpdateMemberRepositoryInvitationPermissionAuditEntry\" }\n | { __typename?: \"Organization\" }\n | { __typename?: \"OrganizationIdentityProvider\" }\n | { __typename?: \"OrganizationInvitation\" }\n | { __typename?: \"OrganizationMigration\" }\n | { __typename?: \"Package\" }\n | { __typename?: \"PackageFile\" }\n | { __typename?: \"PackageTag\" }\n | { __typename?: \"PackageVersion\" }\n | { __typename?: \"ParentIssueAddedEvent\" }\n | { __typename?: \"ParentIssueRemovedEvent\" }\n | { __typename?: \"PinnedDiscussion\" }\n | { __typename?: \"PinnedEnvironment\" }\n | { __typename?: \"PinnedEvent\" }\n | { __typename?: \"PinnedIssue\" }\n | { __typename?: \"PrivateRepositoryForkingDisableAuditEntry\" }\n | { __typename?: \"PrivateRepositoryForkingEnableAuditEntry\" }\n | { __typename?: \"Project\" }\n | { __typename?: \"ProjectCard\" }\n | { __typename?: \"ProjectColumn\" }\n | { __typename?: \"ProjectV2\" }\n | { __typename?: \"ProjectV2Field\" }\n | { __typename?: \"ProjectV2Item\" }\n | { __typename?: \"ProjectV2ItemFieldDateValue\" }\n | { __typename?: \"ProjectV2ItemFieldIterationValue\" }\n | { __typename?: \"ProjectV2ItemFieldNumberValue\" }\n | { __typename?: \"ProjectV2ItemFieldSingleSelectValue\" }\n | { __typename?: \"ProjectV2ItemFieldTextValue\" }\n | { __typename?: \"ProjectV2ItemStatusChangedEvent\" }\n | { __typename?: \"ProjectV2IterationField\" }\n | { __typename?: \"ProjectV2SingleSelectField\" }\n | { __typename?: \"ProjectV2StatusUpdate\" }\n | { __typename?: \"ProjectV2View\" }\n | { __typename?: \"ProjectV2Workflow\" }\n | { __typename?: \"PublicKey\" }\n | { __typename?: \"PullRequest\" }\n | { __typename?: \"PullRequestCommit\" }\n | { __typename?: \"PullRequestCommitCommentThread\" }\n | { __typename?: \"PullRequestReview\" }\n | { __typename?: \"PullRequestReviewComment\" }\n | { __typename?: \"PullRequestReviewThread\"; id: string; isResolved: boolean }\n | { __typename?: \"PullRequestThread\" }\n | { __typename?: \"Push\" }\n | { __typename?: \"PushAllowance\" }\n | { __typename?: \"Query\" }\n | { __typename?: \"Reaction\" }\n | { __typename?: \"ReadyForReviewEvent\" }\n | { __typename?: \"Ref\" }\n | { __typename?: \"ReferencedEvent\" }\n | { __typename?: \"Release\" }\n | { __typename?: \"ReleaseAsset\" }\n | { __typename?: \"RemovedFromMergeQueueEvent\" }\n | { __typename?: \"RemovedFromProjectEvent\" }\n | { __typename?: \"RemovedFromProjectV2Event\" }\n | { __typename?: \"RenamedTitleEvent\" }\n | { __typename?: \"ReopenedEvent\" }\n | { __typename?: \"RepoAccessAuditEntry\" }\n | { __typename?: \"RepoAddMemberAuditEntry\" }\n | { __typename?: \"RepoAddTopicAuditEntry\" }\n | { __typename?: \"RepoArchivedAuditEntry\" }\n | { __typename?: \"RepoChangeMergeSettingAuditEntry\" }\n | { __typename?: \"RepoConfigDisableAnonymousGitAccessAuditEntry\" }\n | { __typename?: \"RepoConfigDisableCollaboratorsOnlyAuditEntry\" }\n | { __typename?: \"RepoConfigDisableContributorsOnlyAuditEntry\" }\n | { __typename?: \"RepoConfigDisableSockpuppetDisallowedAuditEntry\" }\n | { __typename?: \"RepoConfigEnableAnonymousGitAccessAuditEntry\" }\n | { __typename?: \"RepoConfigEnableCollaboratorsOnlyAuditEntry\" }\n | { __typename?: \"RepoConfigEnableContributorsOnlyAuditEntry\" }\n | { __typename?: \"RepoConfigEnableSockpuppetDisallowedAuditEntry\" }\n | { __typename?: \"RepoConfigLockAnonymousGitAccessAuditEntry\" }\n | { __typename?: \"RepoConfigUnlockAnonymousGitAccessAuditEntry\" }\n | { __typename?: \"RepoCreateAuditEntry\" }\n | { __typename?: \"RepoDestroyAuditEntry\" }\n | { __typename?: \"RepoRemoveMemberAuditEntry\" }\n | { __typename?: \"RepoRemoveTopicAuditEntry\" }\n | { __typename?: \"Repository\" }\n | { __typename?: \"RepositoryCustomProperty\" }\n | { __typename?: \"RepositoryInvitation\" }\n | { __typename?: \"RepositoryMigration\" }\n | { __typename?: \"RepositoryRule\" }\n | { __typename?: \"RepositoryRuleset\" }\n | { __typename?: \"RepositoryRulesetBypassActor\" }\n | { __typename?: \"RepositoryTopic\" }\n | { __typename?: \"RepositoryVisibilityChangeDisableAuditEntry\" }\n | { __typename?: \"RepositoryVisibilityChangeEnableAuditEntry\" }\n | { __typename?: \"RepositoryVulnerabilityAlert\" }\n | { __typename?: \"ReviewDismissalAllowance\" }\n | { __typename?: \"ReviewDismissedEvent\" }\n | { __typename?: \"ReviewRequest\" }\n | { __typename?: \"ReviewRequestRemovedEvent\" }\n | { __typename?: \"ReviewRequestedEvent\" }\n | { __typename?: \"SavedReply\" }\n | { __typename?: \"SecurityAdvisory\" }\n | { __typename?: \"SponsorsActivity\" }\n | { __typename?: \"SponsorsListing\" }\n | { __typename?: \"SponsorsListingFeaturedItem\" }\n | { __typename?: \"SponsorsTier\" }\n | { __typename?: \"Sponsorship\" }\n | { __typename?: \"SponsorshipNewsletter\" }\n | { __typename?: \"Status\" }\n | { __typename?: \"StatusCheckRollup\" }\n | { __typename?: \"StatusContext\" }\n | { __typename?: \"SubIssueAddedEvent\" }\n | { __typename?: \"SubIssueRemovedEvent\" }\n | { __typename?: \"SubscribedEvent\" }\n | { __typename?: \"Tag\" }\n | { __typename?: \"Team\" }\n | { __typename?: \"TeamAddMemberAuditEntry\" }\n | { __typename?: \"TeamAddRepositoryAuditEntry\" }\n | { __typename?: \"TeamChangeParentTeamAuditEntry\" }\n | { __typename?: \"TeamRemoveMemberAuditEntry\" }\n | { __typename?: \"TeamRemoveRepositoryAuditEntry\" }\n | { __typename?: \"Topic\" }\n | { __typename?: \"TransferredEvent\" }\n | { __typename?: \"Tree\" }\n | { __typename?: \"UnassignedEvent\" }\n | { __typename?: \"UnlabeledEvent\" }\n | { __typename?: \"UnlockedEvent\" }\n | { __typename?: \"UnmarkedAsDuplicateEvent\" }\n | { __typename?: \"UnpinnedEvent\" }\n | { __typename?: \"UnsubscribedEvent\" }\n | { __typename?: \"User\" }\n | { __typename?: \"UserBlockedEvent\" }\n | { __typename?: \"UserContentEdit\" }\n | { __typename?: \"UserList\" }\n | { __typename?: \"UserNamespaceRepository\" }\n | { __typename?: \"UserStatus\" }\n | { __typename?: \"VerifiableDomain\" }\n | { __typename?: \"Workflow\" }\n | { __typename?: \"WorkflowRun\" }\n | { __typename?: \"WorkflowRunFile\" }\n | null\n}\n\nexport const ReviewThreadStateDocument = `\n query ReviewThreadState($threadId: ID!) {\n node(id: $threadId) {\n ... on PullRequestReviewThread {\n id\n isResolved\n }\n }\n}\n `\n\nexport type SdkFunctionWrapper = <T>(\n action: (requestHeaders?: Record<string, string>) => Promise<T>,\n operationName: string,\n operationType?: string,\n variables?: any,\n) => Promise<T>\n\nconst defaultWrapper: SdkFunctionWrapper = (action, _operationName, _operationType, _variables) =>\n action()\n\nexport function getSdk(client: GraphQLClient, withWrapper: SdkFunctionWrapper = defaultWrapper) {\n return {\n ReviewThreadState(\n variables: ReviewThreadStateQueryVariables,\n requestHeaders?: GraphQLClientRequestHeaders,\n signal?: RequestInit[\"signal\"],\n ): Promise<ReviewThreadStateQuery> {\n return withWrapper(\n (wrappedRequestHeaders) =>\n client.request<ReviewThreadStateQuery>({\n document: ReviewThreadStateDocument,\n variables,\n requestHeaders: { ...requestHeaders, ...wrappedRequestHeaders },\n signal,\n }),\n \"ReviewThreadState\",\n \"query\",\n variables,\n )\n },\n }\n}\nexport type Sdk = ReturnType<typeof getSdk>\n","import type { GraphQLClient } from \"graphql-request\"\nimport {\n asRecord,\n assertPrAssigneesInput,\n assertPrBranchUpdateInput,\n assertPrCommentsListInput,\n assertPrCreateInput,\n assertPrMergeInput,\n assertPrReviewSubmitInput,\n assertPrReviewsRequestInput,\n assertPrUpdateInput,\n assertReplyToReviewThreadInput,\n assertReviewThreadInput,\n} from \"../assertions.js\"\nimport type * as Types from \"../operations/base-types.js\"\nimport { getSdk as getIssueCreateRepositoryIdSdk } from \"../operations/issue-create-repository-id.generated.js\"\nimport { getSdk as getPrAssigneesAddSdk } from \"../operations/pr-assignees-add.generated.js\"\nimport { getSdk as getPrAssigneesRemoveSdk } from \"../operations/pr-assignees-remove.generated.js\"\nimport { getSdk as getPrBranchUpdateSdk } from \"../operations/pr-branch-update.generated.js\"\nimport { getSdk as getPrCommentReplySdk } from \"../operations/pr-comment-reply.generated.js\"\nimport { getSdk as getPrCommentResolveSdk } from \"../operations/pr-comment-resolve.generated.js\"\nimport { getSdk as getPrCommentUnresolveSdk } from \"../operations/pr-comment-unresolve.generated.js\"\nimport { getSdk as getPrCommentsListSdk } from \"../operations/pr-comments-list.generated.js\"\nimport { getSdk as getPrCreateSdk } from \"../operations/pr-create.generated.js\"\nimport { getSdk as getPrMergeSdk } from \"../operations/pr-merge.generated.js\"\nimport { getSdk as getPrNodeIdSdk } from \"../operations/pr-node-id.generated.js\"\nimport {\n getSdk as getPrReviewSubmitSdk,\n type PrReviewSubmitMutationVariables,\n} from \"../operations/pr-review-submit.generated.js\"\nimport { getSdk as getPrReviewsRequestSdk } from \"../operations/pr-reviews-request.generated.js\"\nimport { getSdk as getPrUpdateSdk } from \"../operations/pr-update.generated.js\"\nimport { getSdk as getReviewThreadStateSdk } from \"../operations/review-thread-state.generated.js\"\nimport { getSdk as getUserNodeIdSdk } from \"../operations/user-node-id.generated.js\"\nimport type { GraphqlTransport } from \"../transport.js\"\nimport { createGraphqlRequestClient } from \"../transport.js\"\nimport type {\n DraftComment,\n PrAssigneesAddData,\n PrAssigneesAddInput,\n PrAssigneesRemoveData,\n PrAssigneesRemoveInput,\n PrBranchUpdateData,\n PrBranchUpdateInput,\n PrCommentsListData,\n PrCommentsListInput,\n PrCreateData,\n PrCreateInput,\n PrMergeData,\n PrMergeInput,\n PrReviewSubmitData,\n PrReviewSubmitInput,\n PrReviewsRequestData,\n PrReviewsRequestInput,\n PrReviewThreadCommentData,\n PrReviewThreadData,\n PrUpdateData,\n PrUpdateInput,\n ReplyToReviewThreadData,\n ReplyToReviewThreadInput,\n ReviewThreadMutationData,\n ReviewThreadMutationInput,\n} from \"../types.js\"\n\nconst MAX_PR_REVIEW_THREAD_SCAN_PAGES = 5\n\nasync function fetchPrNodeId(\n client: GraphQLClient,\n owner: string,\n name: string,\n prNumber: number,\n): Promise<string> {\n const result = await getPrNodeIdSdk(client).PrNodeId({ owner, name, prNumber })\n const id = result.repository?.pullRequest?.id\n if (!id) throw new Error(`Pull request #${prNumber} not found in ${owner}/${name}`)\n return id\n}\n\nfunction normalizePrReviewThreadComment(comment: unknown): PrReviewThreadCommentData | null {\n const commentRecord = asRecord(comment)\n if (!commentRecord || typeof commentRecord.id !== \"string\") {\n return null\n }\n\n const author = asRecord(commentRecord.author)\n const url = commentRecord.url\n\n return {\n id: commentRecord.id,\n authorLogin: typeof author?.login === \"string\" ? author.login : null,\n body: typeof commentRecord.body === \"string\" ? commentRecord.body : \"\",\n createdAt: typeof commentRecord.createdAt === \"string\" ? commentRecord.createdAt : \"\",\n url: typeof url === \"string\" ? url : String(url ?? \"\"),\n }\n}\n\nfunction normalizePrReviewThread(thread: unknown): PrReviewThreadData | null {\n const threadRecord = asRecord(thread)\n if (!threadRecord || typeof threadRecord.id !== \"string\") {\n return null\n }\n\n const comments = asRecord(threadRecord.comments)\n const commentNodes = Array.isArray(comments?.nodes) ? comments.nodes : []\n const resolvedBy = asRecord(threadRecord.resolvedBy)\n\n return {\n id: threadRecord.id,\n path: typeof threadRecord.path === \"string\" ? threadRecord.path : null,\n line: typeof threadRecord.line === \"number\" ? threadRecord.line : null,\n startLine: typeof threadRecord.startLine === \"number\" ? threadRecord.startLine : null,\n diffSide: typeof threadRecord.diffSide === \"string\" ? threadRecord.diffSide : null,\n subjectType: typeof threadRecord.subjectType === \"string\" ? threadRecord.subjectType : null,\n isResolved: Boolean(threadRecord.isResolved),\n isOutdated: Boolean(threadRecord.isOutdated),\n viewerCanReply: Boolean(threadRecord.viewerCanReply),\n viewerCanResolve: Boolean(threadRecord.viewerCanResolve),\n viewerCanUnresolve: Boolean(threadRecord.viewerCanUnresolve),\n resolvedByLogin: typeof resolvedBy?.login === \"string\" ? resolvedBy.login : null,\n comments: commentNodes\n .map((comment) => normalizePrReviewThreadComment(comment))\n .flatMap((comment) => (comment ? [comment] : [])),\n }\n}\n\nexport async function runPrCommentsList(\n transport: GraphqlTransport,\n input: PrCommentsListInput,\n): Promise<PrCommentsListData> {\n assertPrCommentsListInput(input)\n\n const unresolvedOnly = input.unresolvedOnly ?? true\n const includeOutdated = input.includeOutdated ?? true\n\n const sdk = getPrCommentsListSdk(createGraphqlRequestClient(transport))\n\n const filteredThreads: Array<{ thread: PrReviewThreadData; cursor: string | null }> = []\n let sourceEndCursor: string | null = input.after ?? null\n let sourceHasNextPage = false\n let pagesScanned = 0\n let sourceItemsScanned = 0\n\n while (pagesScanned < MAX_PR_REVIEW_THREAD_SCAN_PAGES && filteredThreads.length < input.first) {\n const result = await sdk.PrCommentsList({\n owner: input.owner,\n name: input.name,\n prNumber: input.prNumber,\n first: input.first,\n after: sourceEndCursor,\n })\n\n const repository = asRecord(result.repository)\n const pullRequest = asRecord(repository?.pullRequest)\n const reviewThreads = asRecord(pullRequest?.reviewThreads)\n if (!reviewThreads) {\n throw new Error(\"Pull request review threads not found\")\n }\n\n const pageInfo = asRecord(reviewThreads.pageInfo)\n const threadEdges = Array.isArray(reviewThreads.edges)\n ? reviewThreads.edges\n .map((edge) => {\n const edgeRecord = asRecord(edge)\n if (!edgeRecord) {\n return null\n }\n\n return {\n cursor: typeof edgeRecord.cursor === \"string\" ? edgeRecord.cursor : null,\n node: edgeRecord.node,\n }\n })\n .flatMap((edge) => (edge ? [edge] : []))\n : []\n\n const threadNodes =\n threadEdges.length > 0\n ? threadEdges\n : Array.isArray(reviewThreads.nodes)\n ? reviewThreads.nodes.map((node) => ({ cursor: null, node }))\n : []\n\n pagesScanned += 1\n sourceItemsScanned += threadNodes.length\n\n for (const threadNode of threadNodes) {\n const normalized = normalizePrReviewThread(threadNode.node)\n if (!normalized) {\n continue\n }\n\n if (unresolvedOnly && normalized.isResolved) {\n continue\n }\n\n if (!includeOutdated && normalized.isOutdated) {\n continue\n }\n\n filteredThreads.push({ thread: normalized, cursor: threadNode.cursor })\n }\n\n sourceHasNextPage = Boolean(pageInfo?.hasNextPage)\n sourceEndCursor = typeof pageInfo?.endCursor === \"string\" ? pageInfo.endCursor : null\n\n if (!sourceHasNextPage) {\n break\n }\n }\n\n const hasBufferedFilteredItems = filteredThreads.length > input.first\n const returnedThreads = filteredThreads.slice(0, input.first)\n const endCursor =\n returnedThreads.length > 0\n ? (returnedThreads[returnedThreads.length - 1]?.cursor ?? sourceEndCursor)\n : sourceEndCursor\n const scanTruncated = sourceHasNextPage && pagesScanned >= MAX_PR_REVIEW_THREAD_SCAN_PAGES\n\n return {\n items: returnedThreads.map((entry) => entry.thread),\n pageInfo: {\n hasNextPage: hasBufferedFilteredItems || sourceHasNextPage,\n endCursor: hasBufferedFilteredItems || sourceHasNextPage ? endCursor : null,\n },\n filterApplied: {\n unresolvedOnly,\n includeOutdated,\n },\n scan: {\n pagesScanned,\n sourceItemsScanned,\n scanTruncated,\n },\n }\n}\n\nfunction parseReviewThreadMutationResult(\n result: unknown,\n mutationKey: string,\n): ReviewThreadMutationData {\n const root = asRecord(result)\n const mutation = asRecord(root?.[mutationKey])\n const thread = asRecord(mutation?.thread)\n if (!thread || typeof thread.id !== \"string\") {\n throw new Error(\"Review thread mutation failed\")\n }\n\n return {\n id: thread.id,\n isResolved: Boolean(thread.isResolved),\n }\n}\n\nexport async function runReplyToReviewThread(\n transport: GraphqlTransport,\n input: ReplyToReviewThreadInput,\n): Promise<ReplyToReviewThreadData> {\n assertReplyToReviewThreadInput(input)\n\n const client = createGraphqlRequestClient(transport)\n const replyResult = await getPrCommentReplySdk(client).PrCommentReply({\n threadId: input.threadId,\n body: input.body,\n })\n const mutation = asRecord(replyResult.addPullRequestReviewThreadReply)\n const comment = asRecord(mutation?.comment)\n if (!comment || typeof comment.id !== \"string\") {\n throw new Error(\"Review thread mutation failed\")\n }\n\n const threadStateResult = await getReviewThreadStateSdk(client).ReviewThreadState({\n threadId: input.threadId,\n })\n const threadNode = asRecord(threadStateResult.node)\n if (!threadNode || typeof threadNode.id !== \"string\") {\n throw new Error(\"Review thread state lookup failed\")\n }\n\n return {\n id: input.threadId,\n isResolved: Boolean(threadNode.isResolved),\n commentId: comment.id,\n commentUrl: typeof comment.url === \"string\" ? comment.url : \"\",\n }\n}\n\nexport async function runResolveReviewThread(\n transport: GraphqlTransport,\n input: ReviewThreadMutationInput,\n): Promise<ReviewThreadMutationData> {\n assertReviewThreadInput(input)\n\n const result = await getPrCommentResolveSdk(\n createGraphqlRequestClient(transport),\n ).PrCommentResolve({\n threadId: input.threadId,\n })\n return parseReviewThreadMutationResult(result, \"resolveReviewThread\")\n}\n\nexport async function runUnresolveReviewThread(\n transport: GraphqlTransport,\n input: ReviewThreadMutationInput,\n): Promise<ReviewThreadMutationData> {\n assertReviewThreadInput(input)\n\n const result = await getPrCommentUnresolveSdk(\n createGraphqlRequestClient(transport),\n ).PrCommentUnresolve({\n threadId: input.threadId,\n })\n return parseReviewThreadMutationResult(result, \"unresolveReviewThread\")\n}\n\nexport async function runSubmitPrReview(\n transport: GraphqlTransport,\n input: PrReviewSubmitInput,\n): Promise<PrReviewSubmitData> {\n assertPrReviewSubmitInput(input)\n\n const client = createGraphqlRequestClient(transport)\n const prIdResult = await getPrNodeIdSdk(client).PrNodeId({\n owner: input.owner,\n name: input.name,\n prNumber: input.prNumber,\n })\n\n const pullRequestId = prIdResult.repository?.pullRequest?.id\n if (!pullRequestId) {\n throw new Error(\"Failed to retrieve pull request ID\")\n }\n\n const threads = input.comments\n ? input.comments.map((comment: DraftComment) => ({\n path: comment.path,\n body: comment.body,\n line: comment.line,\n ...(comment.side ? { side: comment.side } : {}),\n ...(comment.startLine ? { startLine: comment.startLine } : {}),\n ...(comment.startSide ? { startSide: comment.startSide } : {}),\n }))\n : []\n\n const result = await getPrReviewSubmitSdk(client).PrReviewSubmit({\n pullRequestId,\n event: input.event as PrReviewSubmitMutationVariables[\"event\"],\n ...(input.body === undefined ? {} : { body: input.body }),\n ...(threads.length === 0 ? {} : { threads }),\n })\n\n const review = asRecord(asRecord(result.addPullRequestReview)?.pullRequestReview)\n if (!review || typeof review.id !== \"string\") {\n throw new Error(\"Failed to parse pull request review response\")\n }\n\n return {\n id: review.id,\n state: typeof review.state === \"string\" ? review.state : \"\",\n url: typeof review.url === \"string\" ? review.url : \"\",\n body: typeof review.body === \"string\" ? review.body : null,\n }\n}\n\nexport async function runPrCreate(\n transport: GraphqlTransport,\n input: PrCreateInput,\n): Promise<PrCreateData> {\n assertPrCreateInput(input)\n const client = createGraphqlRequestClient(transport)\n\n const repoResult = await getIssueCreateRepositoryIdSdk(client).IssueCreateRepositoryId({\n owner: input.owner,\n name: input.name,\n })\n\n const repositoryId = repoResult.repository?.id\n if (!repositoryId) {\n throw new Error(`Repository ${input.owner}/${input.name} not found`)\n }\n\n const result = await getPrCreateSdk(client).PrCreate({\n repositoryId,\n baseRefName: input.baseRefName,\n headRefName: input.headRefName,\n title: input.title,\n ...(input.body !== undefined ? { body: input.body } : {}),\n ...(input.draft !== undefined ? { draft: input.draft } : {}),\n })\n\n const pr = result.createPullRequest?.pullRequest\n if (!pr) {\n throw new Error(\"Failed to create pull request\")\n }\n\n return {\n number: pr.number,\n url: String(pr.url),\n title: pr.title,\n state: String(pr.state),\n draft: pr.isDraft,\n }\n}\n\nexport async function runPrUpdate(\n transport: GraphqlTransport,\n input: PrUpdateInput,\n): Promise<PrUpdateData> {\n assertPrUpdateInput(input)\n\n if (input.draft !== undefined) {\n throw new Error(\"draft update operation not available via GraphQL route\")\n }\n\n const client = createGraphqlRequestClient(transport)\n const pullRequestId = await fetchPrNodeId(client, input.owner, input.name, input.prNumber)\n\n const result = await getPrUpdateSdk(client).PrUpdate({\n pullRequestId,\n ...(input.title !== undefined ? { title: input.title } : {}),\n ...(input.body !== undefined ? { body: input.body } : {}),\n })\n\n const pr = result.updatePullRequest?.pullRequest\n if (!pr) {\n throw new Error(\"Failed to update pull request\")\n }\n\n return {\n number: pr.number,\n url: String(pr.url),\n title: pr.title,\n state: String(pr.state),\n draft: pr.isDraft,\n }\n}\n\nexport async function runPrMerge(\n transport: GraphqlTransport,\n input: PrMergeInput,\n): Promise<PrMergeData> {\n assertPrMergeInput(input)\n\n if (input.deleteBranch === true) {\n throw new Error(\n \"deleteBranch operation not available via GraphQL mergePullRequest mutation; use the CLI route to delete the branch after merging\",\n )\n }\n\n const client = createGraphqlRequestClient(transport)\n const pullRequestId = await fetchPrNodeId(client, input.owner, input.name, input.prNumber)\n\n const result = await getPrMergeSdk(client).PrMerge({\n pullRequestId,\n ...(input.mergeMethod !== undefined\n ? { mergeMethod: input.mergeMethod as Types.PullRequestMergeMethod }\n : {}),\n })\n\n const pr = result.mergePullRequest?.pullRequest\n if (!pr) {\n throw new Error(\"Failed to merge pull request\")\n }\n\n return {\n prNumber: input.prNumber,\n // method echoes the input mergeMethod rather than reading from the GQL response,\n // since GitHub's mergePullRequest mutation does not return the merge method used.\n // isMethodAssumed is true when the caller did not specify a merge method; the\n // returned value of \"merge\" is an assumption, not confirmed by GitHub.\n method: input.mergeMethod?.toLowerCase() ?? \"merge\",\n isMethodAssumed: input.mergeMethod === undefined,\n // Note: GitHub GraphQL API does not expose merge queue state; queued is always false\n queued: false,\n deleteBranch: input.deleteBranch ?? false,\n }\n}\n\nexport async function runPrBranchUpdate(\n transport: GraphqlTransport,\n input: PrBranchUpdateInput,\n): Promise<PrBranchUpdateData> {\n assertPrBranchUpdateInput(input)\n const client = createGraphqlRequestClient(transport)\n const pullRequestId = await fetchPrNodeId(client, input.owner, input.name, input.prNumber)\n\n const result = await getPrBranchUpdateSdk(client).PrBranchUpdate({\n pullRequestId,\n ...(input.updateMethod !== undefined\n ? { updateMethod: input.updateMethod as Types.PullRequestBranchUpdateMethod }\n : {}),\n })\n\n const pr = result.updatePullRequestBranch?.pullRequest\n if (!pr) {\n throw new Error(\"Failed to update pull request branch\")\n }\n\n // updated: true is a success indicator — if no error was thrown, the branch update succeeded.\n // This is not a delta-detection flag; GitHub does not return whether the branch was already up to date.\n return {\n prNumber: input.prNumber,\n updated: true,\n }\n}\n\nasync function resolveUserNodeIds(client: GraphQLClient, logins: string[]): Promise<string[]> {\n // N+1 pattern: each login requires a separate UserNodeId query.\n // GitHub's GraphQL API does not support bulk user-to-node-ID resolution.\n // Acceptable for typical 1-3 user operations; revisit if bulk use cases emerge.\n const results = await Promise.all(\n logins.map((login) => getUserNodeIdSdk(client).UserNodeId({ login })),\n )\n return logins.map((login, i) => {\n const id = results[i]?.user?.id\n if (!id) throw new Error(`Could not resolve user: ${login}`)\n return id\n })\n}\n\nexport async function runPrAssigneesAdd(\n transport: GraphqlTransport,\n input: PrAssigneesAddInput,\n): Promise<PrAssigneesAddData> {\n assertPrAssigneesInput(input)\n const client = createGraphqlRequestClient(transport)\n const pullRequestId = await fetchPrNodeId(client, input.owner, input.name, input.prNumber)\n\n const userIds = await resolveUserNodeIds(client, input.assignees)\n\n const result = await getPrAssigneesAddSdk(client).PrAssigneesAdd({\n assignableId: pullRequestId,\n assigneeIds: userIds,\n })\n\n const assignable = result.addAssigneesToAssignable?.assignable\n const prAssignable =\n assignable?.__typename === \"PullRequest\"\n ? (assignable as {\n id: string\n assignees: { nodes?: Array<{ login: string } | null> | null }\n })\n : null\n\n if (!prAssignable) {\n throw new Error(\"Failed to add assignees to pull request\")\n }\n\n const confirmedLogins = (prAssignable.assignees.nodes ?? [])\n .filter((node): node is { login: string } => node !== null)\n .map((node) => node.login)\n\n return {\n prNumber: input.prNumber,\n added: confirmedLogins,\n }\n}\n\nexport async function runPrAssigneesRemove(\n transport: GraphqlTransport,\n input: PrAssigneesRemoveInput,\n): Promise<PrAssigneesRemoveData> {\n assertPrAssigneesInput(input)\n const client = createGraphqlRequestClient(transport)\n const pullRequestId = await fetchPrNodeId(client, input.owner, input.name, input.prNumber)\n\n const userIds = await resolveUserNodeIds(client, input.assignees)\n\n const result = await getPrAssigneesRemoveSdk(client).PrAssigneesRemove({\n assignableId: pullRequestId,\n assigneeIds: userIds,\n })\n\n const assignable = result.removeAssigneesFromAssignable?.assignable\n const prAssignable =\n assignable?.__typename === \"PullRequest\"\n ? (assignable as {\n id: string\n assignees: { nodes?: Array<{ login: string } | null> | null }\n })\n : null\n\n if (!prAssignable) {\n throw new Error(\"Failed to remove assignees from pull request\")\n }\n\n const remainingLogins = (prAssignable.assignees.nodes ?? [])\n .filter((node): node is { login: string } => node !== null)\n .map((node) => node.login)\n\n const removed = input.assignees.filter((login) => !remainingLogins.includes(login))\n\n return {\n prNumber: input.prNumber,\n removed,\n }\n}\n\nexport async function runPrReviewsRequest(\n transport: GraphqlTransport,\n input: PrReviewsRequestInput,\n): Promise<PrReviewsRequestData> {\n assertPrReviewsRequestInput(input)\n const client = createGraphqlRequestClient(transport)\n const pullRequestId = await fetchPrNodeId(client, input.owner, input.name, input.prNumber)\n\n const reviewerUserIds = await resolveUserNodeIds(client, input.reviewers)\n\n const result = await getPrReviewsRequestSdk(client).PrReviewsRequest({\n pullRequestId,\n userIds: reviewerUserIds,\n reviewRequestsFirst: Math.min(Math.max(reviewerUserIds.length, 1), 100),\n })\n\n const pr = result.requestReviews?.pullRequest\n if (!pr) {\n throw new Error(\"Failed to request pull request reviews\")\n }\n\n const reviewRequests = (pr.reviewRequests?.nodes ?? []).flatMap((node) => {\n if (!node) return []\n const reviewer = node.requestedReviewer\n if (reviewer?.__typename === \"User\" && \"login\" in reviewer) {\n return [reviewer.login]\n }\n if (reviewer?.__typename === \"Team\" && \"slug\" in reviewer) {\n return [reviewer.slug as string]\n }\n return []\n })\n\n return {\n prNumber: input.prNumber,\n reviewers: reviewRequests,\n updated: true,\n }\n}\n"],"mappings":"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","names":["getSdk","getSdk"]}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import {
|
|
2
|
+
getSdk,
|
|
3
|
+
getSdk2,
|
|
4
|
+
getSdk3,
|
|
5
|
+
getSdk4,
|
|
6
|
+
getSdk5
|
|
7
|
+
} from "./chunk-QRHKAMRY.js";
|
|
8
|
+
import "./chunk-TPQYVCAS.js";
|
|
9
|
+
import "./chunk-R3CBGJZX.js";
|
|
10
|
+
import {
|
|
11
|
+
assertPrDiffListFilesInput,
|
|
12
|
+
assertPrInput,
|
|
13
|
+
assertPrListInput,
|
|
14
|
+
assertPrReviewsListInput
|
|
15
|
+
} from "./chunk-OQWLEFAH.js";
|
|
16
|
+
import {
|
|
17
|
+
createGraphqlRequestClient
|
|
18
|
+
} from "./chunk-HEHONZTO.js";
|
|
19
|
+
|
|
20
|
+
// src/gql/domains/pr-queries.ts
|
|
21
|
+
async function runPrView(transport, input) {
|
|
22
|
+
assertPrInput(input);
|
|
23
|
+
const sdk = getSdk5(createGraphqlRequestClient(transport));
|
|
24
|
+
const result = await sdk.PrView(input);
|
|
25
|
+
const pr = result.repository?.pullRequest;
|
|
26
|
+
if (!pr) {
|
|
27
|
+
throw new Error("Pull request not found");
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
id: pr.id,
|
|
31
|
+
number: pr.number,
|
|
32
|
+
title: pr.title,
|
|
33
|
+
state: pr.state,
|
|
34
|
+
url: pr.url,
|
|
35
|
+
body: pr.body ?? "",
|
|
36
|
+
labels: (pr.labels?.nodes ?? []).flatMap((n) => n ? [n.name] : [])
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
async function runPrList(transport, input) {
|
|
40
|
+
assertPrListInput(input);
|
|
41
|
+
const sdk = getSdk2(createGraphqlRequestClient(transport));
|
|
42
|
+
const result = await sdk.PrList(input);
|
|
43
|
+
const prs = result.repository?.pullRequests;
|
|
44
|
+
if (!prs) {
|
|
45
|
+
throw new Error("Pull requests not found");
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
items: (prs.nodes ?? []).flatMap(
|
|
49
|
+
(pr) => pr ? [
|
|
50
|
+
{
|
|
51
|
+
id: pr.id,
|
|
52
|
+
number: pr.number,
|
|
53
|
+
title: pr.title,
|
|
54
|
+
state: pr.state,
|
|
55
|
+
url: pr.url
|
|
56
|
+
}
|
|
57
|
+
] : []
|
|
58
|
+
),
|
|
59
|
+
pageInfo: {
|
|
60
|
+
endCursor: prs.pageInfo.endCursor ?? null,
|
|
61
|
+
hasNextPage: prs.pageInfo.hasNextPage
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
async function runPrReviewsList(transport, input) {
|
|
66
|
+
assertPrReviewsListInput(input);
|
|
67
|
+
const sdk = getSdk4(createGraphqlRequestClient(transport));
|
|
68
|
+
const result = await sdk.PrReviewsList(input);
|
|
69
|
+
const reviews = result.repository?.pullRequest?.reviews;
|
|
70
|
+
if (!reviews) {
|
|
71
|
+
throw new Error("Pull request reviews not found");
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
items: (reviews.nodes ?? []).flatMap(
|
|
75
|
+
(review) => review ? [
|
|
76
|
+
{
|
|
77
|
+
id: review.id,
|
|
78
|
+
authorLogin: review.author?.login ?? null,
|
|
79
|
+
body: review.body,
|
|
80
|
+
state: review.state,
|
|
81
|
+
submittedAt: review.submittedAt ?? null,
|
|
82
|
+
url: review.url,
|
|
83
|
+
commitOid: review.commit?.oid ?? null
|
|
84
|
+
}
|
|
85
|
+
] : []
|
|
86
|
+
),
|
|
87
|
+
pageInfo: {
|
|
88
|
+
endCursor: reviews.pageInfo.endCursor ?? null,
|
|
89
|
+
hasNextPage: reviews.pageInfo.hasNextPage
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
async function runPrDiffListFiles(transport, input) {
|
|
94
|
+
assertPrDiffListFilesInput(input);
|
|
95
|
+
const sdk = getSdk(createGraphqlRequestClient(transport));
|
|
96
|
+
const result = await sdk.PrDiffListFiles(input);
|
|
97
|
+
const files = result.repository?.pullRequest?.files;
|
|
98
|
+
if (!files) {
|
|
99
|
+
throw new Error("Pull request files not found");
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
items: (files.nodes ?? []).flatMap(
|
|
103
|
+
(file) => file ? [
|
|
104
|
+
{
|
|
105
|
+
path: file.path,
|
|
106
|
+
additions: file.additions,
|
|
107
|
+
deletions: file.deletions
|
|
108
|
+
}
|
|
109
|
+
] : []
|
|
110
|
+
),
|
|
111
|
+
pageInfo: {
|
|
112
|
+
endCursor: files.pageInfo.endCursor ?? null,
|
|
113
|
+
hasNextPage: files.pageInfo.hasNextPage
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
async function runPrMergeStatus(transport, input) {
|
|
118
|
+
assertPrInput({ owner: input.owner, name: input.name, prNumber: input.prNumber });
|
|
119
|
+
const result = await getSdk3(createGraphqlRequestClient(transport)).PrMergeStatus({
|
|
120
|
+
owner: input.owner,
|
|
121
|
+
name: input.name,
|
|
122
|
+
prNumber: input.prNumber
|
|
123
|
+
});
|
|
124
|
+
const pr = result.repository?.pullRequest;
|
|
125
|
+
if (!pr) {
|
|
126
|
+
throw new Error("Pull request not found");
|
|
127
|
+
}
|
|
128
|
+
return {
|
|
129
|
+
mergeable: pr.mergeable ?? null,
|
|
130
|
+
mergeStateStatus: pr.mergeStateStatus ?? null,
|
|
131
|
+
reviewDecision: pr.reviewDecision ?? null,
|
|
132
|
+
isDraft: pr.isDraft,
|
|
133
|
+
state: pr.state
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
export {
|
|
137
|
+
runPrDiffListFiles,
|
|
138
|
+
runPrList,
|
|
139
|
+
runPrMergeStatus,
|
|
140
|
+
runPrReviewsList,
|
|
141
|
+
runPrView
|
|
142
|
+
};
|
|
143
|
+
//# sourceMappingURL=pr-queries-6CJJW7BT.js.map
|