Usa Claude Code GitHub Actions con i provider cloud
Esegui Claude Code GitHub Actions tramite Amazon Bedrock, Google Cloud's Agent Platform o Microsoft Foundry invece dell'API Claude
Claude Code GitHub Actions chiama l'API Claude per impostazione predefinita. Per instradare l'inferenza attraverso il tuo account cloud, imposta l'input del provider dell'azione GitHub di Claude Code e configura il tuo cloud per fidarsi del token OpenID Connect (OIDC) del flusso di lavoro. Il flusso di lavoro si autentica con quel token, quindi non memorizzi alcuna credenziale cloud di lunga durata nel tuo repository.
Questa pagina si basa sulla configurazione di GitHub Actions. Presuppone che tu conosca già il file del flusso di lavoro e il passaggio anthropics/claude-code-action, e copre solo ciò che cambia un provider cloud.
Scegli il tuo provider
Claude Code GitHub Action supporta tre provider e i passaggi di configurazione di seguito differiscono solo nella configurazione lato cloud. Usa quello dove la tua organizzazione ha già accesso ai modelli Claude. Comunichi all'azione GitHub di Claude Code quale provider utilizzare con un input nel blocco with: del passaggio anthropics/claude-code-action:
- Amazon Bedrock:
use_bedrock: "true" - Google Cloud's Agent Platform:
use_vertex: "true" - Microsoft Foundry:
use_foundry: "true"
Gli esempi di flusso di lavoro completi nella sezione Configura l'integrazione includono già l'input per ogni provider.
Prerequisiti
Prima di iniziare, hai bisogno di:
- Accesso amministratore al repository dove viene eseguita l'azione GitHub di Claude Code, per installare un'app GitHub e aggiungere segreti
- Autorizzazione per creare risorse di identità nel tuo account cloud: ruoli IAM e provider di identità OIDC su AWS, risorse Workload Identity Federation e account di servizio su Google Cloud, o applicazioni Microsoft Entra su Azure
- Accesso ai modelli Claude sul tuo provider:
- Amazon Bedrock: accesso concesso ai modelli Claude. I profili di inferenza tra regioni, come gli ID modello
us.negli esempi di questa pagina, necessitano dell'accesso concesso in ogni regione del loro gruppo di regioni. Vedi Claude Code su Amazon Bedrock - Google Cloud's Agent Platform: un progetto con l'API Agent Platform abilitata e accesso ai modelli Claude. Vedi Claude Code su Google Cloud's Agent Platform
- Microsoft Foundry: una risorsa Foundry con una distribuzione di modello Claude. Vedi Claude Code su Microsoft Foundry
- Amazon Bedrock: accesso concesso ai modelli Claude. I profili di inferenza tra regioni, come gli ID modello
Configurare l'integrazione
Oltre ai prerequisiti, è necessario creare un'identità GitHub per l'azione GitHub di Claude Code, la configurazione della fiducia lato cloud, i segreti del repository e il file del workflow. I passaggi seguenti illustrano ciascuno di essi.
Scegliere un'identità GitHub
L'azione GitHub di Claude Code esegue il push dei commit e pubblica commenti attraverso un'identità GitHub. La configurazione rapida installa l'app GitHub ufficiale di Claude per questo scopo. Con un provider cloud, scegli l'identità tu stesso:
- App GitHub ufficiale di Claude: installala nel repository, oppure salta al passaggio successivo se è già installata
- App GitHub personalizzata: crea la tua app quando desideri solo i tre permessi che l'azione GitHub di Claude Code utilizza piuttosto che l'insieme completo dell'app ufficiale
- Token
GITHUB_TOKENautomatico di GitHub: nessuna app da creare o installare, ma GitHub non attiva i tuoi workflow CI sui commit effettuati con esso
Gli esempi di workflow nel quarto passaggio si autenticano con un'app personalizzata. Quel passaggio spiega anche cosa modificare per le altre due opzioni.
Per creare un'app personalizzata, registra una nuova app GitHub con i webhook disabilitati, poiché questa integrazione non li utilizza. Concedi tre permessi del repository:
- Contents: lettura e scrittura
- Issues: lettura e scrittura
- Pull requests: lettura e scrittura
Dopo aver registrato l'app, genera una chiave privata e conserva il file .pem scaricato, annota l'ID app dalla pagina delle impostazioni dell'app, e installa l'app nel repository dove viene eseguita l'azione GitHub di Claude Code. Aggiungi la chiave e l'ID come segreti nel terzo passaggio.
Configurare l'autenticazione cloud
Configura il tuo cloud per fidarsi del token OIDC che GitHub emette al workflow, in modo che ogni esecuzione del workflow ottenga credenziali cloud di breve durata. I punti elenco in ogni scheda riassumono cosa creare, e ogni scheda collega la guida del fornitore cloud per i passaggi a livello di console.
Crea la configurazione della fiducia nel tuo account AWS, seguendo la guida AWS per la creazione di provider di identità OIDC:
- Aggiungi un provider di identità OIDC GitHub con URL del provider
https://token.actions.githubusercontent.come audiencests.amazonaws.com - Crea un ruolo IAM di cui il provider si fida come identità web, e allega la politica di invocazione con ambito dalla configurazione IAM, che concede
bedrock:InvokeModel,bedrock:InvokeModelWithResponseStream,bedrock:ListInferenceProfiles, ebedrock:GetInferenceProfile, insieme a due azioni di sottoscrizioneaws-marketplace - Limita la politica di fiducia del ruolo al tuo repository con una condizione di soggetto come
repo:your-org/your-repo:*. Vedi la guida di hardening OIDC di GitHub per il formato del claim
Annota l'ARN del ruolo. Lo aggiungerai come segreto nel passaggio successivo.
Crea le risorse di federazione nel tuo progetto Google Cloud, seguendo la documentazione di Workload Identity Federation:
- Abilita tre API: IAM Credentials, Security Token Service (STS), e l'API Agent Platform, il cui nome del servizio è
aiplatform.googleapis.com - Crea un Workload Identity Pool con un provider OIDC GitHub il cui emittente è
https://token.actions.githubusercontent.com, e aggiungi una condizione di attributo che limita il pool al tuo repository - Crea un account di servizio dedicato con solo il ruolo
Vertex AI User, che èroles/aiplatform.user, e consenti al pool di rappresentarlo
Annota il nome della risorsa completa del provider e l'indirizzo email dell'account di servizio. Li aggiungerai come segreti nel passaggio successivo.
Crea un'applicazione Microsoft Entra con una credenziale federata per il tuo repository, seguendo la guida di Microsoft per l'autenticazione da GitHub Actions:
- Registra un'applicazione Microsoft Entra e aggiungi una credenziale di identità federata che si fida dei token che GitHub emette al tuo repository. Un'identità gestita assegnata dall'utente funziona al posto di un'applicazione. Entrambe hanno l'ID client che annoti di seguito
- Assegna all'applicazione il ruolo
Azure AI Usersulla tua risorsa Foundry. Vedi configurazione RBAC di Azure per un ruolo personalizzato più ristretto
Annota l'ID client dell'applicazione, il tuo ID tenant e il tuo ID sottoscrizione. Li aggiungerai come segreti nel passaggio successivo.
Aggiungere i segreti del repository
Nel repository dove viene eseguita l'azione GitHub di Claude Code, aggiungi i segreti per il tuo provider, più i due segreti dell'app se hai creato un'app GitHub personalizzata nel primo passaggio. Vedi la guida di GitHub su come usare i segreti in GitHub Actions.
| Segreto | Necessario per | Valore |
|---|---|---|
AWS_ROLE_TO_ASSUME |
Amazon Bedrock | L'ARN del ruolo IAM |
GCP_WORKLOAD_IDENTITY_PROVIDER |
Google Cloud's Agent Platform | Il nome della risorsa completa del provider |
GCP_SERVICE_ACCOUNT |
Google Cloud's Agent Platform | L'indirizzo email dell'account di servizio |
AZURE_CLIENT_ID |
Microsoft Foundry | L'ID client dell'applicazione Entra |
AZURE_TENANT_ID |
Microsoft Foundry | Il tuo ID tenant Microsoft Entra |
AZURE_SUBSCRIPTION_ID |
Microsoft Foundry | Il tuo ID sottoscrizione Azure |
APP_ID |
App GitHub personalizzata | L'ID dell'app GitHub |
APP_PRIVATE_KEY |
App GitHub personalizzata | Il contenuto del file della chiave privata .pem |
Creare il file del workflow
Crea un file di workflow per il tuo provider, come .github/workflows/claude.yml. Ogni esempio risponde alle menzioni @claude, si autentica su GitHub con un'app personalizzata, e include il permesso id-token: write, che GitHub richiede per emettere il token OIDC che il tuo provider cloud scambia per le credenziali.
Se hai scelto un'identità GitHub diversa nel primo passaggio, regola l'esempio:
- App GitHub ufficiale di Claude: elimina il passaggio Generate GitHub App token e la riga
github_token - Token automatico di GitHub: elimina il passaggio di generazione del token e cambia la riga
github_tokeningithub_token: ${{ secrets.GITHUB_TOKEN }}
Nei repository pubblici, un commento contenente la frase di attivazione da qualsiasi utente avvia questo workflow. I passaggi delle credenziali vengono eseguiti prima che l'azione GitHub di Claude Code verifichi l'accesso in scrittura del commentatore, quindi l'azione rifiuta gli utenti non autorizzati solo dopo che il workflow ha generato un token dell'app e ha effettuato l'accesso al tuo provider cloud, il che lascia voci nel registro di audit e consuma minuti di Actions. Per evitare queste esecuzioni, aggiungi un passaggio che verifica l'accesso in scrittura del commentatore prima dei passaggi delle credenziali.
Sostituisci il valore aws-region con il tuo. Il passaggio delle credenziali lo esporta come AWS_REGION per il resto del job.
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'
Gli ID dei modelli Bedrock includono un prefisso del profilo di inferenza tra regioni come us.. Usa il prefisso per il gruppo di regioni dove hai concesso l'accesso al modello.
Sostituisci il valore CLOUD_ML_REGION con il tuo. Non è necessario codificare l'ID del progetto, perché il workflow lo legge dall'output del passaggio 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
Sostituisci your-resource-name con il nome della tua risorsa Foundry. Claude Code costruisce l'URL dell'endpoint da esso. Il passaggio azure/login effettua l'accesso con il token OIDC del workflow, e Claude Code raccoglie le credenziali attraverso la catena di credenziali predefinita di 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
Usa un ID modello che corrisponda a un deployment di Claude nella tua risorsa Foundry. Vedi Claude Code su Microsoft Foundry per la configurazione del modello e il pinning della versione.
Con qualsiasi provider, puoi limitare la durata dell'esecuzione e il costo aggiungendo --max-turns a claude_args. Vedi Gestire i costi.
Testare la configurazione
Menziona @claude in un commento su un issue o PR, quindi guarda l'esecuzione nella scheda Actions del repository. Claude risponde in un commento sullo stesso issue o PR.
Risoluzione dei problemi
Un'esecuzione non riuscita di solito si interrompe in uno di due punti:
- Errori di autenticazione: di solito una configurazione OIDC errata. Verifica che il flusso di lavoro includa il permesso
id-token: write, che la condizione del repository della configurazione di trust corrisponda esattamente al tuo repository, e che i nomi dei segreti nel tuo flusso di lavoro corrispondano a quelli che hai aggiunto - Problemi di trigger e CI: si comportano allo stesso modo di quando l'azione GitHub di Claude Code chiama l'API Claude. Vedi la sezione di risoluzione dei problemi della pagina principale e le FAQ dell'azione GitHub di Claude Code
Cosa fare dopo
- Claude Code GitHub Actions per esempi, parametri e best practice
- Claude Code su Amazon Bedrock per gli ID modello Bedrock e le regioni
- Claude Code su Google Cloud's Agent Platform per gli ID modello di Agent Platform e le regioni
- Claude Code su Microsoft Foundry per la configurazione del modello e dell'endpoint di Foundry