@diff-review-system/drs 1.0.0 → 2.0.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/.opencode/agent/describe/pr-describer.md +221 -0
- package/.opencode/agent/review/documentation.md +56 -0
- package/.opencode/agent/review/performance.md +32 -130
- package/.opencode/agent/review/quality.md +36 -104
- package/.opencode/agent/review/security.md +32 -94
- package/.opencode/agent/review/style.md +26 -10
- package/.opencode/agent/review/unified-reviewer.md +74 -0
- package/.opencode/opencode.jsonc +4 -41
- package/.opencode/tool/write_json_output.ts +24 -0
- package/README.md +215 -82
- package/dist/ci/runner.d.ts.map +1 -1
- package/dist/ci/runner.js +4 -4
- package/dist/ci/runner.js.map +1 -1
- package/dist/cli/describe-mr.d.ts +11 -0
- package/dist/cli/describe-mr.d.ts.map +1 -0
- package/dist/cli/describe-mr.js +104 -0
- package/dist/cli/describe-mr.js.map +1 -0
- package/dist/cli/describe-pr.d.ts +12 -0
- package/dist/cli/describe-pr.d.ts.map +1 -0
- package/dist/cli/describe-pr.js +105 -0
- package/dist/cli/describe-pr.js.map +1 -0
- package/dist/cli/index.js +234 -20
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init.d.ts +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +337 -120
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/post-comments.d.ts +15 -0
- package/dist/cli/post-comments.d.ts.map +1 -0
- package/dist/cli/post-comments.js +216 -0
- package/dist/cli/post-comments.js.map +1 -0
- package/dist/cli/review-local.d.ts +3 -0
- package/dist/cli/review-local.d.ts.map +1 -1
- package/dist/cli/review-local.js +46 -63
- package/dist/cli/review-local.js.map +1 -1
- package/dist/cli/review-mr.d.ts +7 -0
- package/dist/cli/review-mr.d.ts.map +1 -1
- package/dist/cli/review-mr.js +88 -117
- package/dist/cli/review-mr.js.map +1 -1
- package/dist/cli/review-pr.d.ts +6 -0
- package/dist/cli/review-pr.d.ts.map +1 -1
- package/dist/cli/review-pr.js +81 -114
- package/dist/cli/review-pr.js.map +1 -1
- package/dist/cli/show-changes.d.ts +15 -0
- package/dist/cli/show-changes.d.ts.map +1 -0
- package/dist/cli/show-changes.js +184 -0
- package/dist/cli/show-changes.js.map +1 -0
- package/dist/github/client.d.ts +199 -4
- package/dist/github/client.d.ts.map +1 -1
- package/dist/github/client.js +37 -2
- package/dist/github/client.js.map +1 -1
- package/dist/github/client.test.d.ts +2 -0
- package/dist/github/client.test.d.ts.map +1 -0
- package/dist/github/client.test.js +206 -0
- package/dist/github/client.test.js.map +1 -0
- package/dist/github/platform-adapter.d.ts +31 -0
- package/dist/github/platform-adapter.d.ts.map +1 -0
- package/dist/github/platform-adapter.js +129 -0
- package/dist/github/platform-adapter.js.map +1 -0
- package/dist/github/platform-adapter.test.d.ts +2 -0
- package/dist/github/platform-adapter.test.d.ts.map +1 -0
- package/dist/github/platform-adapter.test.js +40 -0
- package/dist/github/platform-adapter.test.js.map +1 -0
- package/dist/gitlab/client.d.ts +12 -0
- package/dist/gitlab/client.d.ts.map +1 -1
- package/dist/gitlab/client.js +19 -1
- package/dist/gitlab/client.js.map +1 -1
- package/dist/gitlab/diff-parser.test.d.ts +2 -0
- package/dist/gitlab/diff-parser.test.d.ts.map +1 -0
- package/dist/gitlab/diff-parser.test.js +315 -0
- package/dist/gitlab/diff-parser.test.js.map +1 -0
- package/dist/gitlab/platform-adapter.d.ts +27 -0
- package/dist/gitlab/platform-adapter.d.ts.map +1 -0
- package/dist/gitlab/platform-adapter.js +121 -0
- package/dist/gitlab/platform-adapter.js.map +1 -0
- package/dist/gitlab/platform-adapter.test.d.ts +2 -0
- package/dist/gitlab/platform-adapter.test.d.ts.map +1 -0
- package/dist/gitlab/platform-adapter.test.js +21 -0
- package/dist/gitlab/platform-adapter.test.js.map +1 -0
- package/dist/index.test.d.ts +2 -0
- package/dist/index.test.d.ts.map +1 -0
- package/dist/index.test.js +7 -0
- package/dist/index.test.js.map +1 -0
- package/dist/lib/change-summary.d.ts +8 -0
- package/dist/lib/change-summary.d.ts.map +1 -0
- package/dist/lib/change-summary.js +2 -0
- package/dist/lib/change-summary.js.map +1 -0
- package/dist/lib/code-quality-report.d.ts +44 -0
- package/dist/lib/code-quality-report.d.ts.map +1 -0
- package/dist/lib/code-quality-report.js +62 -0
- package/dist/lib/code-quality-report.js.map +1 -0
- package/dist/lib/code-quality-report.test.d.ts +2 -0
- package/dist/lib/code-quality-report.test.d.ts.map +1 -0
- package/dist/lib/code-quality-report.test.js +327 -0
- package/dist/lib/code-quality-report.test.js.map +1 -0
- package/dist/{gitlab → lib}/comment-formatter.d.ts +6 -3
- package/dist/lib/comment-formatter.d.ts.map +1 -0
- package/dist/{gitlab → lib}/comment-formatter.js +63 -16
- package/dist/lib/comment-formatter.js.map +1 -0
- package/dist/lib/comment-formatter.test.d.ts +2 -0
- package/dist/lib/comment-formatter.test.d.ts.map +1 -0
- package/dist/lib/comment-formatter.test.js +607 -0
- package/dist/lib/comment-formatter.test.js.map +1 -0
- package/dist/lib/comment-manager.d.ts +61 -0
- package/dist/lib/comment-manager.d.ts.map +1 -0
- package/dist/lib/comment-manager.js +91 -0
- package/dist/lib/comment-manager.js.map +1 -0
- package/dist/lib/comment-manager.test.d.ts +2 -0
- package/dist/lib/comment-manager.test.d.ts.map +1 -0
- package/dist/lib/comment-manager.test.js +618 -0
- package/dist/lib/comment-manager.test.js.map +1 -0
- package/dist/lib/comment-poster.d.ts +21 -0
- package/dist/lib/comment-poster.d.ts.map +1 -0
- package/dist/lib/comment-poster.js +96 -0
- package/dist/lib/comment-poster.js.map +1 -0
- package/dist/lib/comment-poster.test.d.ts +5 -0
- package/dist/lib/comment-poster.test.d.ts.map +1 -0
- package/dist/lib/comment-poster.test.js +215 -0
- package/dist/lib/comment-poster.test.js.map +1 -0
- package/dist/lib/config-model-overrides.test.d.ts +12 -0
- package/dist/lib/config-model-overrides.test.d.ts.map +1 -0
- package/dist/lib/config-model-overrides.test.js +254 -0
- package/dist/lib/config-model-overrides.test.js.map +1 -0
- package/dist/lib/config.d.ts +93 -8
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +178 -25
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/config.test.d.ts +2 -0
- package/dist/lib/config.test.d.ts.map +1 -0
- package/dist/lib/config.test.js +36 -0
- package/dist/lib/config.test.js.map +1 -0
- package/dist/lib/context-compression.d.ts +19 -0
- package/dist/lib/context-compression.d.ts.map +1 -0
- package/dist/lib/context-compression.js +170 -0
- package/dist/lib/context-compression.js.map +1 -0
- package/dist/lib/context-compression.test.d.ts +2 -0
- package/dist/lib/context-compression.test.d.ts.map +1 -0
- package/dist/lib/context-compression.test.js +33 -0
- package/dist/lib/context-compression.test.js.map +1 -0
- package/dist/lib/context-loader.d.ts +29 -0
- package/dist/lib/context-loader.d.ts.map +1 -0
- package/dist/lib/context-loader.js +75 -0
- package/dist/lib/context-loader.js.map +1 -0
- package/dist/lib/context-loader.test.d.ts +2 -0
- package/dist/lib/context-loader.test.d.ts.map +1 -0
- package/dist/lib/context-loader.test.js +207 -0
- package/dist/lib/context-loader.test.js.map +1 -0
- package/dist/lib/describe-core.d.ts +9 -0
- package/dist/lib/describe-core.d.ts.map +1 -0
- package/dist/lib/describe-core.js +71 -0
- package/dist/lib/describe-core.js.map +1 -0
- package/dist/lib/describe-core.test.d.ts +2 -0
- package/dist/lib/describe-core.test.d.ts.map +1 -0
- package/dist/lib/describe-core.test.js +208 -0
- package/dist/lib/describe-core.test.js.map +1 -0
- package/dist/lib/describe-output-path.test.d.ts +2 -0
- package/dist/lib/describe-output-path.test.d.ts.map +1 -0
- package/dist/lib/describe-output-path.test.js +51 -0
- package/dist/lib/describe-output-path.test.js.map +1 -0
- package/dist/lib/describe-parser.d.ts +3 -0
- package/dist/lib/describe-parser.d.ts.map +1 -0
- package/dist/lib/describe-parser.js +163 -0
- package/dist/lib/describe-parser.js.map +1 -0
- package/dist/lib/describe-parser.test.d.ts +2 -0
- package/dist/lib/describe-parser.test.d.ts.map +1 -0
- package/dist/lib/describe-parser.test.js +282 -0
- package/dist/lib/describe-parser.test.js.map +1 -0
- package/dist/lib/description-executor.d.ts +22 -0
- package/dist/lib/description-executor.d.ts.map +1 -0
- package/dist/lib/description-executor.js +72 -0
- package/dist/lib/description-executor.js.map +1 -0
- package/dist/lib/description-formatter.d.ts +37 -0
- package/dist/lib/description-formatter.d.ts.map +1 -0
- package/dist/lib/description-formatter.js +219 -0
- package/dist/lib/description-formatter.js.map +1 -0
- package/dist/{gitlab → lib}/diff-parser.d.ts +11 -0
- package/dist/lib/diff-parser.d.ts.map +1 -0
- package/dist/{gitlab → lib}/diff-parser.js +40 -3
- package/dist/lib/diff-parser.js.map +1 -0
- package/dist/lib/issue-parser.d.ts +29 -0
- package/dist/lib/issue-parser.d.ts.map +1 -0
- package/dist/lib/issue-parser.js +153 -0
- package/dist/lib/issue-parser.js.map +1 -0
- package/dist/lib/issue-parser.test.d.ts +2 -0
- package/dist/lib/issue-parser.test.d.ts.map +1 -0
- package/dist/lib/issue-parser.test.js +281 -0
- package/dist/lib/issue-parser.test.js.map +1 -0
- package/dist/lib/json-output-schema.d.ts +207 -0
- package/dist/lib/json-output-schema.d.ts.map +1 -0
- package/dist/lib/json-output-schema.js +124 -0
- package/dist/lib/json-output-schema.js.map +1 -0
- package/dist/lib/json-output-schema.test.d.ts +2 -0
- package/dist/lib/json-output-schema.test.d.ts.map +1 -0
- package/dist/lib/json-output-schema.test.js +92 -0
- package/dist/lib/json-output-schema.test.js.map +1 -0
- package/dist/lib/json-output.d.ts +43 -0
- package/dist/lib/json-output.d.ts.map +1 -0
- package/dist/lib/json-output.js +34 -0
- package/dist/lib/json-output.js.map +1 -0
- package/dist/lib/output-paths.d.ts +6 -0
- package/dist/lib/output-paths.d.ts.map +1 -0
- package/dist/lib/output-paths.js +5 -0
- package/dist/lib/output-paths.js.map +1 -0
- package/dist/lib/platform-client.d.ts +130 -0
- package/dist/lib/platform-client.d.ts.map +1 -0
- package/dist/lib/platform-client.js +8 -0
- package/dist/lib/platform-client.js.map +1 -0
- package/dist/lib/position-validator.d.ts +36 -0
- package/dist/lib/position-validator.d.ts.map +1 -0
- package/dist/lib/position-validator.js +43 -0
- package/dist/lib/position-validator.js.map +1 -0
- package/dist/lib/repository-validator.d.ts +52 -0
- package/dist/lib/repository-validator.d.ts.map +1 -0
- package/dist/lib/repository-validator.js +219 -0
- package/dist/lib/repository-validator.js.map +1 -0
- package/dist/lib/repository-validator.test.d.ts +5 -0
- package/dist/lib/repository-validator.test.d.ts.map +1 -0
- package/dist/lib/repository-validator.test.js +341 -0
- package/dist/lib/repository-validator.test.js.map +1 -0
- package/dist/lib/review-core.d.ts +66 -0
- package/dist/lib/review-core.d.ts.map +1 -0
- package/dist/lib/review-core.js +449 -0
- package/dist/lib/review-core.js.map +1 -0
- package/dist/lib/review-core.test.d.ts +2 -0
- package/dist/lib/review-core.test.d.ts.map +1 -0
- package/dist/lib/review-core.test.js +552 -0
- package/dist/lib/review-core.test.js.map +1 -0
- package/dist/lib/review-orchestrator.d.ts +77 -0
- package/dist/lib/review-orchestrator.d.ts.map +1 -0
- package/dist/lib/review-orchestrator.js +124 -0
- package/dist/lib/review-orchestrator.js.map +1 -0
- package/dist/lib/review-orchestrator.test.d.ts +2 -0
- package/dist/lib/review-orchestrator.test.d.ts.map +1 -0
- package/dist/lib/review-orchestrator.test.js +413 -0
- package/dist/lib/review-orchestrator.test.js.map +1 -0
- package/dist/lib/review-output-path.test.d.ts +2 -0
- package/dist/lib/review-output-path.test.d.ts.map +1 -0
- package/dist/lib/review-output-path.test.js +83 -0
- package/dist/lib/review-output-path.test.js.map +1 -0
- package/dist/lib/review-parser.d.ts +2 -0
- package/dist/lib/review-parser.d.ts.map +1 -0
- package/dist/lib/review-parser.js +100 -0
- package/dist/lib/review-parser.js.map +1 -0
- package/dist/lib/unified-review-executor.d.ts +49 -0
- package/dist/lib/unified-review-executor.d.ts.map +1 -0
- package/dist/lib/unified-review-executor.js +158 -0
- package/dist/lib/unified-review-executor.js.map +1 -0
- package/dist/lib/unified-review-executor.test.d.ts +5 -0
- package/dist/lib/unified-review-executor.test.d.ts.map +1 -0
- package/dist/lib/unified-review-executor.test.js +344 -0
- package/dist/lib/unified-review-executor.test.js.map +1 -0
- package/dist/lib/write-json-output.d.ts +13 -0
- package/dist/lib/write-json-output.d.ts.map +1 -0
- package/dist/lib/write-json-output.js +37 -0
- package/dist/lib/write-json-output.js.map +1 -0
- package/dist/opencode/agent-loader.d.ts +3 -4
- package/dist/opencode/agent-loader.d.ts.map +1 -1
- package/dist/opencode/agent-loader.js +51 -42
- package/dist/opencode/agent-loader.js.map +1 -1
- package/dist/opencode/agent-skill-overlay.d.ts +11 -0
- package/dist/opencode/agent-skill-overlay.d.ts.map +1 -0
- package/dist/opencode/agent-skill-overlay.js +164 -0
- package/dist/opencode/agent-skill-overlay.js.map +1 -0
- package/dist/opencode/client.d.ts +14 -5
- package/dist/opencode/client.d.ts.map +1 -1
- package/dist/opencode/client.js +311 -32
- package/dist/opencode/client.js.map +1 -1
- package/dist/opencode/client.test.d.ts +2 -0
- package/dist/opencode/client.test.d.ts.map +1 -0
- package/dist/opencode/client.test.js +317 -0
- package/dist/opencode/client.test.js.map +1 -0
- package/dist/opencode/opencode-paths.d.ts +2 -0
- package/dist/opencode/opencode-paths.d.ts.map +1 -0
- package/dist/opencode/opencode-paths.js +7 -0
- package/dist/opencode/opencode-paths.js.map +1 -0
- package/dist/opencode/skill-loader.d.ts +6 -0
- package/dist/opencode/skill-loader.d.ts.map +1 -0
- package/dist/opencode/skill-loader.js +36 -0
- package/dist/opencode/skill-loader.js.map +1 -0
- package/package.json +29 -20
- package/.opencode/agent/github-reviewer.md +0 -62
- package/.opencode/agent/gitlab-reviewer.md +0 -62
- package/.opencode/agent/local-reviewer.md +0 -71
- package/dist/gitlab/comment-formatter.d.ts.map +0 -1
- package/dist/gitlab/comment-formatter.js.map +0 -1
- package/dist/gitlab/diff-parser.d.ts.map +0 -1
- package/dist/gitlab/diff-parser.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-orchestrator.test.js","sourceRoot":"","sources":["../../src/lib/review-orchestrator.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-output-path.test.d.ts","sourceRoot":"","sources":["../../src/lib/review-output-path.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
2
|
+
import { mkdir, mkdtemp, readFile, rm, writeFile } from 'fs/promises';
|
|
3
|
+
import { dirname, join } from 'path';
|
|
4
|
+
import { tmpdir } from 'os';
|
|
5
|
+
import { writeJsonOutput } from './write-json-output.js';
|
|
6
|
+
import { parseReviewOutput } from './review-parser.js';
|
|
7
|
+
import { OUTPUT_PATHS } from './output-paths.js';
|
|
8
|
+
describe('review output path integration', () => {
|
|
9
|
+
let workingDir;
|
|
10
|
+
beforeEach(async () => {
|
|
11
|
+
workingDir = await mkdtemp(join(tmpdir(), 'drs-review-'));
|
|
12
|
+
});
|
|
13
|
+
afterEach(async () => {
|
|
14
|
+
await rm(workingDir, { recursive: true, force: true });
|
|
15
|
+
});
|
|
16
|
+
it('writes review output to deterministic path and reads it', async () => {
|
|
17
|
+
const payload = {
|
|
18
|
+
timestamp: '2024-01-01T00:00:00.000Z',
|
|
19
|
+
summary: {
|
|
20
|
+
filesReviewed: 2,
|
|
21
|
+
issuesFound: 0,
|
|
22
|
+
bySeverity: {
|
|
23
|
+
CRITICAL: 0,
|
|
24
|
+
HIGH: 0,
|
|
25
|
+
MEDIUM: 0,
|
|
26
|
+
LOW: 0,
|
|
27
|
+
},
|
|
28
|
+
byCategory: {
|
|
29
|
+
SECURITY: 0,
|
|
30
|
+
QUALITY: 0,
|
|
31
|
+
STYLE: 0,
|
|
32
|
+
PERFORMANCE: 0,
|
|
33
|
+
DOCUMENTATION: 0,
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
issues: [],
|
|
37
|
+
};
|
|
38
|
+
const pointer = await writeJsonOutput({
|
|
39
|
+
outputType: 'review_output',
|
|
40
|
+
payload,
|
|
41
|
+
pretty: false,
|
|
42
|
+
workingDir,
|
|
43
|
+
});
|
|
44
|
+
const expectedPath = join(workingDir, OUTPUT_PATHS.review_output);
|
|
45
|
+
const fileContents = JSON.parse(await readFile(expectedPath, 'utf-8'));
|
|
46
|
+
expect(fileContents).toEqual(payload);
|
|
47
|
+
expect(pointer).toEqual({
|
|
48
|
+
outputType: 'review_output',
|
|
49
|
+
outputPath: OUTPUT_PATHS.review_output,
|
|
50
|
+
});
|
|
51
|
+
const parsed = await parseReviewOutput(workingDir, false, JSON.stringify(pointer));
|
|
52
|
+
expect(parsed).toEqual(payload);
|
|
53
|
+
});
|
|
54
|
+
it('reads review output from default path without pointer', async () => {
|
|
55
|
+
const payload = {
|
|
56
|
+
timestamp: '2024-01-01T00:00:00.000Z',
|
|
57
|
+
summary: {
|
|
58
|
+
filesReviewed: 1,
|
|
59
|
+
issuesFound: 0,
|
|
60
|
+
bySeverity: {
|
|
61
|
+
CRITICAL: 0,
|
|
62
|
+
HIGH: 0,
|
|
63
|
+
MEDIUM: 0,
|
|
64
|
+
LOW: 0,
|
|
65
|
+
},
|
|
66
|
+
byCategory: {
|
|
67
|
+
SECURITY: 0,
|
|
68
|
+
QUALITY: 0,
|
|
69
|
+
STYLE: 0,
|
|
70
|
+
PERFORMANCE: 0,
|
|
71
|
+
DOCUMENTATION: 0,
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
issues: [],
|
|
75
|
+
};
|
|
76
|
+
const expectedPath = join(workingDir, OUTPUT_PATHS.review_output);
|
|
77
|
+
await mkdir(dirname(expectedPath), { recursive: true });
|
|
78
|
+
await writeFile(expectedPath, JSON.stringify(payload), 'utf-8');
|
|
79
|
+
const parsed = await parseReviewOutput(workingDir);
|
|
80
|
+
expect(parsed).toEqual(payload);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=review-output-path.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-output-path.test.js","sourceRoot":"","sources":["../../src/lib/review-output-path.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-parser.d.ts","sourceRoot":"","sources":["../../src/lib/review-parser.ts"],"names":[],"mappings":"AAmFA,wBAAsB,iBAAiB,CACrC,UAAU,GAAE,MAAsB,EAClC,KAAK,UAAQ,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,CAyClB"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { readFile } from 'fs/promises';
|
|
2
|
+
import { resolve } from 'path';
|
|
3
|
+
import { OUTPUT_PATHS } from './output-paths.js';
|
|
4
|
+
import { parseJsonFromAgentOutput } from './describe-parser.js';
|
|
5
|
+
function isOutputPointer(value) {
|
|
6
|
+
return !!value && typeof value === 'object' && ('outputType' in value || 'outputPath' in value);
|
|
7
|
+
}
|
|
8
|
+
const REVIEW_OUTPUT_PATH = OUTPUT_PATHS.review_output;
|
|
9
|
+
function resolveWithinWorkingDir(workingDir, targetPath) {
|
|
10
|
+
const root = resolve(workingDir);
|
|
11
|
+
const fullPath = resolve(workingDir, targetPath);
|
|
12
|
+
const rootWithSlash = root.endsWith('/') ? root : `${root}/`;
|
|
13
|
+
if (fullPath !== root && !fullPath.startsWith(rootWithSlash)) {
|
|
14
|
+
throw new Error(`Refusing to read outside working directory: ${targetPath}`);
|
|
15
|
+
}
|
|
16
|
+
return fullPath;
|
|
17
|
+
}
|
|
18
|
+
async function readJsonIfExists(workingDir, targetPath) {
|
|
19
|
+
const resolvedPath = resolveWithinWorkingDir(workingDir, targetPath);
|
|
20
|
+
try {
|
|
21
|
+
const fileContents = await readFile(resolvedPath, 'utf-8');
|
|
22
|
+
return JSON.parse(fileContents);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function resolveReviewOutputPath(pointer) {
|
|
32
|
+
if (!pointer) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
if (pointer.outputType && pointer.outputType !== 'review_output') {
|
|
36
|
+
throw new Error(`Unexpected output type for review output: ${pointer.outputType}`);
|
|
37
|
+
}
|
|
38
|
+
if (pointer.outputPath) {
|
|
39
|
+
return pointer.outputPath;
|
|
40
|
+
}
|
|
41
|
+
if (pointer.outputType) {
|
|
42
|
+
return OUTPUT_PATHS[pointer.outputType];
|
|
43
|
+
}
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
function parseReviewOutputPointer(raw, debug) {
|
|
47
|
+
try {
|
|
48
|
+
const parsed = parseJsonFromAgentOutput(raw);
|
|
49
|
+
if (isOutputPointer(parsed)) {
|
|
50
|
+
return parsed;
|
|
51
|
+
}
|
|
52
|
+
if (debug) {
|
|
53
|
+
console.log('Review output pointer not found in agent output.');
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
if (debug) {
|
|
58
|
+
console.log(`Review output pointer parse failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
export async function parseReviewOutput(workingDir = process.cwd(), debug = false, rawOutput) {
|
|
64
|
+
if (rawOutput) {
|
|
65
|
+
try {
|
|
66
|
+
const parsed = parseJsonFromAgentOutput(rawOutput);
|
|
67
|
+
if (parsed && !isOutputPointer(parsed)) {
|
|
68
|
+
return parsed;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
if (debug) {
|
|
73
|
+
console.log(`Review output JSON parse failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const pointer = rawOutput ? parseReviewOutputPointer(rawOutput, debug) : null;
|
|
78
|
+
const pointerPath = resolveReviewOutputPath(pointer);
|
|
79
|
+
if (pointerPath) {
|
|
80
|
+
const pointerOutput = await readJsonIfExists(workingDir, pointerPath);
|
|
81
|
+
if (pointerOutput) {
|
|
82
|
+
if (debug) {
|
|
83
|
+
console.log(`Review output loaded from ${pointerPath}`);
|
|
84
|
+
}
|
|
85
|
+
return pointerOutput;
|
|
86
|
+
}
|
|
87
|
+
if (debug) {
|
|
88
|
+
console.log(`Review output not found at ${pointerPath}, falling back to default path.`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const defaultOutput = await readJsonIfExists(workingDir, REVIEW_OUTPUT_PATH);
|
|
92
|
+
if (defaultOutput) {
|
|
93
|
+
if (debug) {
|
|
94
|
+
console.log(`Review output loaded from ${REVIEW_OUTPUT_PATH}`);
|
|
95
|
+
}
|
|
96
|
+
return defaultOutput;
|
|
97
|
+
}
|
|
98
|
+
throw new Error(`Review output file not found at ${REVIEW_OUTPUT_PATH}`);
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=review-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-parser.js","sourceRoot":"","sources":["../../src/lib/review-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified review executor for GitHub and GitLab
|
|
3
|
+
*
|
|
4
|
+
* This module provides a platform-agnostic way to execute code reviews
|
|
5
|
+
* by using the PlatformClient interface. It handles platform-specific
|
|
6
|
+
* features like posting comments and generating reports.
|
|
7
|
+
*
|
|
8
|
+
* Uses shared core logic from review-core.ts.
|
|
9
|
+
*/
|
|
10
|
+
import { type DRSConfig } from './config.js';
|
|
11
|
+
import type { ReviewIssue } from './comment-formatter.js';
|
|
12
|
+
import type { PlatformClient, LineValidator, InlineCommentPosition } from './platform-client.js';
|
|
13
|
+
export { enforceRepoBranchMatch } from './repository-validator.js';
|
|
14
|
+
export { postReviewComments } from './comment-poster.js';
|
|
15
|
+
export interface UnifiedReviewOptions {
|
|
16
|
+
/** Platform client (GitHub or GitLab adapter) */
|
|
17
|
+
platformClient: PlatformClient;
|
|
18
|
+
/** Project ID (e.g., "owner/repo" for GitHub, project ID for GitLab) */
|
|
19
|
+
projectId: string;
|
|
20
|
+
/** PR/MR number */
|
|
21
|
+
prNumber: number;
|
|
22
|
+
/** Whether to post comments to the platform */
|
|
23
|
+
postComments: boolean;
|
|
24
|
+
/** Optional path to output GitLab code quality report JSON */
|
|
25
|
+
codeQualityReport?: string;
|
|
26
|
+
/** Optional path to write JSON results file */
|
|
27
|
+
outputPath?: string;
|
|
28
|
+
/** Output results as JSON to console */
|
|
29
|
+
jsonOutput?: boolean;
|
|
30
|
+
/** Override base branch used for diff command hints */
|
|
31
|
+
baseBranch?: string;
|
|
32
|
+
/** Optional line validator for checking which lines can be commented */
|
|
33
|
+
lineValidator?: LineValidator;
|
|
34
|
+
/** Optional function to create inline comment position data */
|
|
35
|
+
createInlinePosition?: (issue: ReviewIssue, platformData: unknown) => InlineCommentPosition;
|
|
36
|
+
/** Working directory for file access */
|
|
37
|
+
workingDir?: string;
|
|
38
|
+
/** Generate PR/MR description during review */
|
|
39
|
+
describe?: boolean;
|
|
40
|
+
/** Post generated description during review */
|
|
41
|
+
postDescription?: boolean;
|
|
42
|
+
/** Debug mode - print OpenCode configuration */
|
|
43
|
+
debug?: boolean;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Execute a unified code review for any platform
|
|
47
|
+
*/
|
|
48
|
+
export declare function executeUnifiedReview(config: DRSConfig, options: UnifiedReviewOptions): Promise<void>;
|
|
49
|
+
//# sourceMappingURL=unified-review-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unified-review-executor.d.ts","sourceRoot":"","sources":["../../src/lib/unified-review-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAIL,KAAK,SAAS,EACf,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAG1D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAYjG,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,oBAAoB;IACnC,iDAAiD;IACjD,cAAc,EAAE,cAAc,CAAC;IAC/B,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,YAAY,EAAE,OAAO,CAAC;IACtB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,+DAA+D;IAC/D,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,KAAK,qBAAqB,CAAC;IAC5F,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gDAAgD;IAChD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAkLf"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified review executor for GitHub and GitLab
|
|
3
|
+
*
|
|
4
|
+
* This module provides a platform-agnostic way to execute code reviews
|
|
5
|
+
* by using the PlatformClient interface. It handles platform-specific
|
|
6
|
+
* features like posting comments and generating reports.
|
|
7
|
+
*
|
|
8
|
+
* Uses shared core logic from review-core.ts.
|
|
9
|
+
*/
|
|
10
|
+
import chalk from 'chalk';
|
|
11
|
+
import { writeFile } from 'fs/promises';
|
|
12
|
+
import { resolve } from 'path';
|
|
13
|
+
import { getDescriberModelOverride, getModelOverrides, getUnifiedModelOverride, } from './config.js';
|
|
14
|
+
import { connectToOpenCode, filterIgnoredFiles } from './review-orchestrator.js';
|
|
15
|
+
import { buildBaseInstructions, runReviewPipeline, displayReviewSummary } from './review-core.js';
|
|
16
|
+
import { generateCodeQualityReport, formatCodeQualityReport } from './code-quality-report.js';
|
|
17
|
+
import { formatReviewJson, writeReviewJson, printReviewJson } from './json-output.js';
|
|
18
|
+
import { enforceRepoBranchMatch, resolveBaseBranch, getCanonicalDiffCommand, } from './repository-validator.js';
|
|
19
|
+
import { postReviewComments } from './comment-poster.js';
|
|
20
|
+
import { runDescribeIfEnabled } from './description-executor.js';
|
|
21
|
+
// Re-export functions for backward compatibility
|
|
22
|
+
export { enforceRepoBranchMatch } from './repository-validator.js';
|
|
23
|
+
export { postReviewComments } from './comment-poster.js';
|
|
24
|
+
/**
|
|
25
|
+
* Execute a unified code review for any platform
|
|
26
|
+
*/
|
|
27
|
+
export async function executeUnifiedReview(config, options) {
|
|
28
|
+
const { platformClient, projectId, prNumber, postComments } = options;
|
|
29
|
+
console.log(chalk.bold.cyan('\n📋 DRS | Code Review Analysis\n'));
|
|
30
|
+
// Fetch PR/MR details
|
|
31
|
+
console.log(chalk.gray(`Fetching PR/MR #${prNumber}...\n`));
|
|
32
|
+
const pr = await platformClient.getPullRequest(projectId, prNumber);
|
|
33
|
+
await enforceRepoBranchMatch(options.workingDir || process.cwd(), projectId, pr);
|
|
34
|
+
const allFiles = await platformClient.getChangedFiles(projectId, prNumber);
|
|
35
|
+
console.log(chalk.bold(`PR/MR: ${pr.title}`));
|
|
36
|
+
console.log(chalk.gray(`Author: ${pr.author}`));
|
|
37
|
+
console.log(chalk.gray(`Branch: ${pr.sourceBranch} → ${pr.targetBranch}`));
|
|
38
|
+
console.log(chalk.gray(`Files changed: ${allFiles.length}\n`));
|
|
39
|
+
if (allFiles.length === 0) {
|
|
40
|
+
console.log(chalk.yellow('✓ No changes to review\n'));
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
// Get list of changed files (excluding deleted files)
|
|
44
|
+
const changedFileNames = allFiles
|
|
45
|
+
.filter((file) => file.status !== 'removed')
|
|
46
|
+
.map((file) => file.filename);
|
|
47
|
+
if (changedFileNames.length === 0) {
|
|
48
|
+
console.log(chalk.yellow('✓ No files to review after filtering\n'));
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
// Filter files by ignore patterns
|
|
52
|
+
const filteredFileNames = filterIgnoredFiles(changedFileNames, config);
|
|
53
|
+
const filteredFiles = filteredFileNames;
|
|
54
|
+
const ignoredCount = changedFileNames.length - filteredFiles.length;
|
|
55
|
+
if (ignoredCount > 0) {
|
|
56
|
+
console.log(chalk.gray(`Ignoring ${ignoredCount} file(s) based on patterns\n`));
|
|
57
|
+
}
|
|
58
|
+
if (filteredFiles.length === 0) {
|
|
59
|
+
console.log(chalk.yellow('✓ No files to review after filtering\n'));
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const reviewOverrides = {
|
|
63
|
+
...getModelOverrides(config),
|
|
64
|
+
...getUnifiedModelOverride(config),
|
|
65
|
+
};
|
|
66
|
+
const describeEnabled = options.describe ?? config.review.describe?.enabled ?? false;
|
|
67
|
+
const postDescriptionEnabled = options.postDescription ?? config.review.describe?.postDescription ?? false;
|
|
68
|
+
const describeOverrides = describeEnabled ? getDescriberModelOverride(config) : {};
|
|
69
|
+
const modelOverrides = { ...reviewOverrides, ...describeOverrides };
|
|
70
|
+
// Connect to OpenCode
|
|
71
|
+
const opencode = await connectToOpenCode(config, options.workingDir || process.cwd(), {
|
|
72
|
+
debug: options.debug,
|
|
73
|
+
modelOverrides,
|
|
74
|
+
});
|
|
75
|
+
try {
|
|
76
|
+
const filesForDescribe = allFiles.map((file) => ({
|
|
77
|
+
filename: file.filename,
|
|
78
|
+
patch: file.patch,
|
|
79
|
+
}));
|
|
80
|
+
if (describeEnabled) {
|
|
81
|
+
await runDescribeIfEnabled(opencode, config, platformClient, projectId, pr, filesForDescribe, postDescriptionEnabled, options.workingDir || process.cwd(), options.debug);
|
|
82
|
+
}
|
|
83
|
+
// Build instructions for platform review - pass actual diff content from platform
|
|
84
|
+
const reviewLabel = `PR/MR #${prNumber}`;
|
|
85
|
+
const baseBranchResolution = resolveBaseBranch(options.baseBranch, pr.targetBranch);
|
|
86
|
+
const fallbackDiffCommand = getCanonicalDiffCommand(pr, baseBranchResolution);
|
|
87
|
+
const filesForInstructions = filteredFiles.map((filename) => ({ filename }));
|
|
88
|
+
let baseInstructions = buildBaseInstructions(reviewLabel, filesForInstructions, fallbackDiffCommand);
|
|
89
|
+
if (baseBranchResolution.resolvedBaseBranch) {
|
|
90
|
+
baseInstructions = `${baseInstructions}\n\nBase branch resolved to: ${baseBranchResolution.resolvedBaseBranch} (${baseBranchResolution.source})`;
|
|
91
|
+
}
|
|
92
|
+
// Run agents using shared core logic
|
|
93
|
+
const result = await runReviewPipeline(opencode, config, baseInstructions, reviewLabel, filteredFiles, { prNumber }, options.workingDir || process.cwd(), options.debug || false);
|
|
94
|
+
// Display summary
|
|
95
|
+
displayReviewSummary(result);
|
|
96
|
+
// Post comments to platform if requested
|
|
97
|
+
if (postComments) {
|
|
98
|
+
await postReviewComments(platformClient, projectId, prNumber, result.summary, result.issues, result.changeSummary, pr.platformData, options.lineValidator, options.createInlinePosition);
|
|
99
|
+
}
|
|
100
|
+
// Generate code quality report if requested
|
|
101
|
+
if (options.codeQualityReport) {
|
|
102
|
+
await generateAndWriteCodeQualityReport(result.issues, options.codeQualityReport, options.workingDir || process.cwd());
|
|
103
|
+
}
|
|
104
|
+
// Handle JSON output
|
|
105
|
+
const wantsJsonOutput = options.jsonOutput || options.outputPath;
|
|
106
|
+
if (wantsJsonOutput) {
|
|
107
|
+
const jsonOutput = formatReviewJson(result.summary, result.issues, {
|
|
108
|
+
source: `${options.prNumber}`,
|
|
109
|
+
project: options.projectId,
|
|
110
|
+
branch: {
|
|
111
|
+
source: pr.sourceBranch,
|
|
112
|
+
target: pr.targetBranch,
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
if (options.outputPath) {
|
|
116
|
+
await writeReviewJson(jsonOutput, options.outputPath, options.workingDir || process.cwd());
|
|
117
|
+
console.log(chalk.green(`\n✓ Review results written to ${options.outputPath}\n`));
|
|
118
|
+
}
|
|
119
|
+
if (options.jsonOutput) {
|
|
120
|
+
printReviewJson(jsonOutput);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// Exit with error code if critical issues found
|
|
124
|
+
if (result.summary.bySeverity.CRITICAL > 0) {
|
|
125
|
+
console.log(chalk.red.bold('⚠️ Critical issues found!\n'));
|
|
126
|
+
await opencode.shutdown();
|
|
127
|
+
process.exit(1);
|
|
128
|
+
}
|
|
129
|
+
else if (result.summary.issuesFound === 0) {
|
|
130
|
+
console.log(chalk.green('✓ No issues found! Code looks good.\n'));
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
// Handle "all agents failed" error
|
|
135
|
+
if (error instanceof Error && error.message === 'All review agents failed') {
|
|
136
|
+
await opencode.shutdown();
|
|
137
|
+
process.exit(1);
|
|
138
|
+
}
|
|
139
|
+
throw error;
|
|
140
|
+
}
|
|
141
|
+
finally {
|
|
142
|
+
// Shutdown OpenCode
|
|
143
|
+
await opencode.shutdown();
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Generate and write GitLab code quality report
|
|
148
|
+
*/
|
|
149
|
+
async function generateAndWriteCodeQualityReport(issues, reportPath, workingDir) {
|
|
150
|
+
console.log(chalk.gray('Generating code quality report...\n'));
|
|
151
|
+
const report = generateCodeQualityReport(issues);
|
|
152
|
+
const jsonContent = formatCodeQualityReport(report);
|
|
153
|
+
const fullPath = resolve(workingDir, reportPath);
|
|
154
|
+
await writeFile(fullPath, jsonContent, 'utf-8');
|
|
155
|
+
console.log(chalk.green(`✓ Code quality report written to ${reportPath}`));
|
|
156
|
+
console.log(chalk.gray(` Total issues: ${report.length}\n`));
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=unified-review-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unified-review-executor.js","sourceRoot":"","sources":["../../src/lib/unified-review-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unified-review-executor.test.d.ts","sourceRoot":"","sources":["../../src/lib/unified-review-executor.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|