Organiser et suivre son travail dans GitLab
Introduction
Dans les stades du cycle de développement définis par GitLab, le présent chapitre se situe à l’étape de planification où il s’agit d’avoir recours aux outils de gestion et de suivi de projets pour organiser notre travail.
Après avoir examiné de plus près le concept de projet, nous nous attarderons plus particulièrement aux notions de groupe et aux tickets (issues) au sens précis qu’ils prennent dans le contexte de GitLab. Nous aborderons ensuite d’autres notions comme les labels et les jalons.
Comme nous l’avions annoncé dans le chapitre précédent, nous verrons également en quoi consistent les merge requests ou requêtes de fusion, un concept essentiel de GitLab.
Notre parcours se poursuivra avec une présentation d’outils comme les GitLab Pages ou le wiki qui est intégré à tous les projets pour la documentation.
Au terme de ce chapitre, vous serez suffisamment outillés pour mettre en œuvre vos premiers pipelines CI/CD, lesquels feront l’objet de ce chapitre.
Organiser son travail autour de projets et de groupes
Comme nous le savons maintenant, GitLab est un outil de gestion de code source conçu autour de Git qui comprend de nombreuses fonctionnalités complémentaires pour rendre ce dernier plus convivial.
Il intègre également un composant de gestion de projet et de services d’assistance qui permet aux équipes de gérer des tâches et des tickets tout au long du processus de développement. Ce système de billetterie offre notamment la possibilité de mettre en place des métriques et des indicateurs de performance pouvant être utilisés par des responsables ou des chargés de projet.
Dans les sections qui suivent, nous allons présenter les notions de projet et de groupe qui sont des composants essentiels pour organiser son travail dans GitLab tout en permettant de faire un suivi des bugs et gérer les incidents avec des tickets.
1. Comprendre la notion de projet
Les projets sont les composants de base de GitLab. De manière générale, ils représentent un élément (logiciel ou non) sur lequel vous travaillez. Dans un contexte de développement logiciel, ils constituent un espace où les équipes peuvent collaborer sur du code source, suivre des tickets et automatiser les étapes du SDLC.
Comme nous l’avons vu plus haut, un projet se présente sous la forme d’un dépôt Git qui permet de stocker vos fichiers, qu’il s’agisse de code source ou de documentation. En fait, il s’agit d’un composant beaucoup plus complexe qu’un simple dépôt : les projets sont le point de départ pour naviguer à travers les différentes fonctionnalités de la plateforme et, à ce titre, ils sont l’endroit où vous passerez la majeure partie de votre temps en tant qu’utilisateur de GitLab.
Maintenant, vous vous demandez peut-être à quoi les projets peuvent être consacrés et comment ils sont structurés. En voici quelques exemples tirés du dépôt (projet) officiel de GitLab :

