Skip to main content

Einführung in GitHub-Pakete

GitHub Packages ist ein Softwarepaket-Hostingdienst, mit dem du deine Softwarepakete privat oder öffentlich hosten und Pakete als Abhängigkeiten in deinen Projekten verwenden kannst.

Wer kann dieses Feature verwenden?

GitHub Packages ist verfügbar mit GitHub Free, GitHub Pro, GitHub Free für Organisationen, GitHub Team, GitHub Enterprise Cloud und GitHub Enterprise Server 3.0 oder höher.
GitHub Packages ist nicht verfügbar für private Repositorys im Besitz von Konten mit älteren Pro-Repository-Plänen. Außerdem können Konten, die Legacypläne pro Repository verwenden, nicht auf Registrierungen zugreifen, die differenzierte Berechtigungen unterstützen, da diese Konten nach Repository abgerechnet werden. Eine Liste dieser Registrierungen, die differenzierte Berechtigungen unterstützen, findest du unter Informationen zu Berechtigungen für GitHub-Pakete. Weitere Informationen findest du unter GitHub-Pläne.

Informationen zu GitHub Packages

GitHub Packages ist eine Plattform zum hosten und verwalten von Paketen, einschließlich Containern und anderen Abhängigkeiten. GitHub Packages kombiniert deinen Quellcode und deine Pakete an einem Ort, um eine integrierte Berechtigungsverwaltung und Abrechnung bereitzustellen, sodass du deine Software-Entwicklung auf GitHub zentralisieren kannst.

Du kannst GitHub Packages mit GitHub-APIs, GitHub Actions und Webhooks integrieren, um einen End-to-End-DevOps-Workflow zu erstellen, der deine Code-, CI- und Bereitstellungslösungen enthält.

GitHub Packages bietet verschiedene Paketregistrierungen für häufig verwendete Paket-Manager so wie npm, RubyGems, Apache Maven, Gradle, Docker und NuGet. Die Container registry von GitHub ist für Container optimiert und unterstützt Docker- und OCI-Images. Weitere Informationen zu den verschiedenen Paketregistrierungen, die GitHub Packages unterstützen, findest du unter Arbeiten mit einer GitHub Packages-Registrierung.

Du kannst die Infodatei eines Pakets sowie die Metadaten wie Lizensierung, Download-Statistiken, Versionsverlauf und mehr auf GitHub anzeigen. Weitere Informationen findest du unter Pakete anzeigen.

Übersicht über Paketberechtigungen

Die Berechtigungen für ein Paket können vom Repository geerbt werden, in dem das Paket gehostet wird, oder für bestimmte Benutzer*innen oder Organisationen definiert werden. Einige Registrierungen unterstützen nur Berechtigungen, die von einem Repository geerbt werden. Eine Liste dieser Registrierungen findest du unter Informationen zu Berechtigungen für GitHub-Pakete. Weitere Informationen zum Paketzugriff findest du unter Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen.

Übersicht über die Paketsichtbarkeit

Sie können Pakete in einem öffentlichen Repository (öffentliche Pakete) veröffentlichen, um sie für alle GitHub, oder in einem privaten Repository (private Pakete), um sie mit Mitarbeitern oder einer Organisation zu teilen.

Informationen zur Abrechnung für GitHub Packages

Die GitHub Packages-Nutzung ist für öffentliche Pakete kostenlos. Für private Pakete erhält jedes Konto auf GitHub.com abhängig von dem Produkt, das mit dem Konto verwendet wird, ein kostenloses Kontingent für Speicher und Datenübertragung. Jede Nutzung, die über die enthaltenen Kontingente hinausgeht, wird durch Ausgabenlimits gesteuert. Wenn du ein Kunde mit monatlicher Abrechnung bist, gilt für dein Konto ein Standardausgabenlimit von 0 US-Dollar (USD). Dadurch wird die zusätzliche Nutzung von Speicher oder Datenübertragungen verhindert, sobald die enthaltenen Beträge erreicht sind. Wenn die Abrechnung für Ihr Konto auf Rechnung erfolgt, gilt für Ihr Konto ein unbegrenztes Standardausgabenlimit. Weitere Informationen findest du unter Informationen zur Abrechnung für GitHub Packages.

Unterstützte Clients und Formate

