Yükleniyor
GitHub Actions Nisan 2026 Güncellemeleri: Üç Küçük Ama Etkili Hamle
GitHub Actions Nisan 2026 Güncellemeleri: Üç Küçük Ama Etkili Hamle

İlk bakışta küçük, sahada işe bayağı büyük değişiklikler

Bakın şimdi, GitHub Actions tarafında Nisan başı güncellemelerine dışarıdan bakan biri “eh, birkaç iyileştirme işte” deyip geçebilir. Ama işin aslı şu ki, bazen en çok can sıkan şeyler tam da bu tarz küçük görünen detaylar oluyor. Service container’larda entrypoint ve command override gelmesi, OIDC token’lara repository custom property eklenmesi ve Azure private networking için VNET failover desteği… Üçü de farklı derdine dokunuyor. Birinin derdi test konteyneri, diğerinin derdi güvenlik politikası, üçüncüsünün derdi de “ya region giderse?” paniği.

Geçen ay bir müşteride, İstanbul’daki bir finans ekibiyle CI/CD akışını gözden geçirirken service container tarafında aynı tartışmayı yaptık. Docker image düzgün çalışıyor ama pipeline içinde ufak bir komut değişikliği gerektiğinde herkes YAML’a ters takla atıyordu. Hani klasik şey: çözüm var ama kirli çözüm. İşte bu güncelleme tam o tür workaround’ları biraz azaltıyor.

Bir de şunu söyleyeyim: ben AZ-104 ve AZ-500 hazırlık dönemlerinde hep aynı yere takılırım; “güvenlik güzel de operasyonel sürtünme ne olacak?” OIDC custom properties gibi şeyler kağıt üstünde politika işi gibi duruyor ama pratikte access control modelini çok daha temiz hâle getiriyor. Bilhassa enterprise tarafta.

Ve işler burada ilginçleşiyor.

Service container giriş noktalarını artık siz yönetiyorsunuz

Şimdi gelelim en günlük dertlerden birine. GitHub Actions’da service container kullanıyorsanız, — en azından ben öyle düşünüyorum — bugüne kadar image’ın default entrypoint ve command davranışına fazla karışamıyordunuz. Bu da bazen sizi saçma sapan workaround’lara itiyordu: ayrı script yaz, wrapper image üret, başka yerde komutu kopyala… Epey uğraştıran işler.

Yeni gelen entrypoint ve command override desteği ile workflow YAML içinde doğrudan kontrol sizde oluyor. Docker Compose mantığına benzediği için alışması kolay; yani “ben bunu zaten biliyorum” hissi veriyor. Açık konuşayım, bu tip tutarlılık önemli. Çünkü ekip içinde herkes farklı araçtan gelmiyor; biri Kubernetes biliyor, biri Compose biliyor, biri sadece pipeline yazmış oluyor (en azından benim deneyimim böyle)

2019’da kendi lab ortamımda benzer bir senaryoyu denemiştim. Bir PostgreSQL service container üzerinde init komutu değiştirmem gerekiyordu. Image içine gömülü davranış yüzünden yarım gün kaybettim. Şimdi böyle bir ihtiyaçta direkt YAML üzerinden müdahale edebilmek fena değil, hatta baya işe yarıyor.

Kullanım mantığı nasıl görünüyor?

Aşağıdaki örnek kaba taslak bir fikir veriyor. Tabii gerçek kullanımda image davranışıyla uyumu test etmek şart; her container aynı şekilde huysuzluk yapmıyor (inanın bana). Bazıları resmen nazlı.

jobs:
test:
runs-on: ubuntu-latest
services:
db:
image: postgres:16
entrypoint: ["/bin/sh", "-c"]
command: ["echo 'DB is starting'; docker-entrypoint.sh postgres"]
steps:
— name: Run tests
run: echo "Testing against service container"

Buradaki ana fikir şu: artık image’ın default başlangıç davranışına mahkûm değilsiniz. Bir servis konteynerini bazen ayağa kaldırmak yetmez; önce ufak bir hazırlık yaptırmak gerekir. Mesela log basmak, env kontrol etmek ya da özel init süreci işletmek… Bunlar daha önce ekstra katman gerektiriyordu.

E tabii her özgürlük gibi bunun da bedeli var: yanlış override ile konteyneri bayağı bozabilirsiniz (inanın bana). Yani “kontrol geldi” diye seviniyoruz ama aynı zamanda dikkat seviyesi de yükseliyor. Enterprise tarafta bunu template hâline getirip standartlaştırmak iyi olur; startup tarafında işe hızlı kazanım sağlar. Bu konuyla ilgili github ile ilgili önceki yazımıza da göz atmanızı tavsiye ederim.

OIDC token’larda repository custom properties dönemi

