repopilot 0.9.0 → 0.10.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 +44 -11
- package/package.json +1 -1
- package/scripts/smoke-product.sh +3 -1
package/README.md
CHANGED
|
@@ -15,6 +15,10 @@ and framework health checks. It gives developers useful terminal reports, CI gat
|
|
|
15
15
|
SARIF for GitHub Code Scanning, and Markdown briefs that can be pasted into Claude
|
|
16
16
|
Code, ChatGPT, Cursor, or another coding assistant.
|
|
17
17
|
|
|
18
|
+
Version `0.10.0` is an adoption and stability release: it focuses on cleaner
|
|
19
|
+
rollout diagnostics, reproducible audit receipts, CI artifacts, and 0.x command
|
|
20
|
+
compatibility while keeping all scans local.
|
|
21
|
+
|
|
18
22
|
## Why RepoPilot?
|
|
19
23
|
|
|
20
24
|
Most linters and audit tools stop at the terminal. RepoPilot bridges the gap to your AI assistant:
|
|
@@ -36,23 +40,25 @@ repopilot ai context . | pbcopy # macOS: paste into your coding assistant
|
|
|
36
40
|
|
|
37
41
|
- Repository scanning for projects, folders, and individual files
|
|
38
42
|
- Gitignore-aware walking with built-in ignores for common build, cache, vendor, and native platform directories
|
|
39
|
-
- Architecture findings: oversized files, deep nesting, too many modules per directory
|
|
43
|
+
- Architecture findings: oversized files, deep nesting, deep relative imports, risky barrel files, too many modules per directory
|
|
40
44
|
- Coupling analysis: excessive fan-out, high-instability hubs, circular dependencies
|
|
41
45
|
- Code quality findings: cyclomatic complexity density, long functions, TODO/FIXME/HACK markers
|
|
42
46
|
- Security findings: hardcoded secret candidates, committed private keys, committed `.env` files
|
|
43
47
|
- Testing findings: missing test folder, source files without test counterparts
|
|
44
|
-
- Framework findings for JavaScript, React, React Native, and
|
|
48
|
+
- Framework findings for JavaScript, React, React Native, Expo, and Django projects
|
|
45
49
|
- React Native architecture profile: project kind, New Architecture, Hermes, Codegen, platform mismatch, and package manager signals
|
|
46
50
|
- Workspace scanning (`--workspace`) for npm, yarn, pnpm, and Cargo workspaces with per-package risk summary — parallel per-package scans
|
|
47
51
|
- Evidence-backed findings with stable rule IDs, severity, file paths, line numbers, and snippets
|
|
48
|
-
-
|
|
52
|
+
- 46 built-in rules with titles, descriptions, recommendations, and docs links
|
|
49
53
|
- `repopilot.toml` configuration generated by `repopilot init`
|
|
50
54
|
- Configuration presets (`--preset strict|balanced|lenient`) for quick threshold tuning
|
|
51
55
|
- Baseline workflow for accepting existing findings in legacy repositories
|
|
52
56
|
- CI-friendly failure thresholds with `--fail-on`
|
|
53
57
|
- Git diff-aware review mode for prioritizing findings introduced by changed lines
|
|
58
|
+
- Doctor adoption guidance for config, baseline, CI gate, report, and receipt readiness
|
|
59
|
+
- Audit receipt JSON from `repopilot scan --receipt` for reproducible scan evidence
|
|
54
60
|
- Console, JSON, Markdown, HTML, and SARIF (2.1.0) scan output — SARIF includes per-result category and workspace package properties
|
|
55
|
-
- First-party GitHub Action wrapper for `scan`, `review`, `compare`, and `ai` workflows, with optional SARIF upload for scans
|
|
61
|
+
- First-party GitHub Action wrapper for `scan`, `review`, `compare`, and `ai` workflows, with optional SARIF upload and receipt output for scans
|
|
56
62
|
- Compare mode for diffing two JSON scan reports
|
|
57
63
|
- **`repopilot ai context`** — formats scan output as LLM-ready markdown, paste into Claude Code or ChatGPT to start remediating
|
|
58
64
|
- **`repopilot ai plan`** — turns findings into a prioritized remediation plan
|
|
@@ -105,17 +111,36 @@ cargo build --release
|
|
|
105
111
|
|
|
106
112
|
## Quick Start
|
|
107
113
|
|
|
114
|
+
No config needed. Run this in any repository and see findings immediately:
|
|
115
|
+
|
|
108
116
|
```bash
|
|
109
|
-
repopilot init
|
|
110
117
|
repopilot scan .
|
|
111
|
-
|
|
112
|
-
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Then get an AI-ready brief to paste into Claude Code, Cursor, or ChatGPT:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
repopilot ai context . | pbcopy # macOS — copies to clipboard
|
|
124
|
+
repopilot ai context . # print to terminal
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
That's the two-minute loop. Scan, read the output, paste the context into your assistant, fix.
|
|
128
|
+
|
|
129
|
+
### Going deeper
|
|
130
|
+
|
|
131
|
+
Once you want CI integration, baseline tracking, or tighter configuration:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
repopilot init # generate repopilot.toml
|
|
135
|
+
repopilot doctor . # check CI / baseline readiness
|
|
136
|
+
repopilot baseline create . # accept existing findings as known debt
|
|
137
|
+
repopilot review . --base origin/main --fail-on new-high # CI gate on new findings only
|
|
113
138
|
```
|
|
114
139
|
|
|
115
140
|
Save a shareable report:
|
|
116
141
|
|
|
117
142
|
```bash
|
|
118
|
-
repopilot scan . --format markdown --output repopilot-report.md
|
|
143
|
+
repopilot scan . --format markdown --output repopilot-report.md --receipt .repopilot/receipt.json
|
|
119
144
|
```
|
|
120
145
|
|
|
121
146
|
Reduce scan noise while iterating:
|
|
@@ -357,6 +382,7 @@ repopilot scan . --format sarif > repopilot.sarif
|
|
|
357
382
|
```
|
|
358
383
|
|
|
359
384
|
Use JSON when custom scripts need to parse RepoPilot results. Console, Markdown, and HTML reports include the RepoPilot version, risk summary, top rules, and grouped findings for human review. Use SARIF for CI and code scanning integrations, including GitHub Code Scanning.
|
|
385
|
+
Use `--receipt <path>` with `scan` when CI or release processes need compact evidence of the exact RepoPilot version, git state, scan scope, finding counts, language counts, and health score.
|
|
360
386
|
|
|
361
387
|
See [docs/integrations/github-code-scanning.md](docs/integrations/github-code-scanning.md) for a copy-paste GitHub Actions workflow, required permissions, and local validation commands.
|
|
362
388
|
|
|
@@ -377,7 +403,7 @@ Use `--fail-on new-high` to fail CI only when new high or critical findings are
|
|
|
377
403
|
When `--fail-on new-*` is used without `--baseline`, RepoPilot treats all current findings as new. For baseline-based adoption, commit an accepted baseline and scan against it in CI.
|
|
378
404
|
|
|
379
405
|
To upload RepoPilot findings to GitHub Code Scanning, generate SARIF and use `github/codeql-action/upload-sarif`. The workflow must include `security-events: write`.
|
|
380
|
-
The first-party action can also run `command: ai-context`, `command: ai-plan`, or `command: ai-prompt`; those commands emit Markdown and do not produce SARIF. Prefer typed action inputs such as `path`, `config`, `baseline`, `fail-on`, `focus`, `budget`, and `
|
|
406
|
+
The first-party action can also run `command: ai-context`, `command: ai-plan`, or `command: ai-prompt`; those commands emit Markdown and do not produce SARIF. Prefer typed action inputs such as `path`, `config`, `baseline`, `fail-on`, `focus`, `budget`, `output`, and `receipt`; `args` remains available for advanced flags.
|
|
381
407
|
|
|
382
408
|
```yaml
|
|
383
409
|
name: RepoPilot
|
|
@@ -403,7 +429,7 @@ jobs:
|
|
|
403
429
|
run: cargo install repopilot
|
|
404
430
|
|
|
405
431
|
- name: Run RepoPilot
|
|
406
|
-
run: repopilot scan . --baseline .repopilot/baseline.json --fail-on new-high
|
|
432
|
+
run: repopilot scan . --baseline .repopilot/baseline.json --fail-on new-high --receipt repopilot-receipt.json
|
|
407
433
|
|
|
408
434
|
- name: Run RepoPilot (SARIF)
|
|
409
435
|
run: repopilot scan . --format sarif --output repopilot.sarif
|
|
@@ -413,6 +439,13 @@ jobs:
|
|
|
413
439
|
if: always()
|
|
414
440
|
with:
|
|
415
441
|
sarif_file: repopilot.sarif
|
|
442
|
+
|
|
443
|
+
- name: Upload audit receipt
|
|
444
|
+
uses: actions/upload-artifact@v4
|
|
445
|
+
if: always()
|
|
446
|
+
with:
|
|
447
|
+
name: repopilot-receipt
|
|
448
|
+
path: repopilot-receipt.json
|
|
416
449
|
```
|
|
417
450
|
|
|
418
451
|
## Roadmap
|
|
@@ -438,7 +471,7 @@ These are planned ideas, not current features:
|
|
|
438
471
|
| [docs/react-native.md](docs/react-native.md) | React Native and Expo detection, findings, and limitations |
|
|
439
472
|
| [docs/integrations/github-code-scanning.md](docs/integrations/github-code-scanning.md) | GitHub Code Scanning SARIF workflow |
|
|
440
473
|
| [docs/release.md](docs/release.md) | Manual release process |
|
|
441
|
-
| [docs/release-checklist-0.
|
|
474
|
+
| [docs/release-checklist-0.10.md](docs/release-checklist-0.10.md) | 0.10.0 release readiness checklist |
|
|
442
475
|
| [docs/distribution.md](docs/distribution.md) | Distribution channels |
|
|
443
476
|
| [docs/github-ruleset.md](docs/github-ruleset.md) | GitHub branch ruleset configuration |
|
|
444
477
|
| [CHANGELOG.md](CHANGELOG.md) | Version history |
|
package/package.json
CHANGED
package/scripts/smoke-product.sh
CHANGED
|
@@ -206,9 +206,11 @@ assert_non_empty "$TMP_DIR/repopilot.toml"
|
|
|
206
206
|
run_repopilot doctor . --format markdown --output "$TMP_DIR/doctor.md"
|
|
207
207
|
assert_non_empty "$TMP_DIR/doctor.md"
|
|
208
208
|
|
|
209
|
-
run_repopilot scan . --format json --output "$TMP_DIR/scan.json"
|
|
209
|
+
run_repopilot scan . --format json --output "$TMP_DIR/scan.json" --receipt "$TMP_DIR/receipt.json"
|
|
210
210
|
assert_non_empty "$TMP_DIR/scan.json"
|
|
211
211
|
validate_json_if_possible "$TMP_DIR/scan.json"
|
|
212
|
+
assert_non_empty "$TMP_DIR/receipt.json"
|
|
213
|
+
validate_json_if_possible "$TMP_DIR/receipt.json"
|
|
212
214
|
|
|
213
215
|
run_repopilot scan . --format markdown --output "$TMP_DIR/scan.md"
|
|
214
216
|
assert_non_empty "$TMP_DIR/scan.md"
|