ghagga 2.8.1 → 3.1.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 (146) hide show
  1. package/LICENSE +21 -0
  2. package/dist/commands/__tests__/review-tui.test.js +2 -2
  3. package/dist/commands/__tests__/review-tui.test.js.map +1 -1
  4. package/dist/commands/audit.d.ts +23 -0
  5. package/dist/commands/audit.d.ts.map +1 -0
  6. package/dist/commands/audit.js +282 -0
  7. package/dist/commands/audit.js.map +1 -0
  8. package/dist/commands/audit.test.d.ts +10 -0
  9. package/dist/commands/audit.test.d.ts.map +1 -0
  10. package/dist/commands/audit.test.js +110 -0
  11. package/dist/commands/audit.test.js.map +1 -0
  12. package/dist/commands/dismiss.d.ts +14 -0
  13. package/dist/commands/dismiss.d.ts.map +1 -0
  14. package/dist/commands/dismiss.js +98 -0
  15. package/dist/commands/dismiss.js.map +1 -0
  16. package/dist/commands/feedback.d.ts +18 -0
  17. package/dist/commands/feedback.d.ts.map +1 -0
  18. package/dist/commands/feedback.js +122 -0
  19. package/dist/commands/feedback.js.map +1 -0
  20. package/dist/commands/login.js +3 -3
  21. package/dist/commands/login.js.map +1 -1
  22. package/dist/commands/login.test.js +3 -4
  23. package/dist/commands/login.test.js.map +1 -1
  24. package/dist/commands/review-commit-msg.test.js +2 -2
  25. package/dist/commands/review-commit-msg.test.js.map +1 -1
  26. package/dist/commands/review-output.test.js +30 -2
  27. package/dist/commands/review-output.test.js.map +1 -1
  28. package/dist/commands/review.d.ts +16 -0
  29. package/dist/commands/review.d.ts.map +1 -1
  30. package/dist/commands/review.js +239 -3
  31. package/dist/commands/review.js.map +1 -1
  32. package/dist/commands/review.mr-exit.test.d.ts +13 -0
  33. package/dist/commands/review.mr-exit.test.d.ts.map +1 -0
  34. package/dist/commands/review.mr-exit.test.js +190 -0
  35. package/dist/commands/review.mr-exit.test.js.map +1 -0
  36. package/dist/commands/review.postback-disclosure.test.d.ts +22 -0
  37. package/dist/commands/review.postback-disclosure.test.d.ts.map +1 -0
  38. package/dist/commands/review.postback-disclosure.test.js +192 -0
  39. package/dist/commands/review.postback-disclosure.test.js.map +1 -0
  40. package/dist/commands/review.pr-exit.test.d.ts +13 -0
  41. package/dist/commands/review.pr-exit.test.d.ts.map +1 -0
  42. package/dist/commands/review.pr-exit.test.js +162 -0
  43. package/dist/commands/review.pr-exit.test.js.map +1 -0
  44. package/dist/commands/review.pr-jenkins.test.d.ts +16 -0
  45. package/dist/commands/review.pr-jenkins.test.d.ts.map +1 -0
  46. package/dist/commands/review.pr-jenkins.test.js +106 -0
  47. package/dist/commands/review.pr-jenkins.test.js.map +1 -0
  48. package/dist/commands/review.pr-nativeid-fallback.test.d.ts +15 -0
  49. package/dist/commands/review.pr-nativeid-fallback.test.d.ts.map +1 -0
  50. package/dist/commands/review.pr-nativeid-fallback.test.js +151 -0
  51. package/dist/commands/review.pr-nativeid-fallback.test.js.map +1 -0
  52. package/dist/commands/review.test.js +48 -33
  53. package/dist/commands/review.test.js.map +1 -1
  54. package/dist/commands/status.d.ts.map +1 -1
  55. package/dist/commands/status.js +15 -2
  56. package/dist/commands/status.js.map +1 -1
  57. package/dist/commands/status.test.js +31 -10
  58. package/dist/commands/status.test.js.map +1 -1
  59. package/dist/index.d.ts +3 -3
  60. package/dist/index.js +116 -23
  61. package/dist/index.js.map +1 -1
  62. package/dist/lib/cli-github-client-port.d.ts +52 -0
  63. package/dist/lib/cli-github-client-port.d.ts.map +1 -0
  64. package/dist/lib/cli-github-client-port.js +199 -0
  65. package/dist/lib/cli-github-client-port.js.map +1 -0
  66. package/dist/lib/cli-github-client-port.test.d.ts +10 -0
  67. package/dist/lib/cli-github-client-port.test.d.ts.map +1 -0
  68. package/dist/lib/cli-github-client-port.test.js +47 -0
  69. package/dist/lib/cli-github-client-port.test.js.map +1 -0
  70. package/dist/lib/cli-gitlab-client-port.d.ts +62 -0
  71. package/dist/lib/cli-gitlab-client-port.d.ts.map +1 -0
  72. package/dist/lib/cli-gitlab-client-port.js +209 -0
  73. package/dist/lib/cli-gitlab-client-port.js.map +1 -0
  74. package/dist/lib/cli-gitlab-client-port.test.d.ts +9 -0
  75. package/dist/lib/cli-gitlab-client-port.test.d.ts.map +1 -0
  76. package/dist/lib/cli-gitlab-client-port.test.js +278 -0
  77. package/dist/lib/cli-gitlab-client-port.test.js.map +1 -0
  78. package/dist/lib/config.d.ts +12 -0
  79. package/dist/lib/config.d.ts.map +1 -1
  80. package/dist/lib/config.js +14 -2
  81. package/dist/lib/config.js.map +1 -1
  82. package/dist/lib/config.test.js +22 -3
  83. package/dist/lib/config.test.js.map +1 -1
  84. package/dist/lib/forge-postback.d.ts +72 -0
  85. package/dist/lib/forge-postback.d.ts.map +1 -0
  86. package/dist/lib/forge-postback.js +39 -0
  87. package/dist/lib/forge-postback.js.map +1 -0
  88. package/dist/lib/github-api.d.ts.map +1 -1
  89. package/dist/lib/github-api.js +15 -6
  90. package/dist/lib/github-api.js.map +1 -1
  91. package/dist/lib/github-api.test.js +24 -1
  92. package/dist/lib/github-api.test.js.map +1 -1
  93. package/dist/lib/gitlab-api.d.ts +50 -0
  94. package/dist/lib/gitlab-api.d.ts.map +1 -0
  95. package/dist/lib/gitlab-api.js +75 -0
  96. package/dist/lib/gitlab-api.js.map +1 -0
  97. package/dist/lib/gitlab-api.test.d.ts +2 -0
  98. package/dist/lib/gitlab-api.test.d.ts.map +1 -0
  99. package/dist/lib/gitlab-api.test.js +79 -0
  100. package/dist/lib/gitlab-api.test.js.map +1 -0
  101. package/dist/lib/gitlab-e2e.manual.test.d.ts +24 -0
  102. package/dist/lib/gitlab-e2e.manual.test.d.ts.map +1 -0
  103. package/dist/lib/gitlab-e2e.manual.test.js +57 -0
  104. package/dist/lib/gitlab-e2e.manual.test.js.map +1 -0
  105. package/dist/lib/gitlab-token.d.ts +17 -0
  106. package/dist/lib/gitlab-token.d.ts.map +1 -0
  107. package/dist/lib/gitlab-token.js +24 -0
  108. package/dist/lib/gitlab-token.js.map +1 -0
  109. package/dist/lib/gitlab-token.test.d.ts +2 -0
  110. package/dist/lib/gitlab-token.test.d.ts.map +1 -0
  111. package/dist/lib/gitlab-token.test.js +38 -0
  112. package/dist/lib/gitlab-token.test.js.map +1 -0
  113. package/dist/lib/oauth.test.js +0 -1
  114. package/dist/lib/oauth.test.js.map +1 -1
  115. package/dist/lib/pr-postback.d.ts +42 -0
  116. package/dist/lib/pr-postback.d.ts.map +1 -0
  117. package/dist/lib/pr-postback.js +44 -0
  118. package/dist/lib/pr-postback.js.map +1 -0
  119. package/dist/lib/pr-postback.test.d.ts +9 -0
  120. package/dist/lib/pr-postback.test.d.ts.map +1 -0
  121. package/dist/lib/pr-postback.test.js +196 -0
  122. package/dist/lib/pr-postback.test.js.map +1 -0
  123. package/dist/lib/pr-token.d.ts +15 -0
  124. package/dist/lib/pr-token.d.ts.map +1 -0
  125. package/dist/lib/pr-token.js +22 -0
  126. package/dist/lib/pr-token.js.map +1 -0
  127. package/dist/lib/pr-token.test.d.ts +2 -0
  128. package/dist/lib/pr-token.test.d.ts.map +1 -0
  129. package/dist/lib/pr-token.test.js +25 -0
  130. package/dist/lib/pr-token.test.js.map +1 -0
  131. package/dist/lib/providers.d.ts +29 -0
  132. package/dist/lib/providers.d.ts.map +1 -0
  133. package/dist/lib/providers.js +41 -0
  134. package/dist/lib/providers.js.map +1 -0
  135. package/dist/lib/providers.test.d.ts +9 -0
  136. package/dist/lib/providers.test.d.ts.map +1 -0
  137. package/dist/lib/providers.test.js +60 -0
  138. package/dist/lib/providers.test.js.map +1 -0
  139. package/dist/ui/__tests__/format.test.js +2 -2
  140. package/dist/ui/__tests__/format.test.js.map +1 -1
  141. package/dist/ui/__tests__/theme.test.js +3 -2
  142. package/dist/ui/__tests__/theme.test.js.map +1 -1
  143. package/dist/ui/theme.d.ts.map +1 -1
  144. package/dist/ui/theme.js +1 -0
  145. package/dist/ui/theme.js.map +1 -1
  146. package/package.json +18 -18
