Private vs Internal vs Public Politikaları
Private vs Internal vs Public Policies
Bu derste neler öğreneceksin
- Repository görünürlük tiplerini karşılaştırmak
- Internal repo'ların Enterprise'a özgü avantajını açıklamak
- Görünürlük politikalarını enterprise ve org düzeyinde yapılandırmayı bilmek
GitHub’da repository görünürlüğü üç seçenekle yönetilir: public, private ve internal. GH-100, özellikle enterprise ortamlarda iç açık kaynak (innersource) için tasarlanan internal görünürlük tipini sıkça sınar.
Görünürlük Tipleri
| Tip | Kimler görebilir? | Enterprise gerekli mi? |
|---|---|---|
| Public | Herkes (GitHub hesabı olmayan bile) | Hayır |
| Private | Yalnızca davet edilenler | Hayır |
| Internal | Tüm enterprise üyeleri | Evet (GHEC veya GHES) |
Internal repo’lar, “innersource” modelini destekler: bir şirketteki tüm çalışanlar kodu görebilir ve fork edebilir (enterprise içinde), ancak dışarıya kapalıdır.
Internal Repo’nun Avantajları
- Innersource: Farklı ekiplerin birbirinin kodunu okuyup katkıda bulunmasına izin verir
- Fork edilebilir: Enterprise üyeleri internal repo’yu enterprise scope’u içinde fork edebilir
- Dış erişim yok: Public gibi görünmez, dışarıdan erişilemez
Sınav sorusu: “Farklı organizasyonlardaki mühendisler birbirinin kodunu okuyabilsin, ancak dışarıya kapalı kalsın. Ne kullanılmalı?” — Yanıt: Internal repositories
Enterprise Düzeyinde Görünürlük Politikası
Enterprise admin şu kısıtlamaları uygulayabilir:
Enterprise → Policies → Repositories
→ "Default repository visibility": Private / Internal / Public
→ "Allow forking of private repositories": Enable/Disable
→ "Allow members to change repository visibility": Enable/Disable
Bu politikalar tüm organizasyonlara uygulanır.
Repository Görünürlüğünü Değiştirme Riski
Bir repo’nun görünürlüğünü değiştirmek geri alınamaz etkilere yol açabilir:
- Private → Public: Tüm içerik kamuya açılır (commit geçmişi dahil)
- Public → Private: Fork’lar silinmez ama yeni fork alınamaz
- Internal → Public: Enterprise dışına çıkar
Bu yüzden enterprise admin, görünürlük değişikliğini restrict edebilir (yalnızca org owner’lar değiştirebilir).