GitHub Code Quality API: Repo Bazlı Açma-Kapama Dönemi

GitHub Code Quality’yi her repoya tek tek açmak yerine Repository Enablement API ile repo bazında programatik olarak açıp kapatabilirsiniz. Dil ve runner seçimi gibi yönetişim adımları ölçeklenebilir hale gelir; ancak public preview/on-prem uyumu dikkat ister.

Kendi deneyimimden konuşuyorum, Geçen hafta bir müşteride tam da şu soru açıldı: “Her repoya tek tek girip Code Quality açmak zorunda mıyız?” Açık konuşayım, kurumsal tarafta işin can sıkan kısmı çoğu zaman teknik değil, operasyon oluyor. Özellik güzel olabilir, hatta baya iş görebilir; ama ortada yüzlerce repo varsa, elle tıklamak insanı yoruyor. İşte GitHub’ın yeni Repository Enablement API hamlesi bu yüzden anlamlı.

Ben bunu ilk duyduğumda aklıma hemen 2019’da bir finans kuruluşunda yaptığımız DevOps dönüşümü geldi. O zamanlar statik analiz araçlarını ekip ekip yaymaya çalışıyorduk ve en büyük dert yine aynıydı: merkezî yönetim yoksa standart da olmuyor. Şimdi GitHub burada işi — ki bu tartışılır — biraz daha olgunlaştırmış gibi duruyor. Kağıt üstünde iyi, pratikte işe birkaç ince detay var; onları da aşağıda açacağım.

Durun, bir saniye.

Bir de şu var: Bu yenilik sadece “bir ayar endpoint’i” değil. Aslında kurumsal yazılım yönetiminde küçük ama etkisi hissedilen bir kırılma. Repo seviyesinde kalite kapısını programatik açıp kapatabiliyorsunuz, hangi diller taranacak seçiyorsunuz, hangi runner kullanılacak belirliyorsunuz. Siz hiç denediniz mi? Yani mesele sadece kod kalitesi değil; yönetişim, ölçek ve tekrar edilebilirlik.

Neden Bu API Dikkat Çekiyor?

GitHub Code Quality için gelen yeni uç noktalar net duruyor: biri ayarı yapıyor, diğeri mevcut durumu okuyor. PATCH ile default setup’ı açıp kapatıyorsunuz, dil listesini belirliyorsunuz ve runner tipini seçiyorsunuz. GET tarafında işe mevcut durum, analiz zamanı, diller ve runner bilgisi geliyor (kendi tecrübem). Basit görünüyor. Zaten iyi tasarlanmış yönetim aracı çoğu zaman böyle olur; gösteriş yapmaz ama iş görür.

Şunu söyleyeyim, Burada beni en çok düşündüren şeylerden biri, bunun public preview olarak gelmesi ama Enterprise Server’da henüz olmaması. Yani bulutta hızlı ilerleyen bir özellik var, fakat kurum içi sunucuda çalışan ekipler biraz bekleyecek gibi. Ben bunu özellikle büyük bankalarda çok gördüm: bulut tarafı hızlanıyor, on-prem tarafı işe güvenlik ve uyumluluk nedeniyle geriden geliyor. Hayal kırıklığı mı? Biraz evet.

Peki neden?

2024’ün Kasım ayında Logosoft tarafında yürüttüğümüz bir projede benzer bir standardizasyon ihtiyacı vardı. Farklı ekiplerin farklı araçlarla kodu taraması yüzünden raporlar birbirini tutmuyordu. Orada öğrendiğim şey şu oldu: teknoloji kadar rollout stratejisi de önemli. Eğer elinizde 80 repo varsa ve her birini elle yönetiyorsanız, sorun teknoloji değil süreçtir.

Şahsen, Bu API’nın değeri tam burada başlıyor: merkezî otomasyonla tekrar eden işleri kesiyor. Küçük startup için bu belki “güzel ekstradır”, ama enterprise seviyede doğrudan operasyonel rahatlık demek.

Peki hangi diller destekleniyor?

Vallahi, Şimdilik desteklenen dil listesi fena değil: C#, Go, Java/Kotlin, JavaScript/TypeScript, Python ve Ruby. Özellikle.NET ağırlıklı ekiplerde C# desteği hayatı çünkü bizim tarafta hâlâ ciddi bir kitle bu stack üzerinde yaşıyor.

Ha bu arada, dil desteği iyi ama sınırsız değil. Mesela bazı organizasyonlarda PHP veya Rust gibi diller de ana akım olabiliyor; onlar için bu özellik şu an tam çözüm sayılmaz (yanlış duymadınız). Yani burada “her şeyi çözdü” demek doğru olmaz.

💡 Bilgi: Bu özellik public preview aşamasında olduğu için üretim ortamına yaymadan önce küçük bir pilot repo grubunda test etmek daha güvenli olur.

