SpyBara
Go Premium

github-actions-cloud-providers.md 2026-09-17 05:00 UTC to 2026-09-18 23:58 UTC

This page contains 2 additions and 2 deletions.

2026
Sat 12 03:02 Fri 18 23:58

通过云提供商使用 Claude Code GitHub Actions

通过 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 而不是 Claude API 运行 Claude Code GitHub Actions

Claude Code GitHub Actions 默认调用 Claude API。要改为通过您自己的云账户路由推理,请设置 Claude Code GitHub Action 的 provider 输入,并配置您的云以信任工作流的 OpenID Connect (OIDC) 令牌。工作流使用该令牌进行身份验证,因此您无需在存储库中存储长期的云凭证。

选择您的提供商

Claude Code GitHub Action 支持三个提供商,下面的设置步骤仅在云端配置上有所不同。使用您的组织已经拥有 Claude 模型访问权限的提供商。您通过在 anthropics/claude-code-action 步骤的 with: 块中的一个输入来告诉 Claude Code GitHub Action 使用哪个提供商:

  • Amazon Bedrock: use_bedrock: "true"
  • Google Cloud 的 Agent Platform: use_vertex: "true"
  • Microsoft Foundry: use_foundry: "true"

设置集成 下的完整工作流示例已经包含了每个提供商的输入。

前置条件

在开始之前,您需要:

  • 对运行 Claude Code GitHub Action 的存储库的管理员访问权限,以安装 GitHub App 并添加密钥
  • 在您的云账户中创建身份资源的权限:AWS 上的 IAM 角色和 OIDC 身份提供商、Google Cloud 上的 Workload Identity Federation 资源和服务账户,或 Azure 上的 Microsoft Entra 应用程序
  • 在您的提供商上拥有 Claude 模型访问权限:

设置集成

除了前置条件外,您需要为 Claude Code GitHub Action 创建 GitHub 身份、云端信任配置、存储库密钥和工作流文件。下面的步骤将逐一介绍每一项。

1

选择 GitHub 身份

Claude Code GitHub Action 通过 GitHub 身份推送提交和发布评论。快速设置 为此安装了官方 Claude GitHub App。使用云提供商时,您可以自己选择身份:

  • 官方 Claude GitHub App: 在存储库上安装它,或如果已经安装,请跳到下一步
  • 自定义 GitHub App: 当您只想要 Claude Code GitHub Action 使用的三个权限而不是官方应用的完整权限集时,创建您自己的应用
  • GitHub 的自动 GITHUB_TOKEN: 无需创建或安装应用,但 GitHub 不会在使用它进行的提交上触发您的 CI 工作流

第四步中的工作流示例使用自定义应用进行身份验证。该步骤还说明了如何为其他两个选项进行更改。

要创建自定义应用,注册一个新的 GitHub App,禁用 webhooks,因为此集成不使用它们。授予它三个存储库权限:

  • Contents: 读和写
  • Issues: 读和写
  • Pull requests: 读和写

注册应用后,生成一个私钥并保留下载的 .pem 文件,从应用的设置页面记下应用 ID,并在运行 Claude Code GitHub Action 的存储库上安装应用。您将在第三步中将密钥和 ID 添加为密钥。

2

配置云身份验证

配置您的云以信任 GitHub 向工作流颁发的 OIDC 令牌,以便每个工作流运行都获得短期的云凭证。每个选项卡中的项目总结了要创建的内容,每个选项卡都链接到云供应商自己的控制台级步骤指南。

在您的 AWS 账户中创建信任配置,遵循 AWS 创建 OIDC 身份提供商指南:

  • 添加一个 GitHub OIDC 身份提供商,提供商 URL 为 https://token.actions.githubusercontent.com,受众为 sts.amazonaws.com
  • 创建一个由该提供商作为 Web 身份信任的 IAM 角色,并附加来自 IAM 配置 的作用域调用策略,该策略授予 bedrock:InvokeModel、bedrock:InvokeModelWithResponseStream、bedrock:ListInferenceProfiles 和 bedrock:GetInferenceProfile,以及两个 aws-marketplace 订阅操作
  • 使用主题条件(例如 repo:your-org/your-repo:*)将角色的信任策略限制在您的存储库。有关声明格式,请参阅 GitHub 的 OIDC 加固指南

记下角色的 ARN。您将在下一步中将其添加为密钥。

3

添加存储库密钥

在运行 Claude Code GitHub Action 的存储库中,为您的提供商添加密钥,如果您在第一步中创建了自定义 GitHub App,还要添加两个应用密钥。请参阅 GitHub 的 在 GitHub Actions 中使用密钥指南。

密钥 需要用于 值
AWS_ROLE_TO_ASSUME Amazon Bedrock IAM 角色的 ARN
GCP_WORKLOAD_IDENTITY_PROVIDER Google Cloud 的 Agent Platform 提供商的完整资源名称
GCP_SERVICE_ACCOUNT Google Cloud 的 Agent Platform 服务账户的电子邮件地址
AZURE_CLIENT_ID Microsoft Foundry Entra 应用程序的客户端 ID
AZURE_TENANT_ID Microsoft Foundry 您的 Microsoft Entra 租户 ID
AZURE_SUBSCRIPTION_ID Microsoft Foundry 您的 Azure 订阅 ID
APP_ID 自定义 GitHub App GitHub App 的 ID
APP_PRIVATE_KEY 自定义 GitHub App .pem 私钥文件的内容
4

创建工作流文件

为您的提供商创建一个工作流文件,例如 .github/workflows/claude.yml。每个示例都响应 @claude 提及,使用自定义应用向 GitHub 进行身份验证,并包含 id-token: write 权限,GitHub 需要此权限来颁发 OIDC 令牌,您的云提供商可以用它来交换凭证。

如果您在第一步中选择了不同的 GitHub 身份,请调整示例:

  • 官方 Claude GitHub App: 删除生成 GitHub App 令牌步骤和 github_token 行
  • GitHub 的自动令牌: 删除令牌生成步骤,并将 github_token 行更改为 github_token: ${{ secrets.GITHUB_TOKEN }}

将 aws-region 值替换为您自己的值。凭证步骤将其导出为 AWS_REGION 供作业的其余部分使用。

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]
issues:
types: [opened]

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')) ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6

- 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 添加到 claude_args 来限制运行长度和成本。请参阅 管理成本。

5

测试设置

在问题或 PR 评论中提及 @claude,然后在存储库的 Actions 选项卡中观看运行。Claude 在同一问题或 PR 上的评论中回复。

故障排除

失败的运行通常在以下两个地方之一中断:

  • 身份验证错误: 通常是 OIDC 配置错误。检查工作流是否包含 id-token: write 权限,信任配置的存储库条件是否与您的存储库完全匹配,以及工作流中的密钥名称是否与您添加的名称匹配
  • 触发和 CI 问题: 这些的行为与 Claude Code GitHub Action 调用 Claude API 时相同。请参阅主页的故障排除部分和 Claude Code GitHub Action 的 FAQ

接下来