@@ -1 +1 @@
1
- {"version":3,"file":"status.test.js","sourceRoot":"","sources":["../../src/commands/status.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.test.js","sourceRoot":"","sources":["../../src/commands/status.test.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,14 +8,14 @@
8
8
  * ghagga status Show current auth and config
9
9
  * ghagga logout Clear stored credentials
10
10
  *
11
- * After "ghagga login", reviews use GitHub Models (gpt-4o-mini) for free.
11
+ * After "ghagga login", reviews use the gateway provider (model: auto).
12
12
  * You can override with --provider, --model, --api-key for other providers.
13
13
  *
14
14
  * Environment variables (override stored config):
15
15
  * GHAGGA_API_KEY API key for the LLM provider
16
- * GHAGGA_PROVIDER LLM provider: anthropic, openai, google, github, ollama, qwen, groq, cerebras, deepseek, openrouter
16
+ * GHAGGA_PROVIDER LLM provider: gateway, cli-bridge, ollama
17
17
  * GHAGGA_MODEL Model identifier
18
- * GITHUB_TOKEN GitHub token (fallback for github provider)
18
+ * GITHUB_TOKEN GitHub token (fallback auth for gateway / cli-bridge)
19
19
  * GHAGGA_MEMORY_BACKEND Memory backend: sqlite (default) or engram
20
20
  */
21
21
  import 'dotenv/config';
package/dist/index.js CHANGED
@@ -8,14 +8,14 @@
8
8
  * ghagga status Show current auth and config
9
9
  * ghagga logout Clear stored credentials
10
10
  *
11
- * After "ghagga login", reviews use GitHub Models (gpt-4o-mini) for free.
11
+ * After "ghagga login", reviews use the gateway provider (model: auto).
12
12
  * You can override with --provider, --model, --api-key for other providers.
13
13
  *
14
14
  * Environment variables (override stored config):
15
15
  * GHAGGA_API_KEY API key for the LLM provider
16
- * GHAGGA_PROVIDER LLM provider: anthropic, openai, google, github, ollama, qwen, groq, cerebras, deepseek, openrouter
16
+ * GHAGGA_PROVIDER LLM provider: gateway, cli-bridge, ollama
17
17
  * GHAGGA_MODEL Model identifier
18
- * GITHUB_TOKEN GitHub token (fallback for github provider)
18
+ * GITHUB_TOKEN GitHub token (fallback auth for gateway / cli-bridge)
19
19
  * GHAGGA_MEMORY_BACKEND Memory backend: sqlite (default) or engram
20
20
  */
21
21
  import 'dotenv/config';
@@ -24,6 +24,9 @@ import { dirname, resolve } from 'node:path';
24
24
  import { fileURLToPath } from 'node:url';
25
25
  import { Command } from 'commander';
26
26
  import { DEFAULT_MODELS } from 'ghagga-core';
27
+ import { auditCommand } from './commands/audit.js';
28
+ import { dismissCommand } from './commands/dismiss.js';
29
+ import { feedbackCommand } from './commands/feedback.js';
27
30
  import { healthCommand } from './commands/health.js';
28
31
  import { hooksCommand } from './commands/hooks/index.js';
29
32
  import { loginCommand } from './commands/login.js';
@@ -32,6 +35,7 @@ import { memoryCommand } from './commands/memory/index.js';
32
35
  import { reviewCommand } from './commands/review.js';
33
36
  import { statusCommand } from './commands/status.js';
34
37
  import { getStoredToken, loadConfig } from './lib/config.js';
38
+ import { isLegacyProvider } from './lib/providers.js';
35
39
  import * as tui from './ui/tui.js';
36
40
  // Read version from package.json at runtime (no hardcoded strings)
37
41
  const __dirname = dirname(fileURLToPath(import.meta.url));
@@ -98,23 +102,53 @@ program
98
102
  .option('--exit-on-issues', 'Exit with code 1 if critical/high issues found')
99
103
  .option('--quick', 'Static analysis only — skip LLM review')
100
104
  .option('--enhance', 'Enable AI-powered post-analysis enhancement')
105
+ .option('--pr <number>', 'Post (idempotently upsert) the review summary as a comment on a GitHub PR')
106
+ .option('--mr <number>', 'Post (idempotently upsert) the review summary as a comment on a GitLab MR')
107
+ .option('--pr-soft-fail', 'Make a failed --pr/--mr post-back non-blocking (warn + keep exit 0 instead of failing the job)')
101
108
  .option('--issue <target>', 'Create/update a GitHub issue with review results (use "new" or issue number)')
109
+ .option('--lenses <names>', 'Comma-separated lens names for fan-out mode (e.g., "security,wcag")')
110
+ .option('--lens-dir <path>', 'Path to custom lens definitions directory (default: .ghagga/lenses/)')
102
111
  .option('--memory-backend <type>', 'Memory backend: sqlite (default) or engram (env: GHAGGA_MEMORY_BACKEND)', 'sqlite')
103
112
  .action(async (path, options) => {
104
113
  // ── Auto-resolve auth from stored config ──────────────────
105
114
  const config = loadConfig();
106
115
  const storedToken = getStoredToken();
107
116
  // Priority: CLI flag > env var > stored config
117
+ let providerFromStoredConfig = false;
108
118
  if (!options.provider) {
109
- options.provider = config.defaultProvider ?? 'github';
119
+ options.provider = config.defaultProvider ?? 'gateway';
120
+ providerFromStoredConfig = true;
110
121
  }
122
+ let modelFromStoredConfig = false;
111
123
  if (!options.model) {
112
124
  options.model = config.defaultModel ?? undefined;
125
+ modelFromStoredConfig = options.model !== undefined;
113
126
  }
114
- // Auto-resolve API key: CLI flag > env var > GITHUB_TOKEN > stored token
127
+ // ── Read-time migration: legacy provider stored by an old login ──
128
+ // Only applies to STORED CONFIG values — explicit --provider flags and
129
+ // env vars still fail loudly below so the user fixes their invocation.
130
+ if (providerFromStoredConfig && isLegacyProvider(options.provider)) {
131
+ const migrationWarning = `⚠️ Stored provider '${options.provider}' is no longer supported — using 'gateway' instead.\n` +
132
+ ` Run "ghagga login" again to refresh your saved config.`;
133
+ // When machine output (--output) is requested, stdout is reserved for
134
+ // SARIF/JSON — route this diagnostic to stderr to keep stdout clean.
135
+ if (options.output) {
136
+ console.error(migrationWarning);
137
+ }
138
+ else {
139
+ tui.log.warn(migrationWarning);
140
+ }
141
+ options.provider = 'gateway';
142
+ if (modelFromStoredConfig) {
143
+ // Stored model (e.g. 'gpt-4o-mini') belongs to the legacy provider —
144
+ // drop it so the gateway default ('auto') applies.
145
+ options.model = undefined;
146
+ }
147
+ }
148
+ // Auto-resolve API key: CLI flag > env var > stored token (gateway/cli-bridge)
115
149
  if (!options.apiKey) {
116
- if (options.provider === 'github') {
117
- options.apiKey = process.env.GITHUB_TOKEN ?? storedToken ?? undefined;
150
+ if (options.provider === 'gateway' || options.provider === 'cli-bridge') {
151
+ options.apiKey = storedToken ?? undefined;
118
152
  }
119
153
  }
120
154
  // ── Validate mode ─────────────────────────────────────────
@@ -123,17 +157,19 @@ program
123
157
  tui.log.error(`❌ Invalid mode "${options.mode}". Choose from: ${validModes.join(', ')}`);
124
158
  process.exit(1);
125
159
  }
126
- // ── Validate provider ─────────────────────────────────────
127
- const validProviders = [
128
- 'anthropic',
129
- 'openai',
130
- 'google',
131
- 'github',
132
- 'ollama',
133
- 'qwen',
134
- ];
135
- if (!validProviders.includes(options.provider)) {
136
- tui.log.error(`❌ Invalid provider "${options.provider}". Choose from: ${validProviders.join(', ')}`);
160
+ // ── Validate / migrate provider ───────────────────────────
161
+ const currentProviders = ['gateway', 'cli-bridge', 'ollama'];
162
+ // Explicit legacy values (--provider flag / env var) are a hard error.
163
+ // Stored-config legacy values were already remapped above.
164
+ if (isLegacyProvider(options.provider)) {
165
+ tui.log.error(`\n❌ Provider '${options.provider}' is no longer supported directly.\n` +
166
+ ` → Set --provider gateway and configure credentials in mcp-llm-bridge.\n` +
167
+ ` → See: https://github.com/JNZader/mcp-llm-bridge\n\n` +
168
+ ` Or use --provider cli-bridge for local CLI tools (Claude Code, OpenCode, Copilot).\n`);
169
+ process.exit(1);
170
+ }
171
+ if (!currentProviders.includes(options.provider)) {
172
+ tui.log.error(`❌ Invalid provider "${options.provider}". Choose from: ${currentProviders.join(', ')}`);
137
173
  process.exit(1);
138
174
  }
139
175
  // ── Resolve output format (--output takes priority over deprecated --format) ──
@@ -156,18 +192,45 @@ program
156
192
  }
157
193
  outputFormat = options.format;
158
194
  }
159
- // ── Validate API key (not required for ollama or --quick mode) ──
160
- if (!options.apiKey && options.provider !== 'ollama' && !options.quick) {
195
+ // ── Validate API key ──────────────────────────────────────
196
+ // ollama, cli-bridge, and gateway (when self-hosted) don't require a key.
197
+ const noKeyRequired = options.provider === 'ollama' ||
198
+ options.provider === 'cli-bridge' ||
199
+ options.provider === 'gateway';
200
+ if (!options.apiKey && !noKeyRequired && !options.quick) {
161
201
  tui.log.error('❌ No API key available.\n');
162
- tui.log.error(' Quick fix: run "ghagga login" to authenticate with GitHub (free!)');
202
+ tui.log.error(' Quick fix: run "ghagga login" to authenticate.');
163
203
  tui.log.error(' Or pass --api-key <key> or set GHAGGA_API_KEY.');
164
- tui.log.error(' Or use --provider ollama for local models (no key needed).\n');
204
+ tui.log.error(' Or use --provider ollama / --provider cli-bridge for key-free review.\n');
165
205
  process.exit(1);
166
206
  }
167
- // Ollama doesn't need an API key — use a placeholder
207
+ // Ollama doesn't need an API key — use a placeholder so the pipeline doesn't error
168
208
  if (options.provider === 'ollama' && !options.apiKey) {
169
209
  options.apiKey = 'ollama';
170
210
  }
211
+ // ── Validate --pr / --mr (mutually exclusive positive ints) ──
212
+ if (options.pr != null && options.mr != null) {
213
+ tui.log.error('❌ --pr and --mr are mutually exclusive. Use one or the other.');
214
+ process.exit(1);
215
+ }
216
+ let prNumber;
217
+ if (options.pr != null) {
218
+ const parsed = Number.parseInt(options.pr, 10);
219
+ if (Number.isNaN(parsed) || parsed <= 0) {
220
+ tui.log.error(`❌ Invalid --pr "${options.pr}". Provide a positive PR number.`);
221
+ process.exit(1);
222
+ }
223
+ prNumber = parsed;
224
+ }
225
+ let mrNumber;
226
+ if (options.mr != null) {
227
+ const parsed = Number.parseInt(options.mr, 10);
228
+ if (Number.isNaN(parsed) || parsed <= 0) {
229
+ tui.log.error(`❌ Invalid --mr "${options.mr}". Provide a positive MR number.`);
230
+ process.exit(1);
231
+ }
232
+ mrNumber = parsed;
233
+ }
171
234
  // ── Resolve model default ─────────────────────────────────
172
235
  const provider = options.provider;
173
236
  const model = options.model ?? DEFAULT_MODELS[provider];
@@ -191,9 +254,14 @@ program
191
254
  quick: options.quick ?? false,
192
255
  enhance: options.enhance ?? false,
193
256
  issue: options.issue,
257
+ pr: prNumber,
258
+ mr: mrNumber,
259
+ prSoftFail: options.prSoftFail ?? false,
194
260
  disableTools: options.disableTool ?? [],
195
261
  enableTools: options.enableTool ?? [],
196
262
  listTools: options.listTools ?? false,
263
+ lenses: options.lenses,
264
+ lensDir: options.lensDir,
197
265
  });
198
266
  });
199
267
  // ─── Health ─────────────────────────────────────────────────────
@@ -210,8 +278,33 @@ program
210
278
  top: Number.parseInt(options.top, 10) || 5,
211
279
  });
