Code Review (Beta) — Claude Code
Claude Code'un Code Review özelliği, GitHub pull request'lerinizi otomatik olarak analiz ederek mantık hataları, güvenlik açıkları ve regresyonları yakalar. Bu özellik, araştırma ön izleme (research preview) aşamasındadır ve Team ile Enterprise aboneliklerinde kullanılabilir. Zero Data Retention etkinleştirilmiş organizasyonlarda kullanılamaz.
İncelemeler nasıl çalışır (How reviews work)
Bir yönetici, organizasyonunuz için Code Review'u etkinleştirdiğinde, incelemeler şu durumlarda tetiklenir:
- PR açıldığında
- Her push işleminde
- Manuel olarak talep edildiğinde (repository'nin yapılandırılmış davranışına bağlı olarak)
Bir PR'da @claude review yorumu yapmak, her modda inceleme başlatır.
İnceleme çalıştığında, birden fazla ajan (agent) diff'i ve çevreleyen kodu Anthropic altyapısında paralel olarak analiz eder. Her ajan farklı bir sorun sınıfını arar, ardından bir doğrulama adımı, adayları gerçek kod davranışına karşı kontrol ederek yanlış pozitifleri filtreler. Sonuçlar tekilleştirilir, önem sırasına göre sıralanır ve sorunların bulunduğu satırlara satır içi yorum (inline comment) olarak, özet ise inceleme gövdesine (review body) eklenir. Hiçbir sorun bulunamazsa, Claude PR'da kısa bir onay yorumu yayınlar.
İncelemeler, PR boyutu ve karmaşıklığına göre maliyetlenir ve ortalama 20 dakikada tamamlanır. Yöneticiler, analitik panosu üzerinden inceleme aktivitesini ve harcamayı izleyebilir.
Önem seviyeleri (Severity levels)
Her bulgu bir önem seviyesi etiketi alır:
| İşaret | Önem Seviyesi | Anlamı |
|---|---|---|
| 🔴 | Important (Önemli) | Birleştirmeden önce düzeltilmesi gereken hata |
| 🟡 | Nit (Küçük) | Düzeltilmeye değer ama engelleyici olmayan küçük sorun |
| 🟣 | Pre-existing (Önceden var olan) | Kod tabanında var olan ancak bu PR tarafından eklenmemiş hata |
Bulgu yorumları, Claude'un sorunu neden işaretlediğini ve sorunu nasıl doğruladığını anlamak için genişletilebilen bir "gerekçe" (extended reasoning) bölümü içerir.
Bulguları değerlendirme ve yanıtlama (Rate and reply to findings)
Claude'dan gelen her inceleme yorumu, 👍 ve 👎 butonlarıyla birlikte gelir. 👍 bulgu yararlıysa, 👎 yanlış veya gürültülüyse tıklanır. Anthropic, PR birleştirildikten sonra tepki sayılarını toplar ve incelemeyi ayarlamak için kullanır. Tepkiler, yeniden inceleme tetiklemez veya PR'da herhangi bir şeyi değiştirmez.
Satır içi yoruma yanıt vermek, Claude'un yanıt vermesini veya PR'ı güncellemesini sağlamaz. Bir bulgu üzerinde işlem yapmak için kodu düzeltin ve push yapın. PR push tetiklemeli incelemelere abone ise, bir sonraki çalıştırmada sorun düzeltildiğinde thread çözülür. Push yapmadan yeni bir inceleme istemek için, üst düzey bir PR yorumu olarak @claude review once yorumunu yapın.
Check run çıktısı (Check run output)
Her inceleme, CI kontrollerinizin yanında görünen Claude Code Review check run'ını doldurur. Details bağlantısını genişleterek tüm bulguların özetini tek bir yerde, önem sırasına göre görebilirsiniz:
| Önem | Dosya:Satır | Sorun |
|---|---|---|
| 🔴 Important | src/auth/session.ts:142 | Token yenileme, logout ile yarışıyor ve eski oturumları aktif bırakıyor |
| 🟡 Nit | src/auth/session.ts:88 | parseExpiry, hatalı girdide sessizce 0 döndürüyor |
Her bulgu ayrıca Files changed sekmesinde, ilgili diff satırlarında bir açıklama (annotation) olarak görünür. Important bulgular kırmızı, Nit'ler sarı uyarı, Pre-existing hatalar gri bildirim olarak işaretlenir.
Check run her zaman neutral (nötr) sonuçla tamamlanır, böylece branch koruma kuralları aracılığıyla birleştirmeyi asla engellemez. Code Review bulgularına göre birleştirmeyi engellemek isterseniz, check run çıktısından önem dağılımını kendi CI'nızda ayrıştırabilirsiniz. Details metninin son satırı, gh ve jq ile ayrıştırılabilir makine tarafından okunabilir bir yorumdur:
gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \
--jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'
Bu, önem başına sayıları içeren bir JSON nesnesi döndürür, örneğin {"normal": 2, "nit": 1, "pre_existing": 0}. normal anahtarı Important bulguların sayısını tutar; sıfır olmayan bir değer, Claude'un birleştirmeden önce düzeltilmeye değer en az bir hata bulduğu anlamına gelir.
Code Review neyi kontrol eder (What Code Review checks)
Varsayılan olarak Code Review, doğruluğa (correctness) odaklanır: üretimi bozacak hatalar, biçimlendirme tercihleri veya eksik test kapsamı değil. Repository'nize rehberlik dosyaları ekleyerek neyi kontrol edeceğini genişletebilirsiniz.
Code Review'u kurma (Set up Code Review)
Bir yönetici, Code Review'u organizasyon için bir kez etkinleştirir ve hangi repository'lerin dahil edileceğini seçer.
1. Claude Code yönetici ayarlarını açın
claude.ai/admin-settings/claude-code adresine gidin ve Code Review bölümünü bulun. Claude organizasyonunuza yönetici erişiminiz ve GitHub organizasyonunuzda GitHub Apps yükleme izniniz olmalıdır.
2. Kurulumu başlatın
Setup düğmesine tıklayın. Bu, GitHub App yükleme akışını başlatır.
3. Claude GitHub App'ini yükleyin
İstemleri takip ederek Claude GitHub App'ini GitHub organizasyonunuza yükleyin. Uygulama şu repository izinlerini ister:
- Contents: okuma ve yazma
- Issues: okuma ve yazma
- Pull requests: okuma ve yazma
Code Review, içerikler için okuma, pull request'ler için yazma erişimi kullanır. Daha geniş izin seti, daha sonra GitHub Actions'ı etkinleştirmeniz durumunda da destek sağlar.
4. Repository'leri seçin
Code Review için etkinleştirmek istediğiniz repository'leri seçin. Bir repository'yi görmüyorsanız, kurulum sırasında Claude GitHub App'ine erişim verdiğinizden emin olun. Daha sonra daha fazla repository ekleyebilirsiniz.
5. Repository başına inceleme tetikleyicilerini ayarlayın
Kurulum tamamlandıktan sonra, Code Review bölümü repository'lerinizi bir tabloda gösterir. Her repository için Review Behavior açılır menüsünden incelemelerin ne zaman çalışacağını seçin:
| Davranış | Açıklama |
|---|---|
| Once after PR creation | PR açıldığında veya incelemeye hazır olarak işaretlendiğinde bir kez çalışır |
| After every push | PR branch'ına her push'ta çalışır, yeni sorunları yakalar ve düzeltildiğinde thread'leri otomatik çözer |
| Manual | İncelemeler yalnızca birisi PR'da @claude review veya @claude review once yorumu yaptığında başlar |
Her push'ta inceleme yapmak en fazla incelemeyi çalıştırır ve en yüksek maliyeti oluşturur. Manuel mod, yüksek trafikli repo'lar için kullanışlıdır.
Repository tablosu ayrıca, son aktiviteye dayalı olarak her repo için inceleme başına ortalama maliyeti gösterir. Satır eylemleri menüsünü kullanarak Code Review'u repository başına açıp kapatabilir veya bir repository'yi tamamen kaldırabilirsiniz.
Kurulumu doğrulamak için bir test PR'ı açın. Otomatik tetikleyici seçtiyseniz, birkaç dakika içinde Claude Code Review adında bir check run görünür. Manuel seçtiyseniz, ilk incelemeyi başlatmak için PR'da @claude review yorumu yapın.
İncelemeleri manuel olarak tetikleme (Manually trigger reviews)
İki yorum komutu, isteğe bağlı inceleme başlatır. Her ikisi de repository'nin yapılandırılmış tetikleyicisinden bağımsız çalışır:
| Komut | Ne yapar |
|---|---|
@claude review |
Bir inceleme başlatır ve PR'ı gelecekteki push tetiklemeli incelemelere abone yapar |
@claude review once |
PR'ı gelecekteki push'lara abone yapmadan tek bir inceleme başlatır |
Her iki komutun da inceleme tetiklemesi için:
- Üst düzey bir PR yorumu olarak gönderilmelidir (diff satırında satır içi yorum olarak değil)
- Komut yorumun başında olmalıdır (
onceaynı satırda) - Repository'ye owner, member veya collaborator erişiminiz olmalıdır
- PR açık olmalıdır
Otomatik tetikleyicilerin aksine, manuel tetikleyiciler draft PR'larda çalışır. Eğer o PR'da zaten bir inceleme çalışıyorsa, istek sıraya alınır ve devam eden inceleme tamamlanana kadar bekler.
İncelemeleri özelleştirme (Customize reviews)
Code Review, repository'nizden iki dosya okur. Bunlar, neyin işaretleneceğini belirlemede farklı güç seviyelerine sahiptir:
CLAUDE.md
Code Review, repository'nizdeki CLAUDE.md dosyalarını okur ve yeni eklenen ihlalleri nit seviyesinde bulgu olarak işaretler. Bu çift yönlü çalışır: PR'ınız CLAUDE.md'deki bir ifadeyi geçersiz kılacak şekilde kod değiştiriyorsa, Claude belgelerin de güncellenmesi gerektiğini işaretler.
Claude, dizin hiyerarşinizin her seviyesindeki CLAUDE.md dosyalarını okur, bu nedenle bir alt dizindeki kurallar yalnızca o yol altındaki dosyalar için geçerlidir.
İncelemeye özel, genel Claude Code oturumlarına uygulanmasını istemediğiniz yönergeler için REVIEW.md kullanın.
REVIEW.md
REVIEW.md, repository kökünüzde bulunan ve Code Review'un repo'nuzdaki davranışını geçersiz kılan bir dosyadır. İçeriği, inceleme hattındaki her ajanın sistem prompt'una en yüksek öncelikli talimat bloğu olarak enjekte edilir. Varsayılan inceleme yönergelerinden önce gelir.
REVIEW.md düz metin talimatlarıdır: @ içe aktarma sözdizimi genişletilmez ve referans verilen dosyalar prompt'a okunmaz. Uygulanmasını istediğiniz kuralları doğrudan dosyaya koyun.
Neyi ayarlayabilirsiniz (What you can tune)
REVIEW.md serbest biçimli markdown olduğu için, bir inceleme talimatı olarak ifade edebileceğiniz her şey kapsam dahilindedir. Pratikte en etkili olan kalıplar şunlardır:
| Ayarlanabilir Alan | Açıklama |
|---|---|
| Severity (Önem) | 🔴 Important'ın repo'nuz için ne anlama geldiğini yeniden tanımlayın. Varsayılan kalibrasyon üretim kodunu hedefler; bir dokümantasyon repo'su çok daha dar bir tanım isteyebilir |
| Nit volume (Nit hacmi) | Tek bir incelemenin kaç tane 🟡 Nit yorumu yayınlayacağını sınırlayın. Örneğin "en fazla beş nit bildir, kalanını özette sayı olarak belirt" |
| Skip rules (Atla kuralları) | Claude'un bulgu yayınlamaması gereken yollar, branch desenleri ve bulgu kategorilerini listeleyin. Oluşturulan kod, lockfile'lar, bağımlılıklar ve makine tarafından oluşturulan branch'ler yaygın adaylardır |
| Repo-specific checks (Repo'ya özel kontroller) | Her PR'da işaretlenmesini istediğiniz kurallar ekleyin, örneğin "yeni API rotalarının bir entegrasyon testi olmalı" |
| Verification bar (Doğrulama çıtası) | Bir bulgu sınıfının yayınlanmadan önce kanıt gerektirmesini sağlayın. Örneğin "davranış iddiaları, kaynakta dosya:satır alıntısı gerektirir, isimlendirmeden çıkarım değil" |
| Re-review convergence (Yeniden inceleme yakınsaması) | Zaten incelenmiş bir PR'da Claude'un nasıl davranacağını belirtin. Örneğin "ilk incelemeden sonra, yeni nit'leri bastır ve yalnızca Important bulguları yayınla" |
| Summary shape (Özet biçimi) | İnceleme gövdesinin nasıl başlayacağını belirtin, örneğin "2 factual, 4 style" gibi tek satırlık bir sayımla |
Örnek REVIEW.md
Aşağıdaki REVIEW.md, bir backend servisi için önem seviyesini yeniden kalibre eder, nit'leri sınırlar, oluşturulan dosyaları atlar ve repo'ya özel kontroller ekler:
## Review instructions
## What Important means here
Reserve Important for findings that would break behavior, leak data, or block a rollback:
incorrect logic, unscoped database queries, PII in logs or error messages, and migrations
that aren't backward compatible. Style, naming, and refactoring suggestions are Nit at most.
## Cap the nits
Report at most five Nits per review. If you found more, say "plus N similar items" in the
summary instead of posting them inline. If everything you found is a Nit, lead the summary
with "No blocking issues."
## Do not report
- Anything CI already enforces: lint, formatting, type errors
- Generated files under `src/gen/` and any `*.lock` file
- Test-only code that intentionally violates production rules
## Always check
- New API routes have an integration test
- Log lines don't include email addresses, user IDs, or request bodies
- Database queries are scoped to the caller's tenant
Odaklı tutun (Keep it focused)
Uzun bir REVIEW.md, en önemli kuralları sulandırır. Yalnızca inceleme davranışını değiştiren talimatları koyun ve genel proje bağlamını CLAUDE.md'de bırakın.
Kullanımı görüntüleme (View usage)
claude.ai/analytics/code-review adresine giderek organizasyonunuz genelindeki Code Review aktivitesini görebilirsiniz. Pano şunları gösterir:
| Bölüm | Ne gösterir |
|---|---|
| PRs reviewed | Seçilen zaman aralığında incelenen günlük pull request sayısı |
| Cost weekly | Code Review için haftalık harcama |
| Feedback | Bir geliştiricinin sorunu ele alması nedeniyle otomatik çözülen inceleme yorumlarının sayısı |
| Repository breakdown | İncelenen PR ve çözülen yorumların repo başına sayıları |
Yönetici ayarlarındaki repository tablosu da her repo için inceleme başına ortalama maliyeti gösterir. Pano maliyet rakamları, aktiviteyi izlemek için tahminlerdir; fatura doğru harcama için Anthropic faturanıza bakın.
Fiyatlandırma (Pricing)
Code Review, token kullanımına göre faturalandırılır. Her inceleme ortalama $15-25 maliyetindedir ve PR boyutu, kod tabanı karmaşıklığı ve kaç sorunun doğrulama gerektirdiğine göre ölçeklenir. Code Review kullanımı, ekstra kullanım (extra usage) olarak ayrıca faturalandırılır ve planınızın dahili kullanımına sayılmaz.
Seçtiğiniz inceleme tetikleyicisi toplam maliyeti etkiler:
- Once after PR creation: PR başına bir kez çalışır
- After every push: Her push'ta çalışır, maliyeti push sayısıyla çarpar
- Manual: Birisi PR'da
@claude reviewyorumu yapana kadar inceleme yok
Her modda, @claude review yorumu PR'ı push tetiklemeli incelemelere abone yapar, bu nedenle bu yorumdan sonra her push'ta ek maliyet oluşur. Gelecekteki push'lara abone olmadan tek bir inceleme çalıştırmak için @claude review once kullanın.
Maliyetler, organizasyonunuz diğer Claude Code özellikleri için Amazon Bedrock veya Google Vertex AI kullansa bile Anthropic faturanızda görünür. Code Review için aylık harcama sınırı belirlemek için claude.ai/admin-settings/usage adresine gidin ve Claude Code Review servisi için limiti yapılandırın.
Sorun giderme (Troubleshooting)
İnceleme çalıştırmaları "en iyi çaba" (best-effort) esasına dayanır. Başarısız bir çalıştırma PR'ınızı asla engellemez, ancak kendi kendine de yeniden denenmez.
Başarısız veya zaman aşımına uğramış incelemeyi yeniden tetikleme
İnceleme altyapısı bir iç hatayla karşılaştığında veya zaman sınırını aştığında, check run "Code review encountered an error" veya "Code review timed out" başlığıyla tamamlanır. Sonuç yine neutral'dır, bu nedenle birleştirmeyi engellemez, ancak hiçbir bulgu yayınlanmaz.
İncelemeyi yeniden çalıştırmak için PR'da @claude review once yorumu yapın. Bu, PR'ı gelecekteki push'lara abone yapmadan yeni bir inceleme başlatır. PR zaten push tetiklemeli incelemelere abone ise, yeni bir commit push'lamak da yeni bir inceleme başlatır.
GitHub'ın Checks sekmesindeki Re-run düğmesi Code Review'u yeniden tetiklemez. Bunun yerine yorum komutunu veya yeni bir push'u kullanın.
İnceleme çalışmadı ve PR'da harcama sınırı mesajı görünüyor
Organizasyonunuzun aylık harcama sınırına ulaşıldığında, Code Review PR'da incelemenin atlandığını açıklayan tek bir yorum yayınlar. İncelemeler, bir sonraki fatura döneminin başında veya bir yönetici claude.ai/admin-settings/usage adresinden limiti yükselttiğinde otomatik olarak devam eder.
Satır içi yorum olarak görünmeyen sorunları bulma
Check run başlığı "sorunlar bulundu" diyorsa ancak diff üzerinde satır içi inceleme yorumları görmüyorsanız, bulguların yüzeye çıktığı diğer konumlara bakın:
| Konum | Açıklama |
|---|---|
| Check run Details | Checks sekmesinde Claude Code Review check'inin yanındaki Details bağlantısına tıklayın. Önem tablosu, satır içi yorum kabul edilmiş olsun ya da olmasın, her bulguyu dosya, satır ve özetiyle listeler |
| Files changed annotations | PR'ın Files changed sekmesini açın. Bulgular, inceleme yorumlarından ayrı olarak doğrudan diff satırlarına eklenmiş açıklamalar olarak görünür |
| Review body | İnceleme çalışırken PR'a push yaptıysanız, bazı bulgular mevcut diff'te artık var olmayan satırlara referans verebilir. Bunlar, satır içi yorum yerine inceleme gövdesi metninde "Additional findings" başlığı altında görünür |
İlgili kaynaklar (Related resources)
Code Review, Claude Code'un geri kalanıyla birlikte çalışmak üzere tasarlanmıştır. PR açmadan önce yerel olarak inceleme çalıştırmak, kendi kendine barındırılan bir kurulum istemek veya CLAUDE.md'nin Claude'un davranışını araçlar genelinde nasıl şekillendirdiği hakkında daha derin bilgi edinmek isterseniz:
- Plugins: İsteğe bağlı incelemeler için code-review eklentisi dahil eklenti pazarını keşfedin
- GitHub Actions: Kod incelemesinin ötesinde özel otomasyon için Claude'u kendi GitHub Actions iş akışlarınızda çalıştırın
- GitLab CI/CD: GitLab pipeline'ları için kendi kendine barındırılan Claude entegrasyonu
- Memory: CLAUDE.md dosyalarının Claude Code genelinde nasıl çalıştığı
- Analytics: Kod incelemesinin ötesinde Claude Code kullanımını takip edin
Örnek kullanım senaryosu
Senaryo: Bir backend ekibi, üretim ortamında çalışan bir Node.js servisinde yeni bir özellik geliştiriyor. Ekip, PR'ların birleştirilmeden önce otomatik olarak incelenmesini ve özellikle güvenlik açıkları ile mantık hatalarının yakalanmasını istiyor.
Adımlar:
Code Review'u etkinleştirme: Ekip lideri,
claude.ai/admin-settings/claude-codeadresine giderek Code Review bölümünde Setup düğmesine tıklar ve Claude GitHub App'ini organizasyona yükler.my-backend-servicerepository'sini seçer ve inceleme davranışını After every push olarak ayarlar.REVIEW.md dosyası oluşturma: Ekip, repository köküne aşağıdaki
REVIEW.mddosyasını ekler:# Review instructions ## What Important means here Reserve Important for findings that would break behavior, leak data, or block a rollback: incorrect logic, unscoped database queries, PII in logs or error messages, and migrations that aren't backward compatible. Style, naming, and refactoring suggestions are Nit at most. ## Cap the nits Report at most five Nits per review. ## Do not report - Anything CI already enforces: lint, formatting, type errors - Generated files under `src/gen/` and any `*.lock` file ## Always check - New API routes have an integration test - Log lines don't include email addresses, user IDs, or request bodies - Database queries are scoped to the caller's tenantPR açma ve inceleme: Geliştirici, yeni bir kullanıcı profili API rotası ekleyen bir PR açar. Birkaç dakika içinde Claude Code Review check run'ı görünür. Details bağlantısına tıklayan geliştirici, şu bulguları görür:
- 🔴 Important —
src/routes/profile.ts:45: Yeni API rotasının entegrasyon testi yok (REVIEW.md kuralı) - 🟡 Nit —
src/routes/profile.ts:22: Kullanıcı ID'si log satırına yazılmış (PII sızıntısı) - 🟣 Pre-existing —
src/db/queries.ts:88: Mevcut bir sorgu kiracı (tenant) kapsamı dışında çalışıyor
- 🔴 Important —
Düzeltme ve yeniden inceleme: Geliştirici, Important bulguyu düzelterek entegrasyon testini ekler ve Nit bulguyu düzelterek log satırından kullanıcı ID'sini kaldırır. Push yapar. Push tetiklemeli inceleme etkin olduğu için, yeni bir inceleme otomatik olarak başlar ve düzeltilen sorunların thread'leri otomatik çözülür.
Manuel yeniden inceleme: Pre-existing bulgunun bu PR kapsamında düzeltilip düzeltilmeyeceğine karar vermek için ekip,
@claude review onceyorumu yaparak yalnızca mevcut durumu değerlendiren tek bir inceleme daha ister. Claude, Important bulgu kalmadığını ve yalnızca Pre-existing bulgunun devam ettiğini bildirir.Birleştirme: Ekip, Important bulguların tamamının çözüldüğünü onaylar ve PR'ı birleştirir.