Skip to main content

Verbinden eines Repositorys mit einem Paket

Sie können ein Repository mit einem Paket auf GitHub verknüpfen.

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 ältere Pläne pro Repository verwenden, nicht auf Registrierungen zugreifen, die granulare Berechtigungen unterstützen, da diese Konten nach Repository abgerechnet werden. Die Liste der Registrierungen, die granulare Berechtigungen unterstützen, finden Sie unter "Informationen zu Berechtigungen für GitHub-Pakete". Weitere Informationen findest du unter GitHub-Pläne.

Wenn du ein Paket veröffentlichst, das für ein persönliches Konto oder eine Organisation gilt, ist das Paket standardmäßig nicht mit einem Repository verknüpft. Durch das Verbinden eines Pakets mit einem Repository werden auf der Angebotsseite des Pakets Informationen und Links aus dem Repository angezeigt, z. B. die Infodatei. Du kannst auch festlegen, dass das Paket seine Zugriffsberechtigungen vom verknüpften Repository erbt. Weitere Informationen findest du unter Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen.

Verknüpfen eines Repositorys mit einem benutzerspezifischen Paket auf GitHub

  1. Navigiere auf GitHub zur Hauptseite deines persönlichen Kontos.

  2. Klicke in der oberen rechten Ecke von GitHub auf dein Profilfoto und dann auf Dein Profil.

    Screenshot des Dropdownmenüs unter dem Profilbild von @octocat. „Dein Profil“ ist in dunklem Orange eingerahmt.

  3. Wähle auf der Profilseite in der Kopfzeile die Registerkarte Pakete aus.

  4. Suche nach dem Namen des Pakets, das du verwalten möchtest, und wähle es aus.

  5. Klicke unter deinen Paketversionen auf Repository verbinden.

  6. Wähle ein Repository aus, das mit dem Paket verknüpft werden soll, und klicke dann auf Repository verbinden.

Verknüpfen eines Repositorys mit einem organisationsspezifischen Paket auf GitHub

  1. Navigiere auf GitHub zur Hauptseite deiner Organisation.

  2. Wähle unter dem Namen deiner Organisation die Registerkarte Pakete aus.

    Screenshot der Profilseite von @octo-org. Die Registerkarte „Pakete“ ist orange umrandet.

  3. Suche nach dem Namen des Pakets, das du verwalten möchtest, und wähle es aus.

  4. Klicke unter deinen Paketversionen auf Repository verbinden.

  5. Wähle ein Repository aus, das mit dem Paket verknüpft werden soll, und klicke dann auf Repository verbinden.

Verbinden eines Repositorys mit einem Containerimage mithilfe der Befehlszeile

