Comment démarrer avec la CLI de GitLab pour gérer DevOps depuis votre terminal
GitLab est l’une des principales solutions de contrôle de code source et CI/CD pour les équipes de livraison de logiciels modernes. Il fournit un ensemble complet de fonctionnalités pour la planification, la création et la livraison de vos projets logiciels.
GitLab interagit normalement avec son interface utilisateur Web ou son API. Aucune de ces options n’est particulièrement attrayante pour les développeurs centrés sur les terminaux. Heureusement, GitLab dispose également d’une CLI qui fournit un accès direct à vos problèmes, demandes de fusion, pipelines et autres ressources, juste à côté de votre code et d’autres commandes shell. Cet article vous montrera les bases.
Sommaire
Qu’est-ce que le Glab ?
Le glab
GitLab CLI a été lancé par Clement Sam en tant que projet dirigé par la communauté. Il a depuis été adopté par GitLab, recevant sa première version officielle dirigée par GitLab en décembre 2022. À l’avenir, il continuera d’être maintenu par GitLab et la communauté au sens large en tant qu’outil open source.
Glab prend actuellement en charge les interactions avec les fonctionnalités GitLab suivantes :
- Problèmes
- Demandes de fusion
- Pipelines
- Communiqués
- Référentiels
- Étiquettes
- Extraits
Vous pouvez récupérer des données existantes à partir de votre compte GitLab, créer de nouveaux éléments et effectuer des actions telles que vérifier l’état d’un pipeline et approuver une demande de fusion. Il est possible de s’authentifier auprès de plusieurs instances GitLab simultanément, y compris GitLab.com et vos serveurs auto-hébergés.
Premiers pas avec Glab
Avant de commencer à utiliser Glab, créez un jeton d’accès personnel pour votre compte GitLab qui inclut le api
et write_repository
étendues. Glab utilisera ce jeton pour effectuer des actions en votre nom.
Cliquez sur l’icône de votre profil en haut à droite de l’interface utilisateur GitLab, puis choisissez « Access Tokens » dans le menu de gauche. Donnez un nom à votre jeton et sélectionnez le api
et write_repository
étendues de la liste. Faites défiler la page et cliquez sur le bouton « Créer un jeton d’accès personnel ». La valeur du jeton sera affichée – notez-la maintenant, car vous ne pourrez plus la récupérer à l’avenir.
Ensuite, vous devez installer Glab. Vous pouvez télécharger des fichiers binaires prédéfinis pour les systèmes Windows, macOS et Linux à partir de la page GitLab Releases du projet. Glab est également distribué pour plusieurs gestionnaires de packages populaires sur tous les systèmes d’exploitation pris en charge.
Une fois Glab installé, vous pouvez vous authentifier auprès de votre instance GitLab en exécutant le auth login
commande. Cela lancera une série d’invites interactives qui vous permettront de choisir entre GitLab.com ou une instance auto-hébergée. Après avoir fourni les détails de l’instance, vous pourrez entrer le jeton d’accès personnel que vous avez créé précédemment.
Ensuite, il vous sera demandé de confirmer le protocole par défaut à utiliser pour les opérations Git. Vous pouvez généralement accepter la valeur automatiquement sélectionnée. SSH est préférable, mais certains environnements peuvent nécessiter Git sur HTTPS. L’invite suivante vous demande si Glab doit authentifier les opérations Git à l’aide du même jeton d’accès personnel que vous avez fourni précédemment. C’est généralement le comportement souhaité.
Enfin, si vous utilisez une instance GitLab auto-hébergée, vous serez invité à choisir entre les protocoles HTTP et HTTPS pour accéder à l’API GitLab. Choisissez HTTPS, sauf si vous savez que votre instance ne prend en charge que HTTP.
À la fin de la séquence, vous devriez recevoir un message de réussite « Connecté ».
Se connecter à une autre instance GitLab
Vous pouvez vous connecter à une autre instance GitLab en répétant le auth login
commande. En cours auth status
émettra une liste de tous les terminaux que vous avez configurés.
Utilisation de Glab
Glab est destiné à être exécuté à partir du répertoire de travail de votre projet. Commencez par cd
-ing dans un répertoire contenant un référentiel Git. Les commandes Glab sélectionneront désormais automatiquement l’instance GitLab et le jeton d’authentification corrects, en fonction de la télécommande Git par défaut du projet.
Ce modèle permet une utilisation transparente des projets à partir de plusieurs instances GitLab. Tu peux courir git
et glab
commandes pendant que vous travaillez, simplement en entrant un répertoire de projet. Il est possible d’utiliser Glab en dehors d’un projet, cependant, en définissant le GITLAB_TOKEN
et GITLAB_URI
(ou alors GITLAB_HOST
) variables d’environnement dans votre shell, puis en spécifiant les --repo
flag avec vos commandes pour identifier le projet cible (en OWNER/REPO
format). Cela vous permet d’utiliser facilement Glab dans des scripts automatisés, par exemple.
Problèmes
Répertoriez les problèmes de votre projet avec le issues list
commande:
$ glab issues list Showing 3 open issues in ilmiont/ardeidae that match your search (Page 1) #376 ilmiont/ardeidae#376 Console Input allow accessing full standard input string about 1 month ago #374 ilmiont/ardeidae#374 Basis support construction via compound typehints about 11 months ago #373 ilmiont/ardeidae#373 v3.1.0 unit tests about 11 months ago
Utilisez le --page
flag pour passer aux pages suivantes dans le jeu de résultats. 20 éléments sont affichés par page par défaut ; cela peut être changé avec le --per-page
drapeau.
Plusieurs drapeaux de filtrage sont pris en charge. La commande suivante récupère tous les problèmes fermés avec l’étiquette P1, qui se trouvent dans le jalon v3.1.0 et qui vous sont attribués :
$ glab issue list --mine --milestone v3.1.0 --label P1 --closed
Cours glab issue list --help
pour en savoir plus sur tous les drapeaux pris en charge.
Obtenez des informations détaillées sur un problème spécifique avec issue view
:
$ glab issues view 376 open • opened by ilmiont about 1 month ago Console Input allow accessing full standard input string #376 php://input 0 upvotes • 0 downvotes • 0 comments Milestone: v3.1.0
Pour récupérer les commentaires d’un ticket, ajoutez le --comments
drapeau à la commande. Les commentaires seront paginés, comme le issue list
commande.
Vous pouvez ouvrir la page de l’interface utilisateur Web pour un problème dans votre navigateur par défaut :
$ glab issue view 376 --web
Des notes (commentaires) peuvent être créées pour des problèmes avec le note
commande. Le -m
flag spécifie le texte Markdown pour la note :
$ glab issue note 376 -m "This is no longer relevant"
Fermer et rouvrir les problèmes avec le close
et reopen
commandes respectivement :
$ glab issue close 376 $ glab issue reopen 376
Pour créer un nouveau problème, exécutez le create
commandez et passez les drapeaux appropriés :
$ glab issue create --title "New Issue" --description "Demo issue" --milestone "v3.1.0"
Vous serez invité à confirmer la création du problème. Vous pouvez ignorer cela en réglant le -y
ou alors --yes
drapeau. De nombreux autres indicateurs sont pris en charge pour définir toutes les propriétés du problème. Essayez de courir glab issue create --help
pour explorer les options.
Demandes de fusion
Les interactions de base des demandes de fusion sont similaires à celles des problèmes. Utilisez le list
et view
commandes pour récupérer les détails des demandes de fusion existantes. Le approve
, close
et merge
les commandes appliquent ces actions respectives au MR :
$ glab mr merge 100
Les commandes de demande de fusion acceptent soit un ID, soit une branche source comme argument. Vous pouvez fusionner le MR pour demo-branch
dans votre branche principale à l’aide de la commande suivante :
$ glab mr merge demo-branch
Vous pouvez visualiser les modifications contenues dans un MR avec le bouton diff
commande:
$ glab mr diff 100
La sortie diff colorisée sera affichée dans votre terminal au format Git.
Il est également possible de vérifier localement et de basculer vers la branche source d’une demande de fusion, sans exécuter manuellement les commandes Git :
$ glab mr checkout 100
Pipelines CI
Afficher les résultats du pipeline pour votre projet en exécutant ci list
:
$ glab ci list Showing 3 pipelines on ilmiont/ardeidae (Page 1) (success) • #734 3.1.0-rc42 (about 9 days ago) (success) • #733 master (about 9 days ago) (success) • #732 Dbal-store-allow-upsert (about 9 days ago)
Le view
La commande permet d’accéder aux résultats de la tâche pour le dernier pipeline sur la branche par défaut ou sur une branche spécifique. Un nouvel écran de terminal affichera les étapes du pipeline :
$ glab ci view $ glab ci view -b demo-branch
Pour déclencher une nouvelle exécution de pipeline, exécutez le glab run
commande:
$ glab ci run
Vous pouvez spécifier la branche à partir de laquelle sourcer le pipeline :
$ glab ci run -b demo-branch
Il est également possible de définir des variables CI pour l’exécution :
$ glab ci run --variables demo-var:demo-val,another-var:another-val
Vous pouvez accéder aux journaux d’un travail en exécutant le ci trace
commande et en utilisant l’invite interactive pour sélectionner le travail cible. Des artefacts sont également disponibles : le ci artifact
télécharge les artefacts à partir du dernier pipeline, soit pour la branche par défaut, soit pour une branche spécifiée identifiée par le -b
drapeau.
Enfin, Glab comprend un linter intégré pour le .gitlab-ci.yml
fichier dans votre répertoire de travail. Cela vous permet de vérifier facilement la validité de votre pipeline, sans copier et coller le fichier dans l’interface utilisateur Web GitLab.
$ glab ci lint Getting contents in .gitlab-ci.yml Validating... ✓ CI yml is Valid!
Requêtes API arbitraires
Les commandes de Glab sont des wrappers autour des points de terminaison de l’API GitLab existants. Alors que plusieurs API sont prises en charge de manière native, beaucoup d’autres doivent encore être implémentées en tant que commandes. L’appel direct de l’API peut être fastidieux car vous devez fournir votre jeton d’accès personnel en définissant manuellement les en-têtes de requête.
Glab inclut une commande utilitaire pour effectuer des requêtes authentifiées arbitraires auprès de l’API. Le glab api
La commande accepte un URI relatif à demander dans le contexte de votre instance GitLab active. L’exemple suivant obtient les balises Git associées au projet avec l’ID de 1
:
$ glab api projects/1/repository/tags
Les données brutes de réponse de l’API seront émises vers votre terminal au format JSON.
Définissez la méthode HTTP pour la requête à l’aide de la -X
ou alors --method
drapeau. Vous pouvez fournir des données de corps de demande avec le -F
ou alors --field
drapeau:
$ glab api projects/1/repository/tags -X POST --field tag_name=demo --field ref=main
Vous pouvez inclure des en-têtes de demande personnalisés en définissant le -H
ou alors --header
drapeau.
Utiliser des alias
Glab prend en charge les alias de commande personnalisés afin que vous puissiez accéder rapidement aux fonctionnalités couramment utilisées.
Créez un nouvel alias en exécutant le alias set
commande:
$ glab alias set issues "issue list" - Adding alias for issues: issue list ✓ Added alias.
Vous pouvez maintenant répertorier les problèmes de votre projet en exécutant glab issues
:
$ glab issues Showing 3 open issues in ilmiont/ardeidae that match your search (Page 1) #376 ilmiont/ardeidae#376 Console Input allow accessing full standard input string about 1 month ago #374 ilmiont/ardeidae#374 Basis support construction via compound typehints about 11 months ago #373 ilmiont/ardeidae#373 v3.1.0 unit tests about 11 months ago
Lister tous les alias que vous avez créés avec alias list
:
$ glab alias list ci pipeline ci co mr checkout issues issue list
Supprimer un alias en exécutant alias delete
et en passant son nom :
$ glab alias delete issues
Utiliser Glab pour gérer DevOps
Glab est la CLI officielle de GitLab. Il vous permet de gérer l’ensemble du processus DevOps depuis votre terminal. Vous pouvez créer des problèmes, attribuer des tâches, examiner les demandes de fusion, déclencher des pipelines CI et des versions de balises, sans avoir à basculer entre les outils ou à apprendre l’API GitLab. Cela réduit le changement de contexte et facilite l’automatisation de vos workflows les plus courants.
L’accès aux données GitLab parallèlement à votre code et aux opérations Git vous permet de rester concentré sur la tâche à accomplir. La CLI est également plus rapide à utiliser que l’interface utilisateur Web, si vous êtes à l’aise avec le travail dans un terminal. C’est une troisième interface précieuse pour votre instance GitLab, en plus de l’interface utilisateur et de l’API.
Bien que cet article ait couvert les bases de l’utilisation de Glab pour les tâches courantes, vous pouvez également explorer bien d’autres choses. Consultez la documentation ou essayez d’exécuter glab help
et glab <COMMAND> --help
pour explorer toutes les fonctionnalités disponibles.
Maintenant que Glab est entièrement intégré en tant que projet GitLab natif, un développement supplémentaire est promis pour prendre en charge des flux de travail supplémentaires et mettre en œuvre les demandes de la communauté. Vous pouvez fournir vos commentaires à GitLab en ouvrant un problème dans le référentiel du projet.