Inleiding

Voltooid

In deze module maakt u kennis met GitHub Packages, een volledig geïntegreerde pakkethostingservice in GitHub. U leert hoe u pakketten publiceert, installeert, verwijdert en herstelt terwijl u machtigingen en zichtbaarheid beheert voor beveiligd pakketbeheer.

Wat is GitHub Packages?

GitHub Packages is een hostingservice voor softwarepakketten waarmee u uw pakketten, containers en andere afhankelijkheden rechtstreeks in GitHub kunt hosten. Het biedt een centraal platform voor geïntegreerd machtigingenbeheer en facturering, het stroomlijnen van werkstromen voor softwareontwikkeling.

Belangrijkste voordelen

  • Geïntegreerd met GitHub: Pakketten bevinden zich naast uw broncode in opslagplaatsen.
  • Geïntegreerde verificatie: Gebruik dezelfde referenties en machtigingen als uw opslagplaatsen.
  • Meerdere registers: Ondersteuning voor verschillende pakketecosystemen in één platform.
  • Geautomatiseerde werkstromen: Pakketten automatisch publiceren met GitHub Actions.
  • Toegangsbeheer: Gedetailleerde machtigingen voor openbare, privé- en interne pakketten.
  • Kosteneffectieve: Gratis opslag en overdracht voor openbare pakketten, met gebruik dat is opgenomen in GitHub-abonnementen.

Ondersteunde pakketregisters

GitHub Packages kan pakketten hosten voor meerdere ecosystemen:

  • npm: JavaScript- en Node.js-pakketten
  • RubyGems: Ruby-pakketten
  • Apache Maven: Java-pakketten met Maven
  • Gradle: Java-pakketten met Gradle
  • Docker: Docker-containerafbeeldingen
  • NuGet: .NET-pakketten
  • Containerregister: Geoptimaliseerd voor containers, ondersteunt Docker- en OCI-images

Schermopname van GitHub Packages-registers en ondersteuning.

Pakketmachtigingen en zichtbaarheid

GitHub Packages biedt u flexibiliteit om machtigingen en zichtbaarheid voor uw pakketten te beheren:

  • Openbare pakketten: Toegankelijk voor iedereen op internet zonder verificatie.
  • Privépakketten: Alleen toegankelijk voor gebruikers en teams met expliciete machtigingen.
  • Interne pakketten: Beschikbaar voor alle leden van een organisatie (alleen GitHub Enterprise).
  • Machtigingen voor opslagplaatsbereik: Pakketten nemen machtigingen over van hun opslagplaats.
  • Gedetailleerde machtigingen: Containerregisterpakketten ondersteunen onafhankelijk toegangsbeheer.

Overname van machtigingen: Voor de meeste pakkettypen worden machtigingen overgenomen van de opslagplaats waar het pakket wordt gepubliceerd. Voor containerafbeeldingen kunt u machtigingen afzonderlijk definiëren voor specifieke gebruikers- of organisatieaccounts.

Integratiemogelijkheden

U kunt GitHub Packages integreren met andere GitHub-functies:

  • GitHub-API's: Programmatisch pakketten beheren met REST- en GraphQL-API's.
  • GitHub Actions: Automatiseer het publiceren van pakketten in CI/CD-werkstromen.
  • Webhooks: Externe werkstromen activeren wanneer pakket gebeurtenissen plaatsvinden.
  • Beveiligingsadviezen: Publiceer beveiligingsadviezen voor beveiligingsproblemen in pakketten.

Gebruikssituaties

GitHub Packages is ideaal voor:

  • Distributie van privépakketten: Interne bibliotheken binnen uw organisatie delen.
  • Hosting van openbaar pakket: Opensource-pakketten distribueren naar de community.
  • Beheer van containerinstallatiekopieën: Docker-installatiekopieën opslaan en implementeren voor toepassingen.
  • Afhankelijkheidsbeheer: Host- en versieafhankelijkheden voor microservices.
  • CI/CD-integratie: Pakketten automatisch publiceren vanuit build-pijplijnen.

Scenario: Pakketbeheer moderniseren

Stel dat u werkt voor een softwareontwikkelingsbedrijf dat meerdere interne bibliotheken en toepassingen onderhoudt. Uw team gebruikt momenteel afzonderlijke pakketregisters voor verschillende ecosystemen (npm, NuGet, Maven), die elk verschillende referenties, facturering en beheer vereisen. Dit zorgt voor complexiteit en wrijving in uw ontwikkelwerkstroom.

Door GitHub Packages te gebruiken, kunt u het volgende doen:

  • Centraliseer pakkethosting: Alle pakketten bevinden zich naast broncode in GitHub.
  • Verificatie vereenvoudigen: Gebruik GitHub-referenties in plaats van meerdere registeraccounts te beheren.
  • Publicatie automatiseren: Publiceer pakketten automatisch wanneer code wordt samengevoegd of gelabeld.
  • Toegangscontrole: Beheer wie pakketten kan bekijken, downloaden en publiceren.
  • Kosten verlagen: Maak gebruik van gratis opslag voor openbare pakketten en inbegrepen gebruik voor privépakketten.

In deze module leert u hoe u GitHub Packages kunt gebruiken om uw werkstroom voor pakketbeheer te stroomlijnen.

Leerdoelen

Na het voltooien van deze module kunnen studenten en professionals het volgende doen:

  • Publiceer pakketten naar GitHub Packages vanuit opslagplaatsen en CI/CD-werkstromen.
  • Installeer pakketten van GitHub Packages in ontwikkel- en productieomgevingen.
  • Verwijder en herstel pakketten met behulp van de GitHub-webinterface en API.
  • Configureer toegangsbeheer en zichtbaarheid voor openbare, privé- en interne pakketten.
  • Verifiëren bij GitHub Packages met behulp van persoonlijke toegangstokens (PAT's).
  • Meer informatie over ondersteunde pakketregisters en hun mogelijkheden.

Vereisten

  • Inzicht in DevOps-concepten: Bekendheid met CI/CD-pijplijnen en automatisering.
  • Kennis van versiebeheer: Ervaring met Git- en GitHub-opslagplaatsen.
  • Ervaring voor pakketbeheer: Inzicht in pakketbeheerders (npm, NuGet, Maven of Docker).
  • GitHub-account: Actief GitHub-account voor praktische oefeningen. Als u er nog geen hebt, raadpleegt u Join GitHub.
  • GitHub-opslagplaats: Een opslagplaats voor het testen van pakketbewerkingen. Zie Een nieuwe opslagplaats maken.