repopilot 0.15.0 → 0.16.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 +68 -69
- package/package.json +11 -8
package/README.md
CHANGED
|
@@ -4,124 +4,122 @@
|
|
|
4
4
|
[](https://www.npmjs.com/package/repopilot)
|
|
5
5
|
[](https://github.com/MykytaStel/repopilot/actions)
|
|
6
6
|
[](https://github.com/MykytaStel/repopilot/releases)
|
|
7
|
-
[](https://crates.io/crates/repopilot)
|
|
8
7
|
[](LICENSE)
|
|
9
|
-
[](https://github.com/MykytaStel/repopilot)
|
|
10
8
|
|
|
11
|
-
**
|
|
12
|
-
|
|
9
|
+
**Review what you or an AI agent changed before you merge.**
|
|
10
|
+
|
|
11
|
+
RepoPilot is a fast, local-first Rust CLI for Git change review. It flags
|
|
12
|
+
security-boundary changes, behavioral and algorithmic shifts, taint-lite flows,
|
|
13
|
+
and blast radius so maintainers can focus on the parts of a diff that deserve
|
|
14
|
+
extra attention. It is deterministic, runs entirely on your machine, and can be
|
|
15
|
+
called by coding agents over MCP. Nothing is uploaded.
|
|
13
16
|
|
|
14
17
|
```text
|
|
15
|
-
|
|
18
|
+
git diff -> boundary + behavior + taint + blast radius -> review or CI gate
|
|
16
19
|
```
|
|
17
20
|
|
|
18
21
|
<p align="center">
|
|
19
|
-
<img src="docs/demos/02-review.gif" alt="RepoPilot reviewing a branch change" width="800">
|
|
22
|
+
<img src="https://raw.githubusercontent.com/MykytaStel/repopilot/main/docs/demos/02-review.gif" alt="RepoPilot reviewing a branch change" width="800">
|
|
20
23
|
</p>
|
|
21
24
|
|
|
22
|
-
> RepoPilot
|
|
25
|
+
> RepoPilot reports structural evidence, not a security verdict. Use it beside
|
|
26
|
+
> tests, linters, type checkers, and dedicated security tools.
|
|
23
27
|
|
|
24
28
|
## Install
|
|
25
29
|
|
|
26
30
|
```bash
|
|
27
|
-
cargo install repopilot
|
|
31
|
+
cargo install repopilot
|
|
32
|
+
# or
|
|
33
|
+
npm install -g repopilot
|
|
28
34
|
```
|
|
29
35
|
|
|
30
|
-
Homebrew,
|
|
36
|
+
Homebrew, curl, GitHub Releases, and source builds are documented in
|
|
37
|
+
[Installation](https://github.com/MykytaStel/repopilot/blob/main/docs/install.md).
|
|
31
38
|
|
|
32
|
-
##
|
|
39
|
+
## Review A Change
|
|
33
40
|
|
|
34
|
-
Review
|
|
41
|
+
Review the working tree against `HEAD`:
|
|
35
42
|
|
|
36
43
|
```bash
|
|
37
|
-
repopilot review .
|
|
44
|
+
repopilot review .
|
|
38
45
|
```
|
|
39
46
|
|
|
40
|
-
|
|
41
|
-
$ repopilot review . --base main
|
|
42
|
-
|
|
43
|
-
Changed files: 2
|
|
44
|
-
In-diff findings: 2
|
|
45
|
-
|
|
46
|
-
Blast radius:
|
|
47
|
-
The following files import changed files and may need extra review:
|
|
48
|
-
- src/admin.ts
|
|
49
|
-
- src/routes.ts
|
|
47
|
+
Review a branch before merge:
|
|
50
48
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
⚑ request trust src/server/cors.ts
|
|
54
|
-
⚠ A code boundary changed but no test did — confirm it's still covered.
|
|
49
|
+
```bash
|
|
50
|
+
repopilot review . --base origin/main
|
|
55
51
|
```
|
|
56
52
|
|
|
57
|
-
|
|
53
|
+
RepoPilot groups review evidence into confidence tiers:
|
|
58
54
|
|
|
59
|
-
|
|
55
|
+
- security boundaries: access control, request trust, deploy surface, supply
|
|
56
|
+
chain, and secret configuration;
|
|
57
|
+
- behavioral changes: network, subprocess, filesystem, SQL, dependencies,
|
|
58
|
+
migrations, removed error handling, or removed auth checks;
|
|
59
|
+
- algorithmic changes: deeper nesting, nested loops, growth, or recursion;
|
|
60
|
+
- taint-lite flows: changed request or process input reaching SQL, exec,
|
|
61
|
+
filesystem-write, or outbound-network sinks;
|
|
62
|
+
- blast radius: files that import a changed file.
|
|
60
63
|
|
|
61
|
-
|
|
64
|
+
All review signals ship at `preview`. They are advisory by default; enable the
|
|
65
|
+
explicit high-confidence gate with:
|
|
62
66
|
|
|
63
67
|
```bash
|
|
64
|
-
repopilot
|
|
65
|
-
repopilot scan . --baseline .repopilot/baseline.json --fail-on new-high # fail CI only on newly introduced risk
|
|
66
|
-
repopilot ai context . --budget 4k # budgeted, evidence-backed Markdown
|
|
68
|
+
repopilot review . --base origin/main --fail-on-review definitely
|
|
67
69
|
```
|
|
68
70
|
|
|
69
|
-
|
|
71
|
+
For a complete agent run:
|
|
70
72
|
|
|
71
73
|
```bash
|
|
72
|
-
repopilot
|
|
73
|
-
|
|
74
|
-
repopilot
|
|
75
|
-
repopilot ai plan . # get a prioritized remediation plan
|
|
76
|
-
repopilot ai prompt . # generate a paste-ready prompt for an assistant
|
|
77
|
-
repopilot review . # check the assistant's change before merging
|
|
74
|
+
repopilot snapshot
|
|
75
|
+
# let the agent or developer work
|
|
76
|
+
repopilot review --since-snapshot
|
|
78
77
|
```
|
|
79
78
|
|
|
80
|
-
##
|
|
79
|
+
## Full Repository Audit
|
|
81
80
|
|
|
82
|
-
|
|
81
|
+
The broader scan remains available for repository adoption and CI:
|
|
83
82
|
|
|
84
83
|
```bash
|
|
85
|
-
|
|
84
|
+
repopilot scan .
|
|
85
|
+
repopilot baseline create .
|
|
86
|
+
repopilot scan . \
|
|
87
|
+
--baseline .repopilot/baseline.json \
|
|
88
|
+
--fail-on new-high
|
|
86
89
|
```
|
|
87
90
|
|
|
88
|
-
|
|
91
|
+
Default scans hide broad maintainability noise. Use `--profile strict` for the
|
|
92
|
+
full audit surface.
|
|
89
93
|
|
|
90
|
-
|
|
91
|
-
- `repopilot_scan` — full repository audit as JSON.
|
|
92
|
-
- `repopilot_context` — a budgeted, AI-ready Markdown brief of the repo.
|
|
93
|
-
- `repopilot_explain_file` — how a single file is classified and which rules apply.
|
|
94
|
+
## AI Agents And MCP
|
|
94
95
|
|
|
95
|
-
|
|
96
|
+
RepoPilot exposes local review, scan, context, and explain tools over stdio:
|
|
96
97
|
|
|
97
|
-
|
|
98
|
+
```bash
|
|
99
|
+
claude mcp add repopilot -- repopilot mcp --root .
|
|
100
|
+
```
|
|
98
101
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
| **Review a change** | changed-line findings, blast radius, and tiered boundary/behavioral/algorithmic signals — including before/after an agent edit via `snapshot` + `review --since-snapshot` (`review`, MCP) |
|
|
102
|
-
| Full scan | repo-wide, evidence-ranked findings — secrets, runtime footguns, architecture — quiet by default ([trust mode](docs/trust-mode.md)) |
|
|
103
|
-
| Baseline + CI gate | accept current debt as a baseline; fail CI only on newly introduced risk |
|
|
104
|
-
| Reports | Console, Markdown, JSON, [SARIF](docs/integrations/github-code-scanning.md), HTML, receipts |
|
|
105
|
-
| AI context | local, budgeted, evidence-backed Markdown brief for coding assistants |
|
|
102
|
+
The MCP server is synchronous, root-confined, and makes no network or LLM calls.
|
|
103
|
+
See [MCP server](https://github.com/MykytaStel/repopilot/blob/main/docs/mcp.md).
|
|
106
104
|
|
|
107
|
-
|
|
105
|
+
## Distribution
|
|
108
106
|
|
|
109
|
-
|
|
107
|
+
Official CLI channels are crates.io, npm, Homebrew, and GitHub Releases.
|
|
110
108
|
|
|
111
|
-
|
|
109
|
+
Platform-specific VSIX files are attached to GitHub Releases as a **preview**
|
|
110
|
+
integration. RepoPilot is not currently published to the VS Code Marketplace or
|
|
111
|
+
PyPI.
|
|
112
112
|
|
|
113
113
|
## Documentation
|
|
114
114
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
| [MCP](docs/mcp.md) | Using RepoPilot from AI agents |
|
|
124
|
-
| [Release Process](docs/release.md) | Local and CI release gates |
|
|
115
|
+
- [Documentation index](https://github.com/MykytaStel/repopilot/blob/main/docs/README.md)
|
|
116
|
+
- [Common workflows](https://github.com/MykytaStel/repopilot/blob/main/docs/commands.md)
|
|
117
|
+
- [CLI reference](https://github.com/MykytaStel/repopilot/blob/main/docs/cli.md)
|
|
118
|
+
- [Configuration](https://github.com/MykytaStel/repopilot/blob/main/docs/configuration.md)
|
|
119
|
+
- [Reports and schemas](https://github.com/MykytaStel/repopilot/blob/main/docs/reports.md)
|
|
120
|
+
- [GitHub pull request integration](https://github.com/MykytaStel/repopilot/blob/main/docs/integrations/github-code-scanning.md)
|
|
121
|
+
- [Signal contract](https://github.com/MykytaStel/repopilot/blob/main/docs/engineering/signal-contract.md)
|
|
122
|
+
- [Release process](https://github.com/MykytaStel/repopilot/blob/main/docs/release.md)
|
|
125
123
|
|
|
126
124
|
## Development
|
|
127
125
|
|
|
@@ -129,6 +127,7 @@ RepoPilot does not upload source code, run a hosted scanner, call LLM APIs impli
|
|
|
129
127
|
cargo fmt --all -- --check
|
|
130
128
|
cargo clippy --all-targets --all-features -- -D warnings
|
|
131
129
|
cargo test --all
|
|
130
|
+
npm run release:contract
|
|
132
131
|
./scripts/smoke-product.sh
|
|
133
132
|
```
|
|
134
133
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "repopilot",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Local-first CLI for
|
|
3
|
+
"version": "0.16.0",
|
|
4
|
+
"description": "Local-first CLI for reviewing Git changes, security boundaries, and blast radius before merge.",
|
|
5
5
|
"license": "MIT OR Apache-2.0",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -18,7 +18,10 @@
|
|
|
18
18
|
"test": "npm run test:npm",
|
|
19
19
|
"test:npm": "node --test tests/npm_wrapper.test.js",
|
|
20
20
|
"release:check": "bash scripts/verify-release.sh",
|
|
21
|
-
"product:smoke": "bash scripts/smoke-product.sh"
|
|
21
|
+
"product:smoke": "bash scripts/smoke-product.sh",
|
|
22
|
+
"release:contract": "python3 scripts/release-contract.py check",
|
|
23
|
+
"review:performance": "node scripts/check-review-performance.js",
|
|
24
|
+
"vscode:check": "npm --prefix editors/vscode run check"
|
|
22
25
|
},
|
|
23
26
|
"files": [
|
|
24
27
|
"bin",
|
|
@@ -26,11 +29,11 @@
|
|
|
26
29
|
"LICENSE"
|
|
27
30
|
],
|
|
28
31
|
"optionalDependencies": {
|
|
29
|
-
"@repopilot/darwin-arm64": "0.
|
|
30
|
-
"@repopilot/darwin-x64": "0.
|
|
31
|
-
"@repopilot/linux-arm64-gnu": "0.
|
|
32
|
-
"@repopilot/linux-x64-gnu": "0.
|
|
33
|
-
"@repopilot/win32-x64-msvc": "0.
|
|
32
|
+
"@repopilot/darwin-arm64": "0.16.0",
|
|
33
|
+
"@repopilot/darwin-x64": "0.16.0",
|
|
34
|
+
"@repopilot/linux-arm64-gnu": "0.16.0",
|
|
35
|
+
"@repopilot/linux-x64-gnu": "0.16.0",
|
|
36
|
+
"@repopilot/win32-x64-msvc": "0.16.0"
|
|
34
37
|
},
|
|
35
38
|
"keywords": [
|
|
36
39
|
"cli",
|