场景与实测收益
| 场景 | 做法 | 实测效果 |
|---|---|---|
| 样板代码生成 | CRUD、DTO、配置类由 AI 生成 | 该类工作耗时降 50%-70% |
| 单元测试补齐 | 对存量代码批量生成测试用例 | 覆盖率从 40% 提到 70%+ |
| 代码评审初筛 | PR 自动检查规范、空指针、SQL 注入等 | 人工评审时间降约 40% |
| 接口文档同步 | 从代码注解生成并校验 OpenAPI | 文档过期问题基本消除 |
| 日志与错误分析 | 把异常栈丢给 AI 做初步归因 | 排障定位速度明显提升 |
| 遗留代码理解 | 让 AI 解释老代码并生成注释 | 新人接手周期缩短 |
| SQL 优化建议 | 结合执行计划给出索引建议 | 作为初筛,仍需 DBA 确认 |
CI 里接入 AI 代码评审
name: AI Code Review
on:
pull_request:
types: [opened, synchronize]
permissions:
contents: read
pull-requests: write
id-token: write # 用 OIDC 换 AWS 凭证,不放长期密钥
jobs:
review:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ secrets.AWS_REVIEW_ROLE_ARN }}
aws-region: ap-northeast-1
- name: Collect changed files
id: diff
run: |
# 只审查代码文件,跳过锁文件与生成物
git diff --name-only origin/${{ github.base_ref }}...HEAD \
| grep -E '\.(py|ts|tsx|js|java|go)$' \
| grep -vE '(package-lock|yarn\.lock|\.generated\.)' > changed.txt || true
echo "count=$(wc -l < changed.txt)" >> "$GITHUB_OUTPUT"
- name: Run AI review
if: steps.diff.outputs.count != '0'
env:
PR_NUMBER: ${{ github.event.pull_request.number }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: python scripts/ai_review.py --files changed.txt --pr "$PR_NUMBER"
- name: Skip notice
if: steps.diff.outputs.count == '0'
run: echo "本次改动无需 AI 评审"
关键是限定范围:只审查改动的代码文件,跳过锁文件和生成代码,否则 token 消耗会很夸张。
别让 AI 评审变成阻塞
AI 评审的定位是「初筛助手」,给建议而不是卡门禁。我们的实践是让它以评论形式提出建议,人工评审时参考。如果设成必须通过才能合并,团队很快就会因为误报而反感这套工具。