Qu’est-ce que GitHub Packages ?

Effectué

Les packages GitHub (« GitHub Packages ») constituent un service de gestion de packages qui facilite la publication de packages publics ou privés à côté de votre code source.

Notes

Si vous ne connaissez pas déjà GitHub, consultez le module Learn intitulé Introduction à GitHub.

GitHub Packages est un registre de packages

Les packages GitHub vous permettent de partager les dépendances de votre projet au sein de votre organisation ou publiquement.

Quand vous travaillez sur un projet qui a des dépendances de packages, il est important pour vous de pouvoir leur faire confiance, de comprendre leur code et d’être en contact avec la communauté qui les a créés. Au sein des organisations, vous avez aussi besoin de trouver rapidement ce qui a été approuvé pour votre utilisation.

GitHub Packages utilisent la même interface GitHub bien connue pour rechercher des packages publics n’importe où sur GitHub, ou des packages privés au sein de votre organisation ou de vos référentiels.

Un gestionnaire de package standard

Les packages GitHub sont compatibles avec les clients de gestion de packages courants : vous pouvez donc publier des packages avec les outils de votre choix. Si votre dépôt est plus complexe, vous pouvez être amené à publier plusieurs packages de différents types. En outre, avec des webhooks ou avec GitHub Actions, vous pouvez personnaliser entièrement vos workflows de publication et de post-publication.

Vous publiez un package open source ? Plusieurs projets open source stockent leur code sur GitHub. Vous pouvez donc publier des préversions de vos packages à des fins de test au sein de votre communauté, puis promouvoir facilement des versions spécifiques dans le registre public de votre choix.

GitHub n p m package page, with description, and instructions about how to install it.

Au moment de l’écriture de cet article, GitHub Packages est compatible avec les gestionnaires de package suivants :

  • npm, un gestionnaire de package NodeJS
  • NuGet, le gestionnaire de package .NET
  • RubyGems, un gestionnaire de package Ruby
  • Maven et Gradle, deux gestionnaires de package pour Java

GitHub Packages est également un registre de conteneurs

Des applications complètes aux utilitaires CLI, les conteneurs sont une autre forme de distribution de code. Les packages GitHub vous permettent de publier et de distribuer des images conteneur. Une fois publiées (en public ou en privé), vous pouvez utiliser ces images à partir de n’importe quel emplacement, notamment :

  • Dans votre environnement de développement local
  • En tant qu’image de base de votre environnement de développement GitHub Codespaces
  • En tant qu’étape à exécuter dans votre workflow CI/CD (intégration continue/déploiement continu) avec GitHub Actions
  • Sur un serveur ou un service cloud

GitHub container image page, with image versions listing, statistics and instructions about how to install it.

Comparer les packages GitHub aux versions GitHub

Les packages GitHub sont utilisés pour publier des versions de vos bibliothèques dans un flux de package standard ou un registre de conteneurs. Ils sont conçus pour tirer parti des méthodes utilisées par le client de gestion des packages qui utilise ce flux, comme la liaison au référentiel dans lequel le package a été créé, ainsi que la version du code qui a été utilisée.

Les versions GitHub sont utilisées pour publier un ensemble de logiciels packagés, ainsi que des notes de publication et des liens vers des fichiers binaires. Vous pouvez télécharger directement ces versions à partir de leur URL unique et remonter à la validation (commit) spécifique à partir duquel elles ont été créées. Vous pouvez uniquement télécharger des versions au format de fichiers tarballs ou ZIP.

Identité unifiée et autorisations

Imaginons que vous travaillez sur un projet qui utilise GitHub pour héberger le code source : JavaScript pour le front-end avec npm et Java pour le back end. Vous gérez maintenant au moins trois ensembles différents d’informations d’identification utilisateur et d’autorisations pour les référentiels Git, npm et Maven.

Avec les packages GitHub, vous pouvez désormais utiliser des informations d’identification uniques pour votre référentiel de code source, votre registre npm privé, ainsi que votre registre privé Maven ou Gradle. Les packages publiés par le biais de GitHub héritent de la visibilité et des autorisations affectées au niveau du dépôt. Un nouveau membre de l’équipe a besoin d’un accès en lecture à un package et à son code ? Donnez-leur accès en lecture au dépôt et c’est fini !

Générer et publier des packages depuis GitHub

GitHub Actions est une autre fonctionnalité GitHub qui vous permet d’automatiser vos workflows logiciels. Vous pouvez générer, tester et déployer votre code directement depuis GitHub.

Conseil

Si vous souhaitez obtenir plus d’informations sur GitHub Actions, consultez le module Learn Créer des workflows d’intégration continue (CI) à l’aide de GitHub Actions.

En combinant GitHub Actions et GitHub Packages, vous pouvez créer un workflow qui va générer et tester votre code, puis le publier sur GitHub Packages en envoyant simplement le code à votre dépôt.

Dans l’unité suivante, nous allons voir comment utiliser notre workflow pour publier dans GitHub Packages et GitHub Container Registry.