Le stockage des livrables et des artefacts
Il existe plusieurs solutions pour stocker des livrables dont :
- Les gestionnaires d'artefact
- Le système de release du gestionnaire de code source
- Les dépôts publics des gestionnaires de dépendance
- Mise en garde sur la sécurité
Les gestionnaires d'artefact
Dans cette catégorie, nous trouverons par exemple Nexus Repository Manager qui a ajouté en version 3 le support d'un grand nombre de format.
Le système de release du gestionnaire de code source
Nous soulignerons la possibilité de stocker des livrables en annexe des dépôts GIT au niveau d'un nombre croissant de gestionnaire de code source :
En contrepartie d'un rôle toujours plus central pour le gestionnaire de code source, nous soulignerons le gain en matière de cohérence des droits entre le gestionnaire de code source et le dépôt d'artefact.
Les dépôts publics des gestionnaires de dépendance
A l'échelle des langages, nous trouverons des dépôts publics dédiés :
- npmjs.com pour NodeJS
- packagist.org pour PHP
- pypi.org pour Python
- Maven Central Repository pour Java
- ...
Nous noterons qu'il est possible de les utiliser pour publier des versions des bibliothèques
Mise en garde sur la sécurité
L'utilisation d'un gestionnaire de dépendances expose aux risques suivants :
- Une dépendance disponible publiquement peut être corrompue
- Une dépendance disponible publiquement peut venir remplacer une dépendance hébergée sur un dépôt privé (confusion de dépendance)
Il convient en conséquence de :
- Faire preuve de prudence dans le choix de ses dépendances
- Se prémunir contre le risque de confusion de dépendance avec une stratégie adaptée au gestionnaire de dépendance (pip, composer, npm, docker,...)