freshidea - stock.adobe.com

GitHub veut aider les développeurs à faire le ménage dans leurs dépôts

Lors de sa conférence virtuelle GitHub Satellite, le spécialiste de la gestion de dépôts de code a multiplié les annonces visant à simplifier l’effort de contribution et à augmenter la sécurité.

Quelques semaines après avoir lancé un tiers gratuit étoffé, GitHub confirme sa volonté de rassembler les communautés de développement autour de sa plateforme. En ce sens, il annonce GitHub Codespaces et Discussions.

Discussions est typiquement un outil collaboratif pour les communautés publiques, accessible depuis les dépôts. Les administrateurs peuvent étiqueter des sujets et des éléments d’un projet. Encore aujourd’hui, les contributeurs passent par GitHub Issues pour discuter des projets. Or, Issues est un principalement un canal dédié à la soumission de bugs et de problèmes. Pour les entreprises, l’éditeur propose team discussions qui revêt davantage la fonction d’un Slack.

« Avec Discussions, nous voulons donner au développeur un endroit pour avoir des conversations publiques. C’est comme une sorte de forum consacré au logiciel auquel une communauté contribue », résume Mario Rodriguez, responsable produit GitHub Enterprise.

Plus de 16 communautés participent à la bêta dont React Table, React Query ou encore Concourse. La fonctionnalité sera disponible pour toutes les communautés cet été.

Codespaces, un IDE disponible depuis un navigateur Web

Disponible lui aussi en bêta fermé, Codespaces est présenté comme un moyen d’automatiser le déploiement des environnements de développement, afin de contribuer à un projet. Avec cette fonctionnalité, le développeur appuie sur un bouton disponible directement depuis un dépôt pour charger automatiquement les dépendances, les outils, les extensions et les fichiers nécessaires en quelques secondes dans le cloud, promet GitHub.

« Cinquante millions de développeurs utilisent GitHub. Beaucoup d’entre eux veulent participer à un projet. Ils téléchargent le code qu’ils veulent améliorer et configurent leur environnement de développement. Cette première étape qui paraît simple demande parfois des heures et des heures, parce que la configuration s’avère laborieuse à cause de conflits entre composants. Beaucoup de gens abandonnent à cause de cela », explique Mario Rodriguez. 

Codespaces lance donc un environnement de développement containérisé et hébergé sur le cloud, disponible depuis un navigateur Web. L’éditeur de code fourni n’est autre que VS Code (Microsoft détient GitHub, pour rappel). Il est possible de configurer l’instance pour inclure les extensions et des configurations particulières. CodeSpaces se connecte directement aux composants disponibles dans le dépôt puisqu’il les clone dans le container.

L’éditeur propose un moyen de configurer les ressources CPU, RAM et GPU nécessaires à la conduite d’une contribution (pendant la démonstration, la VM utilisée disposait de deux cœurs et de 4 Go de RAM). GitHub envisage de passer par une architecture FaaS afin de diminuer la consommation en ressources.

Dans un premier temps, cet IDE sera disponible gratuitement depuis les dépôts publics. Cette fonctionnalité sera sans doute incluse dans les versions payantes à l’avenir.

« Un de nos clients à qui je présentais la feuille de route a fait part de son enthousiasme à propos de Codespaces. Pour les organisations qui adoptent l’approche Inner Source, cela peut être un moyen d’accélérer les contributions de la part des développeurs », estime Mario Rodriguez.

Le fait que le responsable produit évoque les entreprises n’a rien d’un hasard. Elles sont principalement visées par la plupart des annonces. Pour cette catégorie d’utilisateurs premium, la filiale de Microsoft proposait jusqu’alors d’héberger leurs dépôts depuis GitHub Enterprise Cloud et Enterprise Server (disponible sur site). Il leur a d’ailleurs promis la disponibilité prochaine à GitHub Actions, Insights et Packages, des fonctionnalités pour l'instant accessibles sur les versions publiques.

 L’éditeur veut maintenant proposer une solution d’hébergement de dépôts Git pour les entreprises des secteurs hautement réglementés.

GitHub Private instances doit apporter un moyen d’héberger le code d’une application dans un environnement cloud géré par la filiale indépendante de Microsoft. Cet environnement doit faciliter l’isolation des instances entre elles, fournir un moyen de backup, d’archivage et respecter le concept de résidence des données (lié à la souveraineté). Par ailleurs, l’éditeur promet la possibilité d’apporter ses propres clés de chiffrement dans le cloud (BOYK). Cela implique de partager les clés depuis un HSM vers un service KMS (Key Management System) opéré par le fournisseur sélectionné.

Si GitHub entend respecter des standards reconnus comme FedRAMP, les entreprises européennes en provenance de ces secteurs critiques (finance, banque, pharmaceutique, gouvernements, etc.) sont parfois méfiantes par rapport au CLOUD Act et au PATRIOT Act. Or Private Instances a d’abord été testé sur Microsoft Azure, un fournisseur de cloud américain soumis à ces réglementations. Nous attendons un commentaire de l’équipe juridique de GitHub à ce sujet.

GitHub renforce la détection de vulnérabilités 

Cela ne veut pas dire que GitHub néglige la sécurité. Au contraire, selon Jamie Cool, Vice-président, gestion des produits sécurité chez GitHub : « Je pense que ce que les gens ignorent souvent, c’est que nous faisons beaucoup de choses dans le domaine de la sécurité, et ce depuis assez longtemps. Ces dernières années, l’accent a été mis sur la sécurisation de la chaîne d’approvisionnement des logiciels libres, pour que la communauté puisse les produire et les utiliser en toute confiance », assure-t-il.         

En ce sens, le PDG Nat Friedman a donné des nouvelles du projet CodeQL, qui est maintenant officiellement supporté sous la dénomination Code Scanning.

Code Scanning permet de détecter « automatiquement » les vulnérabilités avant que le code open source (plus précisément les projets disposant de la licence OSI) soit déployé en production. Pour cela, GitHub utilise le moteur sémantique CodeQL pour scanner les requêtes Pull (ce qui prend quelques secondes), puis pointer les erreurs, les contextualiser, surligner les dépendances et retrouver la ou les lignes de code qui posent problème. L’éditeur veut le rendre accessible à l’ensemble de la communauté open source et paie pour le calcul, ce qui pourrait coûter des millions de dollars, selon Nat Friedman.

GitHub a également étendu la disponibilité de Secret Scanning (anciennement nommé Token Scanning) aux dépôts privés. Cette fonctionnalité disponible depuis deux ans permet de détecter au sein des projets la présence de tokens ou de clés d’authentification.

L’outil reconnaît la forme des identifiants à partir d’une base de données constituée avec l’aide d’une trentaine de fournisseurs dont AWS, Microsoft Azure, GCP, Atlassian ou encore Twilio. Il déclenche alors un workflow qui sera transmis à l’équipe responsable de la sécurité pour y remédier. « Les clients demandaient l’accès à cette fonctionnalité pour leurs dépôts privés. C’est maintenant possible en bêta », déclare Jamie Cool.

Pour approfondir sur DevOps et Agilité