Использование Claude Code GitHub Actions с облачными провайдерами
Запускайте Claude Code GitHub Actions через Amazon Bedrock, Google Cloud's Agent Platform или Microsoft Foundry вместо Claude API
Claude Code GitHub Actions по умолчанию вызывает Claude API. Чтобы маршрутизировать вывод через собственный облачный аккаунт, установите входной параметр провайдера Claude Code GitHub Action и настройте облако на доверие токену OpenID Connect (OIDC) рабочего процесса. Рабочий процесс аутентифицируется с помощью этого токена, поэтому вы не сохраняете долгоживущие облачные учетные данные в своем репозитории.
Эта страница основана на настройке GitHub Actions. Предполагается, что вы уже знакомы с файлом рабочего процесса и шагом anthropics/claude-code-action, и здесь рассматривается только то, что меняется для облачного провайдера.
Выберите своего провайдера
Claude Code GitHub Action поддерживает трех провайдеров, и шаги настройки ниже отличаются только конфигурацией на стороне облака. Используйте того, у которого ваша организация уже имеет доступ к моделям Claude. Вы указываете Claude Code GitHub Action, какого провайдера использовать, с помощью одного входного параметра в блоке with: шага anthropics/claude-code-action:
- Amazon Bedrock:
use_bedrock: "true" - Google Cloud's Agent Platform:
use_vertex: "true" - Microsoft Foundry:
use_foundry: "true"
Полные примеры рабочих процессов в разделе Настройка интеграции уже включают входной параметр для каждого провайдера.
Предварительные требования
Перед началом вам потребуется:
- Доступ администратора к репозиторию, где работает Claude Code GitHub Action, для установки GitHub App и добавления секретов
- Разрешение на создание ресурсов идентификации в вашем облачном аккаунте: роли IAM и поставщики идентификации OIDC на AWS, ресурсы Workload Identity Federation и сервисные аккаунты на Google Cloud, или приложения Microsoft Entra на Azure
- Доступ к моделям Claude на вашем провайдере:
- Amazon Bedrock: доступ предоставлен моделям Claude. Профили кросс-региональной инференции, такие как идентификаторы моделей
us.в примерах на этой странице, требуют доступа, предоставленного в каждом регионе их группы регионов. См. Claude Code на Amazon Bedrock - Google Cloud's Agent Platform: проект с включенным Agent Platform API и доступом к моделям Claude. См. Claude Code на Google Cloud's Agent Platform
- Microsoft Foundry: ресурс Foundry с развертыванием модели Claude. См. Claude Code на Microsoft Foundry
- Amazon Bedrock: доступ предоставлен моделям Claude. Профили кросс-региональной инференции, такие как идентификаторы моделей
Настройка интеграции
Помимо предварительных требований, вы создаете идентификацию GitHub для Claude Code GitHub Action, конфигурацию доверия на стороне облака, секреты репозитория и файл рабочего процесса. Шаги ниже проходят через каждый из них.
Выберите идентификацию GitHub
Claude Code GitHub Action отправляет коммиты и публикует комментарии через идентификацию GitHub. Быстрая настройка устанавливает официальное приложение Claude GitHub App для этого. С облачным провайдером вы выбираете идентификацию сами:
- Официальное приложение Claude GitHub App: установите его на репозиторий, или пропустите на следующий шаг, если оно уже установлено
- Пользовательское приложение GitHub: создайте свое собственное приложение, когда вам нужны только три разрешения, которые использует Claude Code GitHub Action, а не полный набор официального приложения
- Автоматический
GITHUB_TOKENGitHub: нет приложения для создания или установки, но GitHub не запускает ваши CI рабочие процессы на коммитах, сделанных с его помощью
Примеры рабочих процессов на четвертом шаге аутентифицируются с помощью пользовательского приложения. Этот шаг также указывает, что изменить для двух других вариантов.
Чтобы создать пользовательское приложение, зарегистрируйте новое приложение GitHub с отключенными вебхуками, так как эта интеграция их не использует. Предоставьте ему три разрешения репозитория:
- Contents: чтение и запись
- Issues: чтение и запись
- Pull requests: чтение и запись
После регистрации приложения создайте приватный ключ и сохраните загруженный файл .pem, запишите ID приложения со страницы настроек приложения и установите приложение на репозиторий, где работает Claude Code GitHub Action. Вы добавляете ключ и ID как секреты на третьем шаге.
Настройте облачную аутентификацию
Настройте облако на доверие токену OIDC, который GitHub выдает рабочему процессу, чтобы каждый запуск рабочего процесса получал краткосрочные облачные учетные данные. Маркеры в каждой вкладке суммируют то, что нужно создать, и каждая вкладка ссылается на собственное руководство облачного провайдера для шагов на уровне консоли.
Создайте конфигурацию доверия в вашем аккаунте AWS, следуя руководству AWS по созданию поставщиков идентификации OIDC:
- Добавьте поставщика идентификации GitHub OIDC с URL провайдера
https://token.actions.githubusercontent.comи аудиториейsts.amazonaws.com - Создайте роль IAM, которой доверяет этот провайдер как веб-идентификация, и присоедините политику ограниченного вызова из конфигурации IAM, которая предоставляет
bedrock:InvokeModel,bedrock:InvokeModelWithResponseStream,bedrock:ListInferenceProfilesиbedrock:GetInferenceProfile, а также два действия подпискиaws-marketplace - Ограничьте политику доверия роли вашим репозиторием с условием субъекта, таким как
repo:your-org/your-repo:*. См. руководство GitHub по усилению безопасности OIDC для формата утверждения
Запишите ARN роли. Вы добавляете его как секрет на следующем шаге.
Создайте ресурсы федерации в вашем проекте Google Cloud, следуя документации Workload Identity Federation:
- Включите три API: IAM Credentials, Security Token Service (STS) и Agent Platform API, имя сервиса которого
aiplatform.googleapis.com - Создайте пул Workload Identity с поставщиком GitHub OIDC, издатель которого
https://token.actions.githubusercontent.com, и добавьте условие атрибута, которое ограничивает пул вашим репозиторием - Создайте выделенный сервисный аккаунт только с ролью
Vertex AI User, которая являетсяroles/aiplatform.user, и разрешите пулу его олицетворять
Запишите полное имя ресурса провайдера и адрес электронной почты сервисного аккаунта. Вы добавляете их как секреты на следующем шаге.
Создайте приложение Microsoft Entra с федеративным учетным данием для вашего репозитория, следуя руководству Microsoft по аутентификации из GitHub Actions:
- Зарегистрируйте приложение Microsoft Entra и добавьте федеративное учетное дание идентификации, которое доверяет токенам, выданным GitHub вашему репозиторию. Управляемое удостоверение, назначенное пользователем, работает вместо приложения. Оба имеют ID клиента, который вы запишите ниже
- Назначьте приложению роль
Azure AI Userна вашем ресурсе Foundry. См. конфигурацию Azure RBAC для более узкой пользовательской роли
Запишите ID клиента приложения, ID вашего тенанта и ID вашей подписки. Вы добавляете их как секреты на следующем шаге.
Добавьте секреты репозитория
В репозитории, где работает Claude Code GitHub Action, добавьте секреты для вашего провайдера, плюс два секрета приложения, если вы создали пользовательское приложение GitHub на первом шаге. См. руководство GitHub по использованию секретов в GitHub Actions.
| Секрет | Требуется для | Значение |
|---|---|---|
AWS_ROLE_TO_ASSUME |
Amazon Bedrock | ARN роли IAM |
GCP_WORKLOAD_IDENTITY_PROVIDER |
Google Cloud's Agent Platform | Полное имя ресурса провайдера |
GCP_SERVICE_ACCOUNT |
Google Cloud's Agent Platform | Адрес электронной почты сервисного аккаунта |
AZURE_CLIENT_ID |
Microsoft Foundry | ID клиента приложения Entra |
AZURE_TENANT_ID |
Microsoft Foundry | ID вашего тенанта Microsoft Entra |
AZURE_SUBSCRIPTION_ID |
Microsoft Foundry | ID вашей подписки Azure |
APP_ID |
Пользовательское приложение GitHub | ID приложения GitHub |
APP_PRIVATE_KEY |
Пользовательское приложение GitHub | Содержимое файла приватного ключа .pem |
Создайте файл рабочего процесса
Создайте файл рабочего процесса для вашего провайдера, такой как .github/workflows/claude.yml. Каждый пример отвечает на упоминания @claude, аутентифицируется на GitHub с помощью пользовательского приложения и включает разрешение id-token: write, которое GitHub требует для выдачи токена OIDC, который ваш облачный провайдер обменивает на учетные данные.
Если вы выбрали другую идентификацию GitHub на первом шаге, отрегулируйте пример:
- Официальное приложение Claude GitHub App: удалите шаг Generate GitHub App token и строку
github_token - Автоматический токен GitHub: удалите шаг генерации токена и измените строку
github_tokenнаgithub_token: ${{ secrets.GITHUB_TOKEN }}
В публичных репозиториях комментарий, содержащий фразу триггера от любого пользователя, запускает этот рабочий процесс. Шаги учетных данных выполняются до того, как Claude Code GitHub Action проверит доступ на запись комментатора, поэтому действие отклоняет неавторизованных пользователей только после того, как рабочий процесс создал токен приложения и вошел в ваш облачный провайдер, что оставляет записи в журнале аудита и потребляет минуты Actions. Чтобы избежать таких запусков, добавьте шаг, который проверяет доступ на запись комментатора перед шагами учетных данных.
Замените значение 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'
Идентификаторы моделей Bedrock включают префикс профиля кросс-региональной инференции, такой как us.. Используйте префикс для группы регионов, где вы предоставили доступ к модели.
Замените значение CLOUD_ML_REGION на свое собственное. Вам не нужно жестко кодировать ID проекта, потому что рабочий процесс читает его из выходных данных шага auth.
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: 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 }}
use_vertex: "true"
claude_args: '--model claude-sonnet-5'
env:
ANTHROPIC_VERTEX_PROJECT_ID: ${{ steps.auth.outputs.project_id }}
CLOUD_ML_REGION: us-east5
Замените your-resource-name на имя вашего ресурса Foundry. Claude Code строит URL конечной точки из него. Шаг azure/login входит с помощью токена OIDC рабочего процесса, и Claude Code подхватывает учетные данные через цепь учетных данных по умолчанию Azure.
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: Authenticate to Azure
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- uses: anthropics/claude-code-action@v1
with:
github_token: ${{ steps.app-token.outputs.token }}
use_foundry: "true"
claude_args: '--model claude-sonnet-5'
env:
ANTHROPIC_FOUNDRY_RESOURCE: your-resource-name
Используйте ID модели, который соответствует развертыванию Claude в вашем ресурсе Foundry. См. Claude Code на Microsoft Foundry для конфигурации модели и закрепления версии.
С любым провайдером вы можете ограничить длину запуска и стоимость, добавив --max-turns к claude_args. См. Управление затратами.
Протестируйте настройку
Упомяните @claude в комментарии проблемы или PR, затем смотрите запуск на вкладке Actions репозитория. Claude отвечает в комментарии на той же проблеме или PR.
Troubleshooting
Неудачный запуск обычно разбивается в одном из двух мест:
- Ошибки аутентификации: обычно неправильная конфигурация OIDC. Проверьте, что рабочий процесс включает разрешение
id-token: write, что условие репозитория конфигурации доверия точно соответствует вашему репозиторию и что имена секретов в вашем рабочем процессе совпадают с добавленными вами - Проблемы триггера и CI: они ведут себя так же, как когда Claude Code GitHub Action вызывает Claude API. См. раздел troubleshooting главной страницы и FAQ Claude Code GitHub Action
Что дальше
- Claude Code GitHub Actions для примеров, параметров и лучших практик
- Claude Code на Amazon Bedrock для идентификаторов и регионов моделей Bedrock
- Claude Code на Google Cloud's Agent Platform для идентификаторов и регионов моделей Agent Platform
- Claude Code на Microsoft Foundry для конфигурации модели и конечной точки Foundry