Nasıl Kullanılır? Mantık Basit Ama İnce Noktalar Var

Açık konuşayım, API mantığı sade olduğu için öğrenmesi kolay. Ama sade olması sizi yanıltmasın; yetkilendirme modeli, repo kapsamı ve otomasyon sırası yanlış kurulursa güzel başlayan iş çabuk karışır. Ben AZ-305 sınavına hazırlanırken hep şunu düşünürdüm: mimarı kararlar küçük ayrıntılarda belli olur. Burada da öyle. Daha fazla bilgi için

Bence en iyi kullanım senaryosu şurada ortaya çıkıyor: repository provisioning sırasında Code Quality’nın otomatik açılması. Yani yeni repo doğduğu anda kalite politikası da yanında geliyor. Elle işlem azalıyor mu? Evet. Tutarlılık artıyor mu? Kesinlikle.

Senaryo Küçük Ekip Kurumsal Yapı
Açma yöntemi Elle deneme + az sayıda repo API ile otomasyon + policy tabanlı rollout
Dil kapsamı Ekipte kullanılan ana diller Sözleşmeli standart dil seti
Runner tercihi Mümkünse hosted runner Gerekiyorsa self-hosted / kontrollü altyapı
Kritik nokta Sadelik Uyum ve denetlenebilirlik

Bence Asıl Mesaj Otomasyon Tarafında Saklı

İnanın, Neyse uzatmayalım; bu haberin özü kalite aracından çok otomasyon kabiliyetiyle ilgili. GitHub bize artık “tek tek tıklama” yerine “repo yaşam döngüsüne kalite ekleme” fikrini veriyor. Bu yaklaşım bana Azure tarafındaki policy-first düşüncesini hatırlatıyor — yani sistemi sonradan yamamak yerine baştan kurallarla şekillendirmek.

Bunu Türkiye’deki şirketler açısından değerlendirirsek tablo biraz daha ilginçleşiyor. Bizde birçok kurum hâlâ proje bazlı düşünüyor; oysa kalite araçları proje bitince kapanan şeyler değil, sürekli yaşayan kontrol katmanlarıdır. Eğer organizasyonda ekip değişimi sık yaşanıyorsa ya da dış kaynak kullanımı fazlaysa bu API baya değerli olur. Standardı kişilere bırakmazsınız.

Kendi sahadaki gözlemim şu: orta ölçekli şirketler genelde “önce hızlı gidelim” diyor. Sonra teknik borç faturası patlıyor.
2025’in Mart ayında Ankara’daki bir üretim firmasına yaptığımız değerlendirmede tam bunu gördük; iki ayrı takım aynı repo ailesinde farklı kalite kuralları kullanıyordu.
Sonuç? Raporlar tutmuyor, tartışmalar uzuyordu.
İşte böyle durumlarda merkezî enablement yaklaşımı çok iş görüyor.

Şöyle söyleyeyim, E tabi eksik tarafları da var.
Public preview olması nedeniyle davranışlar değişebilir.
Enterprise Server’da olmaması bazı kurumlar için direkt engel.
Bir de herkesin runner modeline göre aynı deneyimi alacağını varsaymak doğru olmaz; bazı yapılarda hosted runner yeterli gelirken bazı yapılarda veri yerelliği nedeniyle self-hosted şart olabilir.
Yani güzel özellik ama henüz ham… biraz daha pişmesi lazım.

Dikkat edilmesi gerekenler

  • Kapsamı dar tutun: İlk etapta tüm repolar yerine pilot gruplarla başlayın.
  • Dil listesini temizleyin: Gerçekten kullanılan dilleri seçin; gereksiz tarama maliyet yaratır. (bu kritik)
  • Runner kararını netleştirin: Hosted mı self-hosted mı baştan belirleyin.
  • Anahtar yönetimini unutmayın: Yetkisiz enable/disable işlemleri can sıkabilir.
  • Kayıt tutun: Kim ne zaman neyi açtı mutlaka loglansın.

Repo bazlı kalite otomasyonu küçük görünür ama büyük organizasyonlarda asıl farkı yaratan şey çoğu zaman budur: tekrar eden işleri azaltır, standardı korur ve denetimi kolaylaştırır.

Tam Burada Pratik Bir Uygulama Planı Var

Eğer bunu denemek istiyorsanız ilk iş şu üç adımı atın:
1) Bir pilot repo grubu seçin,
2) Kod sahibi ekiplerle dili ve runner’ı netleştirin,
3) PATCH çağrısını önce staging benzeri bir ortamda test edin.
Bu kadar basit görünüyor ama inanın birçok proje burada takılıyor çünkü kimse başlangıçta sahipliği tanımlamıyor.
Aslında — dur bir saniye — teknikten çok organizasyon konuşuyoruz yine! (kendi tecrübem)

