npm-cli-gh-issue-preparator 1.25.1 → 1.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/.github/workflows/publish.yml +5 -2
  2. package/.github/workflows/umino-project.yml +1 -0
  3. package/CHANGELOG.md +42 -0
  4. package/README.md +29 -1
  5. package/bin/adapter/entry-points/cli/index.js +22 -1
  6. package/bin/adapter/entry-points/cli/index.js.map +1 -1
  7. package/bin/adapter/repositories/GraphqlIssueRepository.js +197 -84
  8. package/bin/adapter/repositories/GraphqlIssueRepository.js.map +1 -1
  9. package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js +89 -16
  10. package/bin/domain/usecases/NotifyFinishedIssuePreparationUseCase.js.map +1 -1
  11. package/bin/domain/usecases/StartPreparationUseCase.js +54 -13
  12. package/bin/domain/usecases/StartPreparationUseCase.js.map +1 -1
  13. package/config.example.yml +2 -0
  14. package/jest.config.js +2 -1
  15. package/package.json +1 -1
  16. package/src/adapter/entry-points/cli/index.integration.test.ts +37 -6
  17. package/src/adapter/entry-points/cli/index.test.ts +32 -9
  18. package/src/adapter/entry-points/cli/index.ts +34 -1
  19. package/src/adapter/repositories/GraphqlIssueRepository.integration.test.ts +23 -11
  20. package/src/adapter/repositories/GraphqlIssueRepository.test.ts +1253 -2
  21. package/src/adapter/repositories/GraphqlIssueRepository.ts +311 -100
  22. package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.test.ts +902 -7
  23. package/src/domain/usecases/NotifyFinishedIssuePreparationUseCase.ts +139 -28
  24. package/src/domain/usecases/StartPreparationUseCase.test.ts +639 -13
  25. package/src/domain/usecases/StartPreparationUseCase.ts +88 -22
  26. package/src/domain/usecases/adapter-interfaces/IssueRepository.ts +2 -0
  27. package/types/adapter/entry-points/cli/index.d.ts +2 -0
  28. package/types/adapter/entry-points/cli/index.d.ts.map +1 -1
  29. package/types/adapter/repositories/GraphqlIssueRepository.d.ts +3 -1
  30. package/types/adapter/repositories/GraphqlIssueRepository.d.ts.map +1 -1
  31. package/types/domain/usecases/NotifyFinishedIssuePreparationUseCase.d.ts +4 -1
  32. package/types/domain/usecases/NotifyFinishedIssuePreparationUseCase.d.ts.map +1 -1
  33. package/types/domain/usecases/StartPreparationUseCase.d.ts +4 -2
  34. package/types/domain/usecases/StartPreparationUseCase.d.ts.map +1 -1
  35. package/types/domain/usecases/adapter-interfaces/IssueRepository.d.ts +2 -0
  36. package/types/domain/usecases/adapter-interfaces/IssueRepository.d.ts.map +1 -1
@@ -13,8 +13,11 @@ env:
13
13
  jobs:
14
14
  publish:
15
15
  runs-on: ubuntu-latest
16
+ permissions:
17
+ contents: write
18
+ id-token: write
16
19
  steps:
17
- - uses: actions/create-github-app-token@v2
20
+ - uses: actions/create-github-app-token@v3
18
21
  id: app-token
19
22
  with:
20
23
  app-id: ${{ env.RELEASE_APP_ID }}
@@ -34,7 +37,7 @@ jobs:
34
37
 
35
38
  - run: npx semantic-release
36
39
  env:
37
- NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
40
+ GH_TOKEN: ${{ steps.app-token.outputs.token }}
38
41
  - run: |
39
42
  git status
40
43
  git add -A
@@ -183,6 +183,7 @@ jobs:
183
183
  steps:
184
184
  - uses: nearform-actions/github-action-check-linked-issues@v1
185
185
  id: check-linked-issues
186
+ if: github.event.pull_request.user.login != 'dependabot[bot]'
186
187
  with:
187
188
  exclude-branches: 'release/**, dependabot/**, project-common/**, renovate/**'
188
189
  github-token: ${{ secrets.GH_TOKEN }}
