201 代码审查自动化
掌握 Codex `/review` 命令,构建团队级自动化代码审查 SOP
学习目标
一、`/review` 命令深度解析
基本用法
`/review` 是 Codex CLI 内置的代码审查命令,支持对暂存区、指定文件或整个项目进行审查:
# 审查暂存区代码
codex review
# 审查指定文件或目录
codex review src/services/auth.ts
codex review src/
# 审查指定 Git 提交范围
codex review HEAD~3..HEAD审查输出结构
每次审查会输出结构化报告:
- **严重级别**:🔴 Critical / 🟡 Warning / 🔵 Suggestion
- **问题分类**:安全 / 性能 / 可维护性 / 风格
- **定位信息**:文件路径 + 行号
- **修复建议**:提供可直接应用的代码补丁
**💡 提示:** 在审查结果上按 `a` 键可以一键应用 Codex 建议的修复。
二、设置审查规则与严重级别
配置文件
在项目根目录创建 `.codex/review.yaml`:
rules:
security:
no-hardcoded-secrets: critical
sql-injection: critical
xss: warning
performance:
n-plus-one-query: warning
unoptimized-loop: warning
style:
naming-convention: suggestion
max-function-length: suggestion
custom:
- pattern: "console\\.(log|debug)\\("
level: warning
message: "生产代码中不应保留调试日志"
- pattern: "TODO|FIXME"
level: suggestion
message: "请确认待办事项是否需要在合并前解决"团队规则共享
# 导出团队规则模板
codex review --export-rules > team-review-rules.yaml
# 在 CI 中使用共享规则
codex review --rules team-review-rules.yaml三、安全审计:`/review --security`
专项安全扫描
# 全量安全审计
codex review --security
# 针对 PR 变更的安全扫描
codex review --security HEAD~1..HEAD安全审计覆盖范围:
| 检查项 | 说明 |
|---|---|
| 硬编码密钥 | 检测 API Key、Token、密码 |
| 注入漏洞 | SQL、命令、LDAP 注入 |
| 不安全依赖 | 已知漏洞的依赖版本 |
| 权限问题 | 过度暴露的接口和端点 |
| 加密弱点 | 弱算法、不安全的随机数 |
四、Pre-commit 审查自动化
安装 Git Hook
# 在项目中安装 pre-commit hook
codex hook install pre-commit生成的 `.git/hooks/pre-commit` 会在每次提交前对暂存区自动执行审查:
#!/bin/sh
STAGED_FILES=$(git diff --cached --name-only --diff-filter=ACM)
if [ -n "$STAGED_FILES" ]; then
codex review --files "$STAGED_FILES" --fail-on critical
fi**💡 提示:** `--fail-on critical` 参数意味着发现 Critical 问题时阻止提交,确保致命问题不会进入代码库。
五、构建团队审查 SOP
推荐流程
- **本地提交前**:pre-commit hook 自动执行基础审查
- **创建 PR 时**:CI 流水线执行全量审查 + 安全审计
- **人工审查前**:Codex 审查结果作为 Reviewer 参考
- **合并前**:所有 Critical 和 Warning 必须解决
Codex 审查模板
codex review --template team-sop --output review-report.md六、本课总结
**核心要点:**
- `/review` 支持文件、暂存区、提交范围三种审查模式
- 通过 `.codex/review.yaml` 自定义规则和严重级别
- `/review --security` 提供专项安全审计能力
- pre-commit hook 实现提交前自动拦截风险代码
- 将 Codex 审查嵌入 PR 流程可以显著提升团队代码质量
**下一步:** 学习测试用例自动生成 → [202 测试用例自动生成](module3-202.md)