@renfeng/ai-code-review 1.1.0 → 1.2.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/README.md +33 -59
- package/dist/servers/git-server.d.ts.map +1 -1
- package/dist/servers/git-server.js +0 -1
- package/dist/servers/git-server.js.map +1 -1
- package/dist/servers/gitlab-server.d.ts +1 -0
- package/dist/servers/gitlab-server.d.ts.map +1 -1
- package/dist/servers/gitlab-server.js +17 -0
- package/dist/servers/gitlab-server.js.map +1 -1
- package/dist/services/git-tools.service.d.ts +36 -12
- package/dist/services/git-tools.service.d.ts.map +1 -1
- package/dist/services/git-tools.service.js +288 -61
- package/dist/services/git-tools.service.js.map +1 -1
- package/dist/services/review-tools.service.d.ts +12 -1
- package/dist/services/review-tools.service.d.ts.map +1 -1
- package/dist/services/review-tools.service.js +54 -6
- package/dist/services/review-tools.service.js.map +1 -1
- package/dist/tools/git-tools.d.ts.map +1 -1
- package/dist/tools/git-tools.js +2 -14
- package/dist/tools/git-tools.js.map +1 -1
- package/dist/tools/gitlab-tools.d.ts.map +1 -1
- package/dist/tools/gitlab-tools.js +82 -1
- package/dist/tools/gitlab-tools.js.map +1 -1
- package/dist/types.d.ts +73 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -1,71 +1,57 @@
|
|
|
1
1
|
# AI Code Review
|
|
2
2
|
|
|
3
|
-
A
|
|
3
|
+
A Kiro workspace for AI-assisted code review automation — skills, a custom agent, and a power backed by two MCP servers.
|
|
4
4
|
|
|
5
5
|
## What's Included
|
|
6
6
|
|
|
7
|
-
###
|
|
7
|
+
### Skills (auto-registered)
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
| Skill | Description |
|
|
10
|
+
|-------|-------------|
|
|
11
|
+
| `code-change-review` | Platform-agnostic diff analysis. Traces callers, types, imports, tests. Produces structured findings JSON. |
|
|
12
|
+
| `gitlab-mr-review` | End-to-end GitLab MR review. Clones, analyzes, posts draft notes, publishes with verdict. Supports batch reviews. |
|
|
13
|
+
| `gitlab-todo-triage` | GitLab todo list cleanup. Marks merged/closed/draft MRs as done, delegates open MRs for review. |
|
|
14
|
+
|
|
15
|
+
### Agent (auto-registered)
|
|
16
|
+
|
|
17
|
+
`Code Change Reviewer` — subagent used by `gitlab-mr-review` for code analysis. Reads diffs in full codebase context and produces structured findings.
|
|
18
|
+
|
|
19
|
+
### Power (manual import)
|
|
20
|
+
|
|
21
|
+
`code-review` — two MCP servers from the `@renfeng/ai-code-review` npm package:
|
|
10
22
|
- `git` — platform-agnostic git operations (clone, diff, show, log, grep)
|
|
11
23
|
- `gitlab` — GitLab API tools (MR metadata, draft notes, publish, todos)
|
|
12
24
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
| Skill | Description | Install URL |
|
|
16
|
-
|-------|-------------|-------------|
|
|
17
|
-
| `code-change-review` | Platform-agnostic diff analysis. Traces callers, types, imports, tests. Produces structured findings JSON. | [`.kiro/skills/code-change-review`](.kiro/skills/code-change-review) |
|
|
18
|
-
| `gitlab-mr-review` | End-to-end GitLab MR review. Clones, analyzes, posts draft notes, publishes with verdict. Supports batch reviews. | [`.kiro/skills/gitlab-mr-review`](.kiro/skills/gitlab-mr-review) |
|
|
19
|
-
| `gitlab-todo-triage` | GitLab todo list cleanup. Marks merged/closed/draft MRs as done, delegates open MRs for review. | [`.kiro/skills/gitlab-todo-triage`](.kiro/skills/gitlab-todo-triage) |
|
|
25
|
+
## Usage
|
|
20
26
|
|
|
21
|
-
|
|
27
|
+
### 1. Add as a workspace folder
|
|
22
28
|
|
|
23
|
-
|
|
29
|
+
Add this repo to your `.code-workspace` file:
|
|
24
30
|
|
|
25
|
-
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"folders": [
|
|
34
|
+
{ "name": "ai-code-review", "path": "../path/to/ai-code-review" }
|
|
35
|
+
]
|
|
36
|
+
}
|
|
37
|
+
```
|
|
26
38
|
|
|
27
|
-
|
|
39
|
+
This auto-registers the skills and the `Code Change Reviewer` agent.
|
|
28
40
|
|
|
29
|
-
###
|
|
41
|
+
### 2. Install the power
|
|
30
42
|
|
|
31
|
-
|
|
43
|
+
The power provides the MCP servers that the skills depend on.
|
|
32
44
|
|
|
33
|
-
In Kiro:
|
|
45
|
+
In Kiro: Powers panel → Add power from Local Path → select `.kiro/powers/code-review/` within this repo.
|
|
34
46
|
|
|
35
|
-
|
|
36
|
-
- [gitlab-mr-review](.kiro/skills/gitlab-mr-review)
|
|
37
|
-
- [gitlab-todo-triage](.kiro/skills/gitlab-todo-triage)
|
|
47
|
+
To update the power after pulling new changes: reinstall from the same path.
|
|
38
48
|
|
|
39
49
|
## Prerequisites
|
|
40
50
|
|
|
41
51
|
- Node.js 18+ (for `npx` to run the MCP servers)
|
|
42
|
-
- GitLab authentication via one of: `GITLAB_TOKEN` + `GITLAB_URL` env vars in `mcp.json`, or `glab` CLI (`glab auth login`)
|
|
52
|
+
- GitLab authentication via one of: `GITLAB_TOKEN` + `GITLAB_URL` env vars in the power's `mcp.json`, or `glab` CLI (`glab auth login`)
|
|
43
53
|
- SSH keys configured for git clone operations
|
|
44
54
|
|
|
45
|
-
## MCP Server Configuration
|
|
46
|
-
|
|
47
|
-
The power uses `npx @renfeng/ai-code-review@latest` to run the MCP servers. After installing the power, the servers are configured automatically:
|
|
48
|
-
|
|
49
|
-
```json
|
|
50
|
-
{
|
|
51
|
-
"mcpServers": {
|
|
52
|
-
"git": {
|
|
53
|
-
"command": "npx",
|
|
54
|
-
"args": ["-y", "@renfeng/ai-code-review@latest", "git"]
|
|
55
|
-
},
|
|
56
|
-
"gitlab": {
|
|
57
|
-
"command": "npx",
|
|
58
|
-
"args": ["-y", "@renfeng/ai-code-review@latest", "gitlab"],
|
|
59
|
-
"env": {}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
## Agent Setup
|
|
66
|
-
|
|
67
|
-
The `gitlab-mr-review` skill delegates code analysis to a `Code Change Reviewer` subagent. The skill automatically creates the agent on first use via `custom-agent-creator`, using the definition in [`.kiro/skills/gitlab-mr-review/references/code-change-reviewer-agent.md`](.kiro/skills/gitlab-mr-review/references/code-change-reviewer-agent.md).
|
|
68
|
-
|
|
69
55
|
## Troubleshooting
|
|
70
56
|
|
|
71
57
|
### 401 "Token is expired" when using glab OAuth
|
|
@@ -74,22 +60,10 @@ The `gitlab` MCP server reads the token from the `glab` config file but does not
|
|
|
74
60
|
|
|
75
61
|
Fix: run `glab auth status` — this silently refreshes the OAuth token and writes it to disk. The MCP server picks up the new token on the next call, no restart needed.
|
|
76
62
|
|
|
77
|
-
### Power update fails: "No name was provided for author"
|
|
78
|
-
|
|
79
|
-
When installed from GitHub, Kiro clones the power repo to `~/.kiro/powers/repos/ai-code-review/` and periodically pulls updates. The pull mechanism does not read the global `~/.gitconfig` — only the repo-level `.git/config`. If `user.name` is missing there, the pull fails.
|
|
80
|
-
|
|
81
|
-
Fix:
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
git -C ~/.kiro/powers/repos/ai-code-review config user.name "your-name"
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
This does not apply to local-path installations. See [kirodotdev/Kiro#6278](https://github.com/kirodotdev/Kiro/issues/6278).
|
|
88
|
-
|
|
89
63
|
## Contributing
|
|
90
64
|
|
|
91
|
-
See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
65
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
92
66
|
|
|
93
67
|
## License
|
|
94
68
|
|
|
95
|
-
MIT
|
|
69
|
+
MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-server.d.ts","sourceRoot":"","sources":["../../src/servers/git-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,MAAM,CAAS;;IAcvB,OAAO,CAAC,aAAa;YAoBP,cAAc;
|
|
1
|
+
{"version":3,"file":"git-server.d.ts","sourceRoot":"","sources":["../../src/servers/git-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,MAAM,CAAS;;IAcvB,OAAO,CAAC,aAAa;YAoBP,cAAc;IAkBtB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAMpB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAKhC"}
|
|
@@ -54,7 +54,6 @@ export class GitMCPServer {
|
|
|
54
54
|
case "git_show": return this.gitToolsService.show(params);
|
|
55
55
|
case "git_log": return this.gitToolsService.log(params);
|
|
56
56
|
case "git_cleanup": return this.gitToolsService.cleanup(params);
|
|
57
|
-
case "write_file": return this.gitToolsService.writeFile(params);
|
|
58
57
|
case "git_grep": return this.gitToolsService.grep(params);
|
|
59
58
|
default: throw ErrorHandler.validationError(`Unknown tool: ${name}`, { tool: name });
|
|
60
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-server.js","sourceRoot":"","sources":["../../src/servers/git-server.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"git-server.js","sourceRoot":"","sources":["../../src/servers/git-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitlab-server.d.ts","sourceRoot":"","sources":["../../src/servers/gitlab-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"gitlab-server.d.ts","sourceRoot":"","sources":["../../src/servers/gitlab-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2BH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,MAAM,CAAS;;IAevB,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,YAAY;YAkCN,cAAc;IAmDtB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAMpB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAKhC"}
|
|
@@ -9,18 +9,21 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
|
|
|
9
9
|
import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js";
|
|
10
10
|
import { REVIEW_TOOLS } from "../tools/gitlab-tools.js";
|
|
11
11
|
import { ReviewToolsService } from "../services/review-tools.service.js";
|
|
12
|
+
import { GitToolsService } from "../services/git-tools.service.js";
|
|
12
13
|
import { loadGlabConfig } from "../config/glab-config.loader.js";
|
|
13
14
|
import { Logger } from "../logging/logger.service.js";
|
|
14
15
|
import { ErrorHandler } from "../errors/error-handler.js";
|
|
15
16
|
export class GitLabMCPServer {
|
|
16
17
|
server;
|
|
17
18
|
reviewToolsService;
|
|
19
|
+
gitToolsService;
|
|
18
20
|
logger;
|
|
19
21
|
constructor() {
|
|
20
22
|
const logLevel = Logger.parseLogLevel(process.env.LOG_LEVEL || 'info');
|
|
21
23
|
this.logger = new Logger('GitLabServer', logLevel);
|
|
22
24
|
this.server = new Server({ name: "ai-code-review-gitlab", version: "1.0.0" }, { capabilities: { tools: {} } });
|
|
23
25
|
this.reviewToolsService = new ReviewToolsService(this.logger.child('ReviewTools'));
|
|
26
|
+
this.gitToolsService = new GitToolsService(this.logger.child('GitTools'));
|
|
24
27
|
this.setupHandlers();
|
|
25
28
|
this.logger.info('GitLab MCP Server initialized');
|
|
26
29
|
}
|
|
@@ -72,6 +75,16 @@ export class GitLabMCPServer {
|
|
|
72
75
|
}
|
|
73
76
|
async handleToolCall(name, args) {
|
|
74
77
|
const params = args;
|
|
78
|
+
// Tools that operate on local git repos — no GitLab token needed
|
|
79
|
+
switch (name) {
|
|
80
|
+
case "resolve_anchors":
|
|
81
|
+
return this.gitToolsService.resolveAnchors(params);
|
|
82
|
+
case "check_draft_staleness":
|
|
83
|
+
return this.gitToolsService.checkDraftStaleness(params);
|
|
84
|
+
case "compile_checklist":
|
|
85
|
+
return this.gitToolsService.compileChecklist(params);
|
|
86
|
+
}
|
|
87
|
+
// All remaining tools require GitLab API access
|
|
75
88
|
const gitlabUrl = typeof params.gitlabUrl === 'string' ? params.gitlabUrl : undefined;
|
|
76
89
|
if (!gitlabUrl) {
|
|
77
90
|
throw ErrorHandler.validationError("gitlabUrl is required. Provide the GitLab instance URL (e.g. 'https://gitlab.example.com') so the correct token can be resolved from glab CLI config.", { tool: name });
|
|
@@ -84,12 +97,16 @@ export class GitLabMCPServer {
|
|
|
84
97
|
return this.reviewToolsService.extractVersionRefs(params, gitlabUrl, token);
|
|
85
98
|
case "extract_prior_discussions":
|
|
86
99
|
return this.reviewToolsService.extractPriorDiscussions(params, gitlabUrl, token);
|
|
100
|
+
case "extract_draft_notes":
|
|
101
|
+
return this.reviewToolsService.extractDraftNotes(params, gitlabUrl, token);
|
|
87
102
|
case "post_draft_notes":
|
|
88
103
|
return this.reviewToolsService.postDraftNotes(params, gitlabUrl, token);
|
|
89
104
|
case "delete_draft_notes":
|
|
90
105
|
return this.reviewToolsService.deleteDraftNotes(params, gitlabUrl, token);
|
|
91
106
|
case "publish_review":
|
|
92
107
|
return this.reviewToolsService.publishReview(params, gitlabUrl, token);
|
|
108
|
+
case "post_comment":
|
|
109
|
+
return this.reviewToolsService.postComment(params, gitlabUrl, token);
|
|
93
110
|
case "fetch_and_categorize_todos":
|
|
94
111
|
return this.reviewToolsService.fetchAndCategorizeTodos(params, gitlabUrl, token);
|
|
95
112
|
case "mark_todos_done":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitlab-server.js","sourceRoot":"","sources":["../../src/servers/gitlab-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"gitlab-server.js","sourceRoot":"","sources":["../../src/servers/gitlab-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Git Tools Service
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Uses simple-git for all git operations.
|
|
4
|
+
* Thin 1-to-1 wrapper over the git CLI using child_process.execFile.
|
|
5
|
+
* No third-party git libraries — requires git to be installed.
|
|
8
6
|
*/
|
|
9
7
|
import { Logger } from '../logging/logger.service.js';
|
|
8
|
+
import type { ResolveAnchorsParams, CheckDraftStalenessParams, CompileChecklistParams, DraftStalenessResult } from '../types.js';
|
|
10
9
|
export interface GitCloneParams {
|
|
11
10
|
url: string;
|
|
12
11
|
directory: string;
|
|
@@ -49,10 +48,6 @@ export interface GitLogParams {
|
|
|
49
48
|
export interface GitCleanupParams {
|
|
50
49
|
directory: string;
|
|
51
50
|
}
|
|
52
|
-
export interface WriteFileParams {
|
|
53
|
-
filePath: string;
|
|
54
|
-
content: string;
|
|
55
|
-
}
|
|
56
51
|
export interface GitGrepParams {
|
|
57
52
|
repoDir: string;
|
|
58
53
|
pattern: string;
|
|
@@ -67,7 +62,6 @@ export interface GitResetParams {
|
|
|
67
62
|
export declare class GitToolsService {
|
|
68
63
|
private logger;
|
|
69
64
|
constructor(logger?: Logger);
|
|
70
|
-
private git;
|
|
71
65
|
clone(params: GitCloneParams): Promise<{
|
|
72
66
|
directory: string;
|
|
73
67
|
}>;
|
|
@@ -100,12 +94,42 @@ export declare class GitToolsService {
|
|
|
100
94
|
cleanup(params: GitCleanupParams): Promise<{
|
|
101
95
|
removed: boolean;
|
|
102
96
|
}>;
|
|
103
|
-
writeFile(params: WriteFileParams): Promise<{
|
|
104
|
-
written: boolean;
|
|
105
|
-
}>;
|
|
106
97
|
grep(params: GitGrepParams): Promise<{
|
|
107
98
|
results: string;
|
|
108
99
|
matchCount: number;
|
|
109
100
|
}>;
|
|
101
|
+
/**
|
|
102
|
+
* Resolve anchor-based findings to line numbers by parsing the diff.
|
|
103
|
+
*
|
|
104
|
+
* Each finding has a file, hunk header, and anchor (line content).
|
|
105
|
+
* This method finds the anchor in the diff and sets the line number.
|
|
106
|
+
*/
|
|
107
|
+
resolveAnchors(params: ResolveAnchorsParams): Promise<{
|
|
108
|
+
resolved: number;
|
|
109
|
+
fallbackToGeneral: number;
|
|
110
|
+
total: number;
|
|
111
|
+
}>;
|
|
112
|
+
/**
|
|
113
|
+
* Check which draft notes are stale by comparing their target line
|
|
114
|
+
* against the current file content on HEAD.
|
|
115
|
+
*/
|
|
116
|
+
checkDraftStaleness(params: CheckDraftStalenessParams): Promise<{
|
|
117
|
+
results: DraftStalenessResult[];
|
|
118
|
+
staleCount: number;
|
|
119
|
+
freshCount: number;
|
|
120
|
+
}>;
|
|
121
|
+
/**
|
|
122
|
+
* Compile non-blocking findings into a markdown checklist with file links.
|
|
123
|
+
*/
|
|
124
|
+
compileChecklist(params: CompileChecklistParams): Promise<{
|
|
125
|
+
markdown: string;
|
|
126
|
+
itemCount: number;
|
|
127
|
+
}>;
|
|
128
|
+
private getFileDiff;
|
|
129
|
+
private getFileLines;
|
|
130
|
+
private resolveAnchorInDiff;
|
|
131
|
+
private parseHunks;
|
|
132
|
+
private findMatchingHunk;
|
|
133
|
+
private findAnchorInHunk;
|
|
110
134
|
}
|
|
111
135
|
//# sourceMappingURL=git-tools.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-tools.service.d.ts","sourceRoot":"","sources":["../../src/services/git-tools.service.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"git-tools.service.d.ts","sourceRoot":"","sources":["../../src/services/git-tools.service.ts"],"names":[],"mappings":"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"}
|