Gunakan Claude Code GitHub Actions dengan penyedia cloud
Jalankan Claude Code GitHub Actions melalui Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry alih-alih Claude API
Claude Code GitHub Actions memanggil Claude API secara default. Untuk merutekan inferensi melalui akun cloud Anda sendiri, atur input penyedia Claude Code GitHub Action dan konfigurasikan cloud Anda untuk mempercayai token OpenID Connect (OIDC) alur kerja. Alur kerja melakukan autentikasi dengan token tersebut, sehingga Anda tidak menyimpan kredensial cloud jangka panjang di repositori Anda.
Halaman ini dibangun berdasarkan pengaturan GitHub Actions. Ini mengasumsikan Anda sudah mengetahui file alur kerja dan langkah anthropics/claude-code-action, dan hanya mencakup apa yang diubah oleh penyedia cloud.
Pilih penyedia Anda
Claude Code GitHub Action mendukung tiga penyedia, dan langkah pengaturan di bawah hanya berbeda dalam konfigurasi sisi cloud. Gunakan yang sudah memiliki akses model Claude di organisasi Anda. Anda memberi tahu Claude Code GitHub Action penyedia mana yang akan digunakan dengan satu input dalam blok with: langkah anthropics/claude-code-action:
- Amazon Bedrock:
use_bedrock: "true" - Google Cloud's Agent Platform:
use_vertex: "true" - Microsoft Foundry:
use_foundry: "true"
Contoh alur kerja lengkap di bawah Atur integrasi sudah menyertakan input untuk setiap penyedia.
Prasyarat
Sebelum Anda memulai, Anda memerlukan:
- Akses admin ke repositori tempat Claude Code GitHub Action berjalan, untuk memasang GitHub App dan menambahkan rahasia
- Izin untuk membuat sumber daya identitas di akun cloud Anda: peran IAM dan penyedia identitas OIDC di AWS, sumber daya Workload Identity Federation dan akun layanan di Google Cloud, atau aplikasi Microsoft Entra di Azure
- Akses model Claude pada penyedia Anda:
- Amazon Bedrock: akses diberikan ke model Claude. Profil inferensi lintas wilayah, seperti ID model
us.dalam contoh halaman ini, memerlukan akses yang diberikan di setiap wilayah grup wilayah mereka. Lihat Claude Code on Amazon Bedrock - Google Cloud's Agent Platform: proyek dengan Agent Platform API diaktifkan dan akses ke model Claude. Lihat Claude Code on Google Cloud's Agent Platform
- Microsoft Foundry: sumber daya Foundry dengan penerapan model Claude. Lihat Claude Code on Microsoft Foundry
- Amazon Bedrock: akses diberikan ke model Claude. Profil inferensi lintas wilayah, seperti ID model
Atur integrasi
Selain prasyarat, Anda membuat empat hal: identitas GitHub untuk Claude Code GitHub Action, konfigurasi kepercayaan sisi cloud, rahasia repositori, dan file alur kerja. Langkah-langkah di bawah memandu melalui masing-masing.
Pilih identitas GitHub
Claude Code GitHub Action mendorong komit dan memposting komentar melalui identitas GitHub. Pengaturan cepat memasang Claude GitHub App resmi untuk ini. Dengan penyedia cloud, Anda memilih identitas sendiri:
- Claude GitHub App resmi: pasang di repositori, atau lewati ke langkah berikutnya jika sudah dipasang
- GitHub App kustom: buat aplikasi Anda sendiri, dijelaskan di bawah, ketika Anda menginginkan hanya tiga izin yang digunakan Claude Code GitHub Action daripada set lengkap app resmi
- Token
GITHUB_TOKENotomatis GitHub: tidak ada aplikasi untuk dibuat atau dipasang, tetapi GitHub tidak memicu alur kerja CI Anda pada komit yang dibuat dengannya
Contoh alur kerja di langkah keempat mengautentikasi dengan aplikasi kustom. Langkah itu juga mengatakan apa yang harus diubah untuk dua opsi lainnya.
Untuk membuat aplikasi kustom, daftarkan GitHub App baru dengan webhook dinonaktifkan, karena integrasi ini tidak menggunakannya. Berikan tiga izin repositori:
- Contents: baca dan tulis
- Issues: baca dan tulis
- Pull requests: baca dan tulis
Setelah mendaftarkan aplikasi, hasilkan kunci pribadi dan simpan file .pem yang diunduh, catat ID Aplikasi dari halaman pengaturan aplikasi, dan pasang aplikasi di repositori tempat Claude Code GitHub Action berjalan. Anda menambahkan kunci dan ID sebagai rahasia di langkah ketiga.
Konfigurasikan autentikasi cloud
Konfigurasikan cloud Anda untuk mempercayai token OIDC yang dikeluarkan GitHub ke alur kerja, sehingga setiap jalankan alur kerja mendapatkan kredensial cloud jangka pendek. Poin-poin dalam setiap tab merangkum apa yang harus dibuat, dan setiap tab menautkan panduan vendor cloud sendiri untuk langkah-langkah tingkat konsol.
Buat konfigurasi kepercayaan di akun AWS Anda, mengikuti panduan AWS untuk membuat penyedia identitas OIDC:
- Tambahkan penyedia identitas OIDC GitHub dengan URL penyedia
https://token.actions.githubusercontent.comdan audienssts.amazonaws.com - Buat peran IAM yang dipercaya oleh penyedia tersebut sebagai identitas web, dan lampirkan kebijakan invokasi yang dibatasi dari konfigurasi IAM, yang memberikan
bedrock:InvokeModel,bedrock:InvokeModelWithResponseStream,bedrock:ListInferenceProfiles, danbedrock:GetInferenceProfile, bersama dengan dua tindakan langgananaws-marketplace - Batasi kebijakan kepercayaan peran ke repositori Anda dengan kondisi subjek seperti
repo:your-org/your-repo:*. Lihat panduan pengerasan OIDC GitHub untuk format klaim
Catat ARN peran. Anda menambahkannya sebagai rahasia di langkah berikutnya.
Buat sumber daya federasi di proyek Google Cloud Anda, mengikuti dokumentasi Workload Identity Federation:
- Aktifkan tiga API: IAM Credentials, Security Token Service (STS), dan Agent Platform API, yang nama layanannya adalah
aiplatform.googleapis.com - Buat Workload Identity Pool dengan penyedia OIDC GitHub yang penerbitnya adalah
https://token.actions.githubusercontent.com, dan tambahkan kondisi atribut yang membatasi pool ke repositori Anda - Buat akun layanan khusus dengan hanya peran
Vertex AI User, yaituroles/aiplatform.user, dan izinkan pool untuk menyamakannya
Catat nama sumber daya lengkap penyedia dan alamat email akun layanan. Anda menambahkannya sebagai rahasia di langkah berikutnya.
Buat aplikasi Microsoft Entra dengan kredensial terfederasi untuk repositori Anda, mengikuti panduan Microsoft untuk mengautentikasi dari GitHub Actions:
- Daftarkan aplikasi Microsoft Entra dan tambahkan kredensial identitas terfederasi yang mempercayai token yang dikeluarkan GitHub ke repositori Anda. Identitas terkelola yang ditetapkan pengguna berfungsi sebagai pengganti aplikasi. Keduanya memiliki ID klien yang Anda catat di bawah
- Tetapkan aplikasi peran
Azure AI Userpada sumber daya Foundry Anda. Lihat konfigurasi Azure RBAC untuk peran kustom yang lebih sempit
Catat ID klien aplikasi, ID penyewa Anda, dan ID langganan Anda. Anda menambahkannya sebagai rahasia di langkah berikutnya.
Tambahkan rahasia repositori
Di repositori tempat Claude Code GitHub Action berjalan, tambahkan rahasia untuk penyedia Anda, ditambah dua rahasia aplikasi jika Anda membuat GitHub App kustom di langkah pertama. Lihat panduan GitHub untuk menggunakan rahasia di GitHub Actions.
| Rahasia | Diperlukan untuk | Nilai |
|---|---|---|
AWS_ROLE_TO_ASSUME |
Amazon Bedrock | ARN peran IAM |
GCP_WORKLOAD_IDENTITY_PROVIDER |
Google Cloud's Agent Platform | Nama sumber daya lengkap penyedia |
GCP_SERVICE_ACCOUNT |
Google Cloud's Agent Platform | Alamat email akun layanan |
AZURE_CLIENT_ID |
Microsoft Foundry | ID klien aplikasi Entra |
AZURE_TENANT_ID |
Microsoft Foundry | ID penyewa Microsoft Entra Anda |
AZURE_SUBSCRIPTION_ID |
Microsoft Foundry | ID langganan Azure Anda |
APP_ID |
GitHub App Kustom | ID GitHub App |
APP_PRIVATE_KEY |
GitHub App Kustom | Isi file kunci pribadi .pem |
Buat file alur kerja
Buat file alur kerja untuk penyedia Anda, seperti .github/workflows/claude.yml. Setiap contoh merespons penyebutan @claude, mengautentikasi ke GitHub dengan aplikasi kustom, dan menyertakan izin id-token: write, yang diperlukan GitHub untuk mengeluarkan token OIDC yang ditukar penyedia cloud Anda dengan kredensial.
Jika Anda memilih identitas GitHub yang berbeda di langkah pertama, sesuaikan contohnya:
- Claude GitHub App resmi: hapus langkah Generate GitHub App token dan baris
github_token - Token otomatis GitHub: hapus langkah pembuatan token dan ubah baris
github_tokenmenjadigithub_token: ${{ secrets.GITHUB_TOKEN }}
Di repositori publik, komentar yang berisi frasa pemicu dari pengguna mana pun memulai alur kerja ini. Langkah kredensial berjalan sebelum Claude Code GitHub Action memeriksa akses tulis komentator, sehingga tindakan menolak pengguna yang tidak sah hanya setelah alur kerja telah menghasilkan token App dan masuk ke penyedia cloud Anda, yang meninggalkan entri log audit dan mengonsumsi menit Actions. Untuk menghindari jalankan tersebut, tambahkan langkah yang memverifikasi akses tulis komentator sebelum langkah kredensial.
Ganti nilai aws-region dengan milik Anda sendiri. Langkah kredensial mengekspornya sebagai AWS_REGION untuk sisa pekerjaan.
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'
ID model Bedrock menyertakan awalan profil inferensi lintas wilayah seperti us.. Gunakan awalan untuk grup wilayah tempat Anda memberikan akses model.
Ganti nilai CLOUD_ML_REGION dengan milik Anda sendiri. Anda tidak perlu mengkode keras ID proyek, karena alur kerja membacanya dari output langkah 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
Ganti your-resource-name dengan nama sumber daya Foundry Anda. Claude Code membangun URL titik akhir darinya. Langkah azure/login masuk dengan token OIDC alur kerja, dan Claude Code mengambil kredensial melalui rantai kredensial default 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
Gunakan ID model yang cocok dengan penerapan Claude di sumber daya Foundry Anda. Lihat Claude Code on Microsoft Foundry untuk konfigurasi model dan penentuan versi.
Dengan penyedia apa pun, Anda dapat membatasi durasi jalankan dan biaya dengan menambahkan --max-turns ke claude_args. Lihat Kelola biaya.
Uji pengaturan
Sebutkan @claude dalam komentar masalah atau PR, kemudian tonton jalankan di tab Actions repositori. Claude membalas dalam komentar pada masalah atau PR yang sama.
Pemecahan Masalah
Jalankan yang gagal biasanya rusak di salah satu dari dua tempat:
- Kesalahan autentikasi: biasanya kesalahan konfigurasi OIDC. Periksa bahwa alur kerja menyertakan izin
id-token: write, bahwa kondisi repositori konfigurasi kepercayaan cocok dengan repositori Anda dengan tepat, dan bahwa nama rahasia dalam alur kerja Anda cocok dengan yang Anda tambahkan - Masalah pemicu dan CI: ini berperilaku sama seperti ketika Claude Code GitHub Action memanggil Claude API. Lihat bagian pemecahan masalah halaman utama dan FAQ Claude Code GitHub Action
Apa selanjutnya
- Claude Code GitHub Actions untuk contoh, parameter, dan praktik terbaik
- Claude Code on Amazon Bedrock untuk ID model Bedrock dan wilayah
- Claude Code on Google Cloud's Agent Platform untuk ID model Agent Platform dan wilayah
- Claude Code on Microsoft Foundry untuk konfigurasi model dan titik akhir Foundry