À propos de GitHub Packages
GitHub Packages est une plateforme permettant d’héberger et de gérer des packages, y compris des conteneurs et d’autres dépendances.
GitHub Packages combine votre code source et vos packages à un emplacement unique pour fournir la gestion et la facturation des autorisations intégrées, afin de centraliser votre développement logiciel sur GitHub.
Vous pouvez intégrer GitHub Packages avec les API de GitHub, GitHub Actions, et les webhooks pour créer un workflow DevOps de bout en bout qui inclut votre code, votre intégration continue et vos solutions de déploiement.
GitHub Packages offre différents registres de packages pour les gestionnaires de packages couramment utilisés, tels que npm, RubyGems, Apache Maven, Gradle, Docker et NuGet.
GitHub
Container registry est optimisé pour les conteneurs et prend en charge les images Docker et OCI. Pour plus d’informations sur les différents registres de packages pris GitHub Packages en charge, consultez [AUTOTITLE](/packages/working-with-a-github-packages-registry).
Vous pouvez afficher le fichier README d’un package, ainsi que les métadonnées telles que les licences, les statistiques de téléchargement, l’historique des versions, etc GitHub. Pour plus d’informations, consultez « Affichage de packages ».
Vue d’ensemble des autorisations d’un package
Les autorisations d’un package sont héritées du dépôt dans lequel le package est hébergé, ou peuvent être définies pour des utilisateurs ou des organisations spécifiques. Certains registres prennent uniquement en charge les autorisations héritées d’un dépôt. Pour obtenir la liste de ces registres, consultez À propos des autorisations pour les packages GitHub. Pour plus d’informations sur l’accès aux packages, consultez Configuration du contrôle d’accès et de la visibilité d’un package.
Vue d’ensemble de la visibilité d’un package
Vous pouvez publier des packages dans un référentiel public (packages publics) à partager avec tout GitHub, ou dans un référentiel privé (packages privés) à partager avec des collaborateurs ou une organisation.
À propos des artefacts liés pour les organisations
Il linked artifacts page s'agit d'une vue alternative à laquelle vous pouvez également accéder dans la section « Packages » des paramètres d'une organisation.
Comme GitHub Packages, le linked artifacts page vous permet de collecter des informations sur les builds de votre organisation en un seul endroit. Les équipes peuvent utiliser le linked artifacts page pour rechercher le code source d’un artefact, les détails de la génération et l’historique du déploiement.
Contrairement à GitHub Packages, linked artifacts page n’héberge pas les fichiers paquet ou image eux-mêmes. Au lieu de cela, il fournit une source faisant autorité pour les métadonnées associées à chaque package ou image.
Votre organisation peut bénéficier de l’utilisation du linked artifacts page soit :
-
**Parallèlement**GitHub Packages, comme vue complémentaire axée sur les aspects de conformité et de sécurité liées à la consommation des packages -
**En guise d’alternative,**GitHub Packages vous permettant de stocker vos packages sur un registre externe de votre choix tout en conservant la visibilité des packages sur GitHub
Pour plus d’informations, consultez « À propos des artefacts liés ».
À propos de la facturation pour GitHub Packages
L’utilisation de GitHub Packages est gratuite pour les packages publics.
Pour les packages privés, chaque compte sur GitHub bénéficie d’un certain volume de stockage et de transfert de données gratuits, déterminé par le plan du compte. Toute utilisation au-delà des montants inclus est contrôlée par des budgets.
Si votre compte ne dispose pas d’un mode de paiement valide, l’utilisation sera bloquée dès que vous aurez épuisé votre quota.
Si vous disposez d’un mode de paiement valide, les dépenses peuvent être limitées par un ou plusieurs budgets. Vérifiez les budgets définis pour votre compte afin de vous assurer qu'ils correspondent à vos besoins d'utilisation. Consultez Configurer des budgets pour contrôler les dépenses liées aux produits facturés à l’usage.
Pour plus d’informations, consultez « facturation des packages GitHub ».
Clients et formats pris en charge
GitHub Packages utilise les commandes d’outils de package natives que vous connaissez déjà pour publier et installer des versions de package.
Prise en charge des registres de packages
| Langage | Description | Format du package | Client de package |
|---|---|---|---|
| JavaScript | Gestionnaire de paquets npm | package.json | npm |
| Ruby | Gestionnaire de package RubyGems | Gemfile | gem |
| Java | Outil de gestion de projets et de compréhension Apache Maven | pom.xml | mvn |
| Java | Outil d’automatisation de construction Gradle pour Java |
`build.gradle` ou `build.gradle.kts` | `gradle` |
| .NET | Gestion des packages NuGet pour .NET | nupkg |
dotnet Interface en Ligne de Commande (CLI) |
| N/A | Gestion des conteneurs Docker | Dockerfile | Docker |
Pour plus d’informations sur la configuration de votre client de package à utiliser avec GitHub Packages, consultez Utilisation d’un registre GitHub Packages.
Pour plus d’informations sur Docker et le Container registry, consultez Utilisation du registre de conteneurs.
Authentification à GitHub Packages
Remarque
GitHub Packages prend uniquement en charge l’authentification à l’aide d’un personal access token (classic). Pour plus d’informations, consultez « Gestion de vos jetons d’accès personnels ».
Vous avez besoin d’un jeton d’accès pour publier, installer et supprimer des packages privés, internes et publics.
Vous pouvez utiliser un personal access token (classic) pour vous authentifier auprès de GitHub Packages ou de l’API GitHub. Quand vous créez un personal access token (classic), vous pouvez l’attribuer à différentes étendues selon vos besoins. Pour plus d’informations sur les étendues liées aux packages pour un personal access token (classic), consultez À propos des autorisations pour les packages GitHub.
Pour vous authentifier sur un registre GitHub Packages dans un workflow GitHub Actions, vous pouvez utiliser :
GITHUB_TOKENpour publier des packages associés au dépôt du workflow.- Un personal access token (classic) avec au moins
read:packagesla possibilité d'installer des paquets associés à d'autres référentiels privés (GITHUB_TOKENpeut être utilisé si le référentiel a un accès en lecture au paquet. Consultez Configuration du contrôle d’accès et de la visibilité d’un package.
Pour plus d’informations sur GITHUB_TOKEN utilisé dans les flux de travail GitHub Actions, consultez Utiliser GITHUB_TOKEN pour l’authentification dans les flux de travail.
Gérer les packages
Vous pouvez supprimer un package dans l’interface GitHub utilisateur ou à l’aide de l’API REST. Pour plus d'informations, voir Suppression et restauration d'un package et Points de terminaison d’API REST pour les packages. Pour certains registres, vous pouvez utiliser GraphQL pour supprimer une version d'un paquet privé.
Vous ne pouvez pas utiliser l'API GraphQL GitHub Packages GraphQL avec les registres qui prennent en charge les autorisations granulaires. Pour les registres qui prennent uniquement en charge les autorisations limitées au référentiel et qui peuvent être utilisés avec l’API GraphQL, consultez À propos des autorisations pour les packages GitHub.
Lorsque vous utilisez l’API GraphQL pour interroger et supprimer des packages privés, vous devez utiliser le même personal access token (classic) que celui que vous utilisez pour vous authentifier auprès GitHub Packagesde .
Pour plus d’informations, consultez Création d’appels avec GraphQL.
Vous pouvez configurer des webhooks pour vous abonner à des événements liés à un package, par exemple lorsqu’un package est publié ou mis à jour. Pour plus d’informations, consultez Événements et charges utiles du webhook.
Contact du support
Si vous avez des commentaires ou des demandes de fonctionnalités pour GitHub Packages, utilisez une GitHub Community discussion.
Contactez-nous via Portail de support GitHub au sujet de GitHub Packages si :
- Vous rencontrez un élément qui contredit la documentation
- Vous rencontrez des erreurs vagues ou peu claires
- Votre package publié contient des données sensibles, telles que des violations du RGPD, des clés API ou des informations d’identification personnelle