Skip to main content

Cette version de GitHub Enterprise Server n'est plus disponible depuis le 2024-03-26. Aucune publication de correctifs n’est effectuée, même pour les problèmes de sécurité critiques. Pour de meilleures performances, une sécurité améliorée et de nouvelles fonctionnalités, effectuez une mise à niveau vers la dernière version de GitHub Enterprise. Pour obtenir de l’aide sur la mise à niveau, contactez le support GitHub Enterprise.

À propos des autorisations pour les packages GitHub

Découvrez comment gérer les autorisations pour vos packages.

Les autorisations pour les packages peuvent être limitées à un utilisateur, à une organisation ou à un dépôt.

Autorisations granulaires pour les packages limités à l’utilisateur/l’organisation

Les packages avec des autorisations granulaires sont délimités à un compte personnel ou à une organisation. Vous pouvez modifier le contrôle d’accès et la visibilité d’un package séparément d’un référentiel connecté (ou lié) à un package.

Les registres GitHub Packages suivants prennent en charge les autorisations granulaires.

  • Container registry

Autorisations pour les packages limités au dépôt

Un package délimité au dépôt hérite des autorisations et de la visibilité du dépôt dans lequel le package est publié. Vous pouvez trouver un package limité à un référentiel en accédant à la page principale du référentiel et en cliquant sur le lien Packages à droite de la page.

Les registres GitHub Packages suivants prennent uniquement en charge les autorisations limitées au dépôt.

– Registre Docker (docker.pkg.github.com) – Registre npm

  • registre Apache Maven
  • Registre Gradle - Registre NuGet - Registre RubyGems

Pour les Container registry, vous pouvez choisir d’autoriser que les packages soient limités à un utilisateur ou à une organisation, ou liés à un dépôt. Pour obtenir des informations sur la migration vers le Container registry, consultez « Migration vers le registre de conteneurs à partir du registre Docker ».

Visibilité et autorisations d’accès pour les packages

Si un package appartient à un registre qui prend en charge les autorisations granulaires, toute personne disposant d’autorisations d’administrateur sur le package peut définir le package sur privé ou public, et peut accorder des autorisations d’accès pour le package qui sont distinctes des autorisations définies au niveau de l’organisation et du dépôt. Pour obtenir la liste des registres prenant en charge les autorisations granulaires, consultez « À propos des autorisations pour les packages GitHub ».

Dans la plupart des registres, pour extraire un package, vous devez vous authentifier avec un personal access token ou GITHUB_TOKEN, que le package soit public ou privé. Toutefois, dans Container registry, les packages publics autorisent l’accès anonyme et peuvent être extraits sans authentification ni connexion via l’interface CLI.

Quand vous publiez un package, vous bénéficiez automatiquement d’autorisations d’administrateur sur le package. Si vous publiez un package dans une organisation, toute personne ayant le rôle owner dans l’organisation obtient également des autorisations d’administrateur sur le package.

Pour les packages délimités à un compte personnel, vous pouvez attribuer un rôle d’accès à n’importe quelle personne. Pour les packages délimités à une organisation, vous pouvez attribuer un rôle d’accès à toute personne ou équipe de l’organisation.

AutorisationDescription de l’accès
LirePeut télécharger le package.
Peut lire les métadonnées du package.
WritePeut charger et télécharger ce package.
Peut lire et écrire des métadonnées de package.

Pour plus d’informations, consultez « Configuration du contrôle d’accès et de la visibilité d’un package ».

À propos des étendues et des autorisations des registres de packages

Pour utiliser ou gérer un package hébergé par un registre de packages, vous devez utiliser un personal access token avec l’étendue appropriée et votre compte personnel doit avoir les autorisations appropriées.

Par exemple :

  • Pour télécharger et installer des packages à partir d’un dépôt, votre personal access token doit avoir l’étendue read:packages et votre compte d’utilisateur doit avoir une autorisation en lecture.
  • Pour supprimer un package sur GitHub Enterprise Server, votre personal access token doit au moins avoir les étendues delete:packages et read:packages. L’étendue repo est également requise pour les packages limités au référentiel. Pour plus d’informations, consultez « Suppression et restauration d'un package ».
ÉtendueDescriptionAutorisation requise
read:packagesTélécharger et installer des packages de GitHub Packageslire
write:packagesCharger et publier des packages sur GitHub Packagesécrire
delete:packagesSupprimer les packages de GitHub Packagesadmin
repoCharger et supprimer des packages (avec write:packages ou delete:packages)écriture ou administrateur

Lorsque vous créez un workflow GitHub Actions, vous pouvez utiliser GITHUB_TOKEN pour publier et installer des packages dans GitHub Packages sans avoir à stocker ni à gérer un personal access token.

Pour plus d’informations, consultez :

À propos des transferts de dépôts

Vous pouvez transférer un dépôt à un autre compte personnel ou une autre organisation. Pour plus d’informations, consultez « Transfert d’un dépôt ».

Lorsque vous transférez un dépôt, GitHub peut transférer les paquets associés au dépôt, en fonction du registre auquel appartiennent les paquets.

  • Pour les registres qui prennent en charge les autorisations granulaires, les packages sont délimités à un compte personnel ou à une organisation, et le compte associé au package ne change pas quand vous transférez un dépôt. Si vous avez lié un package à un dépôt, le lien est supprimé lorsque vous transférez le dépôt à un autre utilisateur. Tous les GitHub Actions associés au dépôt perdent l’accès au package. Si le package a hérité de ses autorisations d’accès du dépôt lié, les utilisateurs perdent l’accès au package. Pour obtenir la liste de ces registres, consultez « Autorisations granulaires pour les packages délimités à l’utilisateur/l’organisation » ci-dessus.
  • Pour les registres qui prennent uniquement en charge les autorisations limitées au dépôt, les paquets sont publiés directement dans les dépôts, et GitHub transfère les paquets associés à un dépôt dans le cadre du transfert du dépôt. Toute utilisation facturable associée aux packages sera ensuite facturée au nouveau propriétaire du dépôt. Si le précédent propriétaire du dépôt est supprimé en tant que collaborateur sur le dépôt, il peut ne plus pouvoir accéder aux packages associés au dépôt. Pour obtenir la liste de ces registres, consultez « Autorisations pour les paquets limités au dépôt » ci-dessus.

Gestion de l’accès aux packages dans les workflows GitHub Actions

Pour garantir que vos workflows conservent l’accès à vos packages, assurez-vous que vous utilisez le jeton d’accès approprié à votre workflow et que vous avez activé l’accès GitHub Actions à votre package.

Pour plus d’informations conceptuelles sur GitHub Actions ou des exemples d’utilisation de packages dans les workflows, consultez « Gestion des packages GitHub en utilisant des workflows GitHub Actions ».

Jetons d’accès

  • Pour publier et installer les packages associés au dépôt de workflow, utilisez GITHUB_TOKEN.
  • Pour installer des packages associés à d’autres dépôts privés auxquels GITHUB_TOKEN ne peut pas accéder, utilisez un personal access token.

Pour plus d’informations sur le GITHUB_TOKEN utilisé dans les workflows GitHub Actions, consultez « Authentification par jeton automatique ».