package/CHANGELOG.md CHANGED
@@ -1,3 +1,45 @@
1
+ # [1.26.0](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/compare/v1.25.1...v1.26.0) (2026-04-08)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **ci:** enable OIDC trusted publishing for npm by adding id-token permission ([1469322](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/1469322ad97b3604a86e2fcaaf03a9b364e1d995))
7
+ * **ci:** remove unnecessary permissions from publish workflow ([5c46b28](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/5c46b28483f804a94b2495236a55a39f947a153c))
8
+ * **core:** add retry logic to integration test for GitHub API eventual consistency ([420c9c4](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/420c9c4327dd696a6749c91fc5d38289de021d41))
9
+ * **core:** add ts-jest transform for ky ESM module to resolve test failures ([563cccb](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/563cccbcd0e7933cd522cae0c6fa592e9fb78e9f))
10
+ * **core:** address review comments - add logging, extract constant, update build artifacts ([c740ad4](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/c740ad44e90d9e2ee7d306ec89d62a33aa8ef9ca))
11
+ * **core:** address review comments - add type annotation, immediate first retry, and try/finally for revert ([85d55d8](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/85d55d8a76acac753bdcd5c9cd10af5593b0760d))
12
+ * **core:** address review comments on getOpenPullRequest ([d289310](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/d289310a3c5f40174576129cef75824d089fa777))
13
+ * **core:** correct typo 'autimatically' to 'automatically' and document thresholdForAutoReject ([6c1680c](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/6c1680c7c923b87f376a23b0f5f71470e2a661c9))
14
+ * **core:** exclude cross-referenced PRs that do not close the issue from findRelatedOpenPRs ([eff58fc](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/eff58fcdc8db30f82039ae71faf8a7a1cbae58fb)), closes [#189](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/issues/189)
15
+ * **core:** fix grammar in dependent issue URLs comment ([f232b90](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/f232b90778df245d080a4ad2b1ffe2f5ff713d38))
16
+ * **core:** fix undefined params, add label priority tests, update README ([5a9e929](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/5a9e9294da42e31ada86c7b64347748046885041))
17
+ * **core:** handle llm-agent: prefixed labels in PR skip check ([041138d](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/041138d298ac97156eea28d6bdf2c4961df9822c))
18
+ * **core:** handle PR URL in notifyFinishedIssuePreparation when project item is a PR ([0b89981](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/0b899815791ee033ff5e7eeecb626a962d3c42d8)), closes [#215](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/issues/215)
19
+ * **core:** log warning when JSON parsing fails in reportBodyHasNextStep ([df65df0](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/df65df045344bd2293b25689e48b6944abc27092))
20
+ * **core:** make branchName nullable and handle multiple linked PRs ([cbfab4d](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/cbfab4d478d13c5bea16c9b1b7feb35d710cea47))
21
+ * **core:** make integration test deterministic for Claude usage error propagation ([d195206](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/d195206fac52b46e0e4e072a11802a16d8cd9328))
22
+ * **core:** only block on future nextActionDate/nextActionHour in NotifyFinishedIssuePreparation ([ad1ca31](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/ad1ca316fa120c6cae5c3af197cc8f3310b5addc))
23
+ * **core:** regenerate build artifacts ([071450f](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/071450f1b0a2e4437c09297a2e0d1ca540cf298b))
24
+ * **core:** simplify nextActionDate/Hour check to null check in NotifyFinishedIssuePreparation ([841141a](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/841141af5fe167b88c22bb563cee2eb56f7fc0fc))
25
+ * **core:** skip PR check when issue has llm-agent label ([fcbdc85](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/fcbdc8554c7ff9229b1f90b242e1cad259ae44e2)), closes [#218](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/issues/218)
26
+ * **core:** throw error when Claude usage check fails instead of swallowing it ([30edc52](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/30edc5202dc10ea7eb0e049c4247a57edfeee23e))
27
+ * **core:** update integration test for Claude usage error propagation ([c987057](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/c9870576e3a025c266e5dd510891eade7bb75ca6))
28
+ * **core:** use includes instead of startsWith for escalation guard detection ([32ee57a](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/32ee57abc9451e9ed6dce0c3a5cd00c164f3abe6))
29
+ * **core:** use numeric Date constructor in nextActionDate/Hour tests to avoid timezone sensitivity ([9fb0dac](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/9fb0dac9dc264ba1c8e8ae6b12803a89de5f6c79))
30
+ * **StartPreparationUseCase:** pass PR branch name via --branch when issue URL is a PR URL ([61c7c01](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/61c7c01d48231f7844139901e67bf5f0cb8c5116))
31
+
32
+
33
+ ### Features
34
+
35
+ * **core:** add auto review status before Failed to pass the check automatically message ([b806e01](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/b806e017e42f080ac10ceef3f884d6ac30f463d2))
36
+ * **core:** add support for llm-agent and llm-model labels in issue preparation ([87caf87](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/87caf87a6274be9cfca52a8126d3c20ff3ca66bb))
37
+ * **core:** back issue to awaiting workspace if has depended issue urls on NotifyFinish ([ae1f5e2](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/ae1f5e2a77823cf09ad34437396c2992dd5b0e30))
38
+ * **core:** move issue to Awaiting Workspace when Next Action Date/Hour is set ([cd53515](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/cd535156f4769c950cfb2ca8d15027aa54dfd1ce)), closes [#211](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/issues/211)
39
+ * **core:** pass existing PR branch name to aw command when issue has linked PR ([b0ec5c6](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/b0ec5c66fd4a90a0daec561ec4de475fbc42e4d8))
40
+ * **core:** reduce maximumPreparingIssuesCount gradually based on weekly Claude usage ([bd0760e](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/bd0760e4fdb4fa644b2207e9ccff155a7ede8cb8))
41
+ * **core:** reject issue status update if report has next step ([81a91ac](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/commit/81a91acf8dad48f7b5fbc080e298d719d2bff358))
42
+
1
43
  ## [1.25.1](https://github.com/HiromiShikata/npm-cli-gh-issue-preparator/compare/v1.25.0...v1.25.1) (2026-03-13)
2
44
 
3
45
 
package/README.md CHANGED
@@ -45,11 +45,39 @@ The GitHub Project README can contain a collapsible `<details>` section with YAM
45
45
  maximumPreparingIssuesCount: 2
46
46
  utilizationPercentageThreshold: 99
47
47
  defaultAgentName: 'custom-agent'
48
+ thresholdForAutoReject: 3
48
49
  </details>
49
50
  ```
50
51
 
51
52
  Only the content inside the `<details><summary>config</summary>` section is parsed as YAML. Other content in the README is ignored. `projectUrl` and `configFilePath` cannot be set via Project README since the README is fetched using these values.
52
53
 
54
+ ### Parameters
55
+
56
+ - `thresholdForAutoReject` (default: `3`) - Number of consecutive auto-rejection comments before automatically escalating the issue to the awaiting quality check status. Can be set via CLI argument `--thresholdForAutoReject`, config file, or GitHub Project README config.
57
+
58
+ ### Issue Labels
59
+
60
+ You can use GitHub issue labels to customize the agent and model selection for individual issues:
61
+
62
+ - `llm-agent:{agent-name}` - Overrides the default LLM agent for this issue
63
+ - `llm-model:{model-name}` - Overrides the default LLM model for this issue
64
+
65
+ Example: `llm-agent:custom-impl`, `llm-model:claude-sonnet`
66
+
67
+ **Label priority for agent selection:**
68
+
69
+ 1. `llm-agent:` label (highest priority)
70
+ 2. `category:` label (for backward compatibility)
71
+ 3. `defaultLlmAgentName` parameter
72
+ 4. `defaultAgentName` parameter (lowest priority)
73
+
74
+ **Model selection:**
75
+
76
+ 1. `llm-model:` label (highest priority)
77
+ 2. `defaultLlmModelName` parameter (lowest priority)
78
+
79
+ **Note:** The `category:` label serves an additional role beyond agent selection: in `notifyFinishedIssuePreparation`, issues with a non-e2e `category:` label skip the PR check. Issues using only `llm-agent:` for agent selection still require a `category:` label (other than `category:e2e`) to skip the PR check during notification.
80
+
53
81
  ## Example 📖
54
82
 
55
83
  Here's a quick example to illustrate its usage:
@@ -63,7 +91,7 @@ npx npm-cli-gh-issue-preparator startDaemon --configFilePath ./config.yml
63
91
  ### Start preparation (with CLI overrides)
64
92
 
65
93
  ```
66
- npx npm-cli-gh-issue-preparator startDaemon --configFilePath ./config.yml --projectUrl <projectUrl> --awaitingWorkspaceStatus "Awaiting workspace" --preparationStatus "Preparation" --defaultAgentName "impl"
94
+ npx npm-cli-gh-issue-preparator startDaemon --configFilePath ./config.yml --projectUrl <projectUrl> --awaitingWorkspaceStatus "Awaiting workspace" --preparationStatus "Preparation" --defaultAgentName "impl" --defaultLlmModelName "claude-opus" --defaultLlmAgentName "impl"
67
95
  ```
68
96
 
69
97
  ### Notify finished issue preparation
@@ -74,6 +74,8 @@ const loadConfigFile = (configFilePath) => {
74
74
  awaitingWorkspaceStatus: getStringValue(parsed, 'awaitingWorkspaceStatus'),
75
75
  preparationStatus: getStringValue(parsed, 'preparationStatus'),
76
76
  defaultAgentName: getStringValue(parsed, 'defaultAgentName'),
77
+ defaultLlmModelName: getStringValue(parsed, 'defaultLlmModelName'),
78
+ defaultLlmAgentName: getStringValue(parsed, 'defaultLlmAgentName'),
77
79
  logFilePath: getStringValue(parsed, 'logFilePath'),
78
80
  maximumPreparingIssuesCount: getNumberValue(parsed, 'maximumPreparingIssuesCount'),
79
81
  utilizationPercentageThreshold: getNumberValue(parsed, 'utilizationPercentageThreshold'),
@@ -109,6 +111,8 @@ const parseProjectReadmeConfig = (readme) => {
109
111
  awaitingWorkspaceStatus: getStringValue(parsed, 'awaitingWorkspaceStatus'),
110
112
  preparationStatus: getStringValue(parsed, 'preparationStatus'),
111
113
  defaultAgentName: getStringValue(parsed, 'defaultAgentName'),
114
+ defaultLlmModelName: getStringValue(parsed, 'defaultLlmModelName'),
115
+ defaultLlmAgentName: getStringValue(parsed, 'defaultLlmAgentName'),
112
116
  logFilePath: getStringValue(parsed, 'logFilePath'),
113
117
  maximumPreparingIssuesCount: getNumberValue(parsed, 'maximumPreparingIssuesCount'),
114
118
  utilizationPercentageThreshold: getNumberValue(parsed, 'utilizationPercentageThreshold'),
@@ -135,6 +139,12 @@ const mergeConfigs = (configFile, cliOverrides, readmeOverrides) => ({
135
139
  defaultAgentName: readmeOverrides.defaultAgentName ??
136
140
  cliOverrides.defaultAgentName ??
137
141
  configFile.defaultAgentName,
142
+ defaultLlmModelName: readmeOverrides.defaultLlmModelName ??
143
+ cliOverrides.defaultLlmModelName ??
144
+ configFile.defaultLlmModelName,
145
+ defaultLlmAgentName: readmeOverrides.defaultLlmAgentName ??
146
+ cliOverrides.defaultLlmAgentName ??
147
+ configFile.defaultLlmAgentName,
138
148
  logFilePath: readmeOverrides.logFilePath ??
139
149
  cliOverrides.logFilePath ??
140
150
  configFile.logFilePath,
@@ -181,6 +191,8 @@ program
181
191
  .option('--awaitingWorkspaceStatus <status>', 'Status for issues awaiting workspace')
182
192
  .option('--preparationStatus <status>', 'Status for issues in preparation')
183
193
  .option('--defaultAgentName <name>', 'Default agent name')
194
+ .option('--defaultLlmModelName <name>', 'Default LLM model name')
195
+ .option('--defaultLlmAgentName <name>', 'Default LLM agent name')
184
196
  .option('--logFilePath <path>', 'Path to log file')
185
197
  .option('--maximumPreparingIssuesCount <count>', 'Maximum number of issues in preparation status (default: 6)')
186
198
  .option('--utilizationPercentageThreshold <percentage>', 'Claude usage percentage threshold for skipping preparation (default: 90)')
@@ -197,6 +209,8 @@ program
197
209
  awaitingWorkspaceStatus: options.awaitingWorkspaceStatus,
198
210
  preparationStatus: options.preparationStatus,
199
211
  defaultAgentName: options.defaultAgentName,
212
+ defaultLlmModelName: options.defaultLlmModelName,
213
+ defaultLlmAgentName: options.defaultLlmAgentName,
200
214
  logFilePath: options.logFilePath,
201
215
  maximumPreparingIssuesCount: options.maximumPreparingIssuesCount
202
216
  ? Number(options.maximumPreparingIssuesCount)
@@ -219,6 +233,8 @@ program
219
233
  const awaitingWorkspaceStatus = config.awaitingWorkspaceStatus;
220
234
  const preparationStatus = config.preparationStatus;
221
235
  const defaultAgentName = config.defaultAgentName;
236
+ const defaultLlmModelName = config.defaultLlmModelName;
237
+ const defaultLlmAgentName = config.defaultLlmAgentName;
222
238
  const logFilePath = config.logFilePath;
223
239
  if (!projectUrl) {
224
240
  console.error('projectUrl is required. Provide via --projectUrl, config file, or project README.');
@@ -245,6 +261,8 @@ program
245
261
  getAllOpened: towerDefenceIssueRepository.getAllOpened.bind(towerDefenceIssueRepository),
246
262
  getStoryObjectMap: towerDefenceIssueRepository.getStoryObjectMap.bind(towerDefenceIssueRepository),
247
263
  update: graphqlIssueRepository.update.bind(graphqlIssueRepository),
264
+ findRelatedOpenPRs: graphqlIssueRepository.findRelatedOpenPRs.bind(graphqlIssueRepository),
265
+ getOpenPullRequest: graphqlIssueRepository.getOpenPullRequest.bind(graphqlIssueRepository),
248
266
  }, claudeRepository, localCommandRunner);
249
267
  let maximumPreparingIssuesCount = null;
250
268
  const rawMaxCount = config.maximumPreparingIssuesCount;
@@ -286,7 +304,9 @@ program
286
304
  awaitingWorkspaceStatus,
287
305
  preparationStatus,
288
306
  defaultAgentName,
289
- logFilePath,
307
+ defaultLlmModelName: defaultLlmModelName ?? null,
308
+ defaultLlmAgentName: defaultLlmAgentName ?? null,
309
+ logFilePath: logFilePath ?? null,
290
310
  maximumPreparingIssuesCount,
291
311
  utilizationPercentageThreshold,
292
312
  allowedIssueAuthors,
@@ -359,6 +379,7 @@ program
359
379
  get: graphqlIssueRepository.get.bind(graphqlIssueRepository),
360
380
  update: graphqlIssueRepository.update.bind(graphqlIssueRepository),
361
381
  findRelatedOpenPRs: graphqlIssueRepository.findRelatedOpenPRs.bind(graphqlIssueRepository),
382
+ getOpenPullRequest: graphqlIssueRepository.getOpenPullRequest.bind(graphqlIssueRepository),
362
383
  getStoryObjectMap: towerDefenceIssueRepository.getStoryObjectMap.bind(towerDefenceIssueRepository),
363
384
  }, issueCommentRepository, webhookRepository);
364
385
  let thresholdForAutoReject = 3;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/cli/index.ts"],"names":[],"mappings":"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"}
@@ -78,6 +78,11 @@ function isIssueResponse(value) {
78
78
  return false;
79
79
  return true;
80
80
  }
81
+ function isDirectPullRequestResponse(value) {
82
+ if (typeof value !== 'object' || value === null)
83
+ return false;
84
+ return true;
85
+ }
81
86
  class GraphqlIssueRepository {
82
87
  constructor(token) {
83
88
  this.token = token;
@@ -348,6 +353,89 @@ class GraphqlIssueRepository {
348
353
  throw new Error(`GraphQL errors: ${JSON.stringify(responseData.errors)}`);
349
354
  }
350
355
  }
356
+ computePrStatus(prUrl, headRefName, baseRefName, data) {
357
+ const isConflicted = data.mergeable === 'CONFLICTING';
358
+ const lastCommit = data.commits?.nodes[0]?.commit;
359
+ const ciState = lastCommit?.statusCheckRollup?.state;
360
+ const contexts = lastCommit?.statusCheckRollup?.contexts?.nodes || [];
361
+ const branchProtectionRules = data.baseRepository?.branchProtectionRules?.nodes || [];
362
+ const matchingRules = baseRefName
363
+ ? branchProtectionRules.filter((rule) => rule.pattern === baseRefName || fnmatch(rule.pattern, baseRefName))
364
+ : [];
365
+ const requiredCheckNamesSet = new Set();
366
+ for (const rule of matchingRules) {
367
+ for (const name of rule.requiredStatusCheckContexts) {
368
+ requiredCheckNamesSet.add(name);
369
+ }
370
+ }
371
+ const rulesets = data.baseRepository?.rulesets?.nodes || [];
372
+ const defaultBranchName = data.baseRepository?.defaultBranchRef?.name || '';
373
+ for (const ruleset of rulesets) {
374
+ if (ruleset.enforcement !== 'ACTIVE')
375
+ continue;
376
+ const refIncludes = ruleset.conditions.refName.include;
377
+ const refExcludes = ruleset.conditions.refName.exclude;
378
+ const matchesInclude = baseRefName !== undefined &&
379
+ refIncludes.some((pattern) => {
380
+ if (pattern === '~DEFAULT_BRANCH') {
381
+ return baseRefName === defaultBranchName;
382
+ }
383
+ if (pattern === '~ALL') {
384
+ return true;
385
+ }
386
+ const branchPattern = pattern.replace(/^refs\/heads\//, '');
387
+ return (branchPattern === baseRefName || fnmatch(branchPattern, baseRefName));
388
+ });
389
+ if (!matchesInclude)
390
+ continue;
391
+ const matchesExclude = baseRefName !== undefined &&
392
+ refExcludes.some((pattern) => {
393
+ if (pattern === '~DEFAULT_BRANCH') {
394
+ return baseRefName === defaultBranchName;
395
+ }
396
+ const branchPattern = pattern.replace(/^refs\/heads\//, '');
397
+ return (branchPattern === baseRefName || fnmatch(branchPattern, baseRefName));
398
+ });
399
+ if (matchesExclude)
400
+ continue;
401
+ for (const rule of ruleset.rules.nodes) {
402
+ if (rule.type !== 'REQUIRED_STATUS_CHECKS')
403
+ continue;
404
+ if ('requiredStatusChecks' in rule.parameters) {
405
+ for (const check of rule.parameters.requiredStatusChecks) {
406
+ requiredCheckNamesSet.add(check.context);
407
+ }
408
+ }
409
+ }
410
+ }
411
+ const requiredCheckNames = Array.from(requiredCheckNamesSet);
412
+ const seenContextNames = new Set();
413
+ for (const ctx of contexts) {
414
+ if ('name' in ctx) {
415
+ seenContextNames.add(ctx.name);
416
+ }
417
+ if ('context' in ctx) {
418
+ seenContextNames.add(ctx.context);
419
+ }
420
+ }
421
+ const missingRequiredCheckNames = requiredCheckNames.filter((name) => !seenContextNames.has(name));
422
+ const allRequiredChecksPassed = missingRequiredCheckNames.length === 0;
423
+ const isCiStateSuccess = ciState === 'SUCCESS';
424
+ const isPassedAllCiJob = isCiStateSuccess && allRequiredChecksPassed;
425
+ const reviewThreads = data.reviewThreads?.nodes || [];
426
+ const isResolvedAllReviewComments = reviewThreads.length === 0 ||
427
+ reviewThreads.every((thread) => thread.isResolved);
428
+ return {
429
+ url: prUrl,
430
+ branchName: headRefName ?? null,
431
+ isConflicted,
432
+ isPassedAllCiJob,
433
+ isCiStateSuccess,
434
+ isResolvedAllReviewComments,
435
+ isBranchOutOfDate: false,
436
+ missingRequiredCheckNames,
437
+ };
438
+ }
351
439
  parseIssueUrl(issueUrl) {
352
440
  const urlMatch = issueUrl.match(/github\.com\/([^/]+)\/([^/]+)\/(issues|pull)\/(\d+)/);
353
441
  if (!urlMatch) {
@@ -385,6 +473,7 @@ class GraphqlIssueRepository {
385
473
  number
386
474
  state
387
475
  mergeable
476
+ headRefName
388
477
  baseRefName
389
478
  baseRepository {
390
479
  branchProtectionRules(first: 100) {
@@ -500,101 +589,125 @@ class GraphqlIssueRepository {
500
589
  continue;
501
590
  if (item.source.state !== 'OPEN')
502
591
  continue;
592
+ if (!item.willCloseTarget)
593
+ continue;
503
594
  const pr = item.source;
504
595
  const prUrl = pr.url || '';
505
- const isConflicted = pr.mergeable !== 'MERGEABLE';
506
- const lastCommit = pr.commits?.nodes[0]?.commit;
507
- const ciState = lastCommit?.statusCheckRollup?.state;
508
- const contexts = lastCommit?.statusCheckRollup?.contexts?.nodes || [];
509
596
  const baseRefName = pr.baseRefName ?? pr.baseRef?.name;
510
- const branchProtectionRules = pr.baseRepository?.branchProtectionRules?.nodes || [];
511
- const matchingRules = baseRefName
512
- ? branchProtectionRules.filter((rule) => rule.pattern === baseRefName ||
513
- fnmatch(rule.pattern, baseRefName))
514
- : [];
515
- const requiredCheckNamesSet = new Set();
516
- for (const rule of matchingRules) {
517
- for (const name of rule.requiredStatusCheckContexts) {
518
- requiredCheckNamesSet.add(name);
519
- }
597
+ relatedPRsMap.set(prUrl, this.computePrStatus(prUrl, pr.headRefName, baseRefName, pr));
598
+ }
599
+ hasNextPage = issueData.timelineItems.pageInfo.hasNextPage;
600
+ after = issueData.timelineItems.pageInfo.endCursor;
601
+ }
602
+ return Array.from(relatedPRsMap.values());
603
+ }
604
+ async getOpenPullRequest(prUrl) {
605
+ const parsedUrl = this.parseIssueUrl(prUrl);
606
+ if (!parsedUrl.isPr) {
607
+ return null;
608
+ }
609
+ const { owner, repo, issueNumber: prNumber } = parsedUrl;
610
+ const query = `
611
+ query($owner: String!, $repo: String!, $prNumber: Int!) {
612
+ repository(owner: $owner, name: $repo) {
613
+ pullRequest(number: $prNumber) {
614
+ url
615
+ state
616
+ headRefName
617
+ baseRefName
618
+ mergeable
619
+ baseRepository {
620
+ branchProtectionRules(first: 100) {
621
+ nodes {
622
+ pattern
623
+ requiredStatusCheckContexts
520
624
  }
521
- const rulesets = pr.baseRepository?.rulesets?.nodes || [];
522
- const defaultBranchName = pr.baseRepository?.defaultBranchRef?.name || '';
523
- for (const ruleset of rulesets) {
524
- if (ruleset.enforcement !== 'ACTIVE')
525
- continue;
526
- const refIncludes = ruleset.conditions.refName.include;
527
- const refExcludes = ruleset.conditions.refName.exclude;
528
- const matchesInclude = baseRefName !== undefined &&
529
- refIncludes.some((pattern) => {
530
- if (pattern === '~DEFAULT_BRANCH') {
531
- return baseRefName === defaultBranchName;
532
- }
533
- if (pattern === '~ALL') {
534
- return true;
535
- }
536
- const branchPattern = pattern.replace(/^refs\/heads\//, '');
537
- return (branchPattern === baseRefName ||
538
- fnmatch(branchPattern, baseRefName));
539
- });
540
- if (!matchesInclude)
541
- continue;
542
- const matchesExclude = baseRefName !== undefined &&
543
- refExcludes.some((pattern) => {
544
- if (pattern === '~DEFAULT_BRANCH') {
545
- return baseRefName === defaultBranchName;
546
- }
547
- const branchPattern = pattern.replace(/^refs\/heads\//, '');
548
- return (branchPattern === baseRefName ||
549
- fnmatch(branchPattern, baseRefName));
550
- });
551
- if (matchesExclude)
552
- continue;
553
- for (const rule of ruleset.rules.nodes) {
554
- if (rule.type !== 'REQUIRED_STATUS_CHECKS')
555
- continue;
556
- if ('requiredStatusChecks' in rule.parameters) {
557
- for (const check of rule.parameters.requiredStatusChecks) {
558
- requiredCheckNamesSet.add(check.context);
559
- }
625
+ }
626
+ defaultBranchRef {
627
+ name
628
+ }
629
+ rulesets(first: 100) {
630
+ nodes {
631
+ name
632
+ enforcement
633
+ conditions {
634
+ refName {
635
+ include
636
+ exclude
637
+ }
638
+ }
639
+ rules(first: 100) {
640
+ nodes {
641
+ type
642
+ parameters {
643
+ ... on RequiredStatusChecksParameters {
644
+ requiredStatusChecks {
645
+ context
646
+ }
560
647
  }
648
+ }
561
649
  }
650
+ }
562
651
  }
563
- const requiredCheckNames = Array.from(requiredCheckNamesSet);
564
- const seenContextNames = new Set();
565
- for (const ctx of contexts) {
566
- if ('name' in ctx) {
567
- seenContextNames.add(ctx.name);
568
- }
569
- if ('context' in ctx) {
570
- seenContextNames.add(ctx.context);
652
+ }
653
+ }
654
+ commits(last: 1) {
655
+ nodes {
656
+ commit {
657
+ statusCheckRollup {
658
+ state
659
+ contexts(first: 100) {
660
+ nodes {
661
+ __typename
662
+ ... on CheckRun {
663
+ name
664
+ conclusion
665
+ }
666
+ ... on StatusContext {
667
+ context
668
+ state
669
+ }
670
+ }
571
671
  }
672
+ }
572
673
  }
573
- const missingRequiredCheckNames = requiredCheckNames.filter((name) => !seenContextNames.has(name));
574
- const allRequiredChecksPassed = missingRequiredCheckNames.length === 0;
575
- const isCiStateSuccess = ciState === 'SUCCESS';
576
- const isPassedAllCiJob = isCiStateSuccess && allRequiredChecksPassed;
577
- const reviewThreads = pr.reviewThreads?.nodes || [];
578
- const isResolvedAllReviewComments = reviewThreads.length === 0 ||
579
- reviewThreads.every((thread) => thread.isResolved);
580
- // Note: compareWithBaseRef is not available in GraphQL timeline items.
581
- // To get accurate behindBy, a separate API call per PR would be needed.
582
- // For now, we set isBranchOutOfDate to false. Conflicts are still detected via mergeable.
583
- const isBranchOutOfDate = false;
584
- relatedPRsMap.set(prUrl, {
585
- url: prUrl,
586
- isConflicted,
587
- isPassedAllCiJob,
588
- isCiStateSuccess,
589
- isResolvedAllReviewComments,
590
- isBranchOutOfDate,
591
- missingRequiredCheckNames,
592
- });
674
+ }
593
675
  }
594
- hasNextPage = issueData.timelineItems.pageInfo.hasNextPage;
595
- after = issueData.timelineItems.pageInfo.endCursor;
676
+ reviewThreads(first: 100) {
677
+ nodes {
678
+ isResolved
679
+ }
680
+ }
681
+ }
596
682
  }
597
- return Array.from(relatedPRsMap.values());
683
+ }
684
+ `;
685
+ const response = await fetch('https://api.github.com/graphql', {
686
+ method: 'POST',
687
+ headers: {
688
+ Authorization: `Bearer ${this.token}`,
689
+ 'Content-Type': 'application/json',
690
+ },
691
+ body: JSON.stringify({
692
+ query,
693
+ variables: { owner, repo, prNumber },
694
+ }),
695
+ });
696
+ if (!response.ok) {
697
+ throw new Error('Failed to fetch pull request from GitHub GraphQL API');
698
+ }
699
+ const responseData = await response.json();
700
+ if (!isDirectPullRequestResponse(responseData)) {
701
+ throw new Error('Unexpected response shape when fetching pull request from GitHub GraphQL API');
702
+ }
703
+ if (responseData.errors) {
704
+ throw new Error(`GraphQL errors: ${JSON.stringify(responseData.errors)}`);
705
+ }
706
+ const pr = responseData.data?.repository?.pullRequest;
707
+ if (!pr || pr.state !== 'OPEN') {
708
+ return null;
709
+ }
710
+ return this.computePrStatus(pr.url, pr.headRefName, pr.baseRefName, pr);
598
711
  }
599
712
  }
600
713
  exports.GraphqlIssueRepository = GraphqlIssueRepository;