· kaynak dev.to (home feed)
Birleştirilmiş 55 VS Code pull request'inin incelenmesi: Copilot code review birleşmeyi hiçbir zaman engellemiyor
dev.to'da yayımlanan ve birleştirilmiş 55 microsoft/vscode pull request'ini kapsayan bir inceleme, Copilot code review'un her seferinde GitHub'ın COMMENTED durumunda kaldığını ortaya koydu; yani bu karar ne zorunlu onayları karşılayabiliyor ne de birleşmeyi engelleyebiliyor.

Copilot incelemeleri her zaman COMMENTED durumunda sonuçlanıyor
dev.to'da Cole Halton tarafından yayımlanan, microsoft/vscode'dan birleştirilmiş 55 pull request'i kapsayan bir inceleme, GitHub Copilot code review'un her seferinde aynı inceleme durumunu ayarladığını tespit etti: COMMENTED. Örneklem, yakın zamanda oluşturulmuş ve birleştirilenlere filtrelenmiş PR'ların iki diliminden geldi; ilk dilimde 28, ikinci dilimde 27 Copilot incelemesi vardı. 55 incelemenin tamamında APPROVED durumu da CHANGES_REQUESTED durumu da yoktu.
Bu ayrım önemli, çünkü GitHub'ın REST API'si bir incelemeyi yorumlar kümesi artı bir durum olarak modelliyor ve branch protection bu durumu okuyor. COMMENTED durumundaki bir inceleme ne zorunlu onayları karşılıyor ne de değişiklik istendiğinde devreye giren birleşme engelini tetikliyor. Diff değiştikten sonra onayları düşüren isteğe bağlı ayar da aynı şekilde anlamsız, çünkü COMMENTED bir inceleme hiçbir zaman düşürülecek bir onay kaydetmiyor.
Karar başlığı UI metni, durum değil
"Approval recommended" ve "Changes recommended" gibi başlıklar sunum öğesidir, durum değil. dev.to yazısına göre GitHub'ın kendi dokümantasyonu, Copilot incelemelerinin varsayılan olarak zorunlu onaylara dahil edilmediğini söylüyor; Copilot onaylarını etkinleştirmek ise repository, organizasyon ve kurumsal düzeyde ayrı bir ayar.
Buna rağmen, birleştirilen PR'ların kabaca yarısı birleşme anında onay niteliği taşımayan bir karar içeriyordu: ilk dilimde 28'de 12, ikinci dilimde 27'de 15. İlk dilim 16 "Approval recommended", 9 "Changes recommended" ve 3 "Needs a closer look" olarak bölündü.
Başlık ile bulgular listesi uyuşmuyor
İnceleme, karar başlığı ile yapılandırılmış bulgular listesinin ayrı ayrı hesaplandığını ortaya koydu. İlk dilimde, 28 nihai incelemenin 19'u sıfır açık bulgu bildiriyordu; buna rağmen bunlardan üçü yine de "Needs a closer look" taşıyordu.
En çarpıcı örnek microsoft/vscode'daki 337469 numaralı PR: aynı commit üzerinde 52 dakika arayla iki Copilot incelemesi aldı. İlki dört çözülmemiş orta düzey sorun tanımladı, ikincisi üçünün kaldığını söyledi ve ikisinin gövdesi de "Findings: None" yapılandırılmış satırıyla sona erdi. İkinci inceleme ayrıca, ilk geçişten bu yana değişmemiş kodda "önceden atlanan bir sorun" işaretledi.
Kararların çoğu artık var olmayan bir diff'i tarif ediyor
Her incelemenin commit_id'sini PR birleştiği sırada head ile karşılaştıran inceleme, ilk dilimdeki 28 nihai incelemenin 13'ünün ve ikinci dilimdeki 27'nin 15'inin, PR birleştiğinde head olmayan bir commit'e göre oluşturulduğunu buldu. COMMENTED bir inceleme onaylanmış bir diff durumu kaydetmediği ve onu yenileyen bir mekanizma olmadığı için, head dışı bir karar istisna değil normal bitiş durumudur.
Yeniden incelemeler nadir ve bir delta bildiriyor
Güncellemeye göre sıralanmış 28 birleştirilmiş PR'lık dilimde 24'ünde tam olarak bir Copilot incelemesi vardı; oluşturulma tarihine göre sıralanan iki dilimde ise yalnızca 55'in 3'ünde birden fazlaydı. 6 Kasım tarihli bir changelog kaydına göre, aynı PR'ın sonraki incelemelerinde son değişikliklerle ilgisi olmayan bulgular önce daraltılıp sonra gizleniyor; dolayısıyla ikinci bir inceleme, değişikliğin tamamını baştan okumak yerine son push'a göre bir delta. İki çalışma arasındaki bulgu düşüşü bu yüzden gerçek bir iyileşmeyi değil, daralmış kapsamı yansıtıyor olabilir.
Copilot incelemelerini ölçüyorsanız neyi kaydetmelisiniz
Yazar, her inceleme çalışması için beş alan öneriyor: incelenen commit id'si ve okuma anındaki PR head sha'sı, yapılandırılmış gövdeden ayrıştırılan bulgu sayısı, kullanılan effort seviyesi, okuma tarihiyle birlikte metin olarak saklanan karar başlığı ve ikinci bir incelemenin çalışıp çalışmadığı ile çalışmalar arasındaki değişiklikler.
Effort seviyesi önemli, çünkü katmanlar farklı ürünler gibi davranıyor: dokümante edilmiş tahminler ortalama credit tüketimini Lite için inceleme başına yaklaşık 0,25 dolar, Balanced için 1,50 dolar ve Max için 10 dolar olarak veriyor; Balanced artık üç reviewer modeli ve bulgularını birleştiren dördüncü bir model kullanıyor. Aynı Kasım güncellemesi effort etiketini kompakt bir alt bilgiye taşıdı, atlanan ve hariç tutulan dosyaları tek bir "Files not reviewed" bölümünde birleştirdi ve REST ile GraphQL API'lerine attribution alanları ekledi. Yazıya göre metrikler bu alanlara dayanmalı; bir UI sürümünde bozulacak başlık dizgilerini grep'lememeli.
Bir kapıya ihtiyacınız varsa, bir kapı satın alın
Yazı, Copilot'u kapı davranışı dokümante edilmiş araçlarla karşılaştırıyor. CodeRabbit varsayılan olarak kapalı bir auto-approvals bayrağı sunuyor ve eksik, başarısız, devre dışı veya eski zorunlu değerlendirmelerin onayı vermediğini belirtiyor. Kodus, AGPLv3 lisansıyla kendi sunucunuzda barındırılabilen, kendi modelinizi getirebileceğiniz ve inceleme kurallarını organizasyon, repository veya yol düzeyinde tanımlayabileceğiniz bir araç. Her iki durumda da diff değiştiğinde karara ne olacağını dokümantasyondan öngörebiliyorsunuz; Copilot'un varsayılan yapılandırmasındaysa hiçbir şey olmuyor.
Neden önemli
Yazar bunun bir hata raporu olmadığını açıkça belirtiyor: danışma niteliğinde inceleme savunulabilir bir tasarım ve Copilot'u danışma niteliğinde gören ekipler ürünün vaat ettiğini alıyor. Risk, aradaki durumlarda. İnceleme durumundan "AI onayı" veya "AI engeli" sayan herkes her repository'de sonsuza dek sıfır sayar; başlık metninden sayan herkez GitHub'ın kendi takvimine göre yeniden yazdığı bir dizgiyi ölçüyor. Ve AI reviewer'ın birleşmeden önce çizgiyi tuttuğunu sessizce varsayan her ekip şunu bilmeli: karar hiçbir şeyi engellemiyor, çoğu zaman bayat bir diff'i tarif ediyor ve aynı kod üzerinde yeniden çalıştırıldığında cevabını değiştirebiliyor.
- #github-copilot
- #code-review
- #github
- #ai
- #developer-tools
İlgili yazılar
- Uygulamalı test: claude-mem, yapay zekâ kodlama agent'lerine sabit token maliyetiyle oturumlar arası bellek kazandırıyor
- AI Scientist-v2'nin Hakemli Bir Workshop'ta Kabul Edilen İlk Tamamen Yapay Zekâ Üretimi Makaleyi Oluşturduğu Bildirildi
- Bağımsız test, Git 2.56 history-drop komutunu rebase'in 6 katı hızlı buldu, 40-77 katı değil