212
280
  });
281
+ // ─── Audit ──────────────────────────────────────────────────────
282
+ program
283
+ .command('audit')
284
+ .description('Full-project security and code-quality audit')
285
+ .argument('[path]', 'Path to the repository', '.')
286
+ .option('--quick', 'Static analysis only — skip LLM audit')
287
+ .option('-p, --provider <provider>', 'LLM provider (auto-detected from login)', process.env.GHAGGA_PROVIDER)
288
+ .option('--model <model>', 'LLM model identifier', process.env.GHAGGA_MODEL)
289
+ .option('--api-key <key>', 'LLM provider API key', process.env.GHAGGA_API_KEY)
290
+ .option('-o, --output <format>', 'Output format: text | json')
291
+ .option('--save', 'Persist audit result to history file')
292
+ .action(async (path, options) => {
293
+ await auditCommand(path, {
294
+ quick: options.quick ?? false,
295
+ provider: options.provider,
296
+ model: options.model,
297
+ apiKey: options.apiKey,
298
+ output: options.output,
299
+ save: options.save ?? false,
300
+ });
301
+ });
213
302
  // ─── Memory ─────────────────────────────────────────────────────
214
303
  program.addCommand(memoryCommand);
304
+ // ─── Dismiss ─────────────────────────────────────────────────────
305
+ program.addCommand(dismissCommand);
306
+ // ─── Feedback ────────────────────────────────────────────────────
307
+ program.addCommand(feedbackCommand);
215
308
  // ─── Hooks ──────────────────────────────────────────────────────
