@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.
Files changed (158) hide show
  1. package/.claude-plugin/plugin.json +2 -2
  2. package/README.md +44 -37
  3. package/dist/cards/issue.assignees.add.yaml +1 -0
  4. package/dist/cards/issue.assignees.remove.yaml +1 -0
  5. package/dist/cards/issue.assignees.set.yaml +1 -0
  6. package/dist/cards/issue.close.yaml +1 -0
  7. package/dist/cards/issue.comments.create.yaml +1 -0
  8. package/dist/cards/issue.comments.list.yaml +1 -0
  9. package/dist/cards/issue.create.yaml +1 -0
  10. package/dist/cards/issue.delete.yaml +1 -0
  11. package/dist/cards/issue.labels.add.yaml +1 -0
  12. package/dist/cards/issue.labels.remove.yaml +1 -0
  13. package/dist/cards/issue.labels.set.yaml +1 -0
  14. package/dist/cards/issue.list.yaml +1 -0
  15. package/dist/cards/issue.milestone.clear.yaml +1 -0
  16. package/dist/cards/issue.milestone.set.yaml +1 -0
  17. package/dist/cards/issue.relations.blocked_by.add.yaml +1 -0
  18. package/dist/cards/issue.relations.blocked_by.remove.yaml +1 -0
  19. package/dist/cards/issue.relations.parent.remove.yaml +1 -0
  20. package/dist/cards/issue.relations.parent.set.yaml +1 -0
  21. package/dist/cards/issue.relations.prs.list.yaml +1 -0
  22. package/dist/cards/issue.relations.view.yaml +1 -0
  23. package/dist/cards/issue.reopen.yaml +1 -0
  24. package/dist/cards/issue.update.yaml +1 -0
  25. package/dist/cards/issue.view.yaml +1 -0
  26. package/dist/cards/pr.assignees.add.yaml +6 -2
  27. package/dist/cards/pr.assignees.remove.yaml +6 -2
  28. package/dist/cards/pr.branch.update.yaml +6 -2
  29. package/dist/cards/pr.create.yaml +7 -3
  30. package/dist/cards/pr.diff.files.yaml +1 -0
  31. package/dist/cards/pr.list.yaml +1 -0
  32. package/dist/cards/pr.merge.status.yaml +1 -0
  33. package/dist/cards/pr.merge.yaml +9 -3
  34. package/dist/cards/pr.reviews.list.yaml +1 -0
  35. package/dist/cards/pr.reviews.request.yaml +6 -3
  36. package/dist/cards/pr.reviews.submit.yaml +1 -0
  37. package/dist/cards/pr.threads.list.yaml +1 -0
  38. package/dist/cards/pr.threads.reply.yaml +1 -0
  39. package/dist/cards/pr.threads.resolve.yaml +1 -0
  40. package/dist/cards/pr.threads.unresolve.yaml +1 -0
  41. package/dist/cards/pr.update.yaml +7 -2
  42. package/dist/cards/pr.view.yaml +1 -0
  43. package/dist/cards/project_v2.fields.list.yaml +18 -2
  44. package/dist/cards/project_v2.items.field.update.yaml +8 -5
  45. package/dist/cards/project_v2.items.issue.add.yaml +9 -5
  46. package/dist/cards/project_v2.items.issue.remove.yaml +8 -5
  47. package/dist/cards/project_v2.items.list.yaml +8 -2
  48. package/dist/cards/project_v2.org.view.yaml +6 -2
  49. package/dist/cards/project_v2.user.view.yaml +6 -2
  50. package/dist/cards/release.list.yaml +8 -3
  51. package/dist/cards/release.view.yaml +8 -4
  52. package/dist/cards/repo.issue_types.list.yaml +7 -3
  53. package/dist/cards/repo.labels.list.yaml +7 -2
  54. package/dist/cards/repo.view.yaml +1 -0
  55. package/dist/chunk-7HUKYNI2.js +536 -0
  56. package/dist/chunk-7HUKYNI2.js.map +1 -0
  57. package/dist/chunk-GQO6BHJV.js +98 -0
  58. package/dist/chunk-GQO6BHJV.js.map +1 -0
  59. package/dist/chunk-H7CLZHRO.js +280 -0
  60. package/dist/chunk-H7CLZHRO.js.map +1 -0
  61. package/dist/{chunk-3P3KHWFU.js → chunk-M5PJLKL5.js} +1079 -726
  62. package/dist/chunk-M5PJLKL5.js.map +1 -0
  63. package/dist/chunk-NQ53ETYV.js +128 -0
  64. package/dist/chunk-NQ53ETYV.js.map +1 -0
  65. package/dist/{chunk-BIWBJA2F.js → chunk-OQWLEFAH.js} +220 -12
  66. package/dist/chunk-OQWLEFAH.js.map +1 -0
  67. package/dist/{chunk-Q7RCIK2C.js → chunk-Q2NW7DJE.js} +167 -62
  68. package/dist/chunk-Q2NW7DJE.js.map +1 -0
  69. package/dist/{pr-queries-UOEOXIJQ.js → chunk-QRHKAMRY.js} +11 -131
  70. package/dist/chunk-QRHKAMRY.js.map +1 -0
  71. package/dist/{issue-queries-GRA4MKPD.js → chunk-TGL33GEA.js} +7 -83
  72. package/dist/chunk-TGL33GEA.js.map +1 -0
  73. package/dist/chunk-ZGBVX2VG.js +32 -0
  74. package/dist/chunk-ZGBVX2VG.js.map +1 -0
  75. package/dist/cli/index.js +79 -14
  76. package/dist/cli/index.js.map +1 -1
  77. package/dist/core/registry/cards/issue.assignees.add.yaml +1 -0
  78. package/dist/core/registry/cards/issue.assignees.remove.yaml +1 -0
  79. package/dist/core/registry/cards/issue.assignees.set.yaml +1 -0
  80. package/dist/core/registry/cards/issue.close.yaml +1 -0
  81. package/dist/core/registry/cards/issue.comments.create.yaml +1 -0
  82. package/dist/core/registry/cards/issue.comments.list.yaml +1 -0
  83. package/dist/core/registry/cards/issue.create.yaml +1 -0
  84. package/dist/core/registry/cards/issue.delete.yaml +1 -0
  85. package/dist/core/registry/cards/issue.labels.add.yaml +1 -0
  86. package/dist/core/registry/cards/issue.labels.remove.yaml +1 -0
  87. package/dist/core/registry/cards/issue.labels.set.yaml +1 -0
  88. package/dist/core/registry/cards/issue.list.yaml +1 -0
  89. package/dist/core/registry/cards/issue.milestone.clear.yaml +1 -0
  90. package/dist/core/registry/cards/issue.milestone.set.yaml +1 -0
  91. package/dist/core/registry/cards/issue.relations.blocked_by.add.yaml +1 -0
  92. package/dist/core/registry/cards/issue.relations.blocked_by.remove.yaml +1 -0
  93. package/dist/core/registry/cards/issue.relations.parent.remove.yaml +1 -0
  94. package/dist/core/registry/cards/issue.relations.parent.set.yaml +1 -0
  95. package/dist/core/registry/cards/issue.relations.prs.list.yaml +1 -0
  96. package/dist/core/registry/cards/issue.relations.view.yaml +1 -0
  97. package/dist/core/registry/cards/issue.reopen.yaml +1 -0
  98. package/dist/core/registry/cards/issue.update.yaml +1 -0
  99. package/dist/core/registry/cards/issue.view.yaml +1 -0
  100. package/dist/core/registry/cards/pr.assignees.add.yaml +6 -2
  101. package/dist/core/registry/cards/pr.assignees.remove.yaml +6 -2
  102. package/dist/core/registry/cards/pr.branch.update.yaml +6 -2
  103. package/dist/core/registry/cards/pr.create.yaml +7 -3
  104. package/dist/core/registry/cards/pr.diff.files.yaml +1 -0
  105. package/dist/core/registry/cards/pr.list.yaml +1 -0
  106. package/dist/core/registry/cards/pr.merge.status.yaml +1 -0
  107. package/dist/core/registry/cards/pr.merge.yaml +9 -3
  108. package/dist/core/registry/cards/pr.reviews.list.yaml +1 -0
  109. package/dist/core/registry/cards/pr.reviews.request.yaml +6 -3
  110. package/dist/core/registry/cards/pr.reviews.submit.yaml +1 -0
  111. package/dist/core/registry/cards/pr.threads.list.yaml +1 -0
  112. package/dist/core/registry/cards/pr.threads.reply.yaml +1 -0
  113. package/dist/core/registry/cards/pr.threads.resolve.yaml +1 -0
  114. package/dist/core/registry/cards/pr.threads.unresolve.yaml +1 -0
  115. package/dist/core/registry/cards/pr.update.yaml +7 -2
  116. package/dist/core/registry/cards/pr.view.yaml +1 -0
  117. package/dist/core/registry/cards/project_v2.fields.list.yaml +18 -2
  118. package/dist/core/registry/cards/project_v2.items.field.update.yaml +8 -5
  119. package/dist/core/registry/cards/project_v2.items.issue.add.yaml +9 -5
  120. package/dist/core/registry/cards/project_v2.items.issue.remove.yaml +8 -5
  121. package/dist/core/registry/cards/project_v2.items.list.yaml +8 -2
  122. package/dist/core/registry/cards/project_v2.org.view.yaml +6 -2
  123. package/dist/core/registry/cards/project_v2.user.view.yaml +6 -2
  124. package/dist/core/registry/cards/release.list.yaml +8 -3
  125. package/dist/core/registry/cards/release.view.yaml +8 -4
  126. package/dist/core/registry/cards/repo.issue_types.list.yaml +7 -3
  127. package/dist/core/registry/cards/repo.labels.list.yaml +7 -2
  128. package/dist/core/registry/cards/repo.view.yaml +1 -0
  129. package/dist/index.d.ts +297 -0
  130. package/dist/index.js +11 -3
  131. package/dist/index.js.map +1 -1
  132. package/dist/{issue-mutations-FJNZW7L5.js → issue-mutations-OW464JP3.js} +97 -120
  133. package/dist/issue-mutations-OW464JP3.js.map +1 -0
  134. package/dist/issue-queries-ORG3VPK4.js +93 -0
  135. package/dist/issue-queries-ORG3VPK4.js.map +1 -0
  136. package/dist/{pr-mutations-UG67YOF5.js → pr-mutations-WOTG6FAB.js} +234 -94
  137. package/dist/pr-mutations-WOTG6FAB.js.map +1 -0
  138. package/dist/pr-queries-6CJJW7BT.js +143 -0
  139. package/dist/pr-queries-6CJJW7BT.js.map +1 -0
  140. package/dist/project-QFSCYDDW.js +429 -0
  141. package/dist/project-QFSCYDDW.js.map +1 -0
  142. package/dist/release-33236BBA.js +57 -0
  143. package/dist/release-33236BBA.js.map +1 -0
  144. package/dist/repo-M6DKCWBG.js +82 -0
  145. package/dist/repo-M6DKCWBG.js.map +1 -0
  146. package/package.json +6 -6
  147. package/skills/using-ghx/SKILL.md +76 -10
  148. package/dist/chunk-3P3KHWFU.js.map +0 -1
  149. package/dist/chunk-BIWBJA2F.js.map +0 -1
  150. package/dist/chunk-Q7RCIK2C.js.map +0 -1
  151. package/dist/chunk-TDABI6C7.js +0 -167
  152. package/dist/chunk-TDABI6C7.js.map +0 -1
  153. package/dist/issue-mutations-FJNZW7L5.js.map +0 -1
  154. package/dist/issue-queries-GRA4MKPD.js.map +0 -1
  155. package/dist/pr-mutations-UG67YOF5.js.map +0 -1
  156. package/dist/pr-queries-UOEOXIJQ.js.map +0 -1
  157. package/dist/repo-JDUHFPZF.js +0 -66
  158. package/dist/repo-JDUHFPZF.js.map +0 -1
@@ -1,86 +1,40 @@
1
1
  import {
2
- getSdk,
3
- getSdk2,
4
- getSdk3,
5
- getSdk4,
6
- getSdk5
7
- } from "./chunk-TDABI6C7.js";
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
- PageInfoFieldsFragmentDoc
10
- } from "./chunk-R3CBGJZX.js";
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-BIWBJA2F.js";
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 defaultWrapper2 = (action, _operationName, _operationType, _variables) => action();
96
- function getSdk7(client, withWrapper = defaultWrapper2) {
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 = getSdk6(createGraphqlRequestClient(transport));
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 (unresolvedOnly && !includeOutdated && normalized.isOutdated) {
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 getSdk(client).PrCommentReply({
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 getSdk7(client).ReviewThreadState({
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 getSdk2(
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 getSdk3(
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 getSdk4(client).PrNodeId({
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 getSdk5(client).PrReviewSubmit({
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-UG67YOF5.js.map
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