Peki, kendi deneyimimden konuşuyorum, Zamanlama konusunda da şunu söyleyeyim:
Yeni oluşturulan repolara otomatik uygulanacak şekilde pipeline’a bağlamak en temiz yol olabilir.
Mesela GitHub Actions veya başka bir provisioning akışı içinde bu endpoint’i çağırırsınız;
repo oluşur,
kalite açılır,
diller set edilir…
bitti gitti.
Ama burada hata payını küçümsemeyin;
ilk denememde yanlış scope yüzünden “404 not found” almıştım.
Sorun endpoint’te değilmiş,
repo owner bilgisini yanlış map etmişiz.
Klasik ama öğretici bir hata!

Şunu söyleyeyim, Bütçe tarafını da es geçmeyelim.
Bulut tabanlı taramalar küçük TL bazında bile toplandığında hissedilir hâle gelebiliyor;
özellikle aktif branch sayısı yüksekse analiz maliyeti sessizce büyür.
Bütçe kısıtlıysa önce en kritik repolarla başlayın,
sonra genişletin.
Herkese her şeyi aynı gün açmak kulağa hoş gelir ama FinOps açısından pek parlak değildir…

Durun, bir saniye.

Sıkça Sorulan Sorular

GitHub Code Quality Repository Enablement API ne işe yarıyor?

Aslında oldukça kullanışlı bir şey: repo bazında Code Quality özelliğini programatik olarak açıp kapatabiliyorsunuz. Yani dil seçimi ve runner tipi gibi ayarları da merkezden yönetmek mümkün oluyor.

Bütün repolarda aynı anda kullanabilir mıyım?

Evet, otomasyonla yayabilirsiniz teknik olarak. Ama bence önce bir pilot grup deneyin (ciddiyim). Hani özellikle kurumsal ortamlarda direkt toplu geçiş yerine kontrollü bir rollout çok daha sağlıklı oluyor, tecrübeme göre.

Enterprise Server’da çalışıyor mu?

Hayır. Şu an sadece github.com üzerinde public preview olarak sunuluyor. Enterprise Server desteği yok.

Küçük ekipler için mantıklı mı?

Evet, özellikle manuel işleri azaltmak isteyen küçük ekiplere faydalı oluyor. Açıkçası zaten birkaç reposu olan ekiplere ilk bakışta biraz lüks gibi gelebilir; ama asıl değer ölçek büyüyünce ortaya çıkıyor.

Kaynaklar ve İleri Okuma

GitHub Code Quality Resmî Dokümantasyonu

GitHub REST API Dokümantasyonu (kendi tecrübem)

GitHub Changelog Ana Sayfası

Bu yazı yapay zeka (büyük dil modelleri) ile hazırlanmış, insan editör tarafından incelenmiştir. İçerik üretim sürecimiz.
Aşkın KILIÇ

20+ yıl deneyimli Azure Solutions Architect. Microsoft sertifikalı bulut mimari ve DevOps danışmanı. Azure, yapay zekâ ve bulut teknolojileri üzerine Türkçe teknik içerikler üretiyor.

AZ-305AZ-104AZ-500AZ-400DP-203AI-102

Bu içerik işinize yaradı mı?

Benzer içerikleri kaçırmamak için YouTube ve GitHub hesaplarımı takip edin.

Haftalık Bülten

Her pazar özenle seçilmiş teknoloji yazıları doğrudan e-postanıza gelsin.

2 Yorum

  1. Tam zamanında bir yazı, geçen ay 40+ repo için tek tek ayar yaparken çıldırıyordum. Bu API’yi daha önce bilseydim epey zaman kazanırdım. Runner seçimini de programatik yapabilmek özellikle kurumsal ortamlar için büyük kolaylık.

Yoruma kapalı.

✉

Haftalık Bülten

Azure, DevOps ve Yapay Zeka dünyasındaki en güncel içerikleri her hafta doğrudan e-postanıza alın.

Spam yok. İstediğiniz zaman iptal edebilirsiniz.
📱
Uygulamayı Yükle Ana ekrana ekle, çevrimdışı oku
Kategoriler
Ara
Paylaş
WhatsApp
İçindekiler
← GitHub Copilot’ta .NET İşini D...
GitHub Copilot Model Yönetimin... →
📩

Gitmeden önce!

Her pazar özenle seçilmiş teknoloji yazıları ve AI haberleri doğrudan e-postanıza gelsin. Ücretsiz, spam yok.

🔒 Bilgileriniz güvende. İstediğiniz zaman ayrılabilirsiniz.

📬 Haftalık bülten: Teknoloji + AI haberleri
Beni Takip Et Yeni Azure / AI / DevOps yazılarını GitHub ve RSS üzerinden takip edin.