Claude Code GitHub Actions 将 AI 驱动的自动化带到你的 GitHub 工作流中。
通过在 PR 或 Issue 中简单地提及 @claude ,Claude 就可以分析代码、创建 Pull Request、实现功能、修复 Bug,同时遵循你项目的标准规范。
为什么使用 Claude Code GitHub Actions
快速开始
方式一:自动安装(推荐)
在 Claude Code 终端中运行:
/install-github-app
这会引导你完成:
要求:你必须是仓库管理员。GitHub App 需要 Contents、Issues 和 Pull requests 的读写权限。仅适用于直接使用 Claude API 的用户(不支持 AWS Bedrock 或 Google Vertex AI)。
方式二:手动安装
第一步:安装 Claude GitHub App
访问: https://github.com/apps/claude
需要的权限:
第二步:添加 API 密钥
在仓库 Secrets 中添加 ANTHROPIC_API_KEY
第三步:创建工作流文件
从示例文件复制: examples/claude.yml 到 .github/workflows/
工作流配置
基础工作流(响应 @claude 提及)
name: Claude Code on: issue_comment: types: [created] pull_request_review_comment: types: [created] jobs: claude: runs-on: ubuntu-latest steps: - uses: anthropics/claude-code-action@v1 with: anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
自动代码审查
name: Code Review on: pull_request: types: [opened, synchronize] jobs: review: runs-on: ubuntu-latest steps: - uses: anthropics/claude-code-action@v1 with: anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} prompt: "Review this pull request for code quality, correctness, and security." claude_args: "--max-turns 5"
定时任务
name: Daily Report on: schedule: - cron: "0 9 * * *" jobs: report: runs-on: ubuntu-latest steps: - uses: anthropics/claude-code-action@v1 with: anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} prompt: "Generate a summary of yesterday's commits and open issues" claude_args: "--model opus"
@claude 常用命令
在 PR 或 Issue 评论中使用:
@claude implement this feature based on the issue description
@claude how should I implement user authentication for this endpoint?
@claude fix the TypeError in the user dashboard component
@claude review this PR for security issues
@claude add tests for this new function
Action 参数详解
*当在 issue/PR 评论中使用时省略 prompt,Claude 会响应触发词
**直接使用 Claude API 时必填,Bedrock/Vertex 时不需要
常用 CLI 参数
claude_args 示例
claude_args: | --max-turns 5 --model claude-sonnet-4-6 --mcp-config /path/to/config.json --append-system-prompt "Follow our coding standards"
AWS Bedrock 集成
前置条件
必需的 Secrets
Bedrock 工作流示例
name: Claude PR Action permissions: contents: write pull-requests: write issues: write id-token: write on: issue_comment: types: [created] pull_request_review_comment: types: [created] jobs: claude-pr: if: | (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) || (github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) runs-on: ubuntu-latest env: AWS_REGION: us-west-2 steps: - name: Checkout repository uses: actions/checkout@v4 - name: Generate GitHub App token id: app-token uses: actions/create-github-app-token@v2 with: app-id: ${{ secrets.APP_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} - name: Configure AWS Credentials (OIDC) uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} aws-region: us-west-2 - uses: anthropics/claude-code-action@v1 with: github_token: ${{ steps.app-token.outputs.token }} use_bedrock: "true" claude_args: '--model us.anthropic.claude-sonnet-4-6 --max-turns 10'
Google Vertex AI 集成
Vertex AI 工作流示例
name: Claude PR Action permissions: contents: write pull-requests: write issues: write id-token: write on: issue_comment: types: [created] jobs: claude-pr: if: github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude') runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Generate GitHub App token id: app-token uses: actions/create-github-app-token@v2 with: app-id: ${{ secrets.APP_ID }} private-key: ${{ secrets.APP_PRIVATE_KEY }} - name: Authenticate to Google Cloud id: auth uses: google-github-actions/auth@v2 with: workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }} service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }} - uses: anthropics/claude-code-action@v1 with: github_token: ${{ steps.app-token.outputs.token }} trigger_phrase: "@claude" use_vertex: "true" claude_args: '--model claude-sonnet-4-5@20250929 --max-turns 10' env: ANTHROPIC_VERTEX_PROJECT_ID: ${{ steps.auth.outputs.project_id }} CLOUD_ML_REGION: us-east5
从 Beta 版本升级(v1.0 重大变更)
升级前后对比
Beta 版本:
- uses: anthropics/claude-code-action@beta with: mode: "tag" direct_prompt: "Review this PR for security issues" anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} custom_instructions: "Follow our coding standards" max_turns: "10" model: "claude-sonnet-4-6"
GA 版本 (v1.0):
- uses: anthropics/claude-code-action@v1 with: prompt: "Review this PR for security issues" anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} claude_args: | --append-system-prompt "Follow our coding standards" --max-turns 10 --model claude-sonnet-4-6
故障排除
Claude 不响应 @claude 命令
CI 不运行在 Claude 的提交上
认证错误
安全注意事项
成本考虑
费用构成
成本优化建议
最佳实践
1、创建 CLAUDE.md
在仓库根目录创建 CLAUDE.md 文件,定义代码风格指南和项目特有规则:
# 项目开发规范 ## 代码风格 - 使用 TypeScript 4.x - 遵循 ESLint 配置 - 函数必须有 JSDoc 注释 ## PR 要求 - 必须通过所有 CI 检查 - 至少一个代码审查 - 更新相关文档 ## 禁止事项 - 不要修改 `migrations/` 目录 - 不要提交 `.env` 文件
2、使用具体的 @claude 命令
@claude review this PR for SQL injection vulnerabilities
@claude add unit tests for the new validateEmail function
3、配置适当的限制
jobs: claude: runs-on: ubuntu-latest timeout-minutes: 15 # 设置超时 steps: - uses: anthropics/claude-code-action@v1 with: claude_args: "--max-turns 5 --allowedTools Read,Grep,Glob,Bash,Write,Edit"
4、CI/CD 自动化场景