Github a livré en open source son outil Licensed, une bibliothèque gem de Ruby qui met en cache et vérifie l'état de licence des dépendances dans les référentiels Git. Licensed a permis aux ingénieurs de GitHub qui utilisent des logiciels open source d’identifier des problèmes potentiels avec les dépendances de licence dès le commencement du cycle de développement. L'outil signale toute dépendance nécessitant une révision. Selon la définition de GitHub, une dépendance est un progiciel externe utilisé dans une application et une source de dépendance, une classe qui peut énumérer les dépendances d'une application.

Voici comment fonctionne l'outil Licensed de GitHub et ce qu’il fait :

- Licensed met en cache et vérifie les métadonnées des licences pour trouver des dépendances. Ces dépendances sont détectées pour différents types de langages et gestionnaires de paquets dans les projets d’un référentiel.

- Un fichier de configuration détermine où et comment énumérer les dépendances. Celles-ci sont énumérées pour chaque chemin source de la configuration.

- Lorsqu'il détecte une dépendance, l'outil trouve l'emplacement de la source dans un environnement local et extrait les métadonnées pertinentes.

- Il utilise Licencied Ruby Gem pour déterminer la licence de chaque dépendance et trouver le texte de la licence.

Vérification continue

En stockant les données de dépendance dans un référentiel de contrôle de la source, les données peuvent être vérifiées au cours du workflow de développement. Chaque fois que les dépendances changent, il peut s’avérer nécessaire de mettre à jour les licences, de façon à maintenir à jour les données de licence. Le référentiel de contrôle de la source fournit également un historique des changements au niveau des dépendances.

GitHub prévoit d’améliorer Licensed. Il souhaite en particulier assouplir son interaction avec les workflows des développeurs et lors de l’ajout de nouvelles sources de dépendances. GitHub prévoit également d’ajouter de nouvelles sources de dépendances. Le référentiel précise que l'outil Licensed peut découvrir et documenter des problèmes de licence évidents dès le début, mais qu'il ne remplace pas la révision des dépendances par une personne physique et qu'il ne peut pas être considéré non plus comme une solution complète de contrôle de licence open source. L'outil Licensed est téléchargeable sur le référentiel GitHub. Il est fourni avec des instructions d'installation.