Claude Code GitHub Actions 实战:配置、费用与权限控制

用 Claude Code GitHub Actions 在 GitHub 中按需审查 PR、修复 Issue。本文讲清 API 与订阅计费、安装配置、工具权限、轮数和超时限制,提供可复制的工作流示例,并解释 fork 安全边界、常见故障与自动审查的启用时机,帮助小团队逐步落地,保留人工合并决策。

发布于

Claude Code GitHub Actions 实战:配置、费用与权限控制

借助 Claude Code GitHub Actions,团队可以直接在 GitHub 中请求审查拉取请求,或修复 Issue 中的小问题,然后合上电脑。拉取请求简称 PR,指的是一项等待合并的代码变更。执行任务的计算资源由 GitHub 提供。起步时,先用明确的 @claude 请求触发任务,设置较短的运行时限,并由人工决定是否合并。

这套流程真正改变的是:谁还需要一直守着任务。过去,开发者得打开仓库、启动 Claude,再把结果带回 GitHub,还得保持本地会话运行。接入 Action 后,维护者只需留下范围明确的请求,稍后回来查看评论或代码修改建议。任务可以在开发者下班后启动,但检查结果所需的时间并不会因此消失。

本文依据 Anthropic 的现行文档编写,核对日期为 2026 年 10 月 15 日。下文的工作流刻意收紧了权限和执行范围,适合作为起步配置,并不意味着所有 Issue 都能在无人值守的情况下解决。

给仓库配一个随叫随到的助手

可以把 GitHub App 理解为门禁卡,工作流是任务单,runner 则是临时工作台。工作流是告诉 GitHub 何时启动任务的配置文件;runner 是实际执行任务的机器。

在 Issue 或 PR 中提及 Claude,就能触发这个 Action;如果提供 prompt,则会变成自动执行的任务。对小团队来说,先用明确的请求探索哪些任务值得交给它,比一开始就为每次变更付费审查更容易找到价值。参见 Action 使用说明。

建筑风格的工作流示意图:@claude 请求经由 GitHub runner 执行,产出审查结果或修复方案,再由人工决定是否合并;一份身份验证凭据接入 runner。
GitHub 负责执行任务,是否合并仍由团队决定。

如何配置 Claude Code GitHub Actions?

拥有仓库管理员权限时,可以使用引导式安装。先通过 gh auth login 为已安装的 GitHub CLI 完成身份验证,在仓库目录中打开 claude,然后运行 /install-github-app。选择工作流,以及 API 密钥或订阅身份验证方式,再创建并合并准备好的工作流 PR。安装在本地完成,后续任务则在 GitHub 上运行。参见官方快速配置指南。

手动配置也能得到相同的结果:

  1. 在选定仓库上安装 Claude GitHub App。
  2. 打开仓库的 Settings → Secrets and variables → Actions(设置 → 机密和变量 → Actions),从下表中选择一种身份验证方式,添加对应的仓库 Secret。
  3. 将 Anthropic 的可用示例复制到 .github/workflows/claude.yml,选择与 Secret 对应的身份验证输入参数,然后合并该文件。
  4. 留下一条包含 @claude 和具体请求的评论。

以上沿用官方手动配置步骤,并明确列出了凭据选项。参见 Action 配置指南。

身份验证方式仓库 SecretAction 输入参数
Claude API 密钥ANTHROPIC_API_KEYanthropic_api_key
Claude 订阅令牌CLAUDE_CODE_OAUTH_TOKENclaude_code_oauth_token

如果使用订阅,在本地运行 claude setup-token,将输出保存为 Secret。Anthropic 的文档列出了 Pro、Max、Team 和 Enterprise 套餐对这种方式的支持。生成的令牌有效期为一年,应明确由谁负责续期。参见令牌身份验证。

**计费方式由凭据决定:**使用 API 密钥的任务按 API 计费;使用 OAuth 令牌的任务消耗 Claude 订阅用量,GitHub Actions runner 的用量另行计算。订阅令牌归生成它的个人所有;对于需要在多个仓库间共享的 Secret,Anthropic 建议使用 API 密钥。参见身份验证与费用。

采用默认的 App 配置时,不需要个人 GitHub 访问令牌。GitHub 访问授权与 Claude 身份验证是两回事:前者由 App 提供,后者由所选的 Secret 提供。参见身份验证输入参数。

