for-real - Tüm GitHub organizasyonunu silince yapılan silme önleyici Chrome eklentisi
(github.com/bssm-oss)Test reposunu silecekken 9 kişilik bir GitHub organizasyonunu komple sildim.
Discord webhook botu için end-to-end test yapıyordum; test reposunun Settings sayfasındayım sanıp Danger Zone’a kadar kaydırdım ve "Delete this repository"ye bastım. Silmeden hemen sonra yönlendirildiğim sayfa repo 404’ü değil organizasyon 404’üydü; ancak o zaman baştan beri organizasyon Settings’inde olduğumu fark ettim.
Asıl ölümcül hata, onay metnini düzgün okumamış olmamdı. Silinecek şeyin tabii ki test reposu olduğuna inanıp kopyala-yapıştır yaptım, ama giriş alanına giren şey aslında organizasyon adıydı. Tek bir kopyala-yapıştırla doğrudan geçti. Repo, issue’lar, PR’lar, discussion’lar, CI geçmişi, hepsi tek seferde yok oldu.
Ekip arkadaşlarıma acil KakaoTalk mesajı attım ve GitHub destek ekibine e-posta gönderdim; ardından 7 iş günü bekledim. Bu süre boyunca ne push atabiliyorsunuz ne de issue’ları görebiliyorsunuz.
Ama düşündükçe daha da tuhaf gelmeye başladı.
İster repo silme ister organizasyon silme olsun, geri yükleme yolu aynı: "destek ekibine e-posta". Ama organizasyon silinince onlarca üye ve onlarca repo bir anda yok oluyor; buna rağmen arayüz repo silme akışını aynen yeniden kullanmış, kopyala-yapıştır da çalışıyor ve yıkıcı etkiye dair bir uyarı da yok. 100 kat daha fazlasını silebilen bir düğme, aynı derecede zayıf güvenlik önlemleriyle korunuyor.
Bu yüzden for-real’i yaptım.
Kayıtlı repo/organizasyonlarda silme düğmesine bastığınızda tıklamayı ele geçiriyor ve 20 karakterlik rastgele bir kodu elle yazmanız gerektiğinde yalnızca 5 dakika boyunca kilidi açıyor. Kopyala-yapıştır engellendi. Gerçekten eminseniz yazarsınız.
GitHub’ın zaten Danger Zone ile uyardığını biliyorum. Ama benim yaptığım hatayı bir kişinin bile yapmasını engelleyebilirse, bunun için harcanan azıcık zamanın fazlasıyla değerli olduğunu düşündüm.
Şu anda Web Store incelemesinde olduğu için yalnızca unpacked kurulum mümkün. Kurulum rehberi ve kaynak kod repo içinde var. Geri bildirimlere açığım.
10 yorum
YouTube kanalını silmeye çalışırken Google hesabını sildiğine dair bir hikâye duymuştum (neyse ki geri yüklenmiş).
O kişinin önünde de böyle bir prosedür olsaydı, acaba böyle bir facia önlenebilir miydi...?
Delete this repositoryileDelete this organizationşeylerini karıştırmak da mümkünmüş.Ayarlar arayüzü düşündüğümden daha benzer göründüğü için, dalgınken yapınca insanın kafası karışıyor;;
GitHub bunu Danger Zone olarak ayırmış olsa da, sonuçta insan hatası orada da yaşanabiliyor,,
Dikkatli olmak gerekecek..
https://httpie.io/blog/stardust Geçmişte benzer bir nedenle 54k star'ın sıfırlandığı bir olay da olmuştu; o zaman da UI sorunu eleştirilmişti, ama üzerinden şimdiden 4 yıl geçmiş.
Gerçekten insanın içine bir ürperti düşmüştür. Deneyiminizi paylaşıp sorunu önlemeye yönelik bir çözüm ortaya koymanız çok etkileyici.
Böylesine büyük ölçekli silmelerde bir tür bekleme süresi olması gerekmez mi diye düşünüyorum. Bilgisayardaki çöp kutusu gibi, asıl silmenin birkaç gün sonra gerçekleşmesini sağlayıp geri yüklemeye imkân veren bir mekanizma gerekli görünüyor.
Vay canına, insan gerçekten irkiliyor..
Sadece kopyala-yapıştırı engellemek yeterli gibi görünüyor.
Ben de düşünmeden kopyala-yapıştır yapıp silmiştim, o yüzden bu projede kopyala-yapıştır da engellendi. Yazıyı okuduğunuz için teşekkürler
İyi bir program paylaştığınız için teşekkürler. GitHub tarafının organizasyon veya hesap silmeyi kendi içinde 24-72 saat kadar geciktirmesi de iyi olurdu.