Login
Back to Blog
Gemini CLI 使用教程 2026:CI/CD 自动化与团队协作

Gemini CLI 使用教程 2026:CI/CD 自动化与团队协作

C
Crazyrouter Team
April 29, 2026
1 views中文Tutorial
Share:

Gemini CLI 使用教程 2026:CI/CD 自动化与团队协作#

Google 在 2025 年底正式发布了 Gemini CLI,为开发者提供了一个强大的终端 AI 编码助手。进入 2026 年,越来越多的团队开始将 Gemini CLI 集成到 CI/CD 流水线中,实现代码审查自动化、测试生成、文档更新等工作流。本教程将从零开始,带你掌握 Gemini CLI 在自动化和团队协作中的核心用法。

Gemini CLI 基础安装与配置#

安装 Gemini CLI#

bash
# 使用 npm 全局安装
npm install -g @google/gemini-cli

# 验证安装
gemini --version

配置 API Key#

Gemini CLI 需要 Google AI API Key 才能运行。你可以通过环境变量配置:

bash
# 直接使用 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 工作流中,自动审查代码变更:

bash
#!/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

场景二:自动生成单元测试#

bash
#!/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 工作流配置#

yaml
# .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 脚本实现更复杂的自动化#

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 配置:

json
{
  "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 模板管理#

bash
# prompts/review.md
你是团队的高级代码审查员,请遵循以下规范:

## 审查标准
- 遵循项目的 ESLint/Prettier 配置
- 检查 TypeScript 类型安全
- 验证错误处理是否完整
- 确认日志记录是否充分

## 输出格式
对每个问题,请标注严重级别:
- 🔴 Critical: 必须修复
- 🟡 Warning: 建议修复
- 🔵 Info: 可选优化

Gemini API 定价对比#

模型官方价格 (输入/输出)Crazyrouter 价格节省比例
Gemini 2.5 Pro1.25/1.25 / 10.00 per 1M tokens0.88/0.88 / 7.00 per 1M tokens30%
Gemini 2.5 Flash0.15/0.15 / 0.60 per 1M tokens0.10/0.10 / 0.42 per 1M tokens30%
Gemini 2.0 Flash0.10/0.10 / 0.40 per 1M tokens0.07/0.07 / 0.28 per 1M tokens30%

通过 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 工具,同时享受更优惠的价格和更稳定的国内访问体验。

Related Articles