GitHub Yine Çöküyor: Mirror'lar, Alternatifler ve Kesintiden Etkilenmemenin Yolu
GitHub'daki son kesintiler hepimize en büyük platformların bile kötü günleri olabileceğini hatırlattı. GitHub'a minnettar bir teşekkür, alternatiflere ve Git Mirror'lara pratik bir bakış ve bir sonraki Downtime'da projenizi online tutacak çözümler.

Yakın zamanda bir branch push etmeye, bir CI pipeline çalıştırmaya ya da bir paket kurmaya çalıştığınızda hata sayfasıyla karşılaştıysanız yalnız değildiniz. GitHub son dönemde alıştığımızdan çok daha fazla kesinti ve performans sorunu yaşadı; modern yazılım geliştirmenin merkezinde duran bir platform için her dakikalık Downtime tüm sektör tarafından hissediliyor.
Bu yazı bir suçlama yazısı değil. Her şeyden önce bir teşekkür notu. Sonra da hepimizin yayınlamaya devam edecek işleri olduğu için pratik bir rehber: GitHub alternatifleri, Git Mirror'lar ve bir sonraki kesintinin projenizi durdurmasını — ya da kullanıcılarınız fark etmeden geçmesini — engellemenin yolları.
Teşekkürler GitHub
Tek bir platformun ne kadar şeyi değiştirdiğini unutmak kolay. GitHub kod barındırmayı bir topluluk deneyimine dönüştürdü ve yaklaşık yirmi yıldır açık kaynak yazılımın varsayılan evi oldu. Artık sıradanlaştığı için görmeyi bıraktığımız bazı şeyler:
- Pull request ve sosyal kod incelemesi — bir nesil yazılımcının GitHub'da öğrendiği iş akışı.
- Milyonlarca projeye ev — hafta sonu denemelerinden internetin altyapısına kadar.
- GitHub Actions, Pages ve Packages — küçük ekipleri devasa hissettiren eksiksiz bir araç seti.
- Ağ etkisi — yazılım keşfetmeyi keyifli hale getiren yıldızlar, issue'lar, tartışmalar ve README kültürü.
Bunların hiçbiri birkaç kötü gün yüzünden kaybolmuyor. Kesinti herkesin başına gelir; platform ne kadar başarılıysa kötü gününü o kadar çok kişi hisseder. Sağlıklı tepki öfke değil, minnettarlık — artı bir yedek plan. Üstelik GitHub kötü günlerini zaten kendi status sayfasından paylaşıyor. Ama kendiniz kontrol etmek zorunda kalmamanız gerekiyor.
GitHub Çöktüğünde Aslında Ne Bozuluyor?
github.com kötü bir gün yaşadığında etki alanı düşündüğünüzden büyük olur:
- Clone, push ve pull request — günlük temel işler durur.
- CI/CD pipeline'ları (Actions) — build'ler kuyruğa girer ya da başarısız olur, release'ler gecikir.
- GitHub Pages — dokümantasyon ve tanıtım siteleri kararır.
- Paket kurulumları — GitHub endpoint'lerinden çekilen bağımlılıklar hata vermeye başlar.
- Webhook ve entegrasyonlar — olaylar gecikir ya da kaybolur, otomasyonlar sessizce bozulur.
Release süreciniz, dokümanlarınız ya da ürününüz bunlardan birine dokunuyorsa, Uptime'ınız artık GitHub'ın Uptime'ına bağlı. Bu riski gerçekten azaltabilirsiniz.
Git Mirror'lar: İlk Savunma Hattınız
Git Mirror, deponuzun başka bir host'taki eksiksiz ve sürekli güncellenen kopyasıdır. Mirror bir göç ya da protesto değil — redundancy'dir. GitHub kötü bir gün geçirdiğinde geçmişiniz, branch'leriniz ve tag'leriniz başka bir yerde yaşamaya devam eder.
- İkinci bir ev seçin. GitLab, Codeberg ya da kendi sunucunuzda Gitea veya Forgejo hepsi gayet iyi çalışır.
- Her şeyi bir kez push edin:
git clone --mirrorile klonlayın, sonra yeni remote'agit push --mirrorçalıştırın. - Senkron tutun: ya ikinci bir remote ekleyin (
git remote add mirror <url>) ve ikisine birden push edin, ya da zamanlanmış bir iştengit push --mirrorçalıştırın — çoğu ekip için saatlik bir cron girdisi yeterlidir. - Ya da kopya kendi bakımını yapsın: GitLab, Gitea ve Forgejo, GitHub'dan zamanlamalı pull-mirror yapabilir; cron'a gerek kalmaz.
- Mirror'ı ara sıra doğrulayın. Hiç test etmediğiniz bir mirror sahte bir güvenlik hissidir.
Mirror size ikinci bir CI ya da issue takibi vermez ama sahip olduğunuz en değerli şeyi korur: kodunuz ve geçmişi.
Bilinmeye Değer GitHub Alternatifleri
Yağmurlu bir güne hazırlanmak için GitHub'dan ayrılmak zorunda değilsiniz. Alternatifleri bilmek — ve birinde bir mirror tutmak — sadece iyi mühendisliktir. Bu platformların her biri gerçek topluluk güveni kazanmıştır:
- GitLab — yerleşik CI/CD, container registry ve iki yönlü birinci sınıf repository mirroring sunan eksiksiz bir DevOps platformu. Ekipler için en doğal plan B.
- Codeberg — Forgejo tarafından güçlendirilen, kâr amacı gütmeyen ve topluluk tarafından yürütülen bir platform. Özgür ve açık kaynak yazılım için gerçekten bağımsız bir ev.
- Sourcehut — minimal, hızlı ve e-posta odaklı. Forge araçlarına yalın ve iddiasız bir bakış.
- Gitea ve Forgejo — kendi sunucunuzda barındırabileceğiniz hafif, açık kaynak forge'lar. Tam kontrol, küçük ayak izi, yerleşik mirror desteği.
- Bitbucket — derin Jira entegrasyonuna sahip, köklü Atlassian seçeneği.
Amaç GitHub'ı terk etmek değil. Hiçbir zaman tamamen ona bağımlı olmadığınızı rahatça söyleyebilmek.
Yapabildiğiniz Kadarını Ayırın
Mirror'lar kodunuzu korur. Ama Downtime, her şey aynı host'a bağlı olduğunda en çok acıtır. Yükü dağıtın:
- Dokümanlar ve tanıtım sayfaları — sadece GitHub Pages üzerinden sunmayın. Onları oldukları production siteleri gibi barındırın.
- Paketler — birden fazla registry'ye yayınlayın; örneğin npm'e ek olarak özel ya da ikinci bir platform registry'si.
- Release'ler — artefaktları GitHub Releases'e ek olarak kendi storage'ınızda ya da CDN'inizde tutun.
- CI — Actions düştüğünde GitLab'daki ya da kendi runner'larınızdaki ikinci bir pipeline devralabilir.
- Badge'ler ve derin linkler — README'niz ya da siteniz
raw.githubusercontent.comreferansı veriyorsa, o URL'yi bir bağımlılık gibi ele alın ve öyle izleyin.
Kullanıcılarınızdan Önce Siz Bilin
Bir kesintiyi sosyal medyadan öğrenmek, geç kaldığınız anlamına gelir. Çözüm sıkıcı ama etkili: bağlı olduğunuz şeyleri izleyin — GitHub'ın kendisini, Pages sitenizi, clone endpoint'lerinizi ve elbette kendi ürününüzü.
Tam da bu yüzden isthisthing.online ürününü geliştirdik. Siz ile kullanıcılarınız arasındaki her adım için HTTP, TCP ya da ping Monitor'ları ekleyin: github.com, api.github.com, GitHub Pages URL'niz ve production endpoint'leriniz. Check'ler 10 global konumdan 30 saniyeye kadar inen aralıklarla çalışır ve bir şey bozulduğu an alert'ler Slack, Microsoft Teams, Discord'a ya da Webhook ile istediğiniz her yere düşer.
GitHub düştüğünde Monitoring, saniyeler içinde sorunun GitHub'da mı yoksa kendi stack'inizde mi olduğunu söyler — böylece mirror'ınıza geçer, bir DNS kaydını değiştirir ya da basitçe başkasının kesintisini debug etmeyi bırakırsınız.
Ve kötü günü yaşayan siz olduğunuzda, otomatik güncellenen bir Status Page kullanıcılarınızı destek gelen kutunuzu yenilemekle meşgul etmek yerine bilgilendirir.
Pratik Bir Dayanıklılık Kontrol Listesi
- Kritik her deponun bir mirror'ını oluşturun ve senkron tutun.
- En önemli projelerinize ikinci bir CI pipeline ekleyin.
- Paketleri ve release artefaktlarını birden fazla yerde yayınlayın.
- Doküman ve tanıtım sayfalarını tek platforma bağımlı barındırmaktan kaçının.
- github.com, api.github.com, Pages URL'leriniz ve kendi endpoint'lerinizi hızlı Check'lerle izleyin.
- Alert'leri doğru kişilerin ilk duyması için Slack, Teams ya da Discord'a yönlendirin.
- Kullanıcılarınız hiç tahmin yapmak zorunda kalmasın diye herkese açık bir Status Page yayınlayın.
- Failover'ı gerçekten ihtiyaç duymadan önce bir kez prova edin.
GitHub on yıllardır güven biriktirdi ve birkaç kesinti bunu değiştirmez. Minnettar kalın, mirror'lı kalın ve izlenmiş kalın.
Bir sonraki kesintiye hazır mısınız? Ücretsiz isthisthing.online hesabınızı oluşturun ve bir sonraki GitHub aksaklığını kaybolmuş bir öğleden sonra yerine beş dakikalık bir mola olarak yaşayın.