Memasang paket

Selesai

Menginstal paket dari Paket GitHub memungkinkan Anda mengonsumsi pustaka, dependensi, dan gambar kontainer yang dihosting di GitHub. Anda dapat menginstal paket apa pun yang memiliki izin untuk melihat dan menggunakannya sebagai dependensi dalam proyek Anda.

Menemukan Paket

Paket GitHub menyediakan beberapa cara untuk menemukan paket:

Opsi pencarian

  • Pencarian global: Cari di semua paket publik di GitHub
  • Pencarian organisasi: Menemukan paket dalam organisasi tertentu
  • Pencarian repositori: Menelusuri paket yang diterbitkan dari repositori
  • Filter jenis paket: Filter menurut npm, NuGet, Maven, Docker, dll.

Untuk detailnya, lihat Mencari paket.

Informasi paket

Saat Anda menemukan paket, halaman paket menyediakan informasi penting:

  • Deskripsi: Apa yang dilakukan paket dan tujuannya
  • Instruksi penginstalan: Cara menambahkan paket ke proyek Anda
  • Riwayat versi: Versi dan catatan rilis yang tersedia
  • Dependensi: Paket dan batasan versi yang diperlukan
  • Contoh penggunaan: Sampel kode memperlihatkan skenario umum
  • Lisensi: Ketentuan hukum untuk menggunakan paket
  • Unduh statistik: Berapa kali paket telah diinstal

Praktik terbaik: Selalu baca instruksi penginstalan dan deskripsi paket sebelum menginstal untuk memahami persyaratan, melanggar perubahan, dan kompatibilitas.

Alur kerja penginstalan

Menginstal paket mengikuti proses dua langkah yang konsisten terlepas dari jenis paket:

1. Autentikasi ke Paket GitHub

Konfigurasikan klien paket Anda untuk mengautentikasi dengan Paket GitHub menggunakan token akses pribadi (PAT) dengan read:packages cakupan.

Persyaratan autentikasi:

  • Paket publik: Autentikasi diperlukan bahkan untuk paket publik
  • Paket privat: Memerlukan PAT dengan akses repositori yang sesuai
  • Paket organisasi: Mungkin memerlukan keanggotaan organisasi
  • Paket internal: Hanya tersedia dalam organisasi GitHub Enterprise

2. Pasang paket

Gunakan perintah instalasi bawaan untuk klien paket Anda (npm install, dotnet tambahkan paket, mvn install, dll.) untuk menambahkan paket ke proyek Anda.

Daftar periksa penginstalan:

  • Verifikasi nama dan versi paket sudah benar
  • Periksa kompatibilitas dengan versi kerangka kerja proyek Anda
  • Meninjau pohon dependensi untuk konflik
  • Menguji fungsionalitas paket setelah penginstalan
  • Perbarui dokumentasi untuk mencerminkan dependensi baru

Menginstal paket NuGet

Paket NuGet dapat diinstal menggunakan Visual Studio atau dotnet CLI.

Metode 1: Visual Studio

Visual Studio menyediakan antarmuka grafis untuk mengelola paket NuGet:

  1. Buka Manajer Paket NuGet:

    • Perluas Proyek → Solusi
    • Klik kanan pada Dependensi
    • Pilih Kelola Paket NuGet...

    Cuplikan layar opsi Visual Studio untuk mengelola paket NuGet.

  2. Telusuri dan instal:

    • Klik tab Telusuri
    • Cari nama paket Anda
    • Pilih versi yang Anda inginkan
    • Klik Instal

    Cuplikan layar cara mengelola paket NuGet, menginstal dan memperbarui dari Visual Studio.

Anda dapat menelusuri, menginstal, dan memperbarui dependensi dari beberapa registri secara bersamaan. Untuk informasi selengkapnya, lihat Membuat dan menghapus dependensi proyek.

Metode 2: Mengedit .csproj secara langsung

Anda dapat menambahkan referensi paket langsung ke file proyek Anda:

Langkah 1: Mengautentikasi ke Paket GitHub

Buat atau perbarui file nuget.config Anda (lihat bagian Penerbitan untuk detail autentikasi).

Langkah 2: Tambahkan PackageReference

Tambahkan ItemGroup dengan PackageReference di file .csproj Anda:

<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>

Nota

Ganti OctokittenApp dengan nama paket Anda dan 12.0.2 dengan versi yang ingin Anda gunakan.

