Giriş

Tamamlandı

Bu modülde sizi, GitHub içinde tamamen entegre edilmiş bir paket barındırma hizmeti olan GitHub Packages ile tanıştırıyoruz. Güvenli paket yönetimi için izinleri ve görünürlüğü denetlerken paketleri yayımlamayı, yüklemeyi, silmeyi ve geri yüklemeyi öğreneceksiniz.

GitHub Packages nedir?

GitHub Packages , paketlerinizi, kapsayıcılarınızı ve diğer bağımlılıklarınızı doğrudan GitHub'da barındırmanıza olanak tanıyan bir yazılım paketi barındırma hizmetidir. Tümleşik izin yönetimi ve faturalama için merkezi bir platform sağlar ve yazılım geliştirme iş akışlarını kolaylaştırır.

Ana faydalar

  • GitHub ile tümleşik: Paketler depolarda kaynak kodunuzla birlikte bulunur.
  • Birleşik kimlik doğrulaması: Depolarınızla aynı kimlik bilgilerini ve izinleri kullanın.
  • Birden çok kayıt defteri: Tek bir platformda çeşitli paket ekosistemleri için destek.
  • Otomatik iş akışları: GitHub Actions ile paketleri otomatik olarak yayımlayın.
  • Erişim denetimi: Genel, özel ve iç paketler için ayrıntılı izinler.
  • Ekonomik: Kullanımı GitHub planlarına dahil olan genel paketler için ücretsiz depolama ve aktarım.

Desteklenen paket kayıt defterleri

GitHub Packages birden çok ekosistem için paket barındırabilir:

  • npm: JavaScript ve Node.js paketleri
  • RubyGems: Ruby paketleri
  • Apache Maven: Maven kullanan Java paketleri
  • Gradle: Gradle kullanan Java paketleri
  • Docker: Docker kapsayıcı görüntüleri
  • NuGet: .NET paketleri
  • Kapsayıcı kayıt defteri: Kapsayıcılar için iyileştirilmiş, Docker ve OCI görüntülerini destekler

GitHub Packages kayıt defterlerinin ve desteğin ekran görüntüsü.

Paket izinleri ve görünürlüğü

GitHub Packages, paketlerinizin izinlerini ve görünürlüğünü denetleme esnekliği sağlar:

  • Genel paketler: Kimlik doğrulaması olmadan İnternet'te herkes tarafından erişilebilir.
  • Özel paketler: Yalnızca açık izinlere sahip kullanıcılar ve ekipler tarafından erişilebilir.
  • İç paketler: Bir kuruluşun tüm üyeleri tarafından kullanılabilir (yalnızca GitHub Enterprise).
  • Depo kapsamlı izinler: Paketler kendi depolarından izinleri devralır.
  • Ayrıntılı izinler: Kapsayıcı kayıt defteri paketleri bağımsız erişim denetimini destekler.

İzin devralma: Çoğu paket türü için izinler, paketin yayımlandığı depodan devralınır. Kapsayıcı görüntüleri için, belirli kullanıcı veya kuruluş hesapları için izinleri ayrı olarak tanımlayabilirsiniz.

Tümleştirme özellikleri

GitHub Packages'i diğer GitHub özellikleriyle tümleştirebilirsiniz:

  • GitHub API'leri: REST ve GraphQL API'lerini kullanarak paketleri program aracılığıyla yönetin.
  • GitHub Actions: CI/CD iş akışlarında paket yayımlamayı otomatikleştirme.
  • Web Kancaları: Paket olayları gerçekleştiğinde dış iş akışlarını tetikleyin.
  • Güvenlik önerileri: Paket güvenlik açıkları için güvenlik danışmanları yayımlama.

Kullanım örnekleri

GitHub Packages şuler için idealdir:

  • Özel paket dağıtımı: Kuruluşunuzdaki iç kitaplıkları paylaşın.
  • Genel paket barındırma: Açık kaynak paketlerini topluluğa dağıtın.
  • Kapsayıcı görüntüsü yönetimi: Uygulamalar için Docker görüntülerini depolayın ve dağıtın.
  • Bağımlılık yönetimi: Mikro hizmetler için konak ve sürüm bağımlılıkları.
  • CI/CD tümleştirmesi: Derleme işlem hatlarından paketleri otomatik olarak yayımlayın.

Senaryo: Paket yönetimini modernleştirme

Birden çok iç kitaplık ve uygulama bulunduran bir yazılım geliştirme şirketinde çalıştığınızı düşünün. Ekibiniz şu anda her biri farklı kimlik bilgileri, faturalama ve yönetim gerektiren farklı ekosistemler (npm, NuGet, Maven) için ayrı paket kayıt defterleri kullanıyor. Bu, geliştirme iş akışınızda karmaşıklık ve uyuşma oluşturur.

GitHub Packages'ı benimseyerek şunları yapabilirsiniz:

  • Paket barındırmayı merkezileştirin: Tüm paketler GitHub'da kaynak koduyla birlikte bulunur.
  • Kimlik doğrulamayı basitleştirme: Birden çok kayıt defteri hesabını yönetmek yerine GitHub kimlik bilgilerini kullanın.
  • Yayımlamayı otomatikleştirme: Kod birleştirildiğinde veya etiketlendiğinde paketleri otomatik olarak yayımlayın.
  • Erişimi denetleme: Paketleri kimlerin görüntüleyebileceğini, indirebileceğini ve yayımlayabileceğini yönetin.
  • Maliyetleri azaltma: Genel paketler ve özel paketler için dahil edilen kullanım için ücretsiz depolamadan yararlanın.

Bu modülde, paket yönetimi iş akışınızı kolaylaştırmak için GitHub Packages'dan nasıl yararlanabileceğiniz öğretildi.

Öğrenme hedefleri

Bu modülü tamamladıktan sonra öğrenciler ve profesyoneller şunları yapabilir:

  • Depolardan ve CI/CD iş akışlarından GitHub Packages'a paket yayımlayın.
  • GitHub Packages paketlerini geliştirme ve üretim ortamlarında yükleyin.
  • GitHub web arabirimini ve API'sini kullanarak paketleri silin ve geri yükleyin.
  • Genel, özel ve iç paketler için erişim denetimini ve görünürlüğü yapılandırın.
  • Kişisel erişim belirteçlerini (PAT) kullanarak GitHub Packages'ta kimlik doğrulaması yapın.
  • Desteklenen paket kayıt defterlerini ve bunların özelliklerini anlama.

Önkoşullar

  • DevOps kavramlarını anlama: CI/CD işlem hatları ve otomasyon hakkında bilgi.
  • Sürüm denetimi bilgisi: Git ve GitHub depolarıyla ilgili deneyim.
  • Paket yönetimi deneyimi: Paket yöneticilerini (npm, NuGet, Maven veya Docker) anlama.
  • GitHub hesabı: Uygulamalı alıştırmalar için Etkin GitHub hesabı. Hesabınız yoksa bkz. GitHub'a Katılma.
  • GitHub deposu: Paket işlemlerini test etme deposu. Bkz. Yeni depo oluşturma.