Gelelim güvenlik tarafına. Burası benim özellikle sevdiğim bölüm oldu çünkü düzen kuruyor (yanlış duymadınız). GitHub Actions OIDC token’larına artık repository custom properties claim olarak geliyor. Bu özellik genel kullanıma açılmış durumda. Yani cloud provider tarafındaki trust policy’nizi yalnızca repo adıyla ya da ID ile değil, organizasyonunuzun kendi sınıflandırmasıyla da bağlayabiliyorsunuz.

Bunu günlük dile çevirirsek şu anlama geliyor: “Bu repo kim?” sorusuna sadece isimle cevap vermek zorunda değilsiniz; “bu repo hangi takımın”, “hangi ortam tipi”, “hangi uyumluluk seviyesinde” gibi sorularla da erişim verebiliyorsunuz. Geçen sene Logosoft’ta Ankara merkezli bir üretim müşterisinde buna benzer bir model kurguladık; onlar repo sayısı arttıkça tek tek role tanımı yapmakta boğuluyordu. Custom property yaklaşımı orada ciddi rahatlama sağladı.

Peki neden? Copilot SDK: Ajanları Kendi Uygulamana Taşırken Ne Değişiyor? yazımızda bu konuya da değinmiştik.

AZ-305 çalışırken mimarı desenlerin en sevmediğim kısmı şuydu: güzel görünürler ama büyüyünce yönetimi ağırlaşır mı? OIDC claims ile custom property kullanımı burada iyi cevap veriyor gibi duruyor. Çünkü trust policy’nın omurgasını organizasyon modeliyle eşleştiriyorsunuz; manuel liste uzayıp gitmiyor. Bu konuyla ilgili GitHub Copilot CLI Kullanımını Artık Kişi Bazında Görmek Mümkün yazımıza da göz atmanızı tavsiye ederim.

💡 Bilgi: Repository custom properties sayesinde cloud erişimini “tek tek repo ezberi” yerine organizasyonel kurallara bağlayabilirsiniz. Bu da özellikle büyük yapılarda bakım yükünü baya azaltır.

Nerede gerçekten fark yaratır?

  • Küçük startup: Az repo varsa çok can alıcı görünmeyebilir ama ileride büyürken temeli sağlam kurarsınız.
  • Orta ölçekli ekip: Takımlar ayrıldıkça access policy sadeleşir.
  • Enterprise: Compliance tier, business unit ve environment type bazlı erişim modelinde ciddi düzen sağlar.

Konu Eski yaklaşım Yeni yaklaşım
Erişim tanımı Repo adı / ID bazlı Custom property claim bazlı
Büyüdükçe bakım Zorlaşıyor Daha yönetilebilir kalıyor
Mimarı uyum Kısmen manuel Tutarlı governance modeli

Şahsen, Açıkçası buradaki tek hayal kırıklığım şu oldu: özellik güçlü ama düzgün policy tasarlamazsanız size sihir yapmıyor. Yani claim geldi diye her şey otomatik düzelmiyor; sınıflandırma mantığınız zayıfsa sadece karmaşayı biraz daha modern hâle getirmiş oluyorsunuz…

Azure private networking’de VNET failover neden önemli?

E tabii üçüncü güncelleme biraz daha altyapı kokuyor. Azure private networking kullanan GitHub-hosted runner senaryolarında artık failover network desteği public preview’da var. Ne demek bu? Primary subnet veya bölge sorun çıkarırsa secondary subnet’e geçebiliyorsunuz; hatta isterseniz farklı bölgede bile olabilir.

Şunu söyleyeyim, Bunu küçümsemeyin. Ben yıllar önce hosting tarafında çalışırken bölgesel ağ problemlerinin nelere yol açtığını defalarca gördüm — saatlik kesinti bile release planını allak bullak edebiliyor (özellikle cuma akşamıysa). Şimdi hosted runner altyapısının arka planda buna karşı esneyebilmesi kötü mü? Değil tabii ki! Ama yine de preview olduğu için “tamamdır çözüldü” demek için erken.

Sahada nasıl kullanılır?

Eğer enterprise ya da organization hesabıyla Azure private networking kullanıyorsanız bu özellik ciddi nefes aldırabilir. Manuel failover yapabiliyorsunuz ya da — itiraz edebilirsiniz tabii — GitHub bölgesel outage algılarsa otomatik devreye sokabiliyor. Audit log olayları ve e-posta bildirimleri de geliyor; yani sessiz sedasız gerçekleşen bir geçiş değil bu. Daha fazla bilgi için PowerShell 7.6 Neden Geç Geldi? Perde Arkası ve Dersler yazımıza bakabilirsiniz.

