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.
- package/LICENSE +21 -0
- package/dist/commands/__tests__/review-tui.test.js +2 -2
- package/dist/commands/__tests__/review-tui.test.js.map +1 -1
- package/dist/commands/audit.d.ts +23 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +282 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/audit.test.d.ts +10 -0
- package/dist/commands/audit.test.d.ts.map +1 -0
- package/dist/commands/audit.test.js +110 -0
- package/dist/commands/audit.test.js.map +1 -0
- package/dist/commands/dismiss.d.ts +14 -0
- package/dist/commands/dismiss.d.ts.map +1 -0
- package/dist/commands/dismiss.js +98 -0
- package/dist/commands/dismiss.js.map +1 -0
- package/dist/commands/feedback.d.ts +18 -0
- package/dist/commands/feedback.d.ts.map +1 -0
- package/dist/commands/feedback.js +122 -0
- package/dist/commands/feedback.js.map +1 -0
- package/dist/commands/login.js +3 -3
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/login.test.js +3 -4
- package/dist/commands/login.test.js.map +1 -1
- package/dist/commands/review-commit-msg.test.js +2 -2
- package/dist/commands/review-commit-msg.test.js.map +1 -1
- package/dist/commands/review-output.test.js +30 -2
- package/dist/commands/review-output.test.js.map +1 -1
- package/dist/commands/review.d.ts +16 -0
- package/dist/commands/review.d.ts.map +1 -1
- package/dist/commands/review.js +239 -3
- package/dist/commands/review.js.map +1 -1
- package/dist/commands/review.mr-exit.test.d.ts +13 -0
- package/dist/commands/review.mr-exit.test.d.ts.map +1 -0
- package/dist/commands/review.mr-exit.test.js +190 -0
- package/dist/commands/review.mr-exit.test.js.map +1 -0
- package/dist/commands/review.postback-disclosure.test.d.ts +22 -0
- package/dist/commands/review.postback-disclosure.test.d.ts.map +1 -0
- package/dist/commands/review.postback-disclosure.test.js +192 -0
- package/dist/commands/review.postback-disclosure.test.js.map +1 -0
- package/dist/commands/review.pr-exit.test.d.ts +13 -0
- package/dist/commands/review.pr-exit.test.d.ts.map +1 -0
- package/dist/commands/review.pr-exit.test.js +162 -0
- package/dist/commands/review.pr-exit.test.js.map +1 -0
- package/dist/commands/review.pr-jenkins.test.d.ts +16 -0
- package/dist/commands/review.pr-jenkins.test.d.ts.map +1 -0
- package/dist/commands/review.pr-jenkins.test.js +106 -0
- package/dist/commands/review.pr-jenkins.test.js.map +1 -0
- package/dist/commands/review.pr-nativeid-fallback.test.d.ts +15 -0
- package/dist/commands/review.pr-nativeid-fallback.test.d.ts.map +1 -0
- package/dist/commands/review.pr-nativeid-fallback.test.js +151 -0
- package/dist/commands/review.pr-nativeid-fallback.test.js.map +1 -0
- package/dist/commands/review.test.js +48 -33
- package/dist/commands/review.test.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +15 -2
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/status.test.js +31 -10
- package/dist/commands/status.test.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +116 -23
- package/dist/index.js.map +1 -1
- package/dist/lib/cli-github-client-port.d.ts +52 -0
- package/dist/lib/cli-github-client-port.d.ts.map +1 -0
- package/dist/lib/cli-github-client-port.js +199 -0
- package/dist/lib/cli-github-client-port.js.map +1 -0
- package/dist/lib/cli-github-client-port.test.d.ts +10 -0
- package/dist/lib/cli-github-client-port.test.d.ts.map +1 -0
- package/dist/lib/cli-github-client-port.test.js +47 -0
- package/dist/lib/cli-github-client-port.test.js.map +1 -0
- package/dist/lib/cli-gitlab-client-port.d.ts +62 -0
- package/dist/lib/cli-gitlab-client-port.d.ts.map +1 -0
- package/dist/lib/cli-gitlab-client-port.js +209 -0
- package/dist/lib/cli-gitlab-client-port.js.map +1 -0
- package/dist/lib/cli-gitlab-client-port.test.d.ts +9 -0
- package/dist/lib/cli-gitlab-client-port.test.d.ts.map +1 -0
- package/dist/lib/cli-gitlab-client-port.test.js +278 -0
- package/dist/lib/cli-gitlab-client-port.test.js.map +1 -0
- package/dist/lib/config.d.ts +12 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +14 -2
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/config.test.js +22 -3
- package/dist/lib/config.test.js.map +1 -1
- package/dist/lib/forge-postback.d.ts +72 -0
- package/dist/lib/forge-postback.d.ts.map +1 -0
- package/dist/lib/forge-postback.js +39 -0
- package/dist/lib/forge-postback.js.map +1 -0
- package/dist/lib/github-api.d.ts.map +1 -1
- package/dist/lib/github-api.js +15 -6
- package/dist/lib/github-api.js.map +1 -1
- package/dist/lib/github-api.test.js +24 -1
- package/dist/lib/github-api.test.js.map +1 -1
- package/dist/lib/gitlab-api.d.ts +50 -0
- package/dist/lib/gitlab-api.d.ts.map +1 -0
- package/dist/lib/gitlab-api.js +75 -0
- package/dist/lib/gitlab-api.js.map +1 -0
- package/dist/lib/gitlab-api.test.d.ts +2 -0
- package/dist/lib/gitlab-api.test.d.ts.map +1 -0
- package/dist/lib/gitlab-api.test.js +79 -0
- package/dist/lib/gitlab-api.test.js.map +1 -0
- package/dist/lib/gitlab-e2e.manual.test.d.ts +24 -0
- package/dist/lib/gitlab-e2e.manual.test.d.ts.map +1 -0
- package/dist/lib/gitlab-e2e.manual.test.js +57 -0
- package/dist/lib/gitlab-e2e.manual.test.js.map +1 -0
- package/dist/lib/gitlab-token.d.ts +17 -0
- package/dist/lib/gitlab-token.d.ts.map +1 -0
- package/dist/lib/gitlab-token.js +24 -0
- package/dist/lib/gitlab-token.js.map +1 -0
- package/dist/lib/gitlab-token.test.d.ts +2 -0
- package/dist/lib/gitlab-token.test.d.ts.map +1 -0
- package/dist/lib/gitlab-token.test.js +38 -0
- package/dist/lib/gitlab-token.test.js.map +1 -0
- package/dist/lib/oauth.test.js +0 -1
- package/dist/lib/oauth.test.js.map +1 -1
- package/dist/lib/pr-postback.d.ts +42 -0
- package/dist/lib/pr-postback.d.ts.map +1 -0
- package/dist/lib/pr-postback.js +44 -0
- package/dist/lib/pr-postback.js.map +1 -0
- package/dist/lib/pr-postback.test.d.ts +9 -0
- package/dist/lib/pr-postback.test.d.ts.map +1 -0
- package/dist/lib/pr-postback.test.js +196 -0
- package/dist/lib/pr-postback.test.js.map +1 -0
- package/dist/lib/pr-token.d.ts +15 -0
- package/dist/lib/pr-token.d.ts.map +1 -0
- package/dist/lib/pr-token.js +22 -0
- package/dist/lib/pr-token.js.map +1 -0
- package/dist/lib/pr-token.test.d.ts +2 -0
- package/dist/lib/pr-token.test.d.ts.map +1 -0
- package/dist/lib/pr-token.test.js +25 -0
- package/dist/lib/pr-token.test.js.map +1 -0
- package/dist/lib/providers.d.ts +29 -0
- package/dist/lib/providers.d.ts.map +1 -0
- package/dist/lib/providers.js +41 -0
- package/dist/lib/providers.js.map +1 -0
- package/dist/lib/providers.test.d.ts +9 -0
- package/dist/lib/providers.test.d.ts.map +1 -0
- package/dist/lib/providers.test.js +60 -0
- package/dist/lib/providers.test.js.map +1 -0
- package/dist/ui/__tests__/format.test.js +2 -2
- package/dist/ui/__tests__/format.test.js.map +1 -1
- package/dist/ui/__tests__/theme.test.js +3 -2
- package/dist/ui/__tests__/theme.test.js.map +1 -1
- package/dist/ui/theme.d.ts.map +1 -1
- package/dist/ui/theme.js +1 -0
- package/dist/ui/theme.js.map +1 -1
- 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
|
|
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:
|
|
16
|
+
* GHAGGA_PROVIDER LLM provider: gateway, cli-bridge, ollama
|
|
17
17
|
* GHAGGA_MODEL Model identifier
|
|
18
|
-
* GITHUB_TOKEN GitHub token (fallback for
|
|
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
|
|
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:
|
|
16
|
+
* GHAGGA_PROVIDER LLM provider: gateway, cli-bridge, ollama
|
|
17
17
|
* GHAGGA_MODEL Model identifier
|
|
18
|
-
* GITHUB_TOKEN GitHub token (fallback for
|
|
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 ?? '
|
|
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
|
-
//
|
|
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 === '
|
|
117
|
-
options.apiKey =
|
|
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
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
'
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
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
|
|
160
|
-
|
|
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
|
|
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
|
|
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"}
|