
Gemini CLI 使用教程 2026:CI/CD 自动化与团队协作
Gemini CLI 使用教程 2026:CI/CD 自动化与团队协作#
Google 在 2025 年底正式发布了 Gemini CLI,为开发者提供了一个强大的终端 AI 编码助手。进入 2026 年,越来越多的团队开始将 Gemini CLI 集成到 CI/CD 流水线中,实现代码审查自动化、测试生成、文档更新等工作流。本教程将从零开始,带你掌握 Gemini CLI 在自动化和团队协作中的核心用法。
Gemini CLI 基础安装与配置#
安装 Gemini CLI#
# 使用 npm 全局安装
npm install -g @google/gemini-cli
# 验证安装
gemini --version
配置 API Key#
Gemini CLI 需要 Google AI API Key 才能运行。你可以通过环境变量配置:
# 直接使用 Google 官方 API Key
export GEMINI_API_KEY="your-google-api-key"
# 或者通过 Crazyrouter 统一网关访问(推荐国内用户)
export GEMINI_API_KEY="your-crazyrouter-key"
export GEMINI_API_BASE="https://crazyrouter.com/v1"
通过 Crazyrouter 访问 Gemini API 的优势在于:无需 VPN、支持国内支付方式、统一管理多个 AI 模型的 API Key。
CI/CD 自动化集成#
场景一:自动化代码审查#
将 Gemini CLI 集成到 Pull Request 工作流中,自动审查代码变更:
#!/bin/bash
# scripts/ai-code-review.sh
# 自动化代码审查脚本
set -e
# 获取 PR 的 diff
DIFF=$(git diff origin/main...HEAD)
if [ -z "$DIFF" ]; then
echo "没有代码变更,跳过审查"
exit 0
fi
# 使用 Gemini CLI 进行代码审查
REVIEW=$(gemini -p "你是一个资深代码审查员。请审查以下代码变更,关注:
1. 潜在的 bug 和安全问题
2. 性能优化建议
3. 代码风格和最佳实践
4. 测试覆盖建议
请用中文回复,格式清晰。
代码变更:
$DIFF")
echo "$REVIEW"
# 将审查结果写入文件(供 CI 使用)
echo "$REVIEW" > review-result.md
场景二:自动生成单元测试#
#!/bin/bash
# scripts/generate-tests.sh
# 为新增代码自动生成测试
set -e
# 获取新增或修改的源文件
CHANGED_FILES=$(git diff --name-only origin/main...HEAD | grep -E '\.(py|js|ts)$' | grep -v 'test')
for FILE in $CHANGED_FILES; do
echo "为 $FILE 生成测试..."
CONTENT=$(cat "$FILE")
TEST_DIR=$(dirname "$FILE" | sed 's/src/tests/')
TEST_FILE="$TEST_DIR/test_$(basename "$FILE")"
mkdir -p "$TEST_DIR"
gemini -p "为以下代码生成完整的单元测试。使用 pytest(Python)或 Jest(JS/TS)。
确保覆盖边界条件和异常情况。
源代码文件: $FILE
$CONTENT" > "$TEST_FILE"
echo "测试已生成: $TEST_FILE"
done
GitHub Actions 集成#
完整的 CI/CD 工作流配置#
# .github/workflows/ai-assisted-ci.yml
name: AI-Assisted CI/CD
on:
pull_request:
branches: [main, develop]
push:
branches: [main]
env:
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
# 使用 Crazyrouter 网关,稳定且快速
GEMINI_API_BASE: "https://crazyrouter.com/v1"
jobs:
ai-code-review:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Install Gemini CLI
run: npm install -g @google/gemini-cli
- name: Run AI Code Review
run: |
chmod +x scripts/ai-code-review.sh
bash scripts/ai-code-review.sh
- name: Post Review Comment
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const review = fs.readFileSync('review-result.md', 'utf8');
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: `## 🤖 AI Code Review\n\n${review}`
});
ai-generate-docs:
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
- name: Install Gemini CLI
run: npm install -g @google/gemini-cli
- name: Update API Documentation
run: |
gemini -p "根据以下源代码,生成 API 文档(Markdown 格式)。
包含:函数签名、参数说明、返回值、使用示例。
$(cat src/api/*.ts)" > docs/API.md
- name: Commit Documentation
run: |
git config user.name "AI Doc Bot"
git config user.email "bot@example.com"
git add docs/
git diff --staged --quiet || git commit -m "docs: auto-update API documentation"
git push
使用 Python 脚本实现更复杂的自动化#
#!/usr/bin/env python3
"""
CI/CD 自动化脚本:使用 Gemini API 进行代码分析
通过 Crazyrouter 网关调用,支持国内网络环境
"""
import os
import json
import subprocess
import requests
# API 配置 - 通过 Crazyrouter 统一访问
API_BASE = os.getenv("GEMINI_API_BASE", "https://crazyrouter.com/v1")
API_KEY = os.getenv("GEMINI_API_KEY")
def call_gemini(prompt: str, model: str = "gemini-2.5-pro") -> str:
"""调用 Gemini API"""
response = requests.post(
f"{API_BASE}/chat/completions",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
},
json={
"model": model,
"messages": [{"role": "user", "content": prompt}],
"temperature": 0.3
}
)
response.raise_for_status()
return response.json()["choices"][0]["message"]["content"]
def analyze_pr_complexity():
"""分析 PR 复杂度并给出建议"""
diff = subprocess.check_output(
["git", "diff", "--stat", "origin/main...HEAD"],
text=True
)
detailed_diff = subprocess.check_output(
["git", "diff", "origin/main...HEAD"],
text=True
)
prompt = f"""分析以下 Pull Request 的复杂度:
变更统计:
{diff}
详细变更:
{detailed_diff[:8000]}
请给出:
1. 复杂度评分(1-10)
2. 预估审查时间
3. 需要重点关注的文件
4. 潜在风险点
"""
result = call_gemini(prompt)
print(result)
return result
def generate_changelog():
"""自动生成 CHANGELOG"""
commits = subprocess.check_output(
["git", "log", "--oneline", "-20"],
text=True
)
prompt = f"""根据以下 Git 提交记录,生成规范的 CHANGELOG 条目。
按照 Keep a Changelog 格式,分类为:Added, Changed, Fixed, Removed。
提交记录:
{commits}
"""
changelog = call_gemini(prompt)
with open("CHANGELOG_UPDATE.md", "w") as f:
f.write(changelog)
print("CHANGELOG 已生成")
return changelog
if __name__ == "__main__":
import sys
if len(sys.argv) < 2:
print("用法: python ci_automation.py [review|changelog|complexity]")
sys.exit(1)
action = sys.argv[1]
if action == "review":
analyze_pr_complexity()
elif action == "changelog":
generate_changelog()
elif action == "complexity":
analyze_pr_complexity()
else:
print(f"未知操作: {action}")
团队协作最佳实践#
统一配置管理#
在团队项目根目录创建 .gemini/config.json,统一团队的 AI 配置:
{
"model": "gemini-2.5-pro",
"api_base": "https://crazyrouter.com/v1",
"review_rules": {
"language": "zh-CN",
"focus_areas": ["security", "performance", "readability"],
"max_file_size": 500,
"ignore_patterns": ["*.test.*", "*.spec.*", "*.md"]
},
"team_prompts": {
"code_review": "prompts/review.md",
"test_generation": "prompts/test-gen.md",
"doc_generation": "prompts/doc-gen.md"
}
}
团队 Prompt 模板管理#
# prompts/review.md
你是团队的高级代码审查员,请遵循以下规范:
## 审查标准
- 遵循项目的 ESLint/Prettier 配置
- 检查 TypeScript 类型安全
- 验证错误处理是否完整
- 确认日志记录是否充分
## 输出格式
对每个问题,请标注严重级别:
- 🔴 Critical: 必须修复
- 🟡 Warning: 建议修复
- 🔵 Info: 可选优化
Gemini API 定价对比#
| 模型 | 官方价格 (输入/输出) | Crazyrouter 价格 | 节省比例 |
|---|---|---|---|
| Gemini 2.5 Pro | 10.00 per 1M tokens | 7.00 per 1M tokens | 30% |
| Gemini 2.5 Flash | 0.60 per 1M tokens | 0.42 per 1M tokens | 30% |
| Gemini 2.0 Flash | 0.40 per 1M tokens | 0.28 per 1M tokens | 30% |
通过 Crazyrouter 访问 Gemini API,不仅价格更优惠,还能在同一个 API Key 下访问 OpenAI、Claude、Gemini 等所有主流模型。
常见问题 FAQ#
Gemini CLI 支持哪些 CI/CD 平台?#
Gemini CLI 是一个标准的命令行工具,支持所有主流 CI/CD 平台,包括 GitHub Actions、GitLab CI、Jenkins、CircleCI、Azure DevOps 等。只需在 CI 环境中安装 Node.js 并通过 npm 安装即可。
在 CI/CD 中使用 Gemini CLI 的 API 费用大概是多少?#
费用取决于使用频率和代码量。一般来说,每次代码审查消耗约 2000-5000 tokens,按 Gemini 2.5 Flash 计算,每次审查成本不到 $0.01。通过 Crazyrouter 网关还能进一步降低 30% 的成本。
如何在国内网络环境下使用 Gemini CLI?#
国内用户可以通过 Crazyrouter 网关访问 Gemini API,无需 VPN。只需将 GEMINI_API_BASE 设置为 https://crazyrouter.com/v1,使用 Crazyrouter 的 API Key 即可。
Gemini CLI 自动化审查的结果可靠吗?#
AI 代码审查是人工审查的补充,不是替代。建议将 AI 审查作为第一轮筛查,发现明显问题后再由人工进行深度审查。实践中,AI 审查能发现约 60-70% 的常见问题,显著提升团队效率。
团队中如何统一 Gemini CLI 的使用规范?#
建议在项目中创建 .gemini/ 配置目录,统一模型选择、Prompt 模板和审查规则。将配置纳入版本控制,确保团队成员使用一致的 AI 辅助工作流。
总结#
Gemini CLI 在 2026 年已经成为开发团队不可或缺的效率工具。通过本教程介绍的 CI/CD 集成方案,你可以:
- 自动化代码审查:每个 PR 自动获得 AI 审查意见
- 自动生成测试:为新代码快速生成单元测试
- 自动更新文档:代码变更后自动同步 API 文档
- 统一团队规范:通过配置文件和 Prompt 模板确保一致性
配合 Crazyrouter 的统一 API 网关,你可以在同一个工作流中灵活切换 Gemini、Claude、GPT 等不同模型,根据任务特点选择最合适的 AI 工具,同时享受更优惠的价格和更稳定的国内访问体验。