先从按需触发的小范围工作流开始

这套配置适用于可信团队仓库中的小范围文件修改。它可以读取、编辑文件,并通过 GitHub API 提交变更。由于没有向 Claude 开放 shell 工具,它无法在这套配置下执行测试命令。测试仍交给常规 CI,也就是针对待合并变更运行的自动化检查。

将以下内容保存为 .github/workflows/claude.yml。其中引用的 actions/checkout@v6 和 anthropics/claude-code-action@v1 均出现在 Anthropic 的当前示例中。五轮上限和十五分钟超时是本文选用的起步设置,并非 Anthropic 的默认值。参见官方工作流。

YAML
name: Claude on request
on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]

jobs:
  claude:
    if: contains(github.event.comment.body, '@claude')
    runs-on: ubuntu-latest
    timeout-minutes: 15
    concurrency:
      group: claude-small-team
      cancel-in-progress: false
    permissions:
      contents: write
      issues: write
      pull-requests: write
      id-token: write
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 1
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          use_commit_signing: true
          claude_args: |
            --max-turns 5
            --tools "Read,Glob,Grep,Edit,Write"
            --disallowedTools "Bash,WebFetch,WebSearch"

如需使用订阅计费,将 anthropic_api_key 这一行替换为 claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }},只保留一种方式。默认 GitHub App 身份验证需要 id-token: write,请保留这一权限。参见官方工作流与身份验证、输入参数参考。

这些控制项各有分工:

  • --tools 决定 Claude 可以使用哪些内置工具。Read、Glob 和 Grep 用于查看文件,Edit 和 Write 用于修改文件。它不会限制 MCP 工具;后者是单独连接的工具,Action 通过它们与 GitHub 交互。
  • --allowedTools 允许指定工具无需询问即可使用,但它并不是完整的工具白名单。这里通过显式设置 --disallowedTools 禁用 shell 和网页工具。
  • --max-turns 限制智能体的工作轮数,不限制 token 数量或美元费用。达到轮数上限时,任务可能以错误结束,工作也可能尚未完成。参见 CLI 参考。

use_commit_signing: true 让提交经由 GitHub API 完成。因此,即使没有向 Claude 开放基于 shell 的 git 命令,这套配置也能保存变更,而且不需要额外的签名 Secret。Action 的 GitHub 工具仍然可用,所以这套配置具备写入能力。参见提交签名、Action 实现。

固定的并发组让每个仓库同一时间只能运行一个来自此工作流的任务。在默认排队机制下,新进入等待状态的请求可能替换较早的待执行请求,因此不能把它当作持久化任务队列。超时设置限制的是任务经过的总时间,包括准备阶段。参见 GitHub 并发控制、工作流语法。

可以试试 @claude review this PR for missing permission checks; report findings without changing files。针对 Issue,可以试试 @claude fix the null handling described above, change only the parser and its regression test, and state which checks were not run。

默认情况下,触发者需要拥有仓库写入权限,机器人触发会被拦截。针对 Issue 修复,应预期得到一个分支,以及供人工创建 PR 的链接。团队使用说明中应写清这一点。参见 Action 安全说明。

试用有效后,再接入自动代码审查

在 /install-github-app 安装过程中选择审查工作流,即可配置自动 PR 审查。其代码审查插件通过 --comment 和下方的评论工具授权发布发现的问题。参见官方审查示例。

在这个独立的审查工作流中,Action 的输入参数包括:

YAML
plugin_marketplaces: "https://github.com/anthropics/claude-code.git"
plugins: "code-review@claude-code-plugins"
prompt: "/code-review:code-review --comment ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"
claude_args: >-
  --max-turns 5
  --allowedTools "mcp__github_inline_comment__create_inline_comment"

这些输入参数应放在官方的 pull_request 工作流中,不适用于上面的提及触发工作流。保留官方工作流的检出步骤、身份验证和任务权限,添加任务超时,并使用 if: github.event.pull_request.head.repo.full_name == github.repository 跳过来自 fork 的 PR。轮数上限应视为试运行设置:审查耗尽轮数,就意味着审查尚未完成。文档中的审查技能还会跳过部分 PR,包括草稿。