216
309
  program.addCommand(hooksCommand);
217
310
  program.parse();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * CLI-side implementation of the forge `GitHubClientPort`.
3
+ *
4
+ * The `GitHubForgeAdapter` (packages/forge) depends on an injected
5
+ * {@link GitHubClientPort} (dependency inversion — forge MUST NOT import any
6
+ * concrete HTTP client). The SERVER injects `apps/server/src/github/client.ts`.
7
+ * The CLI has its OWN minimal client built on the same native-fetch +
8
+ * {@link apiHeaders} / {@link GitHubApiError} pattern as `github-api.ts`.
9
+ *
10
+ * SCOPE (P3 — PR summary post-back only):
11
+ * REAL members — the write/idempotency fns `upsertSummaryComment` folds over:
12
+ * - postComment (POST /repos/{o}/{r}/issues/{n}/comments)
13
+ * - findExistingComment(GET /repos/{o}/{r}/issues/{n}/comments — marker match)
14
+ * - deleteComment (DELETE /repos/{o}/{r}/issues/comments/{id})
15
+ * - updateComment (PATCH /repos/{o}/{r}/issues/comments/{id})
16
+ * STUBBED members — read fns the CLI never needs (it has the diff locally and
17
+ * does not consume reactions / graph in the `--pr` flow):
18
+ * - fetchPRDiff, fetchPRDetails, getPRFileList, getPRCommitMessages
19
+ * - addCommentReaction
20
+ * - fetchGraphFromBranch, fetchGraphMetadata
21
+ * Each stub THROWS so any accidental call surfaces loudly instead of silently
22
+ * returning bad data. The `--pr` post-back path (find → delete → post) only
23
+ * ever touches the REAL members; see pr-postback.ts + tests.
24
+ *
25
+ * The stale-comment match here mirrors the server EXACTLY: bot-authored-or-not is
26
+ * NOT inspected (the CLI token's own comments carry the marker), the match is the
27
+ * fixed `<!-- ghagga-review -->` marker substring (REVIEW_COMMENT_MARKER), latest
28
+ * = last in chronological order, the rest are stale. This keeps idempotency
29
+ * byte-compatible with the server post-back.
30
+ */
31
+ import type { GitHubClientPort } from 'ghagga-forge';
32
+ /**
33
+ * Resolve the GitHub NUMERIC repo id from an owner/name pair (forge identity).
34
+ *
35
+ * `GET /repos/{owner}/{repo}` → `.id`. owner/repo is the MUTABLE display path
36
+ * (a rename/transfer changes it but NOT the numeric id), so the numeric id is the
37
+ * canonical {@link RepoRef.nativeId}. This MIRRORS the GitLab `--mr` flow's
38
+ * {@link resolveGitLabProjectId} (one pre-construction call that turns the mutable
39
+ * path into the immutable id). It is NOT part of the {@link GitHubClientPort} — the
40
+ * adapter's actual API calls still key on owner/repo from its ctor; nativeId is
41
+ * identity metadata only.
42
+ *
43
+ * @returns the numeric repo id as a STRING (RepoRef.nativeId is a string,
44
+ * consistent with GitLab's `String(id)`).
45
+ */
46
+ export declare function resolveGitHubRepoId(owner: string, repo: string, token: string): Promise<string>;
47
+ /**
48
+ * Build a {@link GitHubClientPort} backed by native fetch for the CLI `--pr`
49
+ * post-back. Only the comment-write members are real; read members throw.
50
+ */
51
+ export declare function createCliGitHubClientPort(): GitHubClientPort;
52
+ //# sourceMappingURL=cli-github-client-port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-github-client-port.d.ts","sourceRoot":"","sources":["../../src/lib/cli-github-client-port.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAyB,MAAM,cAAc,CAAC;AAoC5E;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAWD;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,gBAAgB,CAoH5D"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * CLI-side implementation of the forge `GitHubClientPort`.
3
+ *
4
+ * The `GitHubForgeAdapter` (packages/forge) depends on an injected
5
+ * {@link GitHubClientPort} (dependency inversion — forge MUST NOT import any
6
+ * concrete HTTP client). The SERVER injects `apps/server/src/github/client.ts`.
7
+ * The CLI has its OWN minimal client built on the same native-fetch +
8
+ * {@link apiHeaders} / {@link GitHubApiError} pattern as `github-api.ts`.
9
+ *
10
+ * SCOPE (P3 — PR summary post-back only):
11
+ * REAL members — the write/idempotency fns `upsertSummaryComment` folds over:
12
+ * - postComment (POST /repos/{o}/{r}/issues/{n}/comments)
13
+ * - findExistingComment(GET /repos/{o}/{r}/issues/{n}/comments — marker match)
14
+ * - deleteComment (DELETE /repos/{o}/{r}/issues/comments/{id})
15
+ * - updateComment (PATCH /repos/{o}/{r}/issues/comments/{id})
16
+ * STUBBED members — read fns the CLI never needs (it has the diff locally and
17
+ * does not consume reactions / graph in the `--pr` flow):
18
+ * - fetchPRDiff, fetchPRDetails, getPRFileList, getPRCommitMessages
19
+ * - addCommentReaction
20
+ * - fetchGraphFromBranch, fetchGraphMetadata
21
+ * Each stub THROWS so any accidental call surfaces loudly instead of silently
22
+ * returning bad data. The `--pr` post-back path (find → delete → post) only
23
+ * ever touches the REAL members; see pr-postback.ts + tests.
24
+ *
25
+ * The stale-comment match here mirrors the server EXACTLY: bot-authored-or-not is
26
+ * NOT inspected (the CLI token's own comments carry the marker), the match is the
27
+ * fixed `<!-- ghagga-review -->` marker substring (REVIEW_COMMENT_MARKER), latest
28
+ * = last in chronological order, the rest are stale. This keeps idempotency
29
+ * byte-compatible with the server post-back.
30
+ */
31
+ import { REVIEW_COMMENT_MARKER } from 'ghagga-core';
32
+ import { GitHubApiError } from './github-api.js';
33
+ // The fixed marker the summary body carries. SINGLE SOURCE OF TRUTH: imported
34
+ // from ghagga-core (REVIEW_COMMENT_MARKER) so the stale-comment match here can
35
+ // never drift from the marker the body actually carries.
36
+ const REVIEW_MARKER = REVIEW_COMMENT_MARKER;
37
+ const API_BASE = 'https://api.github.com';
38
+ /**
39
+ * Per-request timeout for the CLI's GitHub fetch calls. Mirrors the server
40
+ * client's `AbortSignal.timeout(10_000)` so a slow/hung GitHub can never hang a
41
+ * CI job indefinitely — the fetch aborts and surfaces as a thrown error.
42
+ */
43
+ const REQUEST_TIMEOUT_MS = 10_000;
44
+ /** Shared auth/version headers — same shape as github-api.ts apiHeaders. */
45
+ function apiHeaders(token) {
46
+ return {
47
+ Authorization: `Bearer ${token}`,
48
+ Accept: 'application/vnd.github+json',
49
+ 'X-GitHub-Api-Version': '2022-11-28',
50
+ 'Content-Type': 'application/json',
51
+ };
52
+ }
53
+ async function failOn(res, action) {
54
+ const body = await res.text();
55
+ throw new GitHubApiError(`GitHub API error ${action}: ${res.status} ${res.statusText}`, res.status, body);
56
+ }
57
+ /**
58
+ * Resolve the GitHub NUMERIC repo id from an owner/name pair (forge identity).
59
+ *
60
+ * `GET /repos/{owner}/{repo}` → `.id`. owner/repo is the MUTABLE display path
61
+ * (a rename/transfer changes it but NOT the numeric id), so the numeric id is the
62
+ * canonical {@link RepoRef.nativeId}. This MIRRORS the GitLab `--mr` flow's
63
+ * {@link resolveGitLabProjectId} (one pre-construction call that turns the mutable
64
+ * path into the immutable id). It is NOT part of the {@link GitHubClientPort} — the
65
+ * adapter's actual API calls still key on owner/repo from its ctor; nativeId is
66
+ * identity metadata only.
67
+ *
68
+ * @returns the numeric repo id as a STRING (RepoRef.nativeId is a string,
69
+ * consistent with GitLab's `String(id)`).
70
+ */
71
+ export async function resolveGitHubRepoId(owner, repo, token) {
72
+ const url = `${API_BASE}/repos/${owner}/${repo}`;
73
+ const res = await fetch(url, {
74
+ headers: apiHeaders(token),
75
+ signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
76
+ });
77
+ if (!res.ok)
78
+ await failOn(res, 'resolving repo id');
79
+ const data = (await res.json());
80
+ if (typeof data.id !== 'number') {
81
+ throw new GitHubApiError(`GitHub API error resolving repo id: response had no numeric "id" for "${owner}/${repo}"`, res.status, JSON.stringify(data));
82
+ }
83
+ return String(data.id);
84
+ }
85
+ /** Thrown by every stubbed port member so an accidental call is loud, not silent. */
86
+ function unsupported(member) {
87
+ throw new Error(`CliGitHubClientPort.${member} is not supported in CLI context — the CLI only ` +
88
+ 'posts the PR summary comment (postComment/findExistingComment/deleteComment/' +
89
+ 'updateComment). The diff/commits/file-list/graph are sourced locally.');
90
+ }
91
+ /**
92
+ * Build a {@link GitHubClientPort} backed by native fetch for the CLI `--pr`
93
+ * post-back. Only the comment-write members are real; read members throw.
94
+ */
95
+ export function createCliGitHubClientPort() {
96
+ return {
97
+ // ── REAL: PR/issue comment writes (the upsert fold) ──────────
98
+ async postComment(owner, repo, prNumber, body, token) {
99
+ const url = `${API_BASE}/repos/${owner}/${repo}/issues/${prNumber}/comments`;
100
+ const res = await fetch(url, {
101
+ method: 'POST',
102
+ headers: apiHeaders(token),
103
+ body: JSON.stringify({ body }),
104
+ signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
105
+ });
106
+ if (!res.ok)
107
+ await failOn(res, 'posting PR comment');
108
+ const data = (await res.json());
109
+ return { id: data.id };
110
+ },
111
+ async findExistingComment(owner, repo, prNumber, token) {
112
+ const baseUrl = `${API_BASE}/repos/${owner}/${repo}/issues/${prNumber}/comments`;
113
+ // Paginate until exhausted (a page with < 100 items is the last page).
114
+ // MAX_PAGES is a safety upper bound (50 × 100 = 5000 comments) so a
115
+ // pathological PR can't loop forever; if hit we log rather than silently
116
+ // truncate, since a stale marker beyond the bound would yield a DUPLICATE
117
+ // comment. (Was 5 pages / 500 items — backlog #6.)
118
+ const MAX_PAGES = 50;
119
+ const allMatchIds = [];
120
+ for (let page = 1; page <= MAX_PAGES; page++) {
121
+ const url = `${baseUrl}?per_page=100&page=${page}`;
122
+ const res = await fetch(url, {
123
+ headers: apiHeaders(token),
124
+ signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
125
+ });
126
+ if (!res.ok)
127
+ await failOn(res, 'listing PR comments');
128
+ const comments = (await res.json());
129
+ for (const comment of comments) {
130
+ if (comment.body.includes(REVIEW_MARKER)) {
131
+ allMatchIds.push(comment.id);
132
+ }
133
+ }
134
+ if (comments.length < 100)
135
+ break;
136
+ if (page === MAX_PAGES) {
137
+ console.warn(`[ghagga] findExistingComment hit MAX_PAGES (${MAX_PAGES}) for ${owner}/${repo}#${prNumber}; comment listing may be truncated`);
138
+ }
139
+ }
140
+ if (allMatchIds.length === 0)
141
+ return null;
142
+ // Latest = last (GitHub returns oldest first); the rest are stale.
143
+ const latestId = allMatchIds[allMatchIds.length - 1];
144
+ if (latestId == null)
145
+ return null;
146
+ const staleIds = allMatchIds.slice(0, -1);
147
+ return { latestId, staleIds };
148
+ },
149
+ async deleteComment(owner, repo, commentId, token) {
150
+ const url = `${API_BASE}/repos/${owner}/${repo}/issues/comments/${commentId}`;
151
+ const res = await fetch(url, {
152
+ method: 'DELETE',
153
+ headers: apiHeaders(token),
154
+ signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
155
+ });
156
+ // The adapter's upsert tolerates delete failures (best-effort), but we still
157
+ // surface a non-2xx so `deleted[]` only reflects genuinely-removed ids.
158
+ if (!res.ok && res.status !== 404)
159
+ await failOn(res, 'deleting PR comment');
160
+ },
161
+ async updateComment(owner, repo, commentId, body, token) {
162
+ const url = `${API_BASE}/repos/${owner}/${repo}/issues/comments/${commentId}`;
163
+ const res = await fetch(url, {
164
+ method: 'PATCH',
165
+ headers: apiHeaders(token),
166
+ body: JSON.stringify({ body }),
167
+ signal: AbortSignal.timeout(REQUEST_TIMEOUT_MS),
168
+ });
169
+ if (!res.ok)
170
+ await failOn(res, 'updating PR comment');
171
+ },
172
+ // ── STUBBED: read/reaction/graph members (never hit in --pr flow) ──
173
+ // Declared `async` so the throw surfaces as a REJECTED promise (not a sync
174
+ // throw): callers `await` these, and a rejected promise is the contract-true
175
+ // failure shape — also keeps test spies/`.rejects` well-behaved.
176
+ async fetchPRDiff() {
177
+ return unsupported('fetchPRDiff');
178
+ },
179
+ async fetchPRDetails() {
180
+ return unsupported('fetchPRDetails');
181
+ },
182
+ async getPRFileList() {
183
+ return unsupported('getPRFileList');
184
+ },
185
+ async getPRCommitMessages() {
186
+ return unsupported('getPRCommitMessages');
187
+ },
188
+ async addCommentReaction(_owner, _repo, _commentId, _reaction, _token) {
189
+ return unsupported('addCommentReaction');
190
+ },
191
+ async fetchGraphFromBranch() {
192
+ return unsupported('fetchGraphFromBranch');
193
+ },
194
+ async fetchGraphMetadata() {
195
+ return unsupported('fetchGraphMetadata');
196
+ },
197
+ };
198
+ }
199
+ //# sourceMappingURL=cli-github-client-port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-github-client-port.js","sourceRoot":"","sources":["../../src/lib/cli-github-client-port.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * resolveGitHubRepoId — numeric repo id resolution for RepoRef.nativeId.
3
+ *
4
+ * The CLI `--pr` flow resolves the IMMUTABLE numeric GitHub repo id once before
5
+ * the post-back (mirroring the GitLab `--mr` flow's resolveGitLabProjectId). We
6
+ * mock ONLY `fetch` (the network seam) so this exercises the genuine GET
7
+ * /repos/{owner}/{repo} → .id call + its error handling.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=cli-github-client-port.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-github-client-port.test.d.ts","sourceRoot":"","sources":["../../src/lib/cli-github-client-port.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}