Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/highkay/codereview-agent
A codereview agent for small dev team
https://github.com/highkay/codereview-agent
deepseek gitea gitlab llm
Last synced: 2 days ago
JSON representation
A codereview agent for small dev team
- Host: GitHub
- URL: https://github.com/highkay/codereview-agent
- Owner: highkay
- Created: 2025-01-26T15:03:39.000Z (3 days ago)
- Default Branch: main
- Last Pushed: 2025-01-27T07:54:46.000Z (3 days ago)
- Last Synced: 2025-01-27T08:24:21.082Z (3 days ago)
- Topics: deepseek, gitea, gitlab, llm
- Language: Python
- Homepage:
- Size: 17.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 代码评审Agent
这是一个基于LLM的自动代码评审系统,可以自动对Gitea的Pull Request进行代码评审。
## 主要功能
1. 自动监听Gitea的Pull Request事件
2. 获取PR中的代码变更并进行分析
3. 使用LLM进行代码评审,包括:
- 安全性评估
- 性能分析
- 代码可读性
- 最佳实践检查
4. 自动生成评审评论
5. 支持根据评分自动合并PR## 技术栈
- Python 3.10+
- FastAPI
- HTMX
- TailwindCSS
- LiteLLM## 安装
1. 克隆仓库:
```bash
git clone https://github.com/highkay/codereview-agent.git
cd codereview-agent
```2. 安装依赖:
```bash
pip install -r requirements.txt
```3. 配置系统:
- 访问 `http://localhost:8000/config`
- 填写必要的配置信息:
- Gitea服务器URL和API Token
- LLM提供商配置
- 评审规则和阈值## 运行
```bash
python app/main.py
```服务将在 `http://localhost:8000` 启动。
## Gitea配置
1. 在Gitea中添加Webhook:
- 进入仓库设置 -> Webhooks -> 添加Webhook
- URL设置为:`http://your-server:8000/webhook/gitea`
- 选择事件:Pull Request## 评审规则
系统使用以下维度进行代码评审:
1. 安全性(30%):
- SQL注入
- XSS漏洞
- 敏感信息泄露
- 权限控制2. 性能(20%):
- 算法复杂度
- 资源使用效率
- 并发处理3. 可读性(20%):
- 代码格式
- 命名规范
- 注释完整性4. 最佳实践(30%):
- 设计模式
- 单元测试
- 类型提示
- SOLID原则## 评分规则
- 安全问题:
- 高危:-3分/个
- 中危:-1分/个
- 性能问题:-2分/个
- 可读性问题:-0.5分/个
- 最佳实践:
- 缺少单元测试:-2分
- 无类型提示:-1分## 配置文件
系统使用YAML格式的配置文件(`config.yaml`):
```yaml
scm:
type: gitea
url: https://git.example.com
token: xxxx-xxxx
context_window: 5llm:
provider: openai
model: gpt-4-turbo
api_key: sk-xxxx
max_tokens: 4096review:
quality_threshold: 8.5
ignore_patterns:
- "*.md"
- "**/test_*.py"
scoring_rules:
security: 0.3
performance: 0.2
readability: 0.2
best_practice: 0.3
```## 开发
1. 代码结构:
```
app/
├── core/ # 核心功能
│ ├── agent.py # 评审Agent
│ └── scm.py # SCM抽象层
├── models/ # 数据模型
│ └── config.py # 配置模型
├── routers/ # API路由
│ ├── webhooks.py # Webhook处理
│ └── config_ui.py# 配置界面
├── services/ # 服务
│ └── llm_service.py # LLM服务
├── static/ # 静态资源
├── templates/ # 模板
│ └── config.html # 配置页面
└── main.py # 应用入口
```2. 添加新功能:
- 在相应模块中添加代码
- 确保添加适当的测试
- 遵循项目的代码风格## 贡献
欢迎提交Pull Request!在提交之前,请确保:
1. 代码通过所有测试
2. 添加了必要的文档
3. 遵循项目的代码规范## 许可证
MIT License