XCodeReviewer 是一个由大型语言模型(LLM)驱动的现代化代码审计平台,旨在为开发者提供智能、全面且极具深度的代码质量分析和审查服务。
在快节奏的软件开发中,保证代码质量至关重要。传统代码审计工具规则死板、效率低下,而人工审计则耗时耗力。XCodeReviewer 借助 Google Gemini AI 的强大能力,彻底改变了代码审查的方式:
实时展示项目统计、质量趋势和系统性能,提供全面的代码审计概览
支持代码片段快速分析,提供详细的 What-Why-How 解释和修复建议
集成 GitHub/GitLab 仓库,支持多语言项目审计和批量代码分析
使用 Docker 可以快速部署应用,无需配置 Node.js 环境。
克隆项目
git clone https://github.com/lintsinghua/XCodeReviewer.git
cd XCodeReviewer
配置环境变量
cp .env.example .env
# 编辑 .env 文件,至少需要配置 VITE_GEMINI_API_KEY
构建并启动
docker-compose build docker-compose up -d
访问应用
在浏览器中打开 http://localhost:5174
如果需要进行开发或自定义修改,可以使用本地部署方式。
18+8+ (推荐) 或 npm / yarn克隆项目
git clone https://github.com/lintsinghua/XCodeReviewer.git
cd XCodeReviewer
安装依赖
# 使用 pnpm (推荐)
pnpm install
# 或使用 npm
npm install
# 或使用 yarn
yarn install
配置环境变量
# 复制环境变量模板
cp .env.example .env
编辑 .env 文件,配置必要的环境变量:
# Google Gemini AI 配置 (必需) VITE_GEMINI_API_KEY=your_gemini_api_key_here VITE_GEMINI_MODEL=gemini-2.5-flash VITE_GEMINI_TIMEOUT_MS=25000 # Supabase 配置 (可选,用于数据持久化) VITE_SUPABASE_URL=https://your-project.supabase.co VITE_SUPABASE_ANON_KEY=your-anon-key-here # GitHub 集成 (可选,用于仓库分析) VITE_GITHUB_TOKEN=your_github_token_here # 应用配置 VITE_APP_ID=xcodereviewer # 分析配置 VITE_MAX_ANALYZE_FILES=40 VITE_LLM_CONCURRENCY=2 VITE_LLM_GAP_MS=500
启动开发服务器
pnpm dev
访问应用
在浏览器中打开 http://localhost:5173
.env 文件中的 VITE_GEMINI_API_KEY# 在 Supabase SQL 编辑器中执行
cat supabase/migrations/full_schema.sql
| 分类 | 技术 | 说明 |
|---|---|---|
| 前端框架 | React 18 TypeScript Vite | 现代化前端开发栈,支持热重载和类型安全 |
| UI 组件 | Tailwind CSS Radix UI Lucide React | 响应式设计,无障碍访问,丰富的图标库 |
| 数据可视化 | Recharts | 专业的图表库,支持多种图表类型 |
| 路由管理 | React Router v6 | 单页应用路由解决方案 |
| 状态管理 | React Hooks Sonner | 轻量级状态管理和通知系统 |
| AI 引擎 | Google Gemini 2.5 Flash (预计后续会开放更多主流平台API功能) | 强大的大语言模型,支持代码分析 |
| 后端服务 | Supabase PostgreSQL | 全栈后端即服务,实时数据库 |
| HTTP 客户端 | Axios Ky | 现代化的 HTTP 请求库 |
| 代码质量 | Biome Ast-grep TypeScript | 代码格式化、静态分析和类型检查 |
| 构建工具 | Vite PostCSS Autoprefixer | 快速的构建工具和 CSS 处理 |
XCodeReviewer/ ├── src/ │ ├── app/ # 应用配置 │ │ ├── App.tsx # 主应用组件 │ │ ├── main.tsx # 应用入口点 │ │ └── routes.tsx # 路由配置 │ ├── components/ # React 组件 │ │ ├── layout/ # 布局组件 (Header, Footer, PageMeta) │ │ ├── ui/ # UI 组件库 (基于 Radix UI) │ │ └── debug/ # 调试组件 │ ├── pages/ # 页面组件 │ │ ├── Dashboard.tsx # 仪表盘 │ │ ├── Projects.tsx # 项目管理 │ │ ├── InstantAnalysis.tsx # 即时分析 │ │ ├── AuditTasks.tsx # 审计任务 │ │ └── AdminDashboard.tsx # 系统管理 │ ├── features/ # 功能模块 │ │ ├── analysis/ # 分析相关服务 │ │ │ └── services/ # AI 代码分析引擎 │ │ └── projects/ # 项目相关服务 │ │ └── services/ # 仓库扫描、ZIP 文件扫描 │ ├── shared/ # 共享工具 │ │ ├── config/ # 配置文件 (数据库、环境变量) │ │ ├── types/ # TypeScript 类型定义 │ │ ├── hooks/ # 自定义 React Hooks │ │ ├── utils/ # 工具函数 │ │ └── constants/ # 常量定义 │ └── assets/ # 静态资源 │ └── styles/ # 样式文件 ├── supabase/ │ └── migrations/ # 数据库迁移文件 ├── public/ │ └── images/ # 图片资源 ├── scripts/ # 构建和设置脚本 └── rules/ # 代码规则配置
/instant-analysis 页面/projects 页面# 开发模式
pnpm dev
# 构建生产版本
pnpm build
# 预览构建结果
pnpm preview
# 代码检查
pnpm lint
| 变量名 | 必需 | 说明 |
|---|---|---|
VITE_GEMINI_API_KEY | ✅ | Google Gemini API 密钥 |
VITE_GEMINI_MODEL | ❌ | AI 模型名称 (默认: gemini-2.5-flash) |
VITE_GEMINI_TIMEOUT_MS | ❌ | 请求超时时间 (默认: 25000ms) |
VITE_SUPABASE_URL | ❌ | Supabase 项目 URL |
VITE_SUPABASE_ANON_KEY | ❌ | Supabase 匿名密钥 |
VITE_APP_ID | ❌ | 应用标识符 (默认: xcodereviewer) |
我们热烈欢迎所有形式的贡献!无论是提交 issue、创建 PR,还是改进文档,您的每一次贡献对我们都至关重要。请联系我们了解详细信息。
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)目前 XCodeReviewer 定位为快速原型验证阶段,功能需要逐渐完善,根据项目后续发展和大家的建议,未来开发计划如下(尽快实现):
Agent+人工对话反馈的功能,包括多轮对话流程展示,人工对话中断干涉等,以获得更清晰、透明、监督性的审计过程,提升审计质量⭐ 如果这个项目对您有帮助,请给我们一个 Star!您的支持是我们不断前进的动力!
本免责声明旨在明确用户使用本开源项目的相关责任和风险,保护项目作者、贡献者和维护者的合法权益。本开源项目提供的代码、工具及相关内容仅供参考和学习使用。
如有疑问,请通过 GitHub Issues 联系维护者。本免责声明受项目所在地法律管辖。