Référencer des tickets (Work items) sur GitLab : Lier votre code aux tâches
Pourquoi lier votre code aux tickets GitLab ?
Dans un projet bien géré, chaque modification de code doit répondre à un besoin précis : corriger un bug ou ajouter une fonctionnalité. Pour garder une trace de cette relation, GitLab permet de référencer un ticket directement depuis un message de validation (commit).
L'intérêt est immense : en tapant simplement le numéro d'un ticket (ex: #12) dans votre message, GitLab va automatiquement créer un lien entre votre code et la discussion du ticket. Mieux encore, vous pouvez utiliser des mots-clés de fermeture automatique pour que le ticket se ferme tout seul une fois votre travail validé. C'est un gain de temps considérable pour l'organisation de l'équipe.
La méthode pour référencer un ticket
Pour que la magie opère, vous devez suivre un flux de travail rigoureux. Voici comment lier proprement vos changements à une tâche existante.
Récupérer le numéro du ticket
Avant de coder, rendez-vous dans l'onglet Work items de votre projet et notez le numéro (précédé d'un #) du ticket sur lequel vous allez travailler.
"Chaque ticket possède un identifiant unique indispensable pour le référencement"
Mettre à jour votre dépôt local
Avant de créer une nouvelle branche, assurez-vous que votre version locale est parfaitement à jour avec le serveur :
git switch main
git pull origin main
Résultat :
Already up to date.
Créer une branche dédiée au correctif
Il est de coutume de créer une branche Git dont le nom évoque le problème à résoudre :
git switch -c fix-bug-header
Le Commit : Faire le lien avec le ticket
C'est à cette étape que tout se joue. Vous allez enregistrer vos modifications en mentionnant le ticket.
Effectuer les changements et valider
Modifiez vos fichiers, puis préparez votre commit. Pour lier le ticket au commit, mentionnez simplement son numéro dans le message :
git add README.md
git commit -m "Correction du bug d'affichage (ref #1)"
L'astuce de l'automatisation
Si vous utilisez des mots-clés comme Fixes #1, Closes #1 ou Resolves #1, GitLab fermera automatiquement le ticket uniquement lorsque votre code sera fusionné dans la branche principale par défaut (main).
Envoyer vers le serveur
Poussez votre branche sur GitLab pour déclencher la suite des opérations :
git push origin fix-bug-header
Finaliser avec la Merge Request
Une fois votre code envoyé, créez une Merge Request (comme vu au chapitre précédent).
Vérifier le lien automatique
Dans la page de la Merge Request, GitLab affichera automatiquement un lien vers le ticket référencé. Si vous avez utilisé un mot-clé de fermeture, vous verrez une mention indiquant que le ticket sera fermé après la fusion.
Astuce: Propreté de l'historique
Aujourd'hui, de nombreux développeurs préfèrent ne pas "polluer" leurs messages de commit avec des mots-clés. Vous pouvez simplement lier votre code en écrivant Closes #1 dans la description de votre Merge Request. L'effet est le même : le ticket se fermera tout seul dès que votre code sera fusionné dans main.
"GitLab affiche clairement que ce travail va résoudre le ticket concerné"
Conclusion
Le référencement d'issues est une pratique indispensable pour garder un projet propre et une équipe synchronisée. Cela permet de savoir en un coup d'œil quel code a servi à résoudre quel problème.
Cependant, sur de gros projets, les tickets peuvent être extrêmement nombreux. Pour mieux les organiser dans le temps et respecter les dates de livraison, GitLab utilise les Jalons (Milestones). C'est ce que nous allons explorer dans le chapitre suivant.
Espace commentaire
Écrire un commentaire
Rejoignez la discussion
Vous devez être connecté pour poster un message.
20 commentaires
Bon courage. Pense aussi à utiliser les
Milestonespour regrouper ces tickets une fois qu'ils seront tous fermés.Super clair. Je vais mettre ça en place dans ma squad dès demain.
Non, tu peux combiner les deux sans souci. Exemple :
Le formatage des commits est strict chez nous, on utilise des outils comme Conventional Commits. Ça pose problème avec les mots-clés GitLab ?
Bien sûr, il suffit de cliquer sur 'Reopen issue' sur la page du ticket. Ne panique pas, rien n'est supprimé.
Question bête : si je ferme le ticket par erreur avec un mauvais mot-clé, je peux le rouvrir ?
Merci pour l'astuce sur le
git pull origin mainavant de commencer, ça m'évite des conflits bien sales.Tu peux simplement supprimer le lien manuellement dans l'interface de la Merge Request, il y a une croix à côté du ticket lié.
Est-ce qu'on peut revenir en arrière si on a lié le mauvais ticket par erreur ?
Vérifie si ta branche cible est bien configurée comme 'default branch' dans les réglages de ton projet GitLab. Si tu merges vers une branche de dev secondaire, ça ne fermera rien.
J'ai mergé ma branche mais le ticket #5 n'est pas fermé. J'ai utilisé
Resolves #5pourtant.Oui, tu peux enchaîner les mots-clés dans ton message de commit :
Ça fonctionne super bien. Par contre, si je veux lier plusieurs tickets sur un seul commit, c'est possible ?
Vérifiez vos permissions. Si vous n'avez pas le rôle 'Developer' sur le projet, vous ne pourrez pas pusher de branche. Faites un
git remote -vpour être sûr que vous pointez sur le bon dépôt.Pareil ici. Je pense que c'est un problème de droits sur le repo, pas lié à la méthode de commit.
J'ai une erreur 403 quand je push sur la branche. Pourtant j'ai bien fait mon
git switch -c.Oui, ça fonctionne aussi. GitLab scanne le titre et la description de la MR pour trouver les références. C'est plus propre que de polluer l'historique des commits.
Est-ce que ça marche aussi si je mets le numéro de ticket dans le titre de la Merge Request ?
C'est normal. Le mot-clé
Fixesne déclenche la fermeture du ticket que lors de la fusion dans la branche par défaut. Tant que tu n'as pas mergé ta MR, le ticket reste ouvert.J'ai testé le
git commit -m "Fixes #42"mais le ticket reste ouvert alors que la branche est poussée. Une idée ?