GitHub Packages verwendet die nativen Paket-Tool-Befehle, mit denen du bereits vertraut bist, um Paketversionen zu veröffentlichen und zu installieren.

Unterstützung für Paketregistrierungen

SpracheBESCHREIBUNGPaketformatPaketclient
JavaScriptNode-Paket-Managerpackage.jsonnpm
RubyRubyGems-Paket-ManagerGemfilegem
JavaApache Maven-Projektmanagement und Verständnistoolpom.xmlmvn
JavaGradle-Build-Automatisierungs-Tool für Javabuild.gradle oder build.gradle.ktsgradle
.NETNuGet-Paketmanagement für .NETnupkgdotnet-CLI
Docker-ContainerverwaltungDockerfileDocker

Weitere Informationen zum Konfigurieren des Paketclients für die Verwendung mit GitHub Packages findest du unter Arbeiten mit einer GitHub Packages-Registrierung.

Weitere Informationen zu Docker und der Container registry findest du unter Arbeiten mit der Containerregistrierung.

Bei GitHub Packages authentifizieren

GitHub Packages unterstützt nur die Authentifizierung mit einem personal access token (classic). Weitere Informationen findest du unter Verwalten deiner persönlichen Zugriffstoken.

Du benötigst ein Zugriffstoken, um private, interne und öffentliche Pakete zu veröffentlichen, zu installieren und zu löschen.

Du kannst ein personal access token (classic) für die Authentifizierung bei GitHub Packages oder bei der GitHub-API verwenden. Wenn du ein personal access token (classic) erstellst, kannst du dem Token je nach Bedarf verschiedene Bereiche zuweisen. Weitere Informationen zu paketbezogenen Bereichen für ein personal access token (classic) findest du unter Informationen zu Berechtigungen für GitHub-Pakete.

Um dich bei einer GitHub Packages-Registrierung innerhalb eines GitHub Actions-Workflows zu authentifizieren, kannst du Folgendes verwenden:

  • GITHUB_TOKEN, um Pakete zu veröffentlichen, die mit dem Workflowrepository verbunden sind.
  • Ein personal access token (classic) (diesem muss mindestens der Bereich read:packages zugeordnet sein), um Pakete zu installieren, die zu anderen privaten Repositorys gehören (auf die GITHUB_TOKEN nicht zugreifen kann)

Weitere Informationen zum GITHUB_TOKEN, das in GitHub Actions-Workflows verwendet wird, findest du unter Automatische Tokenauthentifizierung.

Verwalten von Paketen

Du kannst ein Paket auf der GitHub-Benutzeroberfläche oder mithilfe der REST-API löschen. Weitere Informationen findest du unter Löschen und Wiederherstellen eines Pakets und REST-API-Endpunkte für Pakete. Für bestimmte Registrierungen kannst du GraphQL verwenden, um eine Version eines privaten Pakets zu löschen.

Du kannst die GitHub Packages-GraphQL-API nicht mit Registrierungen verwenden, die differenzierte Berechtigungen unterstützen. Informationen zu Registrierungen, die ausschließlich repositorybezogene Berechtigungen unterstützen und mit der GraphQL-API verwendet werden können, findest du unter Informationen zu Berechtigungen für GitHub-Pakete.

Wenn du die GraphQL-API zum Abfragen und Löschen privater Pakete verwendest, musst du das gleiche personal access token (classic) verwenden, das du zum Authentifizieren von GitHub Packages verwendest.

Weitere Informationen findest du unter Erstellen von Aufrufen mit GraphQL.

Du kannst Webhooks so konfigurieren, dass paketbezogene Ereignisse abonniert werden, so wie wenn ein Paket veröffentlicht oder aktualisiert wird. Weitere Informationen findest du unter Webhook-Ereignisse und -Nutzlasten.

Kontaktaufnahme mit dem Support

Wenn du Feedback oder Feature-Anfragen für GitHub Packages hast, verwende das GitHub Community-Forum.

Wenden Sie sich in den folgenden fällen über das GitHub-Supportportal zu GitHub Packages an uns:

  • Du erlebst etwas, das der Dokumentation widerspricht
  • Du hast unbestimmte oder unklare Fehler
  • Dein veröffentlichtes Paket enthält vertrauliche Daten, z. B. Verstöße gegen die Datenschutz-Grundverordnung (DSGVO), API-Schlüssel oder personenbezogene Informationen