name: 代码审查员 description: TypeScript、JavaScript、Python、Go、Swift、Kotlin的代码审查自动化。分析PR的复杂性和风险,检查代码质量是否违反SOLID原则和代码异味,生成审查报告。在审查拉取请求、分析代码质量、识别问题、生成审查清单时使用。
代码审查员
自动化代码审查工具,用于分析拉取请求,检测代码质量问题,并生成审查报告。
目录
工具
PR分析器
分析git分支间的diff,评估审查复杂性并识别风险。
# 分析当前分支与main分支
python scripts/pr_analyzer.py /path/to/repo
# 比较特定分支
python scripts/pr_analyzer.py . --base main --head feature-branch
# JSON输出以集成
python scripts/pr_analyzer.py /path/to/repo --json
它检测的内容:
- 硬编码的秘密(密码、API密钥、令牌)
- SQL注入模式(查询中的字符串连接)
- 调试语句(debugger、console.log)
- ESLint规则禁用
- TypeScript
any类型 - TODO/FIXME注释
输出包括:
- 复杂性评分(1-10)
- 风险分类(严重、高、中、低)
- 文件优先级以审查顺序
- 提交消息验证
代码质量检查器
分析源代码的结构问题、代码异味和SOLID违规。
# 分析目录
python scripts/code_quality_checker.py /path/to/code
# 分析特定语言
python scripts/code_quality_checker.py . --language python
# JSON输出
python scripts/code_quality_checker.py /path/to/code --json
它检测的内容:
- 长函数(>50行)
- 大文件(>500行)
- 上帝类(>20方法)
- 深层嵌套(>4级)
- 参数过多(>5)
- 高圈复杂度
- 缺少错误处理
- 未使用的导入
- 魔术数字
阈值:
| 问题 | 阈值 |
|---|---|
| 长函数 | >50行 |
| 大文件 | >500行 |
| 上帝类 | >20方法 |
| 参数过多 | >5 |
| 深层嵌套 | >4级 |
| 高复杂度 | >10分支 |
审查报告生成器
将PR分析和代码质量发现合并到结构化的审查报告中。
# 为当前仓库生成报告
python scripts/review_report_generator.py /path/to/repo
# Markdown输出
python scripts/review_report_generator.py . --format markdown --output review.md
# 使用预计算的分析
python scripts/review_report_generator.py . \
--pr-analysis pr_results.json \
--quality-analysis quality_results.json
报告包括:
- 审查结果(批准、请求更改、阻塞)
- 评分(0-100)
- 优先行动项
- 按严重程度的问题摘要
- 建议的审查顺序
结果:
| 评分 | 结果 |
|---|---|
| 90+且无高问题 | 批准 |
| 75+且≤2高问题 | 批准并建议 |
| 50-74 | 请求更改 |
| <50或严重问题 | 阻塞 |
参考指南
代码审查清单
references/code_review_checklist.md
系统清单涵盖:
- 预审查检查(构建、测试、PR卫生)
- 正确性(逻辑、数据处理、错误处理)
- 安全性(输入验证、注入预防)
- 性能(效率、缓存、可扩展性)
- 可维护性(代码质量、命名、结构)
- 测试(覆盖率、质量、模拟)
- 特定语言检查
编码标准
references/coding_standards.md
特定语言的标准:
- TypeScript(类型注释、空安全、async/await)
- JavaScript(声明、模式、模块)
- Python(类型提示、异常、类设计)
- Go(错误处理、结构体、并发)
- Swift(可选、协议、错误)
- Kotlin(空安全、数据类、协程)
常见反模式
references/common_antipatterns.md
反模式目录,含示例和修复:
- 结构(上帝类、长方法、深层嵌套)
- 逻辑(布尔盲、字符串类型代码)
- 安全(SQL注入、硬编码凭据)
- 性能(N+1查询、无界集合)
- 测试(重复、测试实现)
- 异步(悬浮承诺、回调地狱)
支持的语言
| 语言 | 扩展名 |
|---|---|
| Python | .py |
| TypeScript | .ts, .tsx |
| JavaScript | .js, .jsx, .mjs |
| Go | .go |
| Swift | .swift |
| Kotlin | .kt, .kts |