Skip to main content

Informationen zu Berechtigungen für GitHub-Pakete

Hier erfährst du, wie du Berechtigungen für deine Pakete verwalten 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.

Die Berechtigungen für Pakete können entweder auf einen Benutzer/eine Organisation oder auf ein Repository ausgerichtet werden.

Differenzierte Berechtigungen für benutzer-/organisationsbezogene Pakete

Für Pakete mit differenzierten Berechtigungen wird ein persönliches Konto oder eine Organisation als Gültigkeitsbereich festgelegt. Du kannst die Zugriffssteuerung und Sichtbarkeit eines Pakets getrennt von einem Repository ändern, mit dem es verbunden (oder verknüpft) ist.

Die folgenden GitHub Packages-Registrierungen unterstützen differenzierte Berechtigungen:

  • Container registry
  • npm-Registrierung - NuGet-Registrierung - RubyGems-Registrierung

Berechtigungen für repositorybezogene Pakete

Ein Repository-bezogenes Paket erbt die Berechtigungen und Sichtbarkeit von dem Repository, in dem das Paket veröffentlicht wird. Du kannst ein auf ein Repository ausgerichtetes Paket finden, indem du zur Hauptseite des Repositorys wechselst und rechts auf der Seite auf den Link Pakete klickst. Weitere Informationen findest du unter Verbinden eines Repositorys mit einem Paket.

Die folgenden GitHub Packages-Registrierungen unterstützen nur repositorybezogene Berechtigungen.

  • Docker-Registrierung (docker.pkg.github.com)
  • Apache Maven-Registrierung
  • Gradle-Registrierung

Für andere Registrierungen kannst du festlegen, dass Pakete auf einen Benutzer oder eine Organisation ausgerichtet oder mit einem Repository verknüpft werden sollen.

Sichtbarkeit und Zugriffsberechtigungen für Pakete

Wenn ein Paket zu einer Registrierung gehört, die differenzierte Berechtigungen unterstützt, kann jede Person, die Administratorberechtigungen für das Paket hat, das Paket auf „privat“ oder „öffentlich“ festlegen und Zugriffsberechtigungen für das Paket erteilen. Diese sind unabhängig von den Berechtigungen, die auf Organisations- und Repositoryebene festgelegt sind. Eine Liste dieser Registrierungen, die differenzierte Berechtigungen unterstützen, findest du unter Informationen zu Berechtigungen für GitHub-Pakete.

In den meisten Registrierungen musst du dich zum Pullen eines Pakets authentifizieren – personal access token oder GITHUB_TOKEN –, unabhängig davon, ob das Paket öffentlich oder privat ist. In der Container registry erlauben öffentliche Pakete jedoch anonymen Zugriff und können ohne Authentifizierung oder Anmeldung über die CLI gepullt werden.

Hinweis: Wenn du ein Paket veröffentlichst, das mit einem Repository verknüpft ist, erbt das Paket standardmäßig seine Berechtigungen vom verknüpften Repository. Um auf die detaillierten Berechtigungseinstellungen des Pakets zuzugreifen, musst du die geerbten Berechtigungen des Pakets entfernen. Wenn du Besitzer*in einer Organisation bist, kannst du die automatische Vererbung von Berechtigungen für alle neuen Pakete deaktivieren, die auf deine Organisation ausgerichtet sind. Weitere Informationen finden Sie unter Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen und unter Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen.

Wenn du ein Paket veröffentlichst, erhältst du automatisch Administratorberechtigungen für dieses. Wenn du ein Paket in einer Organisation veröffentlichst, erhält jeder mit der Rolle owner in der Organisation auch Administratorberechtigungen für das Paket.

Für Pakete, die auf ein persönliches Konto ausgerichtet sind, kannst du jeder Person eine Zugriffsrolle zuweisen. Für Pakete, die auf eine Organisation ausgerichtet sind, kannst du jeder Person oder jedem Team in der Organisation eine Zugriffsrolle zuweisen.

Wenn Sie zum Verwalten Ihrer Pakete einen GitHub Actions-Workflow verwenden, können Sie mit mithilfe der Schaltfläche Repository hinzufügen unter „Actions-Zugriff verwalten“ in den Einstellungen des Pakets dem Repository, in dem der Workflow gespeichert ist, eine Zugriffsrolle zuweisen. Weitere Informationen findest du unter Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen.

BerechtigungZugriffsbeschreibung
LesenKann Paket herunterladen.
Kann Paketmetadaten lesen.
SchreibenKann dieses Paket hochladen und herunterladen.
Kann Paketmetadaten lesen und schreiben.
AdministratorKann dieses Paket hochladen, herunterladen, löschen und verwalten.
Kann Paketmetadaten lesen und schreiben.
Kann Paketberechtigungen erteilen.

Hinweis: Die Möglichkeit für GitHub Actions-Workflows, Pakete mithilfe der REST-API zu löschen und wiederherzustellen, befindet sich derzeit in der beta und kann noch geändert werden.

Weitere Informationen findest du unter Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen.

Informationen zu Bereichen und Berechtigungen für Paketregistrierungen

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

Wenn du ein von einer Paketregistrierung gehostetes Paket verwenden oder verwalten möchtest, musst du ein personal access token (classic) mit dem entsprechenden Gültigkeitsbereich verwenden, und dein persönliches Konto muss über entsprechende Berechtigungen verfügen.