安装范围和工具权限,要分别控制

先只在选定的仓库上安装。官方 Claude App 的权限由多项 Claude 功能共用,GitHub 不允许只接受其中一部分。YAML 中较小的 permissions 配置块,并不会缩小 App 安装时获得的权限范围。参见 App 权限模型。

如果默认 App 的安装权限过宽,可以按文档创建自定义 App,授予 Contents、Issues 和 Pull requests 访问权限。这种方式需要增加 APP_ID 和 APP_PRIVATE_KEY 两个 Secret,并增加一个步骤来创建 App 令牌,将其作为 github_token 传入。对于准备移除静态 Claude API 密钥的团队,配置指南还介绍了工作负载身份联合验证:用 GitHub 任务身份换取短期 API 访问凭据。参见自定义 App 与联合验证配置。

四道建筑风格的关卡分别标注仓库、工具、轮数和超时,展示如何分别控制 Claude 的运行位置、可用工具、尝试的工作量以及任务持续时间。
仓库范围、工具访问、轮数上限和运行时长,需要分别设置限制。

添加一份简洁的 CLAUDE.md,写明审查重点、允许修改的范围,以及修复必须提供哪些证据。指令负责引导工作,仓库权限和工具限制负责约束访问。启用无人值守运行前,应审查已配置的 hooks(在生命周期事件发生时自动执行的命令),以及额外的工具服务器。参见项目指令。我们的 Claude Code 评测指南讨论了更全面的选用考量,斜杠命令指南则解释了配置时会用到的命令。

六类值得尝试的任务,按这个顺序推进

先挑选容易说清楚、结果也容易核验的任务。以下是工作流建议,不代表经过测量的效率收益,也不是效果保证。

优先级与适用团队请求与工作流可能带来的价值
1. 代码审查遇到瓶颈的小型 SaaS 团队在维护者阅读 PR 前,先要求针对授权检查或错误处理做一次专项审查。为人工审查提供一组可以逐项核验的具体发现。
2. 手头有可复现 bug 的维护者在 Issue 中写明复现步骤和预期行为,请求小范围修复并补充回归测试。不必由开发者在本地环境中动手尝试第一版补丁。
3. 接手陌生代码库的技术服务团队询问客户 Issue 中描述的行为由哪些文件实现。减少评估变更工作量之前查找代码的时间。
4. 正在修改端点的后端团队要求在完成指定代码变更的同时更新文档。将小型维护任务与对应的 PR 一起处理。
5. 遇到边界情况回归问题的团队要求针对已说明的故障编写测试,再由现有 CI 执行。在接受修复前,先让团队能够审查预期行为。
6. 处理外部问题报告的开源维护者检查报告后,要求说明相关代码位置,不执行贡献者的代码。辅助问题分诊,同时由维护者掌控哪些代码可以被信任并执行。

起步配置无法安装依赖,也无法运行测试套件。如果任务需要这些能力,应针对可信代码增加一套经过单独审查的执行配置,明确允许的命令,并设置独立的限制。即使测试命令获得了许可,执行的仍然是仓库代码;命令名称看起来无害,并不代表代码安全。

增加触发条件前,先排除这些故障

来自 fork 的 PR 可能无法读取 Secret。 对由 fork 触发的 pull_request 和 pull_request_review_comment 运行,GitHub 通常不会提供 Secret。这类任务中的 Claude 凭据为空,是信任边界在起作用。不要为了拿到 Secret,就改用 pull_request_target 并执行 fork 中的代码。由维护者触发的 issue_comment 任务也可能拿到 Secret,因此评论者可信,并不等于 PR 中的文件可信。参见 GitHub 的 fork 安全指南。

限制工具,不能消除项目启动代码的风险。 Action 会从基准分支恢复部分 Claude 配置,但脚本和其他项目文件仍可能来自 PR。除了 Claude 获准使用的工具,还要审查 hooks 和工具服务器配置。参见 Action 的信任边界。

Runner 运行时间仍需单独管理。 公共仓库使用标准 GitHub 托管 runner 免费。私有仓库受套餐额度限制,超额部分付费;额度耗尽且未配置付款方式时,任务可能停止。查看 Claude 用量时,也要一起查看 Actions 用量页面。参见 GitHub Actions 计费说明。

