fr.wedoany.com Rapport : Le bureau des programmes open source (OSPO) de GitHub a intégré des milliers de dépendances gérées en interne dans un processus de vérification automatisé grâce à sa nouvelle fonctionnalité de conformité des licences. Celle-ci permet aux développeurs de vérifier directement, lors de l'étape de la pull request, si la licence d'une nouvelle dépendance est conforme à la politique de l'entreprise, libérant ainsi le contrôle de conformité des opérations manuelles ou des outils tiers.

Avec l'introduction constante de nouvelles dépendances sur la plateforme GitHub et dans les projets internes, la gestion des licences est devenue un élément clé pour maintenir la sécurité de la chaîne d'approvisionnement logicielle. Presque chaque logiciel est accompagné d'un contrat de licence, dont les obligations vont de simples exigences de mention à l'obligation de publier l'intégralité du code source. Pour les entreprises qui vendent des applications binaires propriétaires, il est nécessaire d'éviter d'introduire des dépendances exigeant la divulgation du code propriétaire ; pour les projets prévoyant de publier un logiciel open source, il faut éviter les dépendances soumises à des licences commerciales ou incompatibles. Le non-respect peut entraîner des litiges juridiques et une perte de réputation.
La vérification traditionnelle des licences repose souvent sur des processus manuels ou des logiciels tiers. La fonctionnalité de conformité des licences proposée par GitHub pour les clients Advanced Security modifie ce processus. Activée via des ensembles de règles, elle analyse automatiquement la licence des nouvelles dépendances sur les pull requests modifiant les dépendances, pour un dépôt spécifique. Si la licence figure dans la liste autorisée ou bénéficie d'une exception au niveau du package, la vérification est réussie ; sinon, l'outil génère une alerte dans la pull request. L'équipe de vérification peut alors décider d'autoriser ou non cette licence ou ce package, et peut définir la portée de l'exception — au niveau de l'entreprise ou du dépôt.

Il y a deux mois, l'OSPO de GitHub a migré de son outil interne de gestion de la conformité vers cette nouvelle fonctionnalité. En tant qu'adoptant précoce, l'équipe a fourni des retours pendant la phase de prévisualisation publique de la fonctionnalité. Dans un premier temps, l'OSPO a défini une politique basée sur la liste des licences acceptables accumulée en interne, et a utilisé le mode « évaluation » pour publier des alertes sans bloquer les fusions, afin de permettre aux développeurs de s'adapter au nouveau processus. Après environ quatre semaines de fonctionnement, les alertes concernaient principalement des packages avec des licences anormales, manquantes ou explicitement interdites. L'équipe de stratégie des licences, composée de membres de l'OSPO et d'analystes experts de la chaîne d'approvisionnement, répartie sur quatre fuseaux horaires, assure un traitement rapide des demandes de vérification. L'équipe traite généralement chaque demande en une à quelques heures, et a mis en place une procédure d'urgence « bris de glace » — si un correctif critique est bloqué par une alerte, la vérification des licences pour ce dépôt peut être temporairement désactivée en modifiant la valeur d'un attribut personnalisé. En pratique, cette procédure d'urgence n'a été utilisée qu'une seule fois.

Cette fonctionnalité prend en charge les exceptions de package par correspondance avec des caractères génériques, par exemple en autorisant l'ensemble de l'espace de noms @github-ui/*, évitant ainsi une approbation individuelle. La documentation interne et les formations aident les développeurs à comprendre l'importance de la conformité, répartissant ainsi la responsabilité de la gestion de la conformité dans le travail quotidien des équipes. La fonctionnalité de conformité des licences est désormais en prévisualisation publique. Les clients de GitHub Enterprise Cloud peuvent l'utiliser dans les dépôts disposant d'une licence GHAS Code Security active. Des informations supplémentaires sont disponibles dans la documentation officielle de GitHub.









