Pengantar

Selesai

Modul ini memperkenalkan Anda ke Paket GitHub, layanan hosting paket terintegrasi penuh dalam GitHub. Anda akan mempelajari cara menerbitkan, menginstal, menghapus, dan memulihkan paket sambil mengontrol izin dan visibilitas untuk manajemen paket yang aman.

Apa itu Paket GitHub?

Paket GitHub adalah layanan hosting paket perangkat lunak yang memungkinkan Anda menghosting paket, kontainer, dan dependensi lainnya langsung dalam GitHub. Ini menyediakan platform pusat untuk manajemen izin terintegrasi dan penagihan, menyederhanakan alur kerja pengembangan perangkat lunak.

Manfaat utama

  • Terintegrasi dengan GitHub: Paket hidup bersama kode sumber Anda di repositori.
  • Autentikasi terpadu: Gunakan kredensial dan izin yang sama dengan repositori Anda.
  • Beberapa registri: Dukungan untuk berbagai ekosistem paket dalam satu platform.
  • Alur kerja otomatis: Terbitkan paket secara otomatis dengan GitHub Actions.
  • Kontrol akses: Izin terperinci untuk paket publik, privat, dan internal.
  • Efektif biaya: Penyimpanan dan transfer gratis untuk paket publik, dengan penggunaan yang sudah termasuk dalam paket GitHub.

Registri paket yang didukung

Paket GitHub dapat menghosting paket untuk beberapa ekosistem:

  • npm: Paket JavaScript dan Node.js
  • RubyGems: Paket Ruby
  • Apache Maven: Paket Java menggunakan Maven
  • Gradle: Paket Java menggunakan Gradle
  • Docker: Image kontainer Docker
  • NuGet: Paket .NET
  • Registri kontainer: Dioptimalkan untuk kontainer, mendukung gambar Docker dan OCI

Cuplikan layar registri dan dukungan Paket GitHub.

Izin dan visibilitas paket

Paket GitHub memberi Anda fleksibilitas untuk mengontrol izin dan visibilitas untuk paket Anda:

  • Paket publik: Dapat diakses oleh siapa pun di internet tanpa autentikasi.
  • Paket privat: Hanya dapat diakses oleh pengguna dan tim dengan izin eksplisit.
  • Paket internal: Tersedia untuk semua anggota organisasi (hanya GitHub Enterprise).
  • Izin yang tercakup dalam repositori: Paket mewarisi izin dari repositorinya.
  • Izin terperinci: Paket registri kontainer mendukung kontrol akses independen.

Pewarisan izin: Untuk sebagian besar jenis paket, izin diwariskan dari repositori tempat paket diterbitkan. Untuk gambar kontainer, Anda dapat menentukan izin secara terpisah untuk akun pengguna atau organisasi tertentu.

Kemampuan integrasi

Anda dapat mengintegrasikan Paket GitHub dengan fitur GitHub lainnya:

  • API GitHub: Mengelola paket secara terprogram menggunakan REST dan GraphQL API.
  • Tindakan GitHub: Mengotomatiskan penerbitan paket dalam alur kerja CI/CD.
  • Webhook: Memicu alur kerja eksternal saat peristiwa paket terjadi.
  • Saran keamanan: Menerbitkan saran keamanan untuk kerentanan paket.

Kasus penggunaan

Paket GitHub sangat ideal untuk:

  • Distribusi paket privat: Bagikan pustaka internal dalam organisasi Anda.
  • Hosting paket publik: Mendistribusikan paket sumber terbuka ke komunitas.
  • Manajemen gambar kontainer: Simpan dan sebarkan gambar Docker untuk aplikasi.
  • Manajemen dependensi: Dependensi host dan versi untuk layanan mikro.
  • Integrasi CI/CD: Menerbitkan paket secara otomatis dari alur build.

Skenario: Memodernisasi manajemen paket

Bayangkan Anda bekerja untuk perusahaan pengembangan perangkat lunak yang memelihara beberapa pustaka dan aplikasi internal. Tim Anda saat ini menggunakan registri paket terpisah untuk ekosistem yang berbeda (npm, NuGet, Maven), masing-masing memerlukan kredensial, penagihan, dan manajemen yang berbeda. Ini menciptakan kompleksitas dan gesekan dalam alur kerja pengembangan Anda.

Dengan mengadopsi Paket GitHub, Anda dapat:

  • Hosting paket terpusat: Semua paket berada bersama kode sumber di GitHub.
  • Menyederhanakan autentikasi: Gunakan kredensial GitHub alih-alih mengelola beberapa akun registri.
  • Mengotomatiskan penerbitan: Terbitkan paket secara otomatis saat kode digabungkan atau ditandai.
  • Akses kontrol: Kelola siapa yang dapat melihat, mengunduh, dan menerbitkan paket.
  • Kurangi biaya: Manfaatkan penyimpanan gratis untuk paket publik dan termasuk penggunaan untuk paket privat.

Modul ini mengajarkan Anda cara memanfaatkan Paket GitHub untuk menyederhanakan alur kerja manajemen paket Anda.

Tujuan pembelajaran

Setelah menyelesaikan modul ini, siswa dan profesional dapat:

  • Terbitkan paket ke Paket GitHub dari repositori dan alur kerja CI/CD.
  • Instal paket dari Paket GitHub di lingkungan pengembangan dan produksi.
  • Hapus dan pulihkan paket menggunakan antarmuka web GitHub dan API.
  • Konfigurasikan kontrol akses dan visibilitas untuk paket publik, privat, dan internal.
  • Autentikasi ke Paket GitHub menggunakan token akses pribadi (PATs).
  • Pahami registri paket yang didukung dan kemampuannya.

Prasyarat

  • Memahami konsep DevOps: Keakraban dengan alur dan otomatisasi CI/CD.
  • Pengetahuan kontrol versi: Pengalaman dengan repositori Git dan GitHub.
  • Pengalaman manajemen paket: Pemahaman tentang manajer paket (npm, NuGet, Maven, atau Docker).
  • Akun GitHub: Akun GitHub aktif untuk latihan langsung. Jika Anda tidak memilikinya, lihat Bergabung dengan GitHub.
  • Repositori GitHub: Repositori untuk menguji operasi paket. Lihat Membuat repositori baru.