配置正确,也可能因速率限制而中断。 API 按分钟限制请求数,以及输入和输出 token 数;token 是模型处理的文本片段。遇到带有 retry-after 的 429,应等待后再重试,并减少同时运行的任务。如果 429 是由用量层级的支出上限引起,且没有该响应头,就需要处理计费或限额问题,反复重跑没有用。使用订阅进行身份验证,同样受套餐用量限制。参见 API 速率限制、Claude 用量限制。

机器人没响应,与后续 CI 没运行,是两类故障。 如果没有响应,检查默认分支上是否存在该工作流、Actions 是否启用、Secret 是否与输入参数匹配,以及评论者是否拥有写入权限。提及时要完整写出 @claude。如果后续 CI 没有启动,检查是否有人把 App 身份验证替换成了 github_token: ${{ secrets.GITHUB_TOKEN }}:GitHub 会抑制该令牌产生的许多事件,而且部分 PR 工作流需要批准后才能运行。参见 GitHub 令牌行为。

围绕这套流程,可以做哪两类产品?

最值得尝试的是面向小团队的代码审查配置与托管服务。 潜在买家是希望审查发现有价值、责任归属清晰、运行限制可预期的工程负责人。2026 年 10 月 15 日获取的 DataForSEO 美国英语市场估算显示,“ai code review”的月搜索量为 1,300。这能说明有人关注,并不代表客户数量。可售卖的首版服务可以包括:配置一个仓库、写明审查重点、用历史 PR 评估审查结果,并持续提供用量与故障报告。难点在于误报会消耗团队耐心;真正需要长期投入的,是在代码库不断变化时维持审查质量。单纯包装一个通用提示词,很难给客户持续使用的理由。

技术服务公司可能需要一套能复用到客户仓库的审查策略包。 在同一市场中,DataForSEO 对“ai code review tools”的估算为每月 590 次搜索,对“github ai code review”的估算为 140。最小可用产品可以组合可复用的工作流、按客户定制的指令模板、凭据责任人记录,以及运行限制缺失检查,帮助服务团队在项目交接时维持一致的配置。难点是每个客户的权限和测试环境都不同,模板必须持续维护和评估才有价值。这些搜索词的受众存在重叠,不能把搜索量相加当作市场规模。

GitHub Actions、云端会话和定时任务,怎么选?

如果任务由仓库事件驱动,而且团队希望将配置、权限和日志纳入 CI 一起管理,选择 GitHub Actions。如果是一次性任务,希望合上电脑后仍能通过浏览器发起并指导执行,选择云端会话。如果任务需要保存并反复运行,例如每晚检查待办事项,而你更愿意使用 Claude 托管的调度和配置,不想维护工作流 YAML,可以选择定时例行任务(routine)。Routines 也支持 GitHub 和 API 触发,因此有调度需求并不意味着必须使用 Actions;routines 仍处于研究预览阶段。参见云端会话、routines。

能在 GitHub 中使用 AI 代码审查吗?

可以。用 @claude 明确发起请求,或单独配置由 PR 事件触发的审查工作流。推广到更多仓库之前,先测试审查结果会显示在哪里。

AI 代码审查免费吗?

工作流仍会消耗 Claude 用量。所选凭据决定采用 API 计费,还是消耗订阅用量。GitHub runner 是否收费,取决于仓库可见性、runner 类型和套餐额度。

选择 AI 代码审查工具,该信哪种评测?

针对这项决策,最好用自己仓库中的历史 PR 评估。记录审查发现是否对应真实问题、会消耗多少人工审查精力、任务能否完成,以及产生多少用量。通用排行榜无法替你的代码库回答这些问题。

周一可以先让仓库管理员安装 App,并合并这套带有限制的工作流。给它一个已知 bug,再发起一次范围明确的审查请求,将输出与团队自己的判断对照。只有当结果值得投入相应的注意力和用量时,再增加触发条件。

如果希望为团队搭建并维护这套工作流,可以寻求 AI 自动化服务。

发布日期
分类
Build
Zed Editor 评测:原生编辑、AI 智能体与迁移取舍

Zed Editor 评测:原生编辑、AI 智能体与迁移取舍