Hinweis: Wenn du ein Paket veröffentlichst, das mit einem Repository verknüpft ist, erbt das Paket automatisch die Zugriffsberechtigungen des verknüpften Repositorys, und GitHub Actions-Workflows im verknüpften Repository erhalten automatisch Zugriff auf das Paket, es sei denn, deine Organisation hat die automatische Vererbung von Zugriffsberechtigungen deaktiviert. Weitere Informationen findest du unter Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen.

  1. Füge in deinem Dockerfile diese Zeile hinzu, indem du OWNER und REPO durch deine Details ersetzt:

    LABEL org.opencontainers.image.source=https://github.com/OWNER/REPO
    

    Wenn Sie beispielsweise der/die Benutzer*in octocat sind und my-repo fügen Sie Ihrem Dockerfile folgende Zeile hinzu:

    LABEL org.opencontainers.image.source=https://github.com/octocat/my-repo
    

    Weitere Informationen findest du unter LABEL in der offiziellen Docker-Dokumentation und unter Vordefinierte Anmerkungsschlüssel im Repository opencontainers/image-spec.

  2. Erstelle das Containerimage. In diesem Beispiel wird ein Image aus dem Dockerfile im aktuellen Verzeichnis erstellt und der Imagename hello_docker zugewiesen.

    docker build -t hello_docker .
    
  3. Optional kannst du die Details des soeben erstellten Docker-Images überprüfen.

    $ docker images
    > REPOSITORY          TAG         IMAGE ID       CREATED         SIZE
    > hello_docker        latest      142e665b1faa   5 seconds ago   125MB
    > redis               latest      afb5e116cac0   3 months ago    111MB
    > alpine              latest      a6215f271958   5 months ago    5.29MB
    
  4. Weise deinem Docker-Image einen Namen und ein Hostingziel zu.

    docker tag IMAGE_NAME ghcr.io/NAMESPACE/NEW_IMAGE_NAME:TAG
    

    Ersetze NAMESPACE durch den Namen des persönlichen Kontos oder der Organisation, auf das bzw. die das Paket festgelegt werden soll.

    Beispiel:

    docker tag 38f737a91f39 ghcr.io/octocat/hello_docker:latest
    
  5. Wenn du noch nicht angemeldet bist, authentifiziere dich bei Container registry. Weitere Informationen findest du unter Arbeiten mit der Containerregistrierung.

    $ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin
    > Login Succeeded
    
  6. Pushe dein Containerimage an Container registry.

    docker push ghcr.io/NAMESPACE/IMAGE-NAME:TAG
    

    Zum Beispiel:

    docker push ghcr.io/octocat/hello_docker:latest
    

Aufheben der Verknüpfung eines Repositorys aus einem Paket auf GitHub

Note

Durch das Aufheben der Verknüpfung eines Pakets aus einem Repository werden die Repositoryinformationen von der Zielseite des Pakets entfernt und können sich auf das Zugriffsmuster auswirken, je nachdem, ob das Paket seine Zugriffsberechtigungen vom Repository erbt. Weitere Informationen findest du unter Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen. Dieses Verhalten gilt nicht für Apache Maven-Pakete, wie in "Informationen zu Berechtigungen für GitHub-Pakete" beschrieben.

  1. Navigieren Sie auf GitHub zur Einstellungsseite des Pakets, das Sie aufheben möchten.

  2. Auf der Seite "Paketeinstellungen" wird ein Abschnitt "Repositoryquelle" angezeigt. Wenn dieser Abschnitt nicht vorhanden ist, ist das Paket derzeit nicht mit einem Repository verknüpft.

  3. Klicken Sie in der oberen rechten Ecke des Abschnitts "Repositoryquelle" auf das Papierkorbsymbol.

Es ist möglich, dass der Repositoryquellabschnitt vorhanden ist, aber es ist kein Papierkorbsymbol vorhanden. Dies liegt daran, dass eine Repositoryquelle als Teil des verpackten Codes definiert wurde, d. h. eine package.json Datei, .gemspec Datei, jedoch nicht tatsächlich mit einem Repository auf GitHub verknüpft ist. Um das Paket mit einem Repository zu verknüpfen, müssen Sie die Schritte im obigen Abschnitt ausführen.

  1. Vergewissern Sie sich, dass Sie die Verknüpfung des Repositorys aus dem Paket mit dem Dialog aufheben möchten.

Migrieren eines Pakets zu einem anderen Repository

Wenn Sie ein Paket, das derzeit mit einem Repository verknüpft ist, mit einem anderen Repository verknüpfen möchten, können Sie dazu die Verknüpfung des Pakets mit dem aktuellen Repository aufheben und es mit dem neuen Repository verknüpfen.

  1. Führen Sie die Schritte zum Aufheben der Verknüpfung unter „Aufheben der Verknüpfung eines Repositorys mit einem Paket in GitHub“ aus.
  2. Führen Sie die Schritte zum Verknüpfen des Pakets mit dem neuen Repository unter „Verbinden eines Repositorys mit einem organisationsbezogenen Paket in GitHub“ oder unter „Verbinden eines Repositorys mit einem benutzerbezogenen Paket in GitHub“ aus.