Google Gemini 代码审查技能
加载方式:base.md + code-review.md
使用 Google 的 Gemini CLI 进行代码审查,搭配 Gemini 2.5 Pro,拥有 1M 令牌上下文窗口,可以一次性分析整个代码库。
资源链接: Gemini CLI | 代码审查扩展 | Gemini 代码辅助 | GitHub 动作
为什么选择 Gemini 进行代码审查?
| 特性 | 好处 |
|---|---|
| Gemini 2.5 Pro | 代码的最新推理能力 |
| 1M 令牌上下文 | 整个代码库都能适应 - 不需要分块 |
| 免费层 | 每天 1,000 次请求,使用 Google 账户 |
| 一致的输出 | 清洁的格式,可预测的结构 |
| GitHub 本地 | Gemini 代码辅助应用自动 PR 审查 |
基准性能
| 基准 | 分数 | 备注 |
|---|---|---|
| SWE-Bench 验证 | 63.8% | Agentic 编码基准 |
| Qodo PR 基准 | 56.3% | PR 审查质量 |
| LiveCodeBench v5 | 70.4% | 代码生成 |
| WebDev Arena | #1 | 网页开发 |
安装
先决条件
# 检查 Node.js 版本(需要 20+)
node --version
# 如有需要安装 Node.js 20
# macOS
brew install node@20
# 或通过 nvm
nvm install 20
nvm use 20
安装 Gemini CLI
# 通过 npm(推荐)
npm install -g @google/gemini-cli
# 通过 Homebrew(macOS)
brew install gemini-cli
# 或不安装直接运行
npx @google/gemini-cli
# 验证安装
gemini --version
安装代码审查扩展
# 需要 Gemini CLI v0.4.0+
gemini extensions install https://github.com/gemini-cli-extensions/code-review
# 验证扩展
gemini extensions list
认证
选项 1:Google 账户(推荐)
免费层:每天 1,000 次请求,每分钟 60 次请求
# 运行 gemini 并按照浏览器登录
gemini
# 选择:"使用 Google 账户登录"
# 打开浏览器进行 OAuth
这将为您提供带有完整 1M 令牌上下文窗口的 Gemini 2.5 Pro。
选项 2:Gemini API 密钥
免费层:每天 100 次请求
# 从 https://aistudio.google.com/apikey 获取 API 密钥
# 设置环境变量
export GEMINI_API_KEY="your-api-key"
# 或添加到 shell 配置文件
echo 'export GEMINI_API_KEY="your-api-key"' >> ~/.zshrc
# 运行 Gemini
gemini
选项 3:Vertex AI(企业版)
# 针对 Google Cloud 项目
export GOOGLE_API_KEY="your-api-key"
export GOOGLE_GENAI_USE_VERTEXAI=true
export GOOGLE_CLOUD_PROJECT="your-project-id"
gemini
交互式代码审查
使用代码审查扩展
# 启动 Gemini CLI
gemini
# 在当前分支上运行代码审查
/code-review
扩展分析:
- 当前分支上的代码更改
- 识别质量问题
- 建议修复
手动审查提示
# 在交互模式中
gemini
# 然后询问:
> 审查这个分支的更改,寻找错误和安全问题
> 分析 src/api/users.ts 潜在的漏洞
> 上次提交的 3 个提交中存在哪些代码质量问题?
无头模式(自动化)
基本用法
# 简单提示执行
gemini -p "审查代码更改,寻找错误和安全问题"
# 带 JSON 输出(用于解析)
gemini -p "审查更改" --output-format json
# 流式传输 JSON 事件(实时)
gemini -p "审查并修复问题" --output-format stream-json
# 指定模型
gemini -m gemini-2.5-pro -p "这个 PR 的深度代码审查"
完整的 CI/CD 示例
# 获取差异并审查
git diff origin/main...HEAD > diff.txt
gemini -p "审查这个代码差异:
1. 安全漏洞
2. 性能问题
3. 代码质量问题
4. 缺少错误处理
差异:
$(cat diff.txt)
" --output-format json > review.json
会话跟踪
# 跟踪令牌使用和成本
gemini -p "审查更改" --session-summary metrics.json
# 查看指标
cat metrics.json
GitHub 集成
选项 1:Gemini 代码辅助应用(最简单)
从 GitHub Marketplace 安装:
- 前往 GitHub Marketplace → Gemini 代码辅助
- 点击 “安装” 并选择仓库
- PR 自动在打开时进行审查
PR 注释中的命令:
/gemini review # 请求代码审查
/gemini summary # 获取 PR 摘要
/gemini help # 显示可用命令
配额:
- 免费:每天 33 个 PR
- 企业:每天 100+ 个 PR
选项 2:GitHub 动作
# .github/workflows/gemini-review.yml
name: Gemini 代码审查
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: 设置 Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: 安装 Gemini CLI
run: npm install -g @google/gemini-cli
- name: 运行审查
env:
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
run: |
# 获取差异
git diff origin/${{ github.base_ref }}...HEAD > diff.txt
# 运行 Gemini 审查
gemini -p "审查这个拉取请求的差异,寻找错误、安全问题和代码质量问题。具体说明文件名和行号。
$(cat diff.txt)" > review.md
- name: 发布审查评论
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const review = fs.readFileSync('review.md', 'utf8');
github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: `## 🤖 Gemini 代码审查
${review}`
});
选项 3:官方 GitHub 动作
# .github/workflows/gemini-review.yml
name: Gemini 代码审查
on:
pull_request:
types: [opened, synchronize]
issue_comment:
types: [created]
jobs:
review:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
issues: write
steps:
- uses: actions/checkout@v4
- name: 运行 Gemini CLI
uses: google-github-actions/run-gemini-cli@v1
with:
gemini_api_key: ${{ secrets.GEMINI_API_KEY }}
prompt: "审查这个拉取请求的代码质量、安全问题和潜在错误。"
按需命令在评论中:
@gemini-cli /review
@gemini-cli 解释这个代码更改
@gemini-cli 为这个组件编写单元测试
GitLab CI/CD
# .gitlab-ci.yml
gemini-review:
image: node:20
stage: review
script:
- npm install -g @google/gemini-cli
- |
gemini -p "审查合并请求的更改,寻找错误、安全问题和代码质量" > review.md
- cat review.md
artifacts:
paths:
- review.md
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
variables:
GEMINI_API_KEY: $GEMINI_API_KEY
配置
全局配置
# ~/.gemini/settings.json
{
"model": "gemini-2.5-pro",
"theme": "dark",
"sandbox": true
}
项目配置(GEMINI.md)
在项目根目录创建一个 GEMINI.md 文件,用于项目特定的上下文:
# Gemini 项目上下文
## 技术栈
- 严格模式的 TypeScript
- React 18 与 hooks
- FastAPI 后端
- PostgreSQL 数据库
## 代码审查重点区域
1. 类型安全 - 确保正确的 TypeScript 类型
2. React hooks 规则 - 检查依赖数组问题
3. SQL 注入 - 验证参数化查询
4. 认证 - 检查所有端点都有适当的认证
## 约定
- 变量使用 camelCase
- 组件使用 PascalCase
- 所有 API 错误应使用 AppError 类
CLI 快速参考
# 交互式
gemini # 开始交互模式
/code-review # 运行代码审查扩展
# 无头
gemini -p "prompt" # 单个提示,退出
gemini -p "prompt" --output-format json # JSON 输出
gemini -m gemini-2.5-flash -p "prompt" # 使用更快的模型
# 扩展
gemini extensions list # 列出已安装的
gemini extensions install URL # 安装扩展
gemini extensions update # 更新所有
# 关键标志
--output-format json # 结构化输出
--output-format stream-json # 实时事件
--session-summary FILE # 跟踪指标
-m MODEL # 选择模型
比较:Claude vs Codex vs Gemini
| 方面 | Claude | Codex CLI | Gemini CLI |
|---|---|---|---|
| 设置 | 无(内置) | npm + OpenAI API | npm + Google 账户 |
| 模型 | Claude | GPT-5.2-Codex | Gemini 2.5 Pro |
| 上下文 | 会话 | 每次审查新 | 1M 令牌(巨大!) |
| 免费层 | N/A | 有限 | 每天 1,000 次 |
| 最适合 | 快速审查 | 高准确度 | 大型代码库 |
| GitHub 本地 | 否 | @codex | Gemini 代码辅助 |
何时使用每个引擎
| 场景 | 推荐引擎 |
|---|---|
| 快速流程审查 | Claude |
| 关键安全审查 | Codex(88% 检测率) |
| 大型代码库(100+ 文件) | Gemini(1M 上下文) |
| 免费自动化审查 | Gemini |
| 多个视角 | 三个都用(双/三引擎) |
故障排除
| 问题 | 解决方案 |
|---|---|
gemini: command not found |
npm install -g @google/gemini-cli |
Node.js 版本错误 |
升级到 Node.js 20+ |
认证失败 |
重新运行 gemini 并再次登录 |
扩展未找到 |
gemini extensions install https://github.com/gemini-cli-extensions/code-review |
速率限制 |
等待或升级到 Vertex AI |
CI 中挂起 |
确保 DEBUG 环境变量未设置 |
反模式
- 跳过认证设置 - 在 CI/CD 之前始终配置
- 在日志中使用 API 密钥 - 使用秘密管理
- 忽略上下文限制 - 即使 1M 令牌也有限制,对于巨大的单体仓库
- 每次提交都运行 - 仅在 PR 上使用以节省配额
- 不设置项目上下文 - 添加 GEMINI.md 以获得更好的审查