Les projets open source sont submergés par des rapports de bogues et des pulls requests de mauvaise qualité rédigés par l'IA. Pour faire face à ce problème, le développeur Mitchell Hashimoto a mis au point un outil appelé Vouch. Il s'agit d'un système de gestion de la confiance communautaire. Il fonctionne en exigeant que les nouveaux contributeurs soient cautionnés par des contributeurs existants avant de pouvoir contribuer, et permet de dénoncer et de bloquer les contributeurs problématiques. L'intégration est simple via GitHub Actions, et le système est indépendant de la forge, laissant les critères de cautionnement à la discrétion de chaque projet.Ces dernières années, le nombre de personnes utilisant les outils d'IA pour générer du code au lieu de l'écrire eux-mêmes a augmenté. Cependant, une grande partie du code généré par l'IA est de mauvaise qualité. En conséquence, le coût croissant de l'élimination du code de mauvaise qualité généré par l'IA est devenu un problème épineux pour les projets open source disposant déjà de peu de ressources et reposant sur la coopération communautaire.
Pour remédier à ce problème, le développeur de logiciels Mitchell Hashimoto a lancé un système appelé « Vouch » qui élimine les personnes soumettant du code de mauvaise qualité et maintient la qualité des projets open source. Il se dit lasser de jouer au chat et à la souris avec les rapports de mauvaise qualité.
Mitchell Hashimoto est un développeur et entrepreneur américain, connu pour être le cofondateur de HashiCorp, une entreprise spécialisée dans les outils d’infrastructure et de cloud computing. Il est l’auteur principal de projets open source très utilisés comme Vagrant, Terraform, Consul et Vault. Son travail se concentre notamment sur l’automatisation de l’infrastructure, la gestion des environnements de développement et la sécurité des systèmes distribués.
Vouch : un système de gestion de la confiance communautaire
Vouch introduit un modèle de confiance explicite. Un contributeur ne peut soumettre une pull request que s’il a été préalablement approuvé par un contributeur déjà reconnu comme fiable. « La légitimité n’est plus implicite, mais formalisée, ce qui inverse la logique par défaut de l’ouverture totale ». Vouch repose sur des actions GitHub. Une action vérifie automatiquement si l’auteur d’une pull request figure dans la liste des contributeurs approuvés.
D’autres actions GitHub permettent d’ajouter ou de retirer des contributeurs, en s’appuyant sur des décisions humaines documentées dans le dépôt. Les informations de confiance sont stockées dans un fichier texte unique, versionné avec le projet. Ce choix favorise la transparence, l’auditabilité et l’automatisation.
Check-pr
La première s’appelle « check-pr ». Elle s’exécute à chaque ouverture de pull request et vérifie automatiquement si l’auteur de la demande figure dans la liste des contributeurs approuvés (ou cautionnés). Si ce n’est pas le cas, la pull request est bloquée ou signalée comme non conforme.
Manage-by-discussion
La deuxième action est « manage-by-discussion ». Elle permet d’ajouter ou de retirer un contributeur de la liste de confiance à partir d’une discussion GitHub. Les décisions sont prises explicitement par les mainteneurs ou contributeurs autorisés et sont ensuite appliquées par l’action.
Manage-by-issue
La troisième action est « manage-by-issue ». Elle fonctionne sur le même principe que la précédente, mais en s’appuyant sur des tickets de suivi GitHub plutôt que sur des discussions. Cela permet d’intégrer la gestion des droits de contribution dans les workflows existants basés sur les tickets de suivi.
Comment mettre en œuvre Vouch dans un référentiel sur GitHub
Les administrateurs du dépôt GitHub peuvent mettre en œuvre ces fonctionnalités via GitHub Actions pour vérifier s'il convient ou non de contribuer à des projets open source. L'auteur a déclaré qu'il ne participerait pas aux décisions des projets utilisant Vouch : « c'est au projet de décider qui est approuvé ou dénoncé, et comment. Je ne suis pas le gardien des valeurs mondiales. C'est à vous de décider ce qui convient à votre projet et à votre communauté ».
Selon la description de Mitchell Hashimoto, toutes les données relatives à Vouch sont stockées dans un seul fichier texte au sein du référentiel, ce qui facilite leur analyse. Vouch permet aux projets de partager des « listes de garantie ». Mitchell Hashimoto affirme que les projets partageant des valeurs communes peuvent partager des listes et construire un « réseau de confiance » complet qui détermine quels utilisateurs autoriser et lesquels bloquer.
Mitchell Hashimoto a déjà mis en œuvre Vouch à titre expérimental dans le référentiel GitHub de son émulateur de terminal, Ghostty, un émulateur de terminal open source conçu pour être rapide, moderne et natif sur chaque plateforme. Les listes de garanties peuvent également former un réseau de confiance.
Vous pouvez configurer Vouch pour lire les listes d'utilisateurs garantis ou dénoncés d'autres projets. Ainsi, les projets partageant les mêmes valeurs peuvent partager leurs décisions en matière de confiance et créer un réseau de confiance plus vaste et plus complet à travers l'écosystème. Les utilisateurs qui ont déjà prouvé leur fiabilité dans un projet peuvent automatiquement être considérés comme fiables dans un autre projet, et ainsi de suite.
Des projets contraints d'interdire les rapports générés par l'IA
L'adoption des outils d'IA par les plateformes telles que HackerOne pose un problème majeur à la communauté des logiciels libres : la multiplication de rapports de vulnérabilités générés par des outils d'IA, souvent erronés ou trompeurs, qui submergent les mainteneurs. Les fabricants de modèles d'IA s'attendent à ce que l'IA aide les développeurs à détecter les bogues beaucoup plus rapidement afin de jouir de plus de temps pour innover.
Mais il s'avère que ces rapports sont en majorité le résultat des hallucinations de l'IA, et donc inutiles. Seth Larson, développeur de sécurité en résidence à la Python Software Foundation, a soulevé la question dans un billet de blogue en décembre 2024. Il a exhorté les personnes qui signalent des bogues à ne pas utiliser de systèmes d'IA pour la chasse aux bogues. Selon lui, les systèmes d'IA actuels ne sont pas fiables dans ce contexte.
« J'ai remarqué une augmentation des rapports de sécurité de qualité extrêmement médiocre, spammés et hallucinés par les LLM...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.