Skip to main content

Connexion d’un dépôt à un package

Vous pouvez connecter un référentiel à un package sur GitHub.

Qui peut utiliser cette fonctionnalité ?

GitHub Packages est disponible avec GitHub Free, GitHub Pro, GitHub Free pour les organisations, GitHub Team, GitHub Enterprise Cloud et GitHub Enterprise Server 3.0 ou ultérieur.
GitHub Packages n’est pas disponible pour les référentiels privés appartenant à des comptes qui utilisent des plans par référentiel hérités. En outre, les comptes utilisant des plans hérités par référentiel ne peuvent pas accéder aux registres qui prennent en charge les autorisations granulaires, car ces comptes sont facturés par référentiel. Enterprise Managed Users n’ont pas d’allocation de stockage individuelle pour publier des packages dans l’espace de noms de leur compte, mais peuvent publier dans l’espace de noms d’une organisation. Pour plus d’informations sur Enterprise Managed Users, consultez « À propos d’Enterprise Managed Users ». Pour obtenir la liste des registres qui prennent en charge les autorisations granulaires, consultez « À propos des autorisations pour les packages GitHub. » Pour plus d’informations, consultez « Plans de GitHub ».

Quand vous publiez un package délimité à un compte personnel ou à une organisation, le package n’est pas lié à un dépôt par défaut. Si vous connectez un package à un dépôt, la page d’accueil du package affiche des informations et des liens venant du dépôt comme le fichier README. Vous pouvez également définir que le package doit hériter des autorisations d’accès à partir du référentiel lié. Pour plus d’informations, consultez « Configuration du contrôle d’accès et de la visibilité d’un package ».

Connexion d’un dépôt à un package délimité à l’utilisateur sur GitHub

  1. Sur GitHub, accédez à la page principale de votre compte personnel.

  2. En haut à droite de GitHub, cliquez sur votre photo de profil, puis sur Votre profil.

    Capture d’écran du menu déroulant sous l’image de profil de @octocat. « Votre profil » est délimité en orange foncé.

  3. Dans la page de votre profil, dans l’en-tête, cliquez sur l’onglet Packages.

  4. Recherchez le nom du package que vous souhaitez gérer et cliquez dessus.

  5. Sous les versions de votre package, cliquez sur Connecter un dépôt.

  6. Sélectionnez un dépôt à lier au package et cliquez sur Connecter le dépôt.

Connexion d’un dépôt à un package délimité à l’organisation sur GitHub

  1. Sur GitHub, accédez à la page principale de votre organisation.

  2. Sous le nom de votre organisation, cliquez sur l’onglet Packages.

    Capture d’écran de la page de profil de @octo-org. L’onglet « Packages » est mis en évidence avec un encadré orange.

  3. Recherchez le nom du package que vous souhaitez gérer et cliquez dessus.

  4. Sous les versions de votre package, cliquez sur Connecter un dépôt.

  5. Sélectionnez un dépôt à lier au package et cliquez sur Connecter le dépôt.

Connexion d’un dépôt à une image conteneur à l’aide de la ligne de commande

Remarque : Si vous publiez un package lié à un dépôt, le package hérite automatiquement des autorisations d’accès du dépôt lié, tandis que les workflows GitHub Actions du dépôt lié accèdent automatiquement au package, sauf si votre organisation a désactivé l’héritage automatique des autorisations d’accès. Pour plus d’informations, consultez « Configuration du contrôle d’accès et de la visibilité d’un package ».

  1. Dans votre Dockerfile, ajoutez cette ligne, en remplaçant OWNER et REPO par vos informations :

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

    Par exemple, si vous êtes l’utilisateur octocat et propriétaire de my-repo ajoutez cette ligne à votre Dockerfile :

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

    Pour plus d’informations, consultez « LABEL » dans la documentation Docker officielle et « Clés d’annotation prédéfinies » dans le dépôt opencontainers/image-spec.

  2. Générez votre image conteneur. Cet exemple génère une image à partir du fichier Dockerfile dans le répertoire actif et attribue à l’image le nom hello_docker.

    docker build -t hello_docker .
    
  3. Si vous le souhaitez, passez en revue les détails de l’image Docker que vous venez de créer.

    $ 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. Attribuez un nom et une destination d’hébergement à votre image Docker.

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

    Remplacez NAMESPACE par le nom du compte personnel ou de l’organisation auquel vous souhaitez que le package soit délimité.

    Par exemple :

    docker tag 38f737a91f39 ghcr.io/octocat/hello_docker:latest
    
  5. Si ce n’est déjà fait, authentifiez-vous auprès du Container registry. Pour plus d’informations, consultez « Utilisation du registre de conteneurs ».

    $ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin
    > Login Succeeded
    
  6. Poussez votre image conteneur vers le Container registry.

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

    Par exemple :

    docker push ghcr.io/octocat/hello_docker:latest
    

Dissociation d'un référentiel d'un package sur GitHub

Note

La dissociation d'un package d'un référentiel supprime les informations relatives au référentiel de la page de destination du package et peut affecter le modèle d'accès selon que le package hérite ou non de ses autorisations d'accès du référentiel. Pour plus d’informations, consultez « Configuration du contrôle d’accès et de la visibilité d’un package ». Ce comportement ne s’applique pas aux packages Apache Maven, comme indiqué dans « À propos des autorisations pour les packages GitHub ».

  1. Sur GitHub, accédez à la page de configuration du Package que vous souhaitez dissocier.

  2. Sur la page Paramètres du package, vous verrez une section Source du référentiel. Si cette section n'est pas présente, alors le package n'est pas encore lié à un référentiel.

  3. Cliquez sur l'icône de la corbeille dans le coin supérieur droit de la section Source du référentiel.

Il est possible que la section Source du référentiel existe, mais qu'il n'y ait pas d'icône de corbeille. Cela est dû au fait qu'une source de référentiel a été définie comme faisant partie du code packagé, c'est-à-dire un fichier package.json, un fichier .gemspec, mais elle n'est pas réellement liée à un référentiel sur GitHub. Pour lier le package à un référentiel, vous devez suivre les étapes de la section ci-dessus.

  1. Confirmez que vous souhaitez dissocier le référentiel du package à l'aide de la boîte de dialogue.

Migration d’un package vers un autre référentiel

Si un package est actuellement lié à un référentiel et que vous souhaitez le lier à un autre référentiel, vous pouvez le faire en dissociant le package du référentiel actuel et en le liant au nouveau référentiel.

  1. Suivez les étapes pour le dissocier, consultez « Dissocier un référentiel d’un package sur GitHub ».
  2. Suivez les étapes pour lier le package au nouveau référentiel, consultez « Connecter un référentiel à un package défini par l’organisation sur GitHub » ou « Connecter un référentiel à un package défini par l’utilisateur sur GitHub ».