Patrick Daxenbichler - Fotolia

L'IA de GitHub commencerait à faire ses preuves auprès des développeurs

Lors de sa conférence annuelle, GitHub a mis principalement en avant deux produits : CodeSpaces et CoPilot. L’un vise à pousser les environnements de développement vers le cloud, l’autre à assister les développeurs en s’appuyant sur l’IA.

Le 27 et 28 octobre GitHub tenait l’édition 2021 de sa conférence Universe. La filiale de Microsoft a présenté plusieurs mises à jour incrémentales de ses services. Beaucoup d’entre elles concernent l’amélioration de la sécurité et de la gestion des rôles. 

Ainsi, GitHub Enterprise Cloud a le droit à deux mises à jour importantes. Enterprise Managed Users (EMU), un outil central pour contrôler les comptes GitHub des membres des entreprises, peut désormais « gérer le cycle de vie complet des identités » des développeurs. En l’occurrence, il est possible de lier EMU avec un outil de gouvernance des identités, soit Okta, soit Azure AD et via le protocole SAML. Si EMU permet déjà de restreindre les fonctionnalités aux développeurs suivant leur niveau d’accréditation, une fonctionnalité en bêta publique permet d’attribuer des rôles personnalisés pour des équipes, des membres d’une organisation et des collaborateurs extérieurs au niveau d’un dépôt (repository) spécifique. 

Renforcer la sécurité et la gestion des rôles 

De la même manière, GitHub Actions, l’outil d’automatisation des flux CI/CD a le droit au support d’OpenID Connect (OIDC). Ce protocole permet à Actions d’échanger des tokens à durée de vie limitée ou de passer par une authentification par mot de passe, afin de pouvoir déployer un service ou un flux sur une instance fournie par un fournisseur de cloud. Ce support d’OIDC est compatible avec AWS, GCP, Azure, Hashicorp Vault, « entre autres ».  

Actions a bien besoin de cette capacité. Le 12 octobre 2021, le groupe de recherche de Cider Security a dévoilé une vulnérabilité permettant, sous certaines conditions, de contourner le mécanisme de revue avant de pousser du code dans des environnements en production. Un des moyens d’éviter ce problème est d’imposer plusieurs reviewers dans les équipes, un autre consiste à mieux contrôler les rôles, l’autre est de limiter les accès aux ressources cloud. Toutefois, GitHub cherche à résoudre ce problème spécifique.

Pour ce qui est des analyses de sécurité, l’éditeur a amélioré CodeQL en ajoutant le support en bêta de Ruby, afin de détecter les problèmes de sécurité « les plus communs », à savoir les injections SQL, les expressions régulières de déni de service (ReDoS), les vecteurs d’attaque de cross-site scripting ou encore les injections de commandes. Le support de ce nouveau langage est effectif dans le CLI CodeQL et dans l’extension pour Visual Studio. Le moteur sémantique supporte toujours C, C++, Java, JavaScript, TypeScript, Python et Go. 

En ce qui concerne les fonctionnalités ciblant plus particulièrement les développeurs (et non pas les administrateurs et les responsables de la sécurité), GitHub Actions bénéficie de deux nouveaux ajouts.  

Il est maintenant possible de réutiliser des workflows déjà déployés afin d’éviter les « duplicats ». Les équipes peuvent ainsi bâtir une bibliothèque de workflows réutilisables en l’appelant via un petit fichier YAML nommé « Caller ». Pour cela, le workflow réutilisable doit être soit dans le même repo que le nouveau flux de travail, soit dans un dépôt public, soit dans le même dépôt privé dont les accès sont configurés. En revanche, un workflow réutilisable ne peut pas en appeler un autre. 

Actions prend également en charge les « exécutions éphémères » autohébergées via une API. Ce sont des tâches uniques exécutées par des runners automatiquement détruits une fois le service rendu. Cela permettrait de réduire les coûts d’infrastructure quand une fonction n’est pas utilisée. 

Actions est désormais largement utilisé. Il y aurait plus de 10 000 flux d’automatisation sur la Marketplace de GitHub, selon Thomas Dohmke, Chief Product Officer, chez GitHub.  

CodeSpaces : GitHub pousse les environnements de développement vers le cloud 

Mais la filiale de Microsoft pousse aussi les développeurs vers le cloud. 

Comment ? En mettant en avant CodeSpaces, un service pour déployer des environnements de déploiements hébergés dans le cloud, plus précisément sur des VMs gérées par GitHub.com. Ces environnements sont accessibles depuis un navigateur Web ou localement via VS Code. « Plus de 600 ingénieurs ont migré vers CodeSpaces », affirme Thomas Dohmke. « Auparavant, la création d’un nouvel environnement pouvait prendre jusqu’à 45 minutes. Désormais, nous pouvons les lancer en à peine 10 secondes ». 

Dans la même veine, l’éditeur met en avant un moyen de déployer un conteneur de développement JSON en un clic et la prise en charge depuis GitHub CLI. Là encore, l’entreprise ajoute des fonctions de sécurité et de gestion des rôles, par exemple une intégration sans couture au registre des conteneurs GitHub, un support d’une API en bêta pour gérer programmatiquement les types de machines et les secrets, et enfin un moyen de contrôler les accès aux ports redirigés. 

Pour l’instant, CodeSpaces est accessible depuis les éditions Team et Enterprise Cloud. Les VMs associées sont équipées de CPU de 2 à 32 cœurs et de 4 à 64 Go de RAM. Une machine virtuelle isolée coûte 0,18 à 2,88 dollars par heure (mais est facturée à la seconde), suivant les ressources sélectionnées, tandis que le stockage coûte 0,07 centime par Go par mois. « CodeSpaces rencontre un franc succès », assure Thomas Dohmke.

CoPilot aurait la cote chez les développeurs 

CoPilot, un assistant de programmation propulsé par l’algorithme d’OpenAI, est aussi un produit vitrine de GitHub. 

« Nous pensons que c’est la première fois que l’IA a un véritable usage dans l’écosystème des développeurs. Et nous sommes ravis de constater les demandes des développeurs », assure Thomas Dohmke. « D’après nos statistiques, 30 % des nouvelles lignes de code écrites dans certains langages de programmation sont suggérées par CoPilot ».  

« D’après nos statistiques, 30 % des nouvelles lignes de code écrites dans certains langages de programmation sont suggérées par CoPilot ».
Thomas DohmlkeChief Product Officer, GitHub

Ainsi, CoPilot est désormais compatible avec Java ainsi qu’avec les IDE Neovim et Jetbrains, plus particulièrement Intellij IDEA et Pycharm. 

« CoPilot est un modèle d’IA très conscient du contexte dans lequel vous développez, puisqu’il a été alimenté avec du code disponible dans les dépôts publics de GitHub. À partir d’un commentaire, il peut proposer 90 à 95 % de la méthode, ou du code standard, nécessaire au développement d’une fonction », affirme le Chief Product Officer.  

Mais ce n’est pas un outil magique, selon les propos de Thomas Dohmke. « Nous ne sommes qu’au début d’un long voyage : CoPilot est en bêta et comporte des défauts, comme tout produit à ce stade de développement. Parfois, le développeur doit réécrire une bonne partie du code suggéré pour ses propres besoins ».  

Pour autant, CoPilot s’améliorerait rapidement depuis sa disponibilité, car son apprentissage se poursuit en s’appuyant sur les métadonnées du code écrit par les développeurs l’utilisant. Cette approche avait provoqué la réaction outrée de la Free Software Foundation, jugeant cette extension « inacceptable et injuste » parce qu’il est impossible de voir son code, CoPilot étant propriétaire. Cela ne dérangerait pas tous les utilisateurs, selon le Chief Product Officer. « De notre côté, nous observons une adoption importante : environ 50 % des développeurs qui ont testé CoPilot continuent à l’utiliser », affirme-t-il auprès du MagIT. 

Enfin, l’éditeur du fameux VSC lance la bêta publique de la refonte de GitHub Issues. Il s’agit de faciliter le tri et la planification des issues par sprint et par cycle. De manière plus anecdotique, Discussions – pour rappel, créé afin d’éviter que les fils des issues ne deviennent des forums sauvages – est sorti de bêta et est maintenant disponible sur mobile.  

Pour approfondir sur Open Source