Resumé
Dette modul introducerede dig til GitHub Packages, en fuldt integreret pakkehostingtjeneste i GitHub. Du har lært, hvordan du udgiver, installerer, sletter og gendanner pakker, samtidig med at du kontrollerer tilladelser og synlighed for sikker pakkehåndtering.
Det har du lært
Du har lært, hvordan du beskriver fordelene ved og brugen af:
Udgivelse af pakker
- Understøttede registre: npm, NuGet, Maven, Gradle, RubyGems, Docker og Container Registry.
- Godkendelse: Oprettelse og brug af personlige adgangstokens (PAT'er) med passende omfang.
- Arbejdsgang for udgivelse: Godkend, konfigurer pakkemetadata, og publicer ved hjælp af oprindelige værktøjer.
- NuGet-udgivelse: Brug af dotnet CLI og nuget.config filer til godkendelse.
- NPM-udgivelse: Konfiguration af .npmrc-filer og brug af npm-login til godkendelse.
- Automatisering: Udgivelse af pakker automatisk med GitHub Actions-arbejdsprocesser.
- Anbefalede fremgangsmåder: Versionsstyring, dokumentation, sikkerhedsmeddelelser og fuldstændighed af metadata.
Installation af pakker
- Opdagelse af pakker: Søgning globalt, i organisationer eller i lagre.
- Arbejdsgang for installation: Godkend til GitHub-pakker, og installer med indbyggede pakkeadministratorer.
- NuGet-installation: Brug af Visual Studio, dotnet CLI eller direkte .csproj-redigeringer.
- NPM-installation: Konfiguration af .npmrc-filer, package.json afhængigheder og understøttelse af flere organisationer.
- CI/CD-integration: Installation af pakker i GitHub Actions ved hjælp af GITHUB_TOKEN.
- Fejlfinding: Løsning af problemer med godkendelse, tilladelser og version.
Sletning og gendannelse af pakker
- Regler for sletning: Om begrænsninger for offentlige pakker (5.000 downloadgrænse).
- Krav til tilladelse: Administratoradgang for pakker med lageromfang.
- Sletning af versioner: Fjernelse af specifikke versioner, mens andre holdes tilgængelige.
- Sletning af hele pakker: Fjernelse af alle versioner fra GitHub-pakker.
- Gendannelsesbetingelser: 30-dages vindue, tilgængelighed af navneområde og opbevaring af tilladelser.
- API-administration: Brug af REST API til programmatiske pakkeoperationer.
- Anbefalede fremgangsmåder: Kommunikation, udfasning, henstandsperioder og revisionsspor.
Konfiguration af adgangskontrol og synlighed
- Tilladelser modeller: Lagernedarvede tilladelser i forhold til detaljerede tilladelser (containerregistreringsdatabasen).
- Muligheder for synlighed: Offentlige, private og interne (kun Enterprise) pakker.
- Tilladelser til containerbillede: Læse-, skrive- og administratorroller med uafhængig adgangskontrol.
- Bruger- og teamadgang: Tildeling af tilladelser til enkeltpersoner og teams.
- Bedste praksis for sikkerhed: Mindste privilegium, regelmæssige revisioner, teambaseret adgang og dokumentation.
- Organisatoriske strategier: Standardiseret synlighed, adgangsanmodningsprocesser og tilpasning af overholdelse.
Oversigt over nøglebegreber
Integration af GitHub-pakker
- Samlet platform: Pakker lever sammen med kildekoden i GitHub.
- Samme godkendelse: Brug GitHub-legitimationsoplysninger i stedet for separate registreringsdatabasekonti.
- Automatisering af arbejdsgange: Udgiv pakker automatisk med GitHub Actions.
- Flere registre: Understøttelse af npm, NuGet, Maven, Docker og mere i én platform.
Sikkerhed og adgangskontrol
- Detaljerede tilladelser: Container Registry understøtter uafhængig adgangskontrol.
- Nedarvede tilladelser fra lager: De fleste pakketyper følger lageradgang.
- PAT-godkendelse: Sikker godkendelse ved hjælp af personlige adgangstokens.
- Offentlig vs. privat: Vælg synlighed baseret på sikkerheds- og samarbejdsbehov.
Administration af pakkens livscyklus
- Forlagsvirksomhed: Automatiseret eller manuel udgivelse med indbyggede pakkeværktøjer.
- Versionering: Semantisk versionering til klar forandringskommunikation.
- Sletning: Fjern forældede eller sårbare versioner med sikkerhedsbegrænsninger.
- Restaurering: Gendan slettede pakker inden for 30-dages vindue.
Fordele ved automatisering
- CI/CD-integration: Problemfri integration med GitHub Actions.
- GITHUB_TOKEN: Automatisk godkendelse i arbejdsgange uden PAT'er.
- Konsekvent udgivelse: Hver udgivelse opretter automatisk en pakke.
- Kvalitets porte: Kør test, før du udgiver pakker.
Næste trin
Fortsæt læring
Forbedre dine GitHub Packages-færdigheder:
- Avanceret godkendelse: Implementer godkendelsesstrategier for hele organisationen.
- Pakke kampagne: Udvikl arbejdsgange til promovering af pakker gennem kvalitetsfaser.
- Monorepo-udgivelse: Udgiv flere pakker fra et enkelt lager.
- Sikkerhedsscanning: Integrer sårbarhedsscanning for udgivne pakker.
Udforsk avancerede scenarier:
- Understøttelse af flere registreringsdatabaser: Konfigurer projekter til at bruge flere pakkeregistre.
- Spejling af pakken: Cache eksterne pakker i GitHub-pakker.
- Brugerdefineret automatisering: Byg avancerede publiceringsarbejdsprocesser med GitHub Actions.
- Analyse af pakker: Spor brug og adoption af dine pakker.
Praktisk anvendelse
Begynd at implementere:
- Indstil godkendelse: Opret PAT'er med passende omfang til dit team.
- Udgiv første pakke: Vælg en registreringsdatabase, og udgiv en testpakke.
- Konfigurer forbrugere: Konfigurer projekter for at installere pakker fra GitHub-pakker.
- Automatiser udgivelse: Opret GitHub Actions-arbejdsprocesser til automatiseret publicering.
- Konfigurer adgangskontrol: Angiv synlighed og tilladelser baseret på sikkerhedsbehov.
- Dokumenter procedurer: Opret teamretningslinjer for pakkehåndtering.
Integration med DevOps-praksisser
GitHub-pakker i DevOps-arbejdsprocesser:
- Kontinuerlig integration: Byg og udgiv automatisk pakker ved commits.
- Kontinuerlig levering: Brug pakker som artefakter i udrulningspipelines.
- Afhængighedsstyring: Centraliser interne afhængigheder i GitHub-pakker.
- Versionskontrol: Spor pakkeversioner sammen med kodeversioner.
- Overholdelse af sikkerhed: Implementer adgangskontrol i overensstemmelse med organisationens politikker.
Lær mere
Officiel dokumentation
- Hurtig start til GitHub-pakker – Kom hurtigt i gang med GitHub-pakker.
- Lær GitHub-pakker – Omfattende vejledning til GitHub-pakker-koncepter.
- Arbejde med en GitHub-pakkeregistreringsdatabase – registreringsdatabasespecifikke vejledninger til alle understøttede pakketyper.
- Om tilladelser til GitHub-pakker – Om tilladelsesmodeller og adgangskontrol.
Registreringsdatabasens specifikke vejledninger
- Arbejde med npm-registreringsdatabasen – Komplet vejledning til administration af npm-pakker.
- Arbejde med NuGet-registreringsdatabasen – Komplet vejledning til administration af NuGet-pakker.
- Arbejde med Container Registry – Docker- og OCI-afbildningsstyring.
- Arbejde med Apache Maven-registreringsdatabasen - Maven-pakkehåndtering.
- Arbejde med Gradle-registreringsdatabasen - Gradle-pakkehåndtering.
Sikkerhed og bedste praksis
- Konfiguration af en pakkes adgangskontrol og synlighed - Administration af pakkesikkerhed.
- Sletning og gendannelse af en pakke – Administration af pakkens livscyklus.
- Udgivelse af en pakke – Bedste fremgangsmåder for pakkeudgivelse.
- Installation af en pakke – Bedste fremgangsmåder for pakkeforbrug.
API og automatisering
- GitHub-pakker API - REST API til programmatisk pakkestyring.
- Udgivelse af pakker med GitHub Actions – CI/CD-integrationseksempler.
- Brug af GitHub-pakker med GitHub-handlinger – Avancerede arbejdsprocesmønstre.
Fællesskab og støtte
- GitHub-dokumentation: Udforsk omfattende vejledninger og selvstudier.
- GitHub-fællesskab: Stil spørgsmål og få svar fra fællesskabet.
- GitHub Blog: Hold dig opdateret med de nyeste funktioner og meddelelser.
- GitHub-færdigheder: Interaktive læringsforløb til GitHub-funktioner.