Bence burada kritik nokta şu: failover’ın teknik kısmından çok operasyonel prosedürü önem taşıyor. Kim tetikleyecek? Ne zaman geri dönülecek? Geri dönüş sırasında deployment akışı nasıl etkilenir? Biz Logosoft’ta geçen yıl EMEA bölgesindeki bir müşteride benzer yedeklilik akışı tasarlarken asıl tartışma firewall’dan çok süreçti… İnsanlar çoğu zaman network çizgisini konuşuyor ama aslında olay karar mekanizmasında bitiyor. github ile ilgili önceki yazımızda bu konuya da değinmiştik.

GitHub Actions tarafında asıl mesaj net: hem hız istiyorsunuz hem de kontrol kaybetmek istemiyorsanız yeni güncellemeler tam bu boşluğu dolduruyor.

Küçük ekip mi enterprise mı? Etki aynı değil

Eh, Küçük bir startup için service container override özelliği hemen fayda verir; çünkü zaman kazandırır. Gereksiz script kalabalığını azaltır. OIDC custom properties ise ilk günden şart olmayabilir ama doğru kurgulanırsa ileride sizi büyük refactor işinden kurtarır. VNET failover ise genelde daha olgun yapılarda anlam kazanır; çünkü private networking zaten belirli bir ölçek ister (kendi tecrübem)

Evet, doğru duydunuz.

Büyük kurumlarda tablo tersine döner biraz… Service container ayarı nice-to-have olmaktan çıkar, standardization aracına dönüşür.
OIDC claims governance’ın omurgası olur.
Failover ise sadece teknik feature değil, business continuity konusu hâline gelir.
Ha bu arada şunu unutmayalım:
her ek özellik beraberinde dokümantasyon borcu getirir.
Doküman yoksa bilgi kişilerin kafasında kalır,
ve orası pek güvenilir bir yer değildir!

Peki ben hangisini önce denerdim?

Bence, Lafı gevelemeden söyleyeyim: önce OIDC custom properties’i denerdim eğer cloud erişimi karmaşıklaşıyorsa. Sonra service container override ile workflow temizlik işine girerdim. Peki, vNET failover ise altyapınız Azure private networking üstüne kurulmuşsa pilot ortamda test edilir. Hepsini aynı anda açmak yerine kontrollü gitmek daha mantıklı olur;
özellikle change management sıkıysa…

Sahada gördüğüm üç pratik ders

Şunu söyleyeyim, Birincisi: Workflow YAML içine gelen her yeni özgürlük dikkat ister.
Bir parametreyi yanlış yazıp tüm testi patlatmak çocuk oyuncağı olabilir.
Bunu geçen mart ayında Berlin’deki bir ürün ekibinde yaşadık;
küçük bir override yüzünden servis ayağa kalktı ama uygulama beklediğimiz portu dinlemiyordu.

Kendi deneyimimden konuşuyorum, İkincisi: Güvenlik politikasını teknik ayrıntıya boğmayın. Custom properties işinizi kolaylaştırmalı, “bir (belki yanılıyorum ama) politika dosyasını kim okuyacak?” sorusuna dönüşmemeli. Ben bunu AZ-500 hazırlığında çok net gördüm;
fazla karmaşık policy = sonra kimse dokunmaya cesaret edemiyor.

Üçüncüsü: Failover özelliğini kurmak başka,
geri dönüş planını işletmek başka şey. Manuel geçiş tamam,
ama primary region toparlandığında ne olacak? O kısmı önceden yazmazsanız operasyon günü kısa süreli panik yaşanıyor… hem de baya gereksiz şekilde.

Sıkça Sorulan Sorular

GitHub Actions’da service container entrypoint override ne işe yarar?

Dışarıdan gelen imajın varsayılan başlangıç komutunu workflow içinden değiştirmeye yarar (kendi tecrübem). Böylece wrapper image yazmadan özel başlatma senaryolarını yönetebilirsiniz.

OIDC token içindeki repository custom properties neden önemli?

Erişim politikalarını repo adı yerine organizasyonun sınıflandırmasına göre kurmanızı sağlar. Bu da büyük yapılarda bakım yükünü azaltır ve trust modelini sadeleştirir.

Azure private networking VNET failover herkese açık mı?

Henüz değil; şu an public preview aşamasında ve yalnızca enterprise veya organization hesaplarıyla Azure private networking kullanan yapılarda kullanılabiliyor. Genel kullanıma açılma tarihi henüz netleşmedi ama preview sürecinde test edip geri bildirim vermek iyi bir adım olur.

İçeriği paylaş:

Yorum gönder

Microsoft Azure Çözüm Uzmanı | Bulut Bilişim, Yapay Zekâ, DevOps ve Kurumsal Güvenlik alanlarında 15+ yıl deneyim. Azure, Kubernetes, AI/ML ve modern altyapı mimarileri üzerine yazılar yazıyorum.

SİZİN İÇİN DERLEDİK