Zed Editor 值得替代 VS Code 或 Cursor 吗?本文梳理原生编辑、多缓冲区、多人协作及 3 种 AI 智能体接入方式,说明套餐价格、安装配置、扩展迁移、调试和团队管理的限制。以官方公开文档为依据,帮助个人开发者和团队在真实项目中判断该换编辑器,还是继续保留现有工具链。2026年10月15日Build
OpenCode vs Claude Code 2026:模型、订阅与工作流怎么选?

OpenCode vs Claude Code 2026:模型、订阅与工作流怎么选?

OpenCode vs Claude Code 怎么选?本文从模型自由度、本地运行、Claude 订阅接入、子智能体、MCP、插件和编辑器审查入手,梳理两款 AI 编程智能体的优势与限制,并说明费用差异、凭据使用边界,以及从 Claude Code 迁移到 OpenCode 时需要处理的指令、集成和恢复问题。2026年10月15日Build
大模型裁判(LLM as a Judge):让 AI 智能体的每日评估更可靠

大模型裁判(LLM as a Judge):让 AI 智能体的每日评估更可靠

如何让大模型裁判可靠地评估 AI 智能体?本文从单点评估、成对比较和评分准则出发,讲清人工标注校准、预留集验证、位置偏差与提示词注入,并比较 Promptfoo、DeepEval、Langfuse 和 LangSmith 的适用场景,帮助你保留工具证据、识别误放行,并建立有人工审核参与的每日自动评估流程。2026年10月15日Build
KV Cache 原理:提示词缓存如何省钱,长上下文为何占内存

KV Cache 原理:提示词缓存如何省钱,长上下文为何占内存

KV Cache 为什么能降低大模型推理成本,却不能消除长上下文的内存压力?本文从预填充与解码讲起,拆解提示词缓存的计费逻辑、KV 内存估算公式,以及 Anthropic、OpenAI、Google Gemini 的读写与保留规则,并介绍 vLLM 的前缀复用、量化和卸载方法,帮助你排查命中率、延迟与成本问题。2026年10月15日Build
DSPy 教程:用评估驱动提示词优化,读懂签名、模块与优化器

DSPy 教程:用评估驱动提示词优化,读懂签名、模块与优化器

DSPy 值不值得用,关键在于任务能否评估。本文梳理签名、模块与优化器,给出可直接运行的 Python 示例,并用工单分流说明训练、验证和最终测试如何划分、调用次数与模型费用如何估算。读懂 DSPy 提示词优化的边界,比较手写提示词与微调,再判断团队是否具备样例、评分规则和维护能力,适合从哪里开始试验。2026年10月15日Build
Agent Skills 实战:一套技能如何在不同 AI 工具间复用

Agent Skills 实战:一套技能如何在不同 AI 工具间复用

Agent Skills 如何让一套流程在不同 AI 工具间复用?本文讲清 SKILL.md 规范,对照 Claude Code、Codex、Cursor、Gemini CLI 与 GitHub Copilot 的支持方式,用运营周报示例演示部署检查,并拆解上下文成本、MCP 的分工和权限边界。2026年10月15日Build
2026 嵌入模型选型指南:OpenAI、Gemini、Voyage 与开源方案怎么选

2026 嵌入模型选型指南:OpenAI、Gemini、Voyage 与开源方案怎么选

嵌入模型怎么选,才能让 RAG 和客服机器人稳定找到答案?本文对比 OpenAI、Voyage、Gemini、Cohere、Qwen、BGE 与 EmbeddingGemma,梳理价格、向量维度、输入限制、多语言与多模态能力、部署方式和许可证,并说明如何用自己的数据评估检索效果、核算存储成本,以及规划模型和索引迁移。2026年10月15日Build
LangSmith vs Langfuse:链路追踪、评估与自部署怎么选

LangSmith vs Langfuse:链路追踪、评估与自部署怎么选

LangSmith 和 Langfuse 怎么选?本文对比链路追踪、在线与离线评估、数据集、提示词管理、监控和自部署,结合 LangChain、LangGraph 与多框架团队的实际流程,说明云服务计费、开源许可、Enterprise 部署条件及迁移要点,帮助工程团队按审核协作方式和运维责任做出选择。2026年10月14日Build
订阅通讯

每周日,一封信。写运转中的系统,不写热评。

每周一期。无垃圾邮件。随时退订。