Dans cette capture qui n’est aucunement exhaustive, nous avons :
-
un projet dédié à la discussion des processus pour l’équipe CI-CD UX ;
-
un projet pour conserver...
Planifier et suivre son travail dans GitLab
Jusqu’à présent, nous avons abordé le côté passif des groupes et des projets, comme des entités de classement et de hiérarchisation. Dans la section qui suit, nous allons découvrir le côté (inter) actif de ces deux concepts qui permettent également de faire de la gestion de projet et d’incidents, en particulier avec la notion de tickets.
En effet, GitLab met à notre disposition plusieurs fonctionnalités relevant de la gestion des services informatiques (Information Technology Service Management, ITSM) et il offre la possibilité de mettre en œuvre différentes approches telles que le Scrum ou le Kanban.
1. Comprendre la notion de ticket
Un ticket dans GitLab est une unité de suivi utilisée pour gérer des tâches, signaler des bugs, suggérer des améliorations ou faire diverses demandes de services. Les tickets permettent aux membres de l’équipe de collaborer, de commenter, de joindre des fichiers et de suivre l’avancement du travail.
GitLab traduit « issue » par « ticket », ce qui correspond à peu près à une tâche au sens large. Bien qu’il soit tentant de traduire « issue » par « problème », nous préférons le terme « ticket », car il ne s’agit pas forcément d’une entité faisant référence à quelque chose qui doit être résolu. Un ticket est plutôt un objet qui décrit une tâche à effectuer par un membre du projet auquel elle est rattachée.
Si un projet GitLab peut être défini comme un conteneur pour un produit ou une initiative unique, un ticket est ce qui contient l’énoncé d’une tâche spécifique. D’autres solutions préfèrent le terme « story » ou « user story » pour décrire des composants similaires aux tickets GitLab. Cette expression est empruntée à la méthodologie Scrum qui est davantage axée sur le développement. Elles désignent une description concise d’une fonctionnalité ou d’une exigence...
Faire une requête de fusion
Dans cette section, nous allons voir en quoi consistent les merge requests (MR) et comment celles-ci fonctionnent de pair avec les branches et les tickets.
Une merge request dans GitLab est une demande pour fusionner les modifications d’une branche d’un projet (dépôt) dans une autre. Ce processus permet de vérifier et de valider les changements apportés au code source avant de les intégrer pour en assurer la qualité. Il s’agit d’une fonctionnalité collaborative de GitLab, car elle permet de commenter, de faire de la revue de code ou de tester les modifications avant la fusion finale.
Les MR sont un concept spécifique à GitLab (et non à Git) et elles fonctionnent de pair avec les branches et les tickets, ce qui signifie qu’elles nécessitent l’utilisation de l’interface graphique de la plateforme. Elles sont l’équivalent des pull requests sur GitHub ou Azure DevOps.
1. Créer une nouvelle branche à fusionner
Pour voir comment fonctionnent les requêtes de fusion, nous devons d’abord avoir au moins une deuxième branche. Dans l’exemple qui suit, nous allons créer une branche directement dans GitLab, mais vous pouvez aussi le faire localement avec git branch <nom_branche> et la « pousser » par la suite avec git push.
Il est possible de créer une branche sur la page principale du dépôt d’un projet, mais nous allons le faire à partir du menu Code dans le panneau latéral Projet. Nous allons reprendre l’exemple du dépôt Pages-HTML-brut que nous avions créé à partir d’un modèle.
Déplacez-vous sur la page d’accueil du projet pour lequel vous souhaitez créer une nouvelle branche. Ouvrez la section Code du menu latéral et cliquez sur Branches. Vous accéderez ainsi à la liste des branches existantes dans le dépôt du projet. Appuyez sur le bouton Nouvelle branche.

Saisissez le nom de la nouvelle branche (ici : feature) et appuyez sur Créer une branche.

Maintenant que nous avons une nouvelle branche, nous allons faire une modification pour pouvoir ensuite créer une merge request.
Sur la page du dépôt...
Autres fonctionnalités d’organisation du travail
1. Les GitLab Pages
Les GitLab Pages sont une fonctionnalité qui permet de publier des sites web statiques directement à partir d’un projet. En effet, il est possible d’héberger des sites de documentation, des portfolios ou des blogs avec différents générateurs de sites statiques comme Jekyll, Hugo ou Docusaurus.
Lorsque nous avons créé notre dépôt Pages-HTML-brut nous avons vu plusieurs modèles qui permettent d’automatiser la création de GitLab Pages.
Nous n’insisterons pas sur ce point, mais il s’agit d’une fonctionnalité intéressante de GitLab que vous pouvez tester en appuyant sur l’onglet GitLab Pages. Vous obtiendrez une page web avec les traductions que nous avions apportées au fichier index.html :

2. Le Wiki
Vous aurez sans doute remarqué que vous avez aussi la possibilité de créer un Wiki pour un projet. En effet, l’option est disponible, soit dans le menu Programmation dans la barre latérale ou dans la section droite du projet en appuyant sur le bouton dédié à l’ajout d’une page wiki.
Cette fonctionnalité permet de créer, gérer et collaborer sur une documentation directement intégrée à un projet. Les pages sont en Markdown et vous pouvez utiliser...
Conclusion
Dans ce chapitre, nous avons passé en revue les principaux composants de GitLab qui permettent d’organiser notre travail sur la plateforme. Nous avons d’abord examiné les projets qui sont une notion plus complexe qu’un simple dépôt Git. En effet, ceux-ci peuvent être structurés en groupes et ils comportent de nombreux paramètres essentiels à toute gestion de projet.
Aux concepts de projet et de groupes s’ajoutent les tickets qui permettent d’assigner des tâches dans GitLab. Ils constituent un objet essentiel pour faire le suivi de l’avancement d’un projet avec d’autres composants comme les jalons.
Nous avons vu aussi que GitLab offre la possibilité d’implémenter une gestion de projet en mode agile qui peut intégrer des éléments des méthodes Scrum ou Kanban. En effet, la plateforme offre une vue en mode « tableau » qui permet de visualiser le flux de travail et de suivre les tickets comme s’il s’agissait de « user stories ».
Après cette présentation des composants de la gestion de projet dans GitLab, nous avons abordé les requêtes de fusion qui permettent de faire un merge d’une branche dans une autre. Cette opération qui se fait en mode graphique permet de faire de la revue de code et d’ouvrir la discussion...