Beispiel:

  • Um Pakete aus einem Repository herunterladen und installieren zu können, muss dein personal access token (classic) den Gültigkeitsbereich read:packages aufweisen, und dein Benutzerkonto muss über eine Leseberechtigung verfügen.
  • Um ein Paket in GitHub Enterprise Cloud löschen zu können, muss dein personal access token (classic) mindestens über die Gültigkeitsbereiche delete:packages und read:packages verfügen. Der repo-Umfang ist auch für repositorybezogene Pakete erforderlich. Weitere Informationen findest du unter Löschen und Wiederherstellen eines Pakets.
BereichBESCHREIBUNGErforderliche Berechtigung
read:packagesHerunterladen und Installieren von Paketen aus GitHub PackagesLesen
write:packagesHochladen und Veröffentlichen von Paketen in GitHub PackagesSchreiben
delete:packagesLöschen von Paketen in GitHub Packagesadmin
repoHochladen und Löschen von Paketen (zusammen mit write:packagesoder delete:packages)Schreib- oder Administratorberechtigung

Hinweis: Die Möglichkeit für GitHub Actions-Workflows, Pakete mithilfe der REST-API zu löschen und wiederherzustellen, befindet sich derzeit in der beta und kann noch geändert werden.

Wenn Sie einen GitHub Actions-Workflow erstellen, können Sie GITHUB_TOKEN zum Veröffentlichen, Installieren, Löschen und Wiederherstellen von Paketen in GitHub Packages verwenden, ohne ein personal access token zu speichern und zu verwalten.

Weitere Informationen findest du hier:

Informationen zur Übertragung von Repositorys

Du kannst ein Repository in ein anderes persönliches Konto oder eine Organisation übertragen. Weitere Informationen findest du unter Repository übertragen.

Wenn du ein Repository überträgst, kann GitHub auch die Pakete übertragen, die dem Repository zugeordnet sind. Dies hängt von der Registrierung ab, zu der die Pakete gehören.

  • Für Registrierungen, die differenzierte Berechtigungen unterstützen, sind Pakete auf ein persönliches Konto oder eine Organisation beschränkt, und das dem Paket zugeordnete Konto ändert sich nicht, wenn du ein Repository überträgst. Wenn du ein Paket mit einem Repository verknüpft hast, wird die Verknüpfung aufgehoben, wenn du das Repository an andere Benutzerinnen überträgst. Codespaces oder GitHub Actions-Workflows, die dem Repository zugeordnet sind, verlieren den Zugriff auf das Paket. Wenn das Paket seine Zugriffsberechtigungen vom verknüpften Repository geerbt hat, verlieren Benutzerinnen den Zugriff auf das Paket. Eine Liste dieser Registrierungen findest du oben unter Differenzierte Berechtigungen für benutzer-/organisationsbezogene Pakete.
  • Bei Registrierungen, die nur repositorybezogene Berechtigungen unterstützen, werden Pakete direkt in Repositorys veröffentlicht, und GitHub überträgt die Pakete, die einem Repository zugeordnet sind, bei der Repositoryübertragung. Der gesamte abrechenbare Verbrauch, der den Paketen zugeordnet ist, wird anschließend dem/der neuen Besitzer*in des Repositorys in Rechnung gestellt. Wenn der vorherige Repository-Besitzer als Mitarbeiter des Repositorys entfernt wird, kann er möglicherweise nicht mehr auf die Pakete zugreifen, die dem Repository zugeordnet sind. Eine Liste dieser Registrierungen findest du oben unter „Berechtigungen für Repository-bezogene Pakete“.

Verwalten des Zugriffs auf Pakete in GitHub Actions-Workflows

Um sicherzustellen, dass deine Workflows Zugriff auf deine Pakete erhalten, stelle sicher, dass du das richtige Zugriffstoken in deinem Workflow verwendest und dass du den GitHub Actions-Zugriff auf dein Paket aktiviert hast.

Weitere konzeptionelle Hintergründe zu GitHub Actions sowie Beispiele für die Verwendung von Paketen in Workflows findest du unter Verwalten von GitHub-Paketen mithilfe von GitHub Actions Workflows.

Zugriffstoken

Hinweis: Die Möglichkeit für GitHub Actions-Workflows, Pakete mithilfe der REST-API zu löschen und wiederherzustellen, befindet sich derzeit in der beta und kann noch geändert werden.

  • Um Pakete, die dem Workflow-Repository zugeordnet sind, zu veröffentlichen, zu installieren, zu löschen und wiederherzustellen, verwenden Sie bitte GITHUB_TOKEN.
  • Um Pakete zu installieren, die anderen privaten Repositorys zugeordnet sind, auf die GITHUB_TOKEN nicht zugreifen kann, muss ein personal access token (classic) verwendet werden.

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

GitHub Actions-Zugriff für Pakete mit präzisen Berechtigungen

Um sicherzustellen, dass deine Workflows Zugriff auf Pakete haben, die in Registrierungen gespeichert sind, die differenzierte Berechtigungen unterstützen, musst du GitHub Actions Zugriff auf die Repositorys gewähren, in denen dein Workflow ausgeführt wird. Du kannst diese Einstellung auf der Seite mit den Einstellungen für dein Paket finden. Weitere Informationen findest du unter Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen.