Getty Images/iStockphoto
Toujours plus de scripts dans GitHub CLI 2.0
Avec la version 2.0 de GitHub CLI, les développeurs peuvent personnaliser leur utilisation du terminal et des dépôts Git via le développement de scripts bash. Une fonctionnalité non sans risques.
GitHub CLI est désormais disponible en version 2.0. Le CLI nouvelle génération alternatif à Hub avait atteint la mouture 1.0 en septembre 2020, après son lancement en février de la même année. Malgré l’appellation solennelle, l’itération 2.0 est une mise à jour incrémentale. Elle vient surtout mettre fin à un premier cycle de développement consacré au scripting de divers processus à travers le terminal.
La courte note accompagnant cette sortie évoque :
- une fonction pour afficher la couleur des labels dans une liste d’issues,
- la commande repo sync pour synchroniser une branche avec son état upstream,
- une fonction template pour afficher des données sous forme de tables,
- la commande GH_FORCE_TTY permettant de forcer la sortie en mode terminal même en cas de redirection,
- des flags pour contrôler le nom des branches,
- un flag pour indiquer qu’il faut associer une discussion avec la bonne catégorie au moment d’une release,
- l’ajout de filtres pour lister les dépôts par topic,
- la possibilité de configurer son navigateur Web,
- des instructions PowerShell pour expliquer le fonctionnement de scripts bash de complétions.
Tous ces éléments s’apparentent à de petites retouches visant à favoriser le confort des utilisateurs ayant suggéré ces ajouts. Cependant, GitHub met principalement en avant le support des extensions.
En effet, l’interface en ligne de commande ne prend pas en compte certaines fonctionnalités permettant d’adapter la gestion des dépôts par les usagers ainsi que les interactions avec divers environnements et outils de développement.
Les extensions, des scripts plus ou moins utiles
Billy Griffin, Staff Engineering Manager chez GitHub, expliquait en mars dernier auprès du MagIT que l’éditeur souhaitait pallier ce manque en renforçant la prise en charge de scripts personnalisés.
En ce sens, les extensions sont des « dépôts qui fournissent des commandes gh additionnelles » peut-on lire dans la documentation de la filiale de Microsoft. Ces repositories peuvent être montés avec la commande gh extension create. Un dépôt ainsi créé contient un script bash incluant quelques lignes de codes pour commencer à bâtir sa propre extension.
Pour montrer l’exemple, GitHub y va de scripts de son propre cru. Le premier gh user-status d’entre eux n’a pour autre but que d’indiquer à partir du terminal si un développeur est disponible ou non. L’extension gh branch, elle, est un switch fuzzy finder, pour classer chronologiquement les branches afin d’afficher les plus récentes ainsi que les pull requests associées. Gh contribute permet d’afficher rapidement des issues non résolues au cours de l’année écoulée contenant les labels « help wanted » ou « good first issue ». De son côté, gh triage doit aider à classer les issues dans un dépôt par flags. L’utilité de la dernière extension proposée par GitHub est discutable : gh sreensaver exhibe tout simplement un économiseur d’écran en ASCII sur le terminal.
Pour autant, GitHub assure que le développement d’extensions apporte un large éventail de possibilités. La seule limite imposée : ces scripts ne peuvent supplanter les commandes gh instituées par l’éditeur. GitHub encourage également à partager ces extensions, bien conscient qu’il ne sera pas capable ou ne voudra pas répondre à toutes les demandes.
Des risques à ne pas occulter
Le topic gh-extension recense pour l’instant 41 dépôts publics, dont une extension pour agréger plusieurs pull requests de dependabot en une seule, limitant ainsi le bruit généré par l’outil d’analyse de dépendances.
Les fichiers exécutables ne sont pas forcément des scripts bash, l’éditeur entend laisser le choix des armes. Toutefois, le développeur devra installer l’interpréteur associé au langage de script utilisé. Il est également possible de paramétrer les extensions pour les déployer en local.
Dans sa documentation, la société rappelle les risques encourus par les usagers des extensions disponibles publiquement. GitHub recommande d’effectuer un audit de code avant de les manipuler, car les scripts bénéficient du même niveau de privilèges que les développeurs qui les exécutent.
Billy Griffin avait surtout évoqué l’intégration de GitHub Actions dans GitHub CLI. Celle-ci est effective depuis la version 1.9 présentée en avril 2021. Les développeurs peuvent utiliser des fonctions de l’outil CI/CD dans le terminal afin d’automatiser une partie de la supervision des workflows en cours d’exécution.