Multi-agent code review system with LLM
Project description
English | 中文
Code Review - 智能代码审查系统
基于 LLM 的多维度代码审查工具,支持 Git Hook 和 GitHub Actions 集成。
特性
- 🤖 LLM 智能审查:使用 Claude 模型进行代码审查
- 🔍 多维度检查:安全、风格、性能、测试、文档
- 📊 评分系统:每次代码变更获得 0-100 的综合评分
- 🪝 Git Hook 支持:提交前自动审查
- 🚀 GitHub Actions:CI/CD 自动化集成
安装
pip 安装(推荐)
pip install alex-code-review
或使用 pip3:
pip3 install alex-code-review
更新
pip install --upgrade alex-code-review
或:
pip3 install --upgrade alex-code-review
源码安装
pip install -e .
或使用 uv:
uv pip install -e .
使用方式
审查 GitHub PR
code-review pr https://github.com/user/repo/pull/123
审查最近的提交
# 审查上一次提交
code-review commit
# 审查指定提交
code-review commit --commit abc123
审查本地代码变更
# 审查与 main 分支的差异
code-review diff --base-branch main
# 审查当前未提交的变更
code-review diff
审查指定文件
code-review file path/to/file.py
输出格式
默认输出为文本格式,支持 JSON 格式输出:
code-review pr https://github.com/user/repo/pull/123 --format json
Git Hook 集成
安装 pre-commit hook
# 方式一:复制脚本(从源码仓库)
cp scripts/pre-commit .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit
# 方式二:使用命令
code-review hook install
安装后,每次 git commit 会自动审查 staged 的代码变更。如果发现 Critical 级别的问题,将阻止提交。
GitHub Actions 集成
在项目中创建 .github/workflows/code-review.yml:
name: Code Review
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Install alex-code-review
run: pip install alex-code-review
- name: Run Code Review
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
code-review pr ${{ github.event.pull_request.html_url }}
需要在 GitHub 仓库的 Settings → Secrets 中添加 ANTHROPIC_API_KEY。
环境变量
| 变量 | 说明 | 默认值 |
|---|---|---|
ANTHROPIC_API_KEY |
Anthropic API 密钥 | 必填 |
ANTHROPIC_BASE_URL |
API 地址 | https://api.anthropic.com |
CLAUDE_MODEL |
使用的模型 | claude-sonnet-4-7-20250514 |
评分说明
审查结果会给出 0-100 的综合评分:
| 评分 | 等级 | 说明 |
|---|---|---|
| 90-100 | ⭐⭐⭐⭐⭐ | 优秀,建议直接合并 |
| 75-89 | ⭐⭐⭐⭐ | 良好,小问题修复后可合并 |
| 60-74 | ⭐⭐⭐ | 一般,需要较大改进 |
| 40-59 | ⭐⭐ | 较差,建议大幅重构 |
| 0-39 | ⭐ | 不合格,建议重新提交 |
扣分规则:
- Critical 问题:每条 -15 分
- Warning 问题:每条 -5 分
- Suggestion:每条 -1 分
审查维度
-
安全 (Security)
- SQL 注入、命令注入、XSS
- 硬编码密码、API Key、Token
- 权限控制漏洞
-
代码风格 (Style)
- 命名规范
- 格式化一致性
- 无用代码、死代码
-
性能 (Performance)
- N+1 查询问题
- 同步阻塞
- 内存泄漏
-
测试 (Testing)
- 测试覆盖
- 边界条件
- Mock 使用
-
文档 (Docs)
- 关键函数注释
- README 更新
- API 文档
配置文件
可在项目根目录创建 .code-review.yaml 自定义配置:
scoring:
critical_weight: -15
warning_weight: -5
suggestion_weight: -1
categories:
- security
- style
- performance
- test
- docs
示例输出
==================================================
📋 Code Review Report
==================================================
📊 综合评分:85/100 ⭐⭐⭐⭐
🔴 Critical: 0
🟡 Warning: 3
🟢 Suggestion: 2
==================================================
🟡 Warning Issues
==================================================
• src/utils/db.py:42 - N+1 查询问题
说明:循环中执行数据库查询
建议:使用批量查询或 JOIN
• src/api/users.py:15 - 命名不规范
说明:变量名不够清晰
建议:使用更有描述性的命名
==================================================
✅ 良好,小问题修复后可合并
==================================================
技术栈
- Python 3.10+
- Click (CLI)
- Anthropic SDK (LLM)
- GitPython (Git 操作)
- PyYAML (配置)
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file alex_code_review-0.2.5.tar.gz.
File metadata
- Download URL: alex_code_review-0.2.5.tar.gz
- Upload date:
- Size: 15.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
272d4b7c24287746e7fd25953cbd6d7ca834834868c75b89bd72d6cf849cd1ac
|
|
| MD5 |
65385f95195c2f0de99c1e21d7ffa5ed
|
|
| BLAKE2b-256 |
e2a82d1f6be43722d3bef63e759e3383c92847e76b8e8bfc07bec169a72ad737
|
File details
Details for the file alex_code_review-0.2.5-py3-none-any.whl.
File metadata
- Download URL: alex_code_review-0.2.5-py3-none-any.whl
- Upload date:
- Size: 19.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c6a29ede3d33fc7d99a13f1c8aaa2f7204be8301996b81367a3d09ee3a2fc21
|
|
| MD5 |
1def6f133c1c660e58db2e3c189ea198
|
|
| BLAKE2b-256 |
e3c0ed42a59bf3bd77c3b6394c58eab31010c484368b18f744ab625334f48263
|