# gitlab-code-review **Repository Path**: phillau/gitlab-code-review ## Basic Information - **Project Name**: gitlab-code-review - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-07 - **Last Updated**: 2026-02-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GitLab 代码评审系统 基于 Spring AI 的 GitLab 代码自动评审系统,支持 Merge Request 自动评审并以 suggestion 格式插入优化建议。 ## 功能特性 - **自动代码评审**:MR 创建或更新时自动触发 AI 代码评审 - **智能建议**:以 GitLab suggestion 格式插入代码优化建议 - **增强上下文** ⭐:通过AST解析提供完整代码上下文,提高评审准确性 - **智能验证**:自动过滤上下文行评论,避免"Unable to load the diff"错误 - **项目知识库**:支持配置项目特定的编码规范 - **管理后台**:提示词配置、评审记录、操作日志、仪表盘 - **权限管理**:支持多用户和细粒度权限控制 - **Docker 部署**:一键部署 ## 快速开始 ### 1. 配置环境变量 ```bash cp .env.example .env # 编辑 .env 文件,填入实际配置 ``` ### 2. Docker 部署 ```bash docker-compose up -d ``` ### 3. 访问系统 - 地址:http://localhost:8080 - 默认账号:admin - 默认密码:kdadmin#2026 ## GitLab Webhook 配置 1. 进入 GitLab 项目 Settings > Webhooks 2. URL: `http://your-server:8080/api/webhook/gitlab` 3. Secret Token: 与 `GITLAB_WEBHOOK_SECRET` 一致 4. Trigger: 勾选 `Merge request events` ## 环境变量说明 | 变量 | 说明 | 示例 | |------|------|------| | OPENAI_API_KEY | OpenAI API Key | sk-xxx | | OPENAI_BASE_URL | API 地址 | https://api.openai.com | | OPENAI_MODEL | 模型名称 | gpt-4 | | GITLAB_URL | GitLab 地址 | https://gitlab.com | | GITLAB_TOKEN | GitLab Access Token | glpat-xxx | | GITLAB_WEBHOOK_SECRET | Webhook 密钥 | your-secret | | ENHANCED_CONTEXT | 启用增强上下文 | true | ## 增强上下文功能 ⭐ 增强上下文功能通过AST解析和智能上下文提取,为AI提供更完整的代码信息: ### 核心优势 1. **更准确的评审**:AI能看到完整的方法、类结构和依赖关系 2. **解决评论定位问题**:自动过滤上下文行评论,避免"Unable to load the diff" 3. **遵循项目规范**:支持配置项目特定的编码规范 4. **理解代码上下文**:分析Import、方法调用等依赖关系 ### 快速开始 ```yaml # application.yml app: enhanced-context: true # 启用增强上下文 ``` 访问编码规范管理:`http://your-server:9000/admin/knowledge/coding-standards` ### 详细文档 - [增强上下文详细说明](docs/ENHANCED_CONTEXT.md) - [快速开始指南](docs/QUICK_START_ENHANCED.md) ## 本地开发 ```bash # 启动 MySQL docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=code_review -p 3306:3306 mysql:8.0 # 运行应用 ./mvnw spring-boot:run ``` ## 技术栈 - Spring Boot 3.2 - Spring AI 1.0 - Spring Security - Thymeleaf - MySQL 8.0 - Chart.js - JavaParser 3.25 (AST解析) ## 架构说明 ### 增强上下文工作流程 ``` MR Webhook → 获取Diff → AST解析 → 提取上下文 → 构建增强Prompt → AI评审 → 验证评论 → 发送到GitLab ``` ### 核心组件 - **ASTAnalyzer**:Java代码AST解析器 - **CodeContextExtractor**:智能上下文提取器 - **ProjectKnowledgeService**:项目知识库管理 - **EnhancedPromptBuilder**:增强Prompt构建器 - **CommentValidator**:评论验证和过滤器