Claude Code GitHub Actions
Claude Code GitHub Actions, yapay zeka destekli otomasyonu GitHub iş akışlarınıza entegre etmenizi sağlar. Bir PR veya issue içinde @claude etiketi kullanarak Claude'un kodunuzu analiz etmesini, pull request oluşturmasını, özellikler eklemesini ve hataları düzeltmesini sağlayabilirsiniz. Tüm bunlar projenizin standartlarına uygun şekilde gerçekleşir.
Otomatik incelemelerin her PR'da tetikleyici olmadan yayınlanması için GitHub Code Review sayfasına bakın.
Claude Code GitHub Actions, Claude Agent SDK üzerine inşa edilmiştir. Bu SDK sayesinde Claude Code'u uygulamalarınıza programatik olarak entegre edebilir, GitHub Actions dışında özel otomasyon iş akışları oluşturabilirsiniz.
Not: Claude Opus 4.7 artık kullanılabilir. Claude Code GitHub Actions varsayılan olarak Sonnet kullanır. Opus 4.7 kullanmak için model parametresini claude-opus-4-7 olarak yapılandırın.
Neden Claude Code GitHub Actions kullanmalısınız? (Why use Claude Code GitHub Actions?)
- Anında PR oluşturma: İhtiyacınızı tanımlayın, Claude gerekli tüm değişiklikleri içeren eksiksiz bir PR oluşturur.
- Otomatik kod uygulama: Tek bir komutla issue'ları çalışan koda dönüştürün.
- Standartlarınıza uyar: Claude,
CLAUDE.mdyönergelerinize ve mevcut kod kalıplarınıza saygı gösterir. - Basit kurulum: API anahtarı ve yükleyici ile dakikalar içinde başlayın.
- Varsayılan olarak güvenli: Kodunuz GitHub runner'larında kalır.
Claude ne yapabilir? (What can Claude do?)
Claude Code, GitHub Actions iş akışlarınızda Claude Code'u çalıştırmanızı sağlayan güçlü bir GitHub Action sunar. Bu action ile Claude Code üzerinde herhangi bir özel iş akışı oluşturabilirsiniz.
Kurulum (Setup)
Hızlı kurulum (Quick setup)
En kolay kurulum yöntemi, terminalde Claude Code'u açıp /install-github-app komutunu çalıştırmaktır. Bu komut, GitHub uygulamasını ve gerekli secret'ları ayarlamanızda size rehberlik eder.
- GitHub uygulamasını yüklemek ve secret eklemek için repository admini olmanız gerekir.
- GitHub uygulaması, Contents, Issues ve Pull requests için okuma ve yazma izni isteyecektir.
- Bu hızlı başlangıç yöntemi yalnızca doğrudan Claude API kullanıcıları içindir. Amazon Bedrock veya Google Vertex AI kullanıyorsanız, ilgili bölüme bakın.
Manuel kurulum (Manual setup)
/install-github-app komutu başarısız olursa veya manuel kurulum tercih ederseniz:
- Claude GitHub uygulamasını repository'nize yükleyin: https://github.com/apps/claude
- Claude GitHub uygulaması şu repository izinlerini gerektirir:
- Contents: Okuma ve yazma (repository dosyalarını değiştirmek için)
- Issues: Okuma ve yazma (issue'lara yanıt vermek için)
- Pull requests: Okuma ve yazma (PR oluşturmak ve değişiklik göndermek için)
- Claude GitHub uygulaması şu repository izinlerini gerektirir:
ANTHROPIC_API_KEY'i repository secret'larınıza ekleyin.- Workflow dosyasını
examples/claude.ymldosyasından repository'nizin.github/workflows/dizinine kopyalayın.
Kurulumu test etmek için bir issue veya PR yorumunda @claude etiketi kullanın.
Beta'dan yükseltme (Upgrading from Beta)
Claude Code GitHub Actions v1.0, beta sürümünden yükseltme yapmak için workflow dosyalarınızda değişiklik gerektiren breaking changes içerir.
Temel değişiklikler (Essential changes)
- Action sürümünü
@betayerine@v1olarak güncelleyin. mode: "tag"veyamode: "agent"yapılandırmasını silin (artık otomatik algılanıyor).direct_promptyerinepromptkullanın.max_turns,model,custom_instructionsgibi CLI seçenekleriniclaude_args'a taşıyın.
Breaking Changes Referansı
| Eski Beta Girdisi | Yeni v1.0 Girdisi |
|---|---|
mode |
(Kaldırıldı - otomatik algılanıyor) |
direct_prompt |
prompt |
override_prompt |
GitHub değişkenleriyle prompt |
custom_instructions |
claude_args: --append-system-prompt |
max_turns |
claude_args: --max-turns |
model |
claude_args: --model |
allowed_tools |
claude_args: --allowedTools |
disallowed_tools |
claude_args: --disallowedTools |
claude_env |
settings JSON formatı |
Öncesi ve Sonrası Örneği
Beta sürümü:
- uses: anthropics/claude-code-action@beta
with:
mode: "tag"
direct_prompt: "Review this PR for security issues"
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
custom_instructions: "Follow our coding standards"
max_turns: "10"
model: "claude-sonnet-4-6"
GA sürümü (v1.0):
- uses: anthropics/claude-code-action@v1
with:
prompt: "Review this PR for security issues"
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
claude_args: |
--append-system-prompt "Follow our coding standards"
--max-turns 10
--model claude-sonnet-4-6
Action artık yapılandırmanıza göre interaktif mod (@claude etiketlerine yanıt verir) veya otomasyon modu (bir prompt ile hemen çalışır) arasında otomatik geçiş yapar.
Örnek kullanım senaryoları (Example use cases)
Temel workflow (Basic workflow)
name: Claude Code
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
jobs:
claude:
runs-on: ubuntu-latest
steps:
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
# Yorumlardaki @claude etiketlerine yanıt verir
Skill kullanımı (Using skills)
name: Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: "Review this pull request for code quality, correctness, and security. Analyze the diff, then post your findings as review comments."
claude_args: "--max-turns 5"
Prompt ile özel otomasyon (Custom automation with prompts)
name: Daily Report
on:
schedule:
- cron: "0 9 * * *"
jobs:
report:
runs-on: ubuntu-latest
steps:
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: "Generate a summary of yesterday's commits and open issues"
claude_args: "--model opus"
Yaygın kullanım durumları (Common use cases)
Issue veya PR yorumlarında:
@claude implement this feature based on the issue description@claude how should I implement user authentication for this endpoint?@claude fix the TypeError in the user dashboard component
Claude, bağlamı otomatik olarak analiz eder ve uygun şekilde yanıt verir.
En iyi uygulamalar (Best practices)
CLAUDE.md yapılandırması
Repository'nizin kök dizininde bir CLAUDE.md dosyası oluşturun. Bu dosyada kod stili yönergeleri, inceleme kriterleri, projeye özel kurallar ve tercih edilen kalıpları tanımlayın. Bu dosya, Claude'un proje standartlarınızı anlamasına rehberlik eder.
Güvenlik değerlendirmeleri (Security considerations)
- API anahtarlarını asla doğrudan repository'nize eklemeyin.
- API anahtarlarınızı
ANTHROPIC_API_KEYadında bir repository secret'ı olarak ekleyin. - Workflow'larda referans olarak
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}kullanın. - Action izinlerini yalnızca gerekli olanlarla sınırlayın.
- Claude'un önerilerini birleştirmeden önce inceleyin.
Performans optimizasyonu (Optimizing performance)
- Issue şablonları kullanarak bağlam sağlayın.
CLAUDE.mddosyanızı kısa ve odaklı tutun.- Workflow'larınız için uygun zaman aşımları yapılandırın.
CI maliyetleri (CI costs)
- GitHub Actions maliyetleri: Claude Code, GitHub tarafından barındırılan runner'larda çalışır ve GitHub Actions dakikalarınızı tüketir.
- API maliyetleri: Her Claude etkileşimi, prompt ve yanıtların uzunluğuna göre API token'ı tüketir.
- Maliyet optimizasyonu ipuçları:
- Gereksiz API çağrılarını azaltmak için spesifik
@claudekomutları kullanın. - Aşırı iterasyonları önlemek için
claude_argsiçinde uygun--max-turnsyapılandırın. - Kontrolden çıkmış job'ları önlemek için workflow seviyesinde zaman aşımları ayarlayın.
- Paralel çalışmaları sınırlamak için GitHub'ın concurrency kontrollerini kullanın.
- Gereksiz API çağrılarını azaltmak için spesifik
Yapılandırma örnekleri (Configuration examples)
Claude Code Action v1, birleşik parametrelerle yapılandırmayı basitleştirir:
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: "Your instructions here"
# İsteğe bağlı
claude_args: "--max-turns 5"
Temel özellikler:
- Birleşik prompt arayüzü: Tüm talimatlar için
promptkullanın. - Skill'ler: Yüklü skill'leri doğrudan prompt'tan çağırın.
- CLI geçişi: Herhangi bir Claude Code CLI argümanını
claude_argsile iletin. - Esnek tetikleyiciler: Herhangi bir GitHub etkinliği ile çalışır.
Issue veya PR yorumlarına yanıt verirken Claude, @claude etiketlerine otomatik olarak yanıt verir. Diğer etkinlikler için talimat sağlamak üzere prompt parametresini kullanın.
Amazon Bedrock ve Google Vertex AI ile kullanım
Kurumsal ortamlar için Claude Code GitHub Actions'ı kendi bulut altyapınızla kullanabilirsiniz. Bu yaklaşım, aynı işlevselliği korurken veri yerleşimi ve faturalandırma üzerinde kontrol sağlar.
Ön koşullar (Prerequisites)
Google Cloud Vertex AI için:
- Vertex AI etkinleştirilmiş bir Google Cloud projesi
- GitHub Actions için yapılandırılmış Workload Identity Federation
- Gerekli izinlere sahip bir service account
- Bir GitHub App (önerilir) veya varsayılan
GITHUB_TOKEN
Amazon Bedrock için:
- Amazon Bedrock etkinleştirilmiş bir AWS hesabı
- AWS'de yapılandırılmış GitHub OIDC Identity Provider
- Bedrock izinlerine sahip bir IAM rolü
- Bir GitHub App (önerilir) veya varsayılan
GITHUB_TOKEN
Özel GitHub App oluşturma (Önerilen)
Vertex AI veya Bedrock gibi üçüncü taraf sağlayıcılar için en iyi kontrol ve güvenlik için kendi GitHub App'inizi oluşturmanız önerilir:
- https://github.com/settings/apps/new adresine gidin.
- Temel bilgileri doldurun (benzersiz bir isim, ana sayfa URL'si).
- Webhook'ları devre dışı bırakın ("Active" işaretini kaldırın).
- Repository izinlerini ayarlayın: Contents (Read & Write), Issues (Read & Write), Pull requests (Read & Write).
- "Create GitHub App" butonuna tıklayın.
- "Generate a private key" ile
.pemdosyasını indirin ve kaydedin. - App ID'nizi not edin.
- Uygulamayı repository'nize yükleyin.
- Private key'i
APP_PRIVATE_KEYsecret'ı olarak ekleyin. - App ID'yi
APP_IDsecret'ı olarak ekleyin.
Gerekli Secret'lar
Claude API (Doğrudan) için:
ANTHROPIC_API_KEY: Claude API anahtarınızAPP_IDveAPP_PRIVATE_KEY(kendi GitHub App'inizi kullanıyorsanız)
Google Cloud Vertex AI için:
GCP_WORKLOAD_IDENTITY_PROVIDERGCP_SERVICE_ACCOUNTAPP_IDveAPP_PRIVATE_KEY(kendi GitHub App'inizi kullanıyorsanız)
Amazon Bedrock için:
AWS_ROLE_TO_ASSUMEAPP_IDveAPP_PRIVATE_KEY(kendi GitHub App'inizi kullanıyorsanız)
Amazon Bedrock workflow örneği
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, assigned]
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'))
runs-on: ubuntu-latest
env:
AWS_REGION: us-west-2
steps:
- name: Checkout repository
uses: actions/checkout@v4
- 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 10'
Not: Bedrock için model ID formatı bölge ön eki içerir (örneğin, us.anthropic.claude-sonnet-4-6).
Google Vertex AI workflow örneği
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, assigned]
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'))
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- 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 }}
trigger_phrase: "@claude"
use_vertex: "true"
claude_args: '--model claude-sonnet-4-5@20250929 --max-turns 10'
env:
ANTHROPIC_VERTEX_PROJECT_ID: ${{ steps.auth.outputs.project_id }}
CLOUD_ML_REGION: us-east5
VERTEX_REGION_CLAUDE_4_5_SONNET: us-east5
Not: Proje ID'si Google Cloud kimlik doğrulama adımından otomatik olarak alınır, bu nedenle sabit kodlamanız gerekmez.
Sorun giderme (Troubleshooting)
Claude, @claude komutlarına yanıt vermiyor
- GitHub App'in doğru yüklendiğini doğrulayın.
- Workflow'ların etkin olduğunu kontrol edin.
- API anahtarının repository secret'larında ayarlandığından emin olun.
- Yorumun
@claudeiçerdiğini (/claudedeğil) onaylayın.
CI, Claude'un commit'lerinde çalışmıyor
- GitHub App veya özel uygulama kullandığınızdan emin olun (Actions kullanıcısı değil).
- Workflow tetikleyicilerinin gerekli etkinlikleri içerdiğini kontrol edin.
- Uygulama izinlerinin CI tetikleyicilerini içerdiğini doğrulayın.
Kimlik doğrulama hataları
- API anahtarının geçerli ve yeterli izinlere sahip olduğunu onaylayın.
- Bedrock/Vertex için kimlik bilgisi yapılandırmasını kontrol edin.
- Secret'ların workflow'larda doğru adlandırıldığından emin olun.
Gelişmiş yapılandırma (Advanced configuration)
Action parametreleri (Action parameters)
| Parametre | Açıklama | Zorunlu |
|---|---|---|
prompt |
Claude için talimatlar (düz metin veya skill adı) | Hayır* |
claude_args |
Claude Code'a iletilen CLI argümanları | Hayır |
anthropic_api_key |
Claude API anahtarı | Evet** |
github_token |
GitHub API erişimi için token | Hayır |
trigger_phrase |
Özel tetikleyici ifade (varsayılan: "@claude") | Hayır |
use_bedrock |
Claude API yerine Amazon Bedrock kullan | Hayır |
use_vertex |
Claude API yerine Google Vertex AI kullan | Hayır |
*Prompt isteğe bağlıdır - issue/PR yorumları için atlandığında Claude tetikleyici ifadeye yanıt verir. **Doğrudan Claude API için zorunludur, Bedrock/Vertex için gerekli değildir.
CLI argümanları geçirme (Pass CLI arguments)
claude_args parametresi herhangi bir Claude Code CLI argümanını kabul eder:
claude_args: "--max-turns 5 --model claude-sonnet-4-6 --mcp-config /path/to/config.json"
Yaygın argümanlar:
--max-turns: Maksimum konuşma turu sayısı (varsayılan: 10)--model: Kullanılacak model (örneğin,claude-sonnet-4-6)--mcp-config: MCP yapılandırmasının yolu--allowedTools: İzin verilen araçların virgülle ayrılmış listesi (--allowed-toolsalias'ı da çalışır)--debug: Hata ayıklama çıktısını etkinleştir
Alternatif entegrasyon yöntemleri (Alternative integration methods)
/install-github-app komutu önerilen yaklaşım olsa da, şu alternatifler de mevcuttur:
- Özel GitHub App: Markalaşmış kullanıcı adları veya özel kimlik doğrulama akışları için.
- Manuel GitHub Actions: Maksimum esneklik için doğrudan workflow yapılandırması.
- MCP Yapılandırması: Model Context Protocol sunucularının dinamik yüklenmesi.
Claude'un davranışını özelleştirme (Customizing Claude's behavior)
Claude'un davranışını iki şekilde yapılandırabilirsiniz:
- CLAUDE.md: Repository'nizin kök dizininde kodlama standartları, inceleme kriterleri ve projeye özel kurallar tanımlayın. Claude, PR oluştururken ve isteklere yanıt verirken bu yönergeleri izler.
- Özel prompt'lar: Workflow dosyasında
promptparametresini kullanarak workflow'a özel talimatlar sağlayın.
Örnek kullanım senaryosu
Bir e-ticaret uygulaması geliştiren bir ekibin günlük iş akışını düşünelim. Ekip, kod inceleme sürecini hızlandırmak ve otomatik hata düzeltmeleri yapmak için Claude Code GitHub Actions'ı kullanmak istiyor.
Adım 1: CLAUDE.md dosyası oluşturma
Repository'nin kök dizinine CLAUDE.md dosyası eklenir:
## Kodlama Standartları
- TypeScript kullan, any tipinden kaçın
- Tüm fonksiyonlar JSDoc ile belgelenmeli
- Unit testler Jest ile yazılmalı
- PR'da en az 1 onaylayıcı review gerekli
Adım 2: GitHub App kurulumu
Terminalde claude açılır ve /install-github-app komutu çalıştırılır. Komut, GitHub App'i yükler ve ANTHROPIC_API_KEY secret'ını repository'ye ekler.
Adım 3: Workflow dosyası oluşturma
.github/workflows/claude-review.yml dosyası oluşturulur:
name: Claude Code Review
on:
pull_request:
types: [opened, synchronize]
issue_comment:
types: [created]
jobs:
claude-review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
prompt: "Review this PR for code quality, correctness, and security. Analyze the diff, then post your findings as review comments."
claude_args: "--max-turns 5 --model claude-sonnet-4-6"
Adım 4: Günlük kullanım
Bir geliştirici, "Sepet sayfasında hata var" başlıklı bir issue açar ve yorum olarak @claude fix the TypeError in the cart component yazar. Claude, repository'yi checkout eder, hatayı analiz eder, düzeltmeyi yapar ve bir PR oluşturur. PR'da yapılan değişiklikler CLAUDE.md'deki standartlara uygundur.
Ekip üyeleri PR'ı inceler, Claude'un önerisini onaylar ve birleştirir. Tüm süreç, manuel müdahale olmadan dakikalar içinde tamamlanır.