shlok695/Repopilot
GitHub: shlok695/Repopilot
一款 AI 辅助的代码仓库综合分析工具,集成多种安全扫描和代码质量检查工具,一键生成漏洞报告、README 文档和开发者入门摘要。
Stars: 0 | Forks: 0
# RepoPilot 🚀
**AI 驱动的仓库分析与安全扫描器**
RepoPilot 是一个综合性的 Web 应用程序,可以分析 GitHub 仓库或上传的 ZIP 文件,以提供:
- 📝 自动生成的 README 文档
- 🔒 漏洞扫描(npm audit、semgrep、gitleaks)
- 🐛 Bug 和代码质量分析(eslint、ruff、模式扫描)
- 💡 建议的修复和推荐方案
- 📊 可下载的 Markdown 报告
## 功能
- **多语言支持**:分析 Node.js、Python 和混合语言仓库
- **全面的安全扫描**:检测漏洞、机密信息泄露和安全问题
- **代码质量分析**:识别 Bug、代码异味和复杂度问题
- **依赖清单**:列出所有依赖项及其版本信息
- **许可证合规性**:扫描并标记存在问题的许可证
- **测试覆盖率分析**:评估测试基础设施
- **公共访问**:通过 Tailscale Funnel 暴露以用于黑客马拉松演示
## 技术栈
### 前端
- React 18 与 TypeScript
- Vite 用于快速构建
- React Router 用于路由导航
- Tailwind CSS 用于样式设计
- Axios 用于 API 调用
### 后端
- Node.js 与 Express 和 TypeScript
- Multer 用于文件上传
- Simple-git 用于仓库克隆
- 速率限制和安全中间件
### 中间件与代理
- 基于 JavaScript 的编排层
- 模块化代理架构
- 超时管理和重试逻辑
- 全面的错误处理
## 快速开始
### 前置条件
- Node.js 18+
- Docker 与 Docker Compose
- Git
- 安全工具:semgrep、gitleaks、bandit(可选,有回退机制)
### 本地开发(不使用 Docker)
1. **克隆并安装**
```
git clone
cd repopilot
```
2. **设置后端**
```
cd backend
npm install
cp .env.example .env
npm run dev
```
3. **设置前端**(在新终端中)
```
cd frontend
npm install
cp .env.example .env
npm run dev
```
4. **访问应用**
- 前端:http://localhost:3000
- 后端:http://localhost:5000
### Docker 部署
1. **配置环境变量**
```
cp .env.example .env
# 使用您的设置编辑 .env
```
2. **启动服务**
```
docker compose up -d
```
3. **检查状态**
```
docker compose ps
docker compose logs -f
```
4. **访问应用**
- 前端:http://localhost:3000
- 后端 API:http://localhost:5000/api/health
### 使用 Tailscale Funnel 公共访问
有关为黑客马拉松演示公开暴露 RepoPilot 的详细说明,请参见 [tailscale-setup.md](./tailscale-setup.md)。
## 项目结构
```
repopilot/
├── frontend/ # React + TypeScript UI
├── backend/ # Express + TypeScript API
├── middleware/ # JavaScript orchestration layer
├── agents/ # JavaScript analysis agents
├── docker-compose.yml # Container orchestration
└── tailscale-setup.md # Public access guide
```
## API 端点
### 健康检查
```
GET /api/health
```
### 启动扫描
```
POST /api/scan
Body: { type: "github", repoUrl: "..." } or { type: "zip", file: }
```
### 获取扫描结果
```
GET /api/scan/:scanId
```
### 下载报告
```
GET /api/scan/:scanId/report
```
### 列出最近的扫描
```
GET /api/scans
```
## 使用的安全工具
- **npm audit**:Node.js 依赖漏洞
- **pip-audit**:Python 依赖漏洞
- **semgrep**:多语言静态分析
- **gitleaks**:机密信息检测
- **bandit**:Python 安全代码检查
- **eslint**:JavaScript/TypeScript 代码检查
- **ruff**:Python 代码检查
## 系统架构
RepoPilot 采用模块化的基于代理的架构:
1. **扫描编排器**:协调所有分析代理
2. **仓库分析器**:检测语言和框架
3. **README 生成器**:创建全面的文档
4. **漏洞扫描器**:运行安全工具
5. **Bug 扫描器**:检测代码质量问题
6. **报告生成器**:格式化最终的 Markdown 报告
7. **其他代理**:依赖项、机密信息、许可证、复杂度、测试覆盖率
## 存储
- 无需数据库
- 结果以 JSON 和 Markdown 格式存储在 `/tmp/repopilot/` 中
- 自动清理旧的扫描记录
- 扫描结果在会话期间持久保存
## 配置
所有配置均通过环境变量进行。有关可用选项,请参见 `.env.example`。
关键设置:
- `MAX_ZIP_SIZE_MB`:最大上传大小(默认:25MB)
- `SCAN_TIMEOUT_MS`:整体扫描超时时间(默认:90秒)
- `AGENT_TIMEOUT_MS`:单代理超时时间(默认:30秒)
- `ALLOWED_ORIGIN`:CORS 来源(在生产环境中设置为 Tailscale URL)
## 开发
### 运行测试
```
# Frontend 测试
cd frontend
npm test
# Backend 测试
cd backend
npm test
```
### 生产环境构建
```
# Frontend
cd frontend
npm run build
# Backend
cd backend
npm run build
```
## 故障排除
### 端口已被占用
```
# 终止端口 3000 或 5000 上的进程
lsof -ti:3000 | xargs kill -9
lsof -ti:5000 | xargs kill -9
```
### Docker 问题
```
# Clean restart
docker compose down -v
docker compose up -d --build
```
### 缺少安全工具
如果工具不可用,RepoPilot 将回退到基于模式的扫描。安装相关工具可获得最佳结果:
```
# Semgrep
pip install semgrep
# Gitleaks
brew install gitleaks # macOS
# 或从 https://github.com/gitleaks/gitleaks/releases 下载
# Bandit
pip install bandit
```
## 贡献
这是一个黑客马拉松项目。欢迎贡献!
## 许可证
MIT 许可证 - 详情请参见 LICENSE 文件
## 黑客马拉松演示
致评委和评估人员:
1. 访问提供的公共 URL(通过 Tailscale Funnel)
2. 粘贴 GitHub 仓库 URL 或上传 ZIP 文件
3. 点击“Scan Repository”(扫描仓库)
4. 查看全面的分析结果
5. 下载完整的 Markdown 报告
## 支持
在黑客马拉松期间如有问题或疑问,请联系团队。
用 ❤️ 为 [黑客松名称] 构建
标签:AI代码分析, AI编程辅助, CISA项目, DevSecOps, Docker, ESLint, Express, GitHub仓库分析, Gitleaks, GNU通用公共许可证, IPv6支持, MITM代理, Node.js, React, README生成器, Ruff, Semgrep, Syscalls, Tailwind CSS, TypeScript, Vite, WordPress安全扫描, 上游代理, 代码安全扫描, 代码审查工具, 代码质量检测, 依赖审计, 安全插件, 安全防御评估, 开发者入职助手, 开源许可证合规, 敏感信息泄露检测, 测试覆盖率分析, 自动化攻击, 自动化文档生成, 请求拦截, 软件供应链安全, 远程方法调用, 错误基检测, 静态代码分析, 黑客松项目