La conférence Universe a commencé hier et se poursuit aujourd’hui à San Francisco. L’entreprise a annoncé de très nombreuses nouveautés, dont les plus impressionnantes concernant Copilot, dont la présentation avait déjà fait couler beaucoup d’encre. Une fonction visée par une plainte, qui pourrait influer sur le reste du monde de l’intelligence artificielle.
Les annonces ont littéralement plu depuis hier, GitHub souhaitant garder son leadership proclamé dans la gestion de projet. Le rachat par Microsoft en 2018 n’a fait qu’accélérer cette tendance, même si GitHub, en tant qu’entreprise, reste relativement indépendante.
La grande majorité des nouveautés présentées ne sont pas encore finalisées, mais des préversions sont proposées sur listes d'attente.
Collaboration et planification
On commence avec une extension de Codespaces aux développeurs indépendants. Ces derniers peuvent maintenant utiliser le service jusqu’à 60h gratuitement par mois avant de passer à la caisse. Pour rappel, Codespaces permet la création d’un environnement de développement en ligne et peut être exploité avec Visual Studio, Visual Studio Code, Jupyter ou JetBrains. Les clients choisissent une instance en fonction de la puissance, celle-ci pouvant aller jusqu’à 16 cœurs, 32 Go de mémoire et 128 Go de stockage.
On trouve également deux préversions pour les révisions de deux outils existants, Code view et Code search, qui doivent accélérer la recherche de code, sa navigation et sa compréhension. Le premier est une nouvelle interface proposant de compléter les requêtes par des suggestions ou complétions, avec outils de tris pour les résultats. Le second s’intègre au premier, permettant de passer rapidement de bout de code en bout de code et offrant des informations contextuelles sur chacun.
La planification s’enrichit avec Roadmap, une nouvelle vue pour visualiser les éléments de travail sur une frise chronologique. Plusieurs fonctions sont associées, notamment pour suivre l’évolution d’un élément et avertir les personnes concernées en cas de besoin. Les listes de tâches se dotent en parallèle d’une nouvelle interface pour décomposer plus rapidement des problèmes en tâches, convertir des tâches en problèmes, décomposer une tâche en sous-tâches, etc. L’ensemble des informations ajoutées sur ces éléments sont en Markdown et agissent comme des métadonnées.
Les listes de tâches sont intégrées dans Project, qui se dote pour l’occasion d’une version mobile dans l’application GitHub. Cette dernière récupère également plusieurs nouvelles capacités, comme le lancement d’Actions ou l’édition de fichier dans les pull requets. Les versions Android et iOS sont toutes concernées, mais il faudra patienter pour une diffusion générale. En attendant, il est possible de tester ces moutures via les bêtas sur Google Play et TestFlight pour iOS.
Du neuf pour les entreprises
GitHub Enterprise Server 3.7 a été publiée hier. Il s’agit pour rappel d’une version de GitHub que les entreprises peuvent installer sur leurs propres serveurs. À son bord, une longue liste de nouveautés : un tableau de bord pour la sécurité, le support pour les workflows GitHub Actions imbriqués et réutilisables, ou encore de nouvelles règles comme la possibilité de créer des forks multiples au sein d’une même organisation ou celle de restreindre des dépôts à certains groupes.
Pour les clients classiques, GitHub se dote de « runners » que l’on peut utiliser pour lancer des opérations lourdes, quand l’infrastructure en sa possession sature. Ces machines, responsables de l’exécution des flux Actions, peuvent contenir jusqu’à 64 cœurs et 256 Go de mémoire.
Parmi les autres apports, citons la possibilité avec « Importer » de transiter plus facilement d’un ancien CI/CD (intégration et distribution continues), des jetons d’accès personnels pour les administrateurs, la possibilité de récupérer des informations sur l’ensemble des jetons, ou encore l’intégration native des outils Arm Development. Rappelons que Microsoft semble enfin beaucoup plus sérieuse sur le développement pour architecture ARM, après l’arrivée récente du Dev Kit 2023, anciennement appelé projet Volterra.
Des signalements secrets de failles pour les dépôts open source
GitHub avait quelques apports à présenter pour la sécurité. Le plus important est sans doute la mise en place d’un mécanisme de signalement privé, que l’entreprise présente comme « pratique, standardisé et secret ». Selon GitHub, il n’y a plus besoin pour les chercheurs en sécurité et autres personnes concernées de chercher l’adresse email d’un responsable, la fonction permettant de gérer la déclaration, l’évaluation et la résolution de la faille.
Signalons également la disponibilité générale du support de CodeQL pour Ruby, accessible depuis l’analyse de code dans GitHub.com, la ligne de commande CodeQL et l’extension CodeQL pour Visual Studio Code. Enfin, la vue de synthèse pour la sécurité intègre de nouvelles vues pour les risques et la couverture du code, c’est-à-dire la proportion de code couverte par les tests unitaires.
Copilot : le clou du spectacle…
Copilot est une fonction présentée l’année dernière et disponible en version finale depuis juin. Elle se présente comme une aide concrète à l‘écriture de code, pouvant proposer 40 à 50 % des lignes d’un programme.
Elle est issue d’un partenariat entre GitHub et OpenAI (Codex) ayant abouti à un modèle alimenté par les milliards de lignes de code issues des dépôts publics. Elle suggère ce qui pourrait être la ligne de code suivante, ce qui peut être pratique dans des scénarios divers, comme l’utilisation d’un cadriciel (framework) peu connu, mais que Copilot a déjà observé à travers d’autres projets.
Elle s’adapte également dans le temps à ce qui est accepté ou refusé par la personne qui l’utilise. Copilot est également très utilisée pour les tests unitaires, un cas dont GitHub a encore fait la promotion pendant la conférence. La fonction peut ainsi trouver seule les résultats et afficher les journaux correspondants.
Copilot, qui n’était jusqu’à présente ouverte qu’aux développeurs indépendants, s’ouvre désormais aux entreprises. Elles pourront bientôt commander des licences par poste. L’intégration ne change pas : Visual Studio, VS Code, Neovim, and JetBrains.
Mais l’annonce qui a retenu le plus l’attention était sans conteste « Hey, GitHub ! », un assistant vocal pour Copilot. Une préversion technique a été fournie, mais demande de s’inscrire sur une liste d’attente.
Cette fonction doit faire exactement ce que son nom suggère : écrire du code oralement, sans poser les mains sur le clavier. Puisqu’elle vient compléter Copilot, on imagine que ce dernier sera d’un grand secours pour aider à interpréter correctement les instructions, qu’il s’agisse d’ailleurs de code ou d’interactions avec l’interface de GitHub.
Bien que l’éditeur ait mis en avant la facilitation de l’expérience de développement, il a également abordé la question du handicap. La fonction pourrait en effet permettre aux personnes ne pouvant utiliser leurs mains, pour une raison ou une autre, de pouvoir développer, idéalement avec la même efficacité à terme. S’agissant d’une expérience lancée par GitHub Next pour l’instant, on ne sait pas quand la fonction sera proposée à tous, ni si elle sera intégrée dans Copilot ou facturée à part.
… avant le procès
Tout n’est pas rose au pays de Copilot, loin de là. En octobre dernier, l’avocat Matthew Butterick a lancé : que tous les développeurs intéressés se rassemblent en vue d’une action de groupe contre Copilot. Pourquoi ? À cause des licences open source.
Le travail dans lequel la fonction va puiser provient certes de dépôts publics, mais le code qui s’y trouve est toujours protégé par une licence. Or, les trois licences les plus utilisées dans ce domaine – Apache, GPL et MIT – ont toutes en commun une obligation légale : l’auteur du code doit être cité, qu’il s’agisse d’une personne physique ou morale.
Depuis le lancement en juin, le comportement de la fonction a été analysé plusieurs fois, notamment par Chris Green. Il avait repéré des morceaux de code qu’il avait rédigés et protégés par une licence, mais qui apparaissaient quand même dans Copilot sans mention de l’auteur.
En clair, Copilot est accusé de violer massivement le copyright. En un an, l’appel de Matthew Butterick a été entendu, puisqu’un recours collectif a officiellement été déposé contre Microsoft, GitHub et OpenAI le 3 novembre. Plus précisément, la plainte accuse les trois entreprises d’enfreindre les propres conditions d’utilisation de GitHub, la section 1202 du DMCA qui interdit le retrait de toute information liée au copyright et le Consumer Privacy Act de Californie, entre autres lois.
Matthew Butterick réclame un montant minimum de 2 500 dollars par violation. Or, comme la plainte l’explique : « si chaque utilisateur reçoit ne serait-ce qu’une suggestion violant la section 1202 durant le temps d’utilisation de Copilot (jusqu’à 15 mois pour les premiers utilisateurs), alors GitHub et OpenAI ont violé le DMCA 3 600 000 fois ». Ce qui pourrait se traduire par une peine très rondelette de 9 milliards de dollars.
L’avocat avait mis en ligne un site le mois dernier pour sensibiliser les développeurs aux problèmes posés par Copilot. Il prédit notamment un assèchement des communautés open source classiques, que Copilot masquera en proposant le résultat tout en repoussant le besoin de contacter les personnes à l’origine d’un code ou d’un projet.
La réponse de GitHub est pour l'instant très vague : « Nous nous sommes engagés à innover de manière responsable avec Copilot depuis sa création. Nous continuerons à faire évoluer le produit pour servir au mieux les développeurs dans le monde ».
Ce procès devrait être suivi par de très nombreux observateurs, car il s'agira de la première procédure d'envergure impliquant l'IA. Microsoft est loin d'être le seul acteur à proposer des outils dont l'efficacité dépend de montagnes de données aspirées et anonymisées, y compris quand le nom doit figurer en bonne place.