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安全扫描, 上游代理, 代码安全扫描, 代码审查工具, 代码质量检测, 依赖审计, 安全插件, 安全防御评估, 开发者入职助手, 开源许可证合规, 敏感信息泄露检测, 测试覆盖率分析, 自动化攻击, 自动化文档生成, 请求拦截, 软件供应链安全, 远程方法调用, 错误基检测, 静态代码分析, 黑客松项目