Langkah 3: Pulihkan paket

Instal paket menggunakan perintah pemulihan :

dotnet restore

Metode 3: Menggunakan dotnet CLI

Anda dapat menginstal paket menggunakan perintah tambahkan dotnet :

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

Praktik terbaik untuk penginstalan NuGet:

  • Sematkan versi: Tentukan versi yang tepat untuk build yang dapat direproduksi
  • Gunakan manajemen paket pusat: Mengonsolidasikan versi di Directory.Packages.props
  • Tinjau kerentanan: Periksa saran keamanan sebelum menginstal
  • Kompatibilitas pengujian: Pastikan paket berfungsi dengan kerangka kerja target Anda

Menginstal paket npm

Paket npm memerlukan konfigurasi file .npmrc untuk menentukan Paket GitHub sebagai registri.

Mengonfigurasi file .npmrc

Langkah 1: Mengautentikasi ke Paket GitHub

Buat atau perbarui file ~/.npmrc Anda dengan token autentikasi Anda (lihat bagian Penerbitan untuk detail autentikasi).

Langkah 2: Buat proyek .npmrc

Dalam direktori yang sama dengan file package.json Anda, buat atau edit file .npmrc :

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

Nota

Ganti OWNER dengan nama akun pengguna atau organisasi yang memiliki paket.

Langkah 3: Menerapkan .npmrc ke repositori

Tambahkan file .npmrc ke repositori Anda sehingga semua anggota tim menggunakan konfigurasi yang sama. Lihat Menambahkan file ke repositori.

Menambahkan dependensi ke package.json

Konfigurasikan package.json untuk menyertakan paket sebagai dependensi:

{
  "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"
  }
}

Spesifikasi dependensi:

  • Versi yang tepat:"1.0.0" menginstal versi tertentu
  • Rentang karier:"^1.0.0" menginstal pembaruan minor/patch yang kompatibel
  • Rentang tilde:"~1.0.0" menginstal pembaruan patch yang kompatibel saja
  • Terbaru:"latest" menginstal versi terbaru (tidak disarankan untuk produksi)

Pasang paketnya

Jalankan perintah npm install :

npm install

Atau instal paket tertentu:

npm install @octo-org/octo-app

Beberapa organisasi

Jika Anda perlu menginstal paket dari beberapa organisasi, tambahkan baris tambahan ke file .npmrc Anda:

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

Praktik terbaik untuk penginstalan npm:

  • Gunakan package-lock.json: Menerapkan lockfile untuk penginstalan yang konsisten di seluruh lingkungan
  • Pemeriksaan ketergantungan: Jalankan npm audit untuk memeriksa kerentanan
  • Gunakan npm ci: Dalam alur CI/CD, gunakan npm ci untuk penginstalan yang lebih cepat dan lebih andal
  • Batasan versi: Menggunakan rentang versi semantik untuk menyeimbangkan stabilitas dan pembaruan
  • Registri privat terlebih dahulu: Mengonfigurasi cakupan untuk memeriksa Paket GitHub sebelum npm publik

Menginstal dalam alur CI/CD

Anda dapat menginstal paket di alur kerja GitHub Actions menggunakan metode yang sama:

npm dalam GitHub Actions

- 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 }}

NuGet dalam GitHub Actions

- 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

Manfaat GITHUB_TOKEN:

  • Tidak diperlukan PAT: Tersedia secara otomatis dalam alur kerja
  • Izin lingkup terbatas: Terbatas pada akses repositori alur kerja
  • Rotasi otomatis: Token diregenerasi untuk setiap eksekusi alur kerja
  • Aman: Tidak pernah terekspos dalam log atau artefak

Pemecahan masalah penginstalan

Masalah dan solusi umum:

Masalah Sebab Solution
401 Tidak Sah PAT hilang atau tidak valid Memverifikasi bahwa token memiliki read:packages cakupan
404 Tidak ditemukan Nama paket atau URL registri salah Periksa apakah paket ada dan pastikan pemiliknya benar.
403 Dilarang Tidak ada izin untuk mengakses paket Meminta akses atau memverifikasi keanggotaan organisasi
Versi tidak ditemukan Versi yang diminta tidak ada Periksa versi yang tersedia pada halaman paket
Konflik dependensi Versi paket yang tidak kompatibel Memperbarui dependensi lain atau menggunakan resolusi

Sumber daya tambahan

Untuk informasi selengkapnya, lihat: