Paket yükleme

Tamamlandı

GitHub Packages'tan paketleri yüklemek, GitHub'da barındırılan kitaplıkları, bağımlılıkları ve kapsayıcı görüntülerini kullanmanıza olanak tanır. Görüntüleme izniniz olan herhangi bir paketi yükleyebilir ve projede bağımlılık olarak kullanabilirsiniz.

Paketleri bulma

GitHub Packages , paketleri bulmak için birden çok yol sağlar:

Arama seçenekleri

  • Genel arama: GitHub'da tüm genel paketler arasında arama
  • Kuruluş araması: Belirli bir kuruluştaki paketleri bulma
  • Depo araması: Depodan yayımlanan paketlere göz atma
  • Paket türü filtresi: npm, NuGet, Maven, Docker vb.

Ayrıntılar için bkz. Paket arama.

Paket bilgileri

Bir paket bulduğunuzda , paket sayfası temel bilgiler sağlar:

  • Açıklama: Paketin yaptığı ve amacı
  • Yükleme yönergeleri: Paketi projenize ekleme
  • Sürüm geçmişi: Kullanılabilir sürümler ve sürüm notları
  • Bağımlılık: Gerekli paketler ve sürüm kısıtlamaları
  • Kullanım örnekleri: Yaygın senaryoları gösteren kod örnekleri
  • Lisans: Paketi kullanmak için yasal koşullar
  • İndirme istatistikleri: Paketin kaç kez yüklendiği

En iyi yöntem: Gereksinimleri, hataya neden olan değişiklikleri ve uyumluluğu anlamak için yüklemeden önce her zaman paketin yükleme ve açıklama yönergelerini okuyun.

Yükleme iş akışı

Paket yükleme işlemi, paket türünden bağımsız olarak tutarlı bir iki adımlı işlemi izler:

1. GitHub Paketlerde Kimlik Doğrulaması

Paket istemcinizi, bir kişisel erişim belirteci (PAT) ve uygun read:packages kapsamıyla GitHub Packages'a kimlik doğrulaması yapacak şekilde yapılandırın.

Kimlik doğrulama gereksinimleri:

  • Genel paketler: Genel paketler için bile kimlik doğrulaması gereklidir
  • Özel paketler: Uygun depo erişimine sahip PAT gerektirir
  • Kuruluş paketleri: Kuruluş üyeliği gerektirebilir
  • İç paketler: Yalnızca GitHub Enterprise kuruluşlarında kullanılabilir

2. Paketi yükleyin

Paketi projenize eklemek için paket istemcinizin yerel yükleme komutlarını (npm yükleme, dotnet add package, mvn install vb.) kullanın.

Yükleme denetim listesi:

  • Paket adı ve sürümünün doğru olduğunu doğrulama
  • Projenizin çerçeve sürümüyle uyumluluğu denetleme
  • Çakışmalar için bağımlılık ağacını gözden geçirme
  • Yüklemeden sonra paket işlevselliğini test edin
  • Belgeleri yeni bağımlılığı yansıtacak şekilde güncelleştirme

NuGet paketlerini yükleme

NuGet paketleriVisual Studio veya dotnet CLI kullanılarak yüklenebilir.

Yöntem 1: Visual Studio

Visual Studio, NuGet paketlerini yönetmek için grafik arabirim sağlar:

  1. NuGet Paket Yöneticisi'nin açılması:

    • Çözüm → Proje'→ genişletme
    • Bağımlılıklar'a sağ tıklayın
    • NuGet Paketlerini Yönet... öğesini seçin.

    NuGet paketlerini yönetmek için Visual Studio seçeneğinin ekran görüntüsü.

  2. Göz atın ve yükleyin:

    • Gözat sekmesine tıklayın
    • Paket adınızı arama
    • İstediğiniz sürümü seçin
    • Yükle'ye tıklayın

    NuGet paketlerini yönetme, Visual Studio'dan yükleme ve güncelleştirme ekran görüntüsü.

Birden çok kayıt defterindeki bağımlılıklara aynı anda göz atabilir, yükleyebilir ve güncelleştirebilirsiniz. Daha fazla bilgi için bkz. Proje bağımlılıklarını oluşturma ve kaldırma.

Yöntem 2: .csproj'un doğrudan düzenlenmesi

Paket başvurularını doğrudan proje dosyanıza ekleyebilirsiniz:

1. Adım: GitHub Paketlerde Kimlik Doğrulaması

nuget.config dosyanızı oluşturun veya güncelleştirin (kimlik doğrulaması ayrıntıları için yayımlama bölümüne bakın).

2. Adım: PackageReference Ekleme

.csproj dosyanıza PackageReference içeren bir ItemGroup ekleyin:

<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net8.0</TargetFramework>
        <PackageId>OctocatApp</PackageId>
        <Version>1.0.0</Version>
        <Authors>Octocat</Authors>
        <Company>GitHub</Company>
        <PackageDescription>This package adds an Octocat!</PackageDescription>
        <RepositoryUrl>https://github.com/OWNER/REPOSITORY</RepositoryUrl>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="OctokittenApp" Version="12.0.2" />
    </ItemGroup>
</Project>

Not

OctokittenApp değerini paket adınız ve 12.0.2 değerini kullanmak istediğiniz sürümle değiştirin.

3. Adım: Paketleri geri yükleme

Geri yükleme komutunu kullanarak paketleri yükleyin:

dotnet restore

Yöntem 3: dotnet CLI kullanma

dotnet add komutunu kullanarak paketleri yükleyebilirsiniz:

dotnet add package OctokittenApp --version 12.0.2 --source github

NuGet yüklemesi için en iyi yöntemler:

  • Pin sürümleri: Yeniden üretilebilir derlemeler için tam sürümleri belirtme
  • Merkezi paket yönetimini kullanın: Sürümleri Directory.Packages.props içinde birleştirme
  • Güvenlik açıklarını gözden geçirin: Yüklemeden önce güvenlik önerilerini denetleyin
  • Test uyumluluğu: Paketin hedef çerçevenizle çalıştığından emin olun

npm paketlerini yükleme

npm paketleri , GitHub Packages'ı kayıt defteri olarak belirtmek için bir .npmrc dosyası yapılandırmayı gerektirir.

.npmrc dosyasını yapılandırma

1. Adım: GitHub Paketlerde Kimlik Doğrulaması

~/.npmrc dosyanızı kimlik doğrulama belirtecinizle oluşturun veya güncelleştirin (kimlik doğrulaması ayrıntıları için Yayımlama bölümüne bakın).

2. Adım: .npmrc projesi oluşturma

package.json dosyanızla aynı dizindebir .npmrc dosyası oluşturun veya düzenleyin:

@OWNER:registry=https://npm.pkg.github.com

Not

OWNER değerini paketin sahibi olan kullanıcı veya kuruluş hesabının adıyla değiştirin.

3. Adım: .npmrc dosyasını depoya komit et

Tüm ekip üyelerinin aynı yapılandırmayı kullanması için .npmrc dosyasını deponuza ekleyin. Bkz. Depoya dosya ekleme.

package.json dosyasına bağımlılık ekleme

package.json paketi bağımlılık olarak içerecek şekilde yapılandırın:

{
  "name": "@my-org/server",
  "version": "1.0.0",
  "description": "Server app that uses the @octo-org/octo-app package",
  "main": "index.js",
  "author": "",
  "license": "MIT",
  "dependencies": {
    "@octo-org/octo-app": "1.0.0"
  }
}

Bağımlılık belirtimi:

  • Tam sürüm:"1.0.0" belirli bir sürümü yükler
  • Karakter aralığı:"^1.0.0" uyumlu küçük ve düzeltme güncellemelerini yükler
  • Tilde aralığı:"~1.0.0" yalnızca uyumlu düzeltme eki güncelleştirmelerini yükler
  • Sonuncu:"latest" en yeni sürümü yükler (üretim için önerilmez)

Paketi yükle

npm install komutunu çalıştırın:

npm install

Veya belirli bir paketi yükleyin:

npm install @octo-org/octo-app

Birden çok kuruluş

Birden çok kuruluştan paket yüklemeniz gerekiyorsa.npmrc dosyanıza ek satırlar ekleyin:

@first-org:registry=https://npm.pkg.github.com
@second-org:registry=https://npm.pkg.github.com
@third-org:registry=https://npm.pkg.github.com

Npm yüklemesi için en iyi yöntemler:

  • package-lock.json dosyasını kullanın: Ortamlar arasında tutarlı yüklemeler için kilit dosyasını ekleyin
  • Denetim bağımlılıkları: Güvenlik açıklarını denetlemek için komutunu çalıştırın npm audit
  • npm ci kullanın: CI/CD işlem hatlarında daha hızlı ve daha güvenilir yüklemeler için kullanın npm ci
  • Sürüm kısıtlamaları: Kararlılığı ve güncelleştirmeleri dengelemek için anlamsal sürüm aralıklarını kullanma
  • Önce özel kayıt defteri: Genel npm'den önce GitHub Paketlerini denetlemek için kapsamları yapılandırma

CI/CD işlem hatlarına yükleme

Paketleri GitHub Actions iş akışlarına aynı yöntemleri kullanarak yükleyebilirsiniz:

GitHub Actions'da npm

- uses: actions/setup-node@v4
  with:
    node-version: "18"
    registry-url: "https://npm.pkg.github.com"
    scope: "@OWNER"
- run: npm ci
  env:
    NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

GitHub Actions'ta NuGet

- uses: actions/setup-dotnet@v4
  with:
    dotnet-version: "8.0.x"
    source-url: https://nuget.pkg.github.com/OWNER/index.json
  env:
    NUGET_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: dotnet restore

GITHUB_TOKEN avantajları:

  • PAT gerekmez: İş akışlarında otomatik olarak kullanılabilir
  • Sınırlandırılmış izinler: İş akışının depo erişimiyle sınırlı
  • Otomatik döndürme: Jeton her iş akışı çalıştırıldığında yeniden üretilir
  • Güvenli: Hiçbir zaman günlüklerde veya artefaktlarda açığa çıkmaz

Yükleme sorunlarını giderme

Yaygın sorunlar ve çözümler:

Sorun Sebep Solution
401 Yetkisiz Eksik veya geçersiz PAT Kapsamı read:packages olan belirteci doğrula
404 Bulunamadı Paket adı veya kayıt defteri URL'si yanlış Paketin mevcut olup olmadığını ve sahibin doğru olup olmadığını denetleyin
403 Yasak Pakete erişim izni yok Erişim isteme veya kuruluş üyeliğini doğrulama
Sürüm bulunamadı İstenen sürüm yok Paket sayfasında kullanılabilir sürümleri denetleme
Bağımlılık çakışmaları Uyumsuz paket sürümleri Diğer bağımlılıkları güncelleyin veya çözüm yollarını kullanın

Ek kaynaklar

Daha fazla bilgi için bkz: