GitHub kuruluşları ve izinleri nasıl çalışır?
Önceki ünitede, kullanıcıların GitHub ile kimliklerini doğrulamanın farklı yollarını keşfettiniz. Bu ünitede her hiyerarşik düzey için izinler hakkında bilgi edineceksiniz:
- Depo izinleri
- Ekip izinleri
- Kuruluş izinleri
- Kurumsal izinler
Depo izin düzeyleri
Belirli izin düzeyleri atayarak her depoya erişimi özelleştirebilirsiniz. Beş standart depo düzeyinde izin vardır:
- Okuma: Projenizi görüntülemek veya tartışmak isteyen kod içermeyen katkıda bulunanlar için önerilir. Bu düzey, depodaki içeriği görüntülemesi gereken ancak gerçekten katkı veya değişiklik yapması gerekmeyen herkes için uygundur.
- Üçleme: Yazma erişimi olmadan sorunları ve pull request'leri proaktif olarak yönetmesi gereken katkıda bulunanlar için önerilir. Bu düzey, kodu değiştirmeden sorunları ve tartışmaları izleyen proje yöneticileri için kullanışlıdır.
- Yazma: Projenize aktif rol oynayan katkıda bulunanlar için önerilir. Yazma, çoğu geliştirici için standart izindir.
- Bakım: Depoyu hassas veya yıkıcı eylemlere erişim olmadan yönetmesi gereken proje yöneticileri için önerilir.
- Yönetici: Güvenliği yönetme veya bir depoyu silme gibi hassas ve yıkıcı eylemler de dahil olmak üzere projeye tam erişime ihtiyacı olan kişiler için önerilir. Bu kişiler depo sahipleri ve yöneticileridir.
Kuruluş üyelerine, dış işbirlikçilere ve ekiplere bir kuruluşun sahip olduğu depolara farklı erişim düzeyleri verebilirsiniz. Her izin düzeyi, depo içeriğine ve ayarlarına aşamalı olarak daha fazla erişim verir. Projeye gerekenden daha fazla erişim vermeden her kişinin veya ekibin projenizdeki rolüne en uygun düzeyi seçin.
Yöneticiler ayrıca GitHub Enterprise'da özel roller oluşturabilir ve bu temel rollerden birini gerektiğinde ek izinlerle genişletebilir.
Depo çatallama nedir?
"Fork yapmak, kendi GitHub hesabınız altında başka birinin deposunun kişisel kopyasını oluşturmanın bir yoludur." Kendi sürümünüzü özgün projeyi etkilemeden özgürce değiştirebileceğiniz şekilde bir depoyu forkladığınızda elde edersiniz. Bu işlem, açık kaynağa katkıda bulunmaya veya değişikliklerle güvenli bir şekilde deneme yapmaya yönelik yaygın bir iş akışıdır.
Ayrıca, genellikle "yukarı akış" deposu olarak adlandırılan özgün depodaki değişiklikleri çekerek çatalınızı güncel tutabilirsiniz.
Deponun çatalı şöyle yapılır:
GitHub.com'da bir kopyasını oluşturmak istediğiniz deponun ana sayfasına gidin.
Sağ üst köşede Çatal'ı seçin.
Çatal için bir sahip seçin (kişisel hesabınız veya bir kuruluş).
İsteğe bağlı olarak, çatallanmış depoyu yeniden adlandırın veya tüm dalları ekleyin.
Çatal oluştur'u seçin.
Çatallama İzinlerini Yönetme (Yöneticiler İçin)
Kuruluşa ait depolar için, yöneticiler depoların çatallanmasına izin verilip verilemeyeceğini denetleyebilir.
- Genel depolar: Çatal oluşturma işlemine her zaman izin verilir.
- Özel depolar: Çatal oluşturma devre dışı bırakılabilir veya yalnızca kuruluş üyeleriyle sınırlı olacak şekilde ayarlanabilir.
- İç depolar: Bunlar yalnızca aynı kurumsal hesap içinde klonlanabilir.
Çatal ayarlarını yapılandırmak için:
Kuruluş deposunun Ayarları'na gidin.
Sol kenar çubuğunda, Erişim'in altında Üye ayrıcalıkları'na tıklayın.
Depo forklama seçeneklerini bulun ve gerektiğinde güncelleyin.
GitHub Organizasyonunun fork izinlerini gösteren ekran görüntüsü.
İpucu
Özel bir depo için çatal oluşturmayı devre dışı bırakırsanız, kimse (kuruluş üyeleri dahil) çatalı oluşturamaz.
Daha fazla bilgi edinmek için Depo çatalı oluşturma ile ilgili GitHub Docs makalesine bakın.
Depo İçgörülerini Görüntüleme
GitHub'daki depo içgörüleri projenizin etkinliklerini, katkılarını ve bağımlılıklarını izlemek ve analiz etmek için güçlü bir yol sunar. Bu içgörülerden yararlanarak proje durumunu izleyebilir, performans sorunlarını tanımlayabilir ve güvenliği sağlayabilirsiniz. Bu bölüm, depo içgörülerine erişme adımları boyunca size yol gösterir ve bunları etkili bir şekilde kullanmak için en iyi yöntemleri sağlar.
Depo İçgörülerini Görüntüleme Adımları
- GitHub'daki depoya gidin.
- Depo adının altında İçgörüler sekmesine tıklayın.
- İçgörüler sekmesinde aşağıdaki bölümleri keşfedin:
- Katkıda Bulunanlar: Her katkıda bulunan tarafından yapılan işlemeler, eklemeler ve silme işlemleri dahil olmak üzere zaman içindeki katkıların grafiğini görüntüleyin.
- Trafik: Benzersiz ziyaretçiler ve sayfa görünümleri de dahil olmak üzere depo trafiğini izleyin.
- İşlemeler: İşleme etkinliğini zaman içinde analiz edin.
- Kod Sıklığı: Zaman içinde eklenen ve silinen satır sayısını izleyin.
- Bağımlılık Grafiği: Deponuzun bağımlılıklarını görüntüleyin ve olası güvenlik açıklarını belirleyin.
Depo İçgörülerini Kullanmak için En İyi Yöntemler
- Katkıları İzleme: Etkin katkıda bulunanları ve deponun en çok dikkat çeken alanlarını belirlemek için Katkıda Bulunanlar bölümünü kullanın.
- Trafiği İzleme: Kullanıcıların deponuzla nasıl etkileşime geçtiğini anlamak ve etkileşim eğilimlerini belirlemek için Trafik bölümünü kullanın.
- Güvenlik Açıklarını Giderme: Deponuzun güvenli kaldığından emin olmak için Bağımlılık Grafiği'ni düzenli olarak gözden geçirin.
Depo içgörülerini kullanarak işbirliği, güvenlik ve proje yönetimini geliştirmek için veri odaklı kararlar alabilirsiniz.
Kullanıcıların Depo Erişimi Alma Yolları
Depo izinlerinin listesine göre kullanıcının eylemleri
Bir kullanıcının bir depodaki etkin izinleri aşağıdakiler gibi çeşitli faktörlerden etkilenir:
- Depo Rolü: (örneğin, Yönetici, Yazma, Okuma)
- Ekip Üyeliği: (örneğin, bir ekipten devralınan izinler)
- Kuruluş Üyeliği: (örneğin, varsayılan kuruluş izinleri, SSO gereksinimleri)
Bu farklı izin kaynaklarını birleştirdiğinizde GitHub kullanıcıya verilen en yüksek erişim düzeyini uygular. Örneğin, bir kullanıcının bir ekip aracılığıyla Okuma erişimi varsa ancak doğrudan ortak çalışan olarak atanmış bir Yazma erişimi de mevcutsa, bu kullanıcı fiilen Yazma izinlerine sahip olur.
Depo Üyeliği Seçenekleri
Bir kullanıcı bir depoya erişim izni alarak birçok şekilde işbirlikçi olabilir:
| Üyelik Türü | Açıklama |
|---|---|
| Doğrudan Ortak Çalışan | Depoya belirli bir role (Okuma, Önceliklendirme, Yazma, Bakım veya Yönetici) açıkça eklenir. Dış katkıda bulunanlar veya küçük ekipler için önerilir. |
| Ekip Üyeliği | Kullanıcı, ekip üyeliği aracılığıyla depo erişimini devralır. Ekip izinleri genellikle tutarlı, ölçeklenebilir yönetim için kuruluş düzeyinde ayarlanır. |
| Kuruluş Varsayılan İzinleri | Depo bir kuruluşun parçasıysa, tüm kuruluş üyeleri için varsayılan izin düzeyi (örneğin, Yok, Okuma) olabilir. Sahipler, belirli ekipler veya kullanıcılar için bu varsayılanları geçersiz kılabilir. |
| Dış Ortak Çalışan | Kuruluşun üyesi olmayan ancak bir depoya açık erişimi olan bir kullanıcı. Yükleniciler, serbest çalışanlar veya sınırlı erişime ihtiyaç duyan açık kaynak katkıda bulunanlar için kullanışlıdır. |
Depo Erişimini İzleme ve Denetleme
Bir depoya erişimi olan kişilerin düzenli olarak denetlenmesi, uygun güvenlik ve uyumluluk sağlar. Önerilen bazı adımlar ve araçlar şunlardır:
Depo Ayarlarında Erişimi Görüntüle:
- Ayarlar > Erişimi yönet 'e gidin (depo için).
- İzin düzeyleriyle birlikte kullanıcı ve ekip listesini gözden geçirin.
Kuruluş Denetim Günlüğü (GitHub Enterprise veya Kuruluş düzeyi):
- Kuruluş sahipleri üyelik, depo erişimi ve izinlerdeki değişiklikleri Denetim günlüğünde görüntüleyebilir.
- Daha odaklanmış bir görünüm için olayları depo adına veya erişim değişikliklerine göre filtreleyin.
Kurumsal Denetim Günlüğü (GitHub Enterprise):
- Birden çok kuruluşu yönetiyorsanız, tüm kuruluşlardaki ve depolardaki değişiklikleri izlemek için Kurumsal hesabın denetim günlüğünü kullanın.
- Bu özellikle uyumluluk raporlaması veya büyük ölçekli güvenlik gözden geçirmeleri için değerlidir.
Otomatik Betik Yazma:
- Ortak çalışanları, ekipleri ve izinleri program aracılığıyla listelemek için GitHub REST API'sini veya GraphQL API'sini kullanın.
- Anomalileri sürekli izlemek ve belirlemek amacıyla betikleri CI/CD işlem hattınıza veya güvenlik panolarınıza entegre edin.
İpucu: Tüm kod değişiklikleri için ek bir güvenlik ve hesap verebilirlik katmanı sağlamak amacıyla dal koruma kurallarını ve gerekli incelemeleri ayarlayın.
Takım izin düzeyleri
GitHub kuruluşundaki ekip, paylaşılan depolar üzerinde işbirliği yapan bir kullanıcı grubudur. Teams, aynı anda birden çok depoya tutarlı izinler uygulayarak erişim yönetimini ve iletişimi kolaylaştırmaya yardımcı olur. Başlıca avantajlar şunlardır:
- Merkezi Erişim Denetimi: Her kullanıcıyı tek tek yönetmek yerine depo izinlerini (örneğin, Okuma, Yazma) tüm takıma atayın.
- Yapılandırılmış İşbirliği: Daha verimli işbirliği için üyeleri departmana, projeye veya role göre düzenleyin.
- Görünürlük ve İletişim: Her ekibin kendi tartışma panosu olabilir ve bu da güncelleştirmeleri paylaşmayı ve çalışmaları koordine etmelerini kolaylaştırır.
Teams, aynı anda birkaç ilgili kullanıcıya depo izinleri atamak için kolay bir yol sağlar. Bir alt ekibin üyeleri de üst ekibin izin ayarlarını devralır ve şirketin doğal yapısına göre izinleri art arda eklemek için kolay bir yol sağlar.
Ekip düzeyinde iki izin düzeyi vardır:
| İzin düzeyi | Açıklama |
|---|---|
| Üye | Ekip üyeleri, kuruluş üyeleriyle aynı yetenek kümesine sahiptir |
| Bakımcı | Ekip bakımcıları, ekip üyelerinin yapabilecekleri her şeyi yapabilir ve ayrıca: - Ekibin adını, açıklamasını ve görünürlüğünü değiştirin. - Ekibin ana ve alt ekipleri değiştirmesini isteyin. - Ekip profili resmini ayarlayın. - Ekip tartışmalarını düzenleyin ve silin. - Kuruluş üyelerini ekleyin ve ekipten kaldırın. - Ekip üyelerini ekip bakımcı iznine sahip olacak şekilde yükseltin. - Ekibin depolara erişimini kaldırın. - Ekip için kod gözden geçirme atamasını yönetin. - Çekme istekleri için zamanlanmış hatırlatıcıları yönetin. |
Ayrıca kuruluş sahibi, kuruluşun herhangi bir üyesini bir ekibin bakımcısı olacak şekilde yükseltebilir.
Yönetmekte olduğunuz bir depoya erişimi denetlemek için, ayarlarınızda deponuza erişimi olan ekiplerin ve kullanıcıların birleşik listesini görüntüleyebilirsiniz:
GitHub, ekiplere atanabilecek çeşitli izin düzeyleri sunar. Bir takıma bir depoya erişim izni verdiğinizde, aşağıdaki izin modellerinden birini seçebilirsiniz:
İzin Modelleri
| İzin Düzeyi | Açıklama | En Uygun |
|---|---|---|
| Okuma | Kullanıcılar depoyu görüntüleyebilir ve kopyalayabilir. Sorunları ve çekme isteklerini açabilir ve bunlar üzerine yorum yapabilir. | Salt okunur veya gözden geçirme erişimi yetkisine ihtiyaç duyan kişiler. |
| Önceliklendirme | Kullanıcılar sorunları ve çekme isteklerini (örneğin, etiketleme, atama, yorum yapma) yönetebilir. Değişiklikler depoya gönderilemiyor. | Koda katkıda bulunmadan sorunları önceliklendirmesi ve düzenlemesi gereken proje yöneticileri veya katkıda bulunanlar. |
| Yaz | Kullanıcılar, korumalı dallar hariç, dallara itebilir. Sorunları ve çekme isteklerini yönetebilir. | Kod işlemek veya belgeleri güncellemek gereken etkin katkıda bulunanlar. |
| Sürdürmek | Kullanıcılar depo ayarlarını, sorunlarını ve çekme isteklerini yönetebilir. Depo silinemiyor veya aktarılamıyor. | Rutin depo yönetimini işleyen ancak tam yönetici hakları gerektirmeyen proje bakımcıları. |
| Yönetici | Kullanıcılar, izinleri ayarlama, depoyu silme ve tüm ayarları yönetme dahil olmak üzere depo üzerinde tam denetime sahiptir. | Üst düzey yönetim erişimine ihtiyaç duyanlar. |
Bahşiş: Her zaman En Az Ayrıcalık İlkesi'ni izleyin; her ekibin görevlerini etkili bir şekilde gerçekleştirmesi için gereken en düşük izin düzeyini atayın. Bu yaklaşım, yanlışlıkla veya yetkisiz değişiklik riskini azaltır.