Modes Déclencheurs Exemples CLAUDE.md FAQ Premier ticket Cas d'usage Bonnes pratiques
GitLab Self-Hosted · Claude Code CLI

Votre assistant IA
intégré à GitLab

Claude résout vos issues, applique vos reviews, audite votre code et planifie vos features — déclenché par un simple label ou une assignation.

9
modes disponibles
3
déclencheurs
0
dépendances externes
Déclencheurs

Comment activer Claude

Trois façons de déclencher Claude sur une issue ou une MR — aucune commande à taper, tout se fait depuis l'interface GitLab.

Action
Résultat
Ajouter le label IA sur une issue
Claude analyse le titre pour choisir le bon mode et traite automatiquement.
Branche créée · Code implémenté · MR ouverte · Labels mis à jour
Assigner l'issue à claude.ai
Claude traite l'issue et réassigne à l'auteur après. Pas besoin de label.
MR assignée à l'auteur du ticket · Issue réassignée à l'auteur
Ajouter claude.ai comme reviewer sur une MR
Claude fait une code review approfondie et poste des commentaires inline.
Commentaires inline · Résumé général · Aucune modification du code
Déclencheur Assigné MR Reviewer MR Assignation issue
Label IA + assigné à Monsieur B Monsieur B Auteur du ticket Inchangée
Label IA + aucun assigné Auteur du ticket Auteur du ticket Inchangée
Assigné à claude.ai Auteur du ticket Auteur du ticket Réassignée à l'auteur
Modes

9 modes disponibles

Le mode est déterminé par le préfixe dans le titre de l'issue. Sans préfixe, Claude implémente directement.

Préfixe Mode Produit Modifie le code Branche créée
aucunIssue SolvingMR
[Réflexion]RéflexionCommentaire plan
[Spike]SpikeCommentaire POC
[Test]TestMR avec tests
[Doc]DocumentationMR avec doc
[Refacto]RefactoringMR refactorisée
[Secure]Audit sécuritéCommentaire rapport
MR · label IAMR Review ApplyCommits + commentaire
MR · reviewerCode ReviewCommentaires inline
aucun préfixe
Issue Solving
"Fais-le."
Claude implémente la feature ou le fix directement. Analyse le code existant, crée une branche, code, commite, pushe et ouvre une MR.
Produit Branche · Commits · MR
[Réflexion]
Réflexion
"Comment on va faire ?"
Claude analyse le code et propose un plan d'implémentation détaillé. Pas de code produit. L'archi valide avant que Claude implémente.
Produit Plan en commentaire · Label "En attente de validation"
[Spike]
Spike
"Est-ce que c'est faisable ?"
Claude réalise une preuve de concept rapide pour répondre à une question technique. Code jetable, pas de MR. Résultat : go/no-go + recommandation.
Produit Rapport POC en commentaire
[Test]
Test
"Couvre le code."
Claude identifie le framework de test du projet et écrit les tests unitaires pour les fichiers mentionnés. S'adapte à tout stack.
Produit Branche · Tests · MR
[Doc]
Documentation
"Documente ça."
Claude génère ou met à jour la documentation — docstrings, JSDoc, README. Identifie le format de doc existant et s'y adapte.
Produit Branche · Doc · MR
[Refacto]
Refactoring
"Nettoie sans casser."
Claude refactorise le code sans changer le comportement observable. Respecte SOLID, DRY et les conventions du projet.
Produit Branche · Code refactorisé · MR
[Secure]
Audit sécurité
"Trouve les failles."
Claude audite le code selon OWASP Top 10 et produit un rapport de sécurité avec score, vulnérabilités par criticité et recommandations.
Produit Rapport de sécurité en commentaire
MR · label IA
MR Review Apply
"Applique les corrections."
Ajoute le label IA sur une MR. Claude lit toutes les reviews et commentaires, applique les corrections et poste un résumé.
Produit Commits · Résumé en commentaire
MR · reviewer
Code Review
"Revue sans modifier."
Ajoute claude.ai comme reviewer sur une MR. Claude analyse le diff, poste des commentaires inline et un résumé. Aucune modification du code.
Produit Commentaires inline · Synthèse
Exemples

Tickets bien rédigés

Plus le ticket est précis, meilleur sera le résultat. Voici des exemples pour chaque mode principal.

Issue Solving Feature directe
TITRE Ajouter une validation du token secret sur le webhook
## Contexte
Le webhook Flask ne valide pas l'authenticité des requêtes entrantes.

## Implémentation attendue
- Récupérer le header `X-Gitlab-Token`
- Le comparer avec `WEBHOOK_SECRET` (variable d'environnement)
- Retourner 401 si le token ne correspond pas
Label IA Assigné à Aubin GERARD
[Réflexion] Planification avant implémentation
TITRE [Réflexion] Refonte du système d'authentification
## Contexte
L'auth actuelle est monolithique et difficile à maintenir.
On veut passer à JWT + refresh tokens.

## Question pour Claude
Propose une architecture pour migrer sans casser l'existant.

## Points d'attention
- 3 apps clientes différentes
- Sessions actives à ne pas invalider
Label IA
Après la réflexion

Claude retire [Réflexion] du titre et ajoute le label En attente de validation. L'archi review le plan, modifie le ticket si besoin, puis retire [Réflexion] pour déclencher l'implémentation.

[Spike] Investigation technique
TITRE [Spike] Tester Gunicorn pour passer le webhook en production
## Question technique
Peut-on remplacer le serveur de dev Flask par Gunicorn ?
On a le warning "Do not use in production" à chaque démarrage.

## Attendu
- POC avec Gunicorn configuré
- Commande de lancement
- Recommandation go/no-go
Label IA
[Refacto] Refactorisation ciblée
TITRE [Refacto] Nettoyer le service d'authentification
## Fichiers à refactoriser
- `src/services/auth.service.js` — trop de responsabilités
- `src/utils/helpers.js` — fonctions non utilisées à supprimer

## Objectifs
- Respecter le principe de responsabilité unique
- Réduire la duplication de code
- Améliorer la lisibilité
Label IA Assigné à kevin.vuillemin
Workflow

Le flow complet

De l'ajout du label à la MR prête pour review — entièrement automatisé.

🏷
Label IA
ou assignation
🔗
Webhook
détecte l'événement
⚙️
Pipeline CI
déclenché via API
🤖
Claude Code
analyse & implémente
MR créée
prête pour review
Configuration

Le fichier CLAUDE.md

C'est le levier principal pour la qualité du code produit. Claude le lit automatiquement avant chaque tâche.

Pourquoi c'est important

Sans CLAUDE.md, Claude produit du code générique. Avec un CLAUDE.md bien rédigé, il respecte votre stack, vos conventions de nommage, votre architecture et vos règles métier — comme s'il avait fait une session d'onboarding.

Exemple de CLAUDE.md à la racine du projet :

# Contexte projet

Stack : Node.js 20 · Express · PostgreSQL · Vue 3
Tests : Vitest pour le back, Cypress pour le front
Linter : ESLint + Prettier (config dans .eslintrc)

# Conventions

- Nommage : camelCase pour les variables, PascalCase pour les composants
- Commits : commitlint avec préfixes feat/fix/docs/refactor/test
- Branches : feat/ia-, fix/ia-, refactor/ia-, test/ia-, docs/ia-
- API REST : toujours retourner { data, error, meta }
- Pas de console.log en production — utiliser le logger Winston

# Architecture

- Services dans src/services/ — logique métier uniquement
- Controllers dans src/controllers/ — pas de logique, délèguent aux services
- Modèles Sequelize dans src/models/
- Routes dans src/routes/

# Règles importantes

- Ne jamais modifier les migrations existantes
- Toujours valider les inputs avec Joi
- Toutes les routes API nécessitent un middleware d'auth sauf /health
À inclure
Stack technique et versions
Framework de tests
Conventions de nommage
Structure des dossiers
Règles de commit
Contraintes métier importantes
À éviter
Trop de détails (ça dilue l'essentiel)
Informations qui changent souvent
Secrets ou tokens
Instructions contradictoires
Texte en double avec le README
FAQ

Questions fréquentes

Les questions que se posent les équipes qui découvrent Claude Assistant GitLab.

Que se passe-t-il si Claude se trompe ?
Claude crée toujours une MR — jamais de push direct sur main. Si le code ne convient pas, vous refusez simplement la MR. Vous pouvez aussi ajouter des commentaires de review sur la MR puis ajouter le label IA : Claude applique les corrections automatiquement.
Claude peut-il casser mon code ?
Claude ne peut pas pousser directement sur des branches protégées. Tout passe par une MR soumise à vos règles d'approbation habituelles. Les protections GitLab s'appliquent normalement.
Comment Claude connaît mon stack ?
Claude analyse le code existant avant chaque tâche. Il lit aussi le fichier CLAUDE.md si vous en avez créé un — c'est le moyen le plus efficace de lui transmettre vos conventions et contraintes.
Puis-je l'utiliser sur plusieurs projets ?
Oui — le composant est conçu pour ça. Il suffit d'ajouter l'include dans le .gitlab-ci.yml de chaque projet et de configurer les variables ANTHROPIC_API_KEY et GITLAB_CLAUDE_TOKEN.
Quel est le coût d'utilisation ?
Chaque run consomme des tokens Anthropic (proportionnel à la complexité de la tâche) et du temps de runner GitLab. Une tâche simple (ajouter un fichier) consomme peu. Une refacto complète consomme plus. Consultez la tarification Anthropic pour les détails.
Claude a accès à quoi dans mon repo ?
Claude a accès en lecture à tout le repo cloné dans le runner CI. Il peut lire, écrire, créer des fichiers et exécuter des commandes bash dans l'environnement isolé du job. Il n'a pas accès aux secrets GitLab non exposés dans le job.
Que fait Claude quand la description du ticket est vague ?
Claude analyse le code existant pour inférer le contexte et fait de son mieux. Plus la description est précise, meilleur est le résultat. Pour les tâches complexes, utilisez [Réflexion] — Claude postera d'abord un plan que vous pourrez affiner avant qu'il code.
Tutoriel

Votre premier ticket IA

Suivez ces 6 étapes pour déclencher Claude pour la première fois. Durée : 5 minutes.

1

Créer une issue GitLab

Dans votre projet GitLab, cliquez sur Issues → New issue. Choisissez un ticket simple pour commencer — idéalement une petite feature ou un fix isolé.

2

Rédiger le titre avec le bon préfixe

Le titre détermine ce que Claude va faire. Pour une première fois, partez sur quelque chose de simple sans préfixe — Claude implémentera directement.

Exemple de titre
Ajouter un message de bienvenue sur la page d'accueil

Pour des tâches plus complexes, utilisez un préfixe : [Réflexion], [Spike], [Test], [Doc], [Refacto], [Secure].

3

Décrire la demande dans le body

Plus vous êtes précis, meilleur sera le résultat. Voici un template à copier-coller :

## Contexte
Expliquez pourquoi cette tâche est nécessaire.

## Demande
Décrivez précisément ce que Claude doit faire.

## Fichiers concernés (optionnel)
- src/main/java/com/skazy/controller/HomeController.java
- src/main/java/com/skazy/service/WelcomeService.java

## Critères d'acceptation (optionnel)
- Respecte les conventions Spring Boot du projet
- Tests unitaires inclus
4

Ajouter le label IA

Dans le panneau de droite de l'issue, cliquez sur Labels et sélectionnez IA. C'est ce déclencheur qui lance Claude automatiquement.

IA To Do ← ajoutez ces deux labels

Alternativement, assignez directement l'issue à claude.ai — même résultat, sans label.

5

Attendre la MR

Claude se déclenche en quelques secondes. Vous pouvez suivre la progression dans CI/CD → Pipelines. Selon la complexité, le job prend entre 2 et 10 minutes.

Une fois terminé, Claude a :

✓ Créé une branche feat/ia-...
✓ Implémenté le code
✓ Commité et pushé
✓ Ouvert une MR avec référence au ticket
✓ Changé les labels To DoTo Merge
6

Review et merge

Ouvrez la MR créée par claude.ai. Reviewez le code comme n'importe quelle MR. Trois options :

Le code est bon
Vous approuvez et mergez.
Des corrections
Ajoutez des commentaires de review, puis label IA sur la MR.
Pas satisfaisant
Fermez la MR et supprimez la branche.
Cas d'usage

Scénarios du quotidien

Des situations réelles et comment Claude les traite — du bug en prod à l'audit de sécurité.

🔥
Bug en production
Priorité critique · Résolution rapide
Un TypeError sur la page panier empêche les utilisateurs de finaliser leurs achats depuis 20 minutes.
TITRE Fix TypeError sur la page panier — propriété 'price' undefined
## Erreur
TypeError: Cannot read properties of undefined (reading 'price')
at CartItem.vue:47

## Contexte
Se produit quand un produit est supprimé du catalogue
mais reste dans le panier d'un utilisateur.
Label IA
Résultat : Claude localise la ligne, ajoute un guard clause, crée la MR en ~3 minutes.
Nouvelle feature
Feature standard · Implémentation directe
Le product manager demande un export CSV de la liste des commandes.
TITRE Ajouter un export CSV sur la liste des commandes
## Demande
Ajouter un bouton "Exporter CSV" sur /admin/orders.
Le CSV doit contenir : id, date, client, montant, statut.

## Fichiers concernés
- src/pages/admin/Orders.vue
- src/services/order.service.js
Label IA Assigné à aubin.gerard
Résultat : Claude implémente le service d'export et le bouton, MR assignée à Aubin pour review.
🏗
Feature complexe · Architecture incertaine
Réflexion d'abord · Implémentation après validation
Refonte du système de notifications — email, push, in-app — sans casser l'existant.
TITRE [Réflexion] Refonte du système de notifications multi-canal
## Contexte
3 types de notifications : email (Nodemailer), push (FCM),
in-app (polling). Code dupliqué, difficile à maintenir.

## Objectif
Proposer une architecture unifiée avec un seul point
d'entrée et des adaptateurs par canal.
Label IA
Résultat : Claude poste un plan d'architecture en commentaire. L'archi valide, retire [Réflexion] du titre. Claude implémente.
🔬
Investigation technique
Spike · Go/no-go avant de s'engager
L'équipe hésite entre Redis et PostgreSQL pour le système de queue. Pas de temps pour un POC complet.
TITRE [Spike] Redis vs PostgreSQL pour notre système de queue de jobs
## Question
Lequel est le mieux adapté pour notre cas :
~500 jobs/heure, retry automatique, priorité, monitoring ?

## Contrainte
On utilise déjà PostgreSQL — ajouter Redis a un coût ops.
Label IA
Résultat : Claude analyse le contexte, prototype les deux approches et poste une recommandation argumentée en commentaire.
🔒
Audit avant mise en production
Sécurité · Rapport avec score et recommandations
Nouvelle API exposée publiquement — l'équipe veut un audit rapide avant le go-live.
TITRE [Secure] Audit de l'API publique avant go-live
## Périmètre
- src/routes/public/
- src/middleware/auth.js
- src/controllers/api/

## Points d'attention
- Validation des inputs
- Rate limiting
- Exposition de données sensibles
Label IA
Résultat : Claude audite le code OWASP Top 10, poste un rapport avec score /10 et vulnérabilités classées par criticité.
👁
Code Review complète d'une MR
Reviewer · Analyse approfondie sans modifier le code
Vous avez une MR prête à merger mais voulez un second avis technique avant de l'approuver. En ajoutant claude.ai comme reviewer, vous obtenez une analyse complète du diff en quelques minutes.
Comment déclencher
1. Ouvrez la MR dans GitLab
2. Dans le panneau de droite → Reviewers
3. Ajoutez claude.ai comme reviewer
4. Claude se déclenche automatiquement
Ce que Claude analyse
Qualité et lisibilité du code
Bonnes pratiques et conventions
Bugs potentiels et edge cases
Failles de sécurité
Problèmes de performance
Cohérence avec le reste du projet
Ce que vous recevez
Commentaires inline
Directement sur les lignes concernées dans le diff GitLab
Résumé général
Points positifs, points à corriger, recommandation globale
Aucune modification
Claude ne touche pas au code — uniquement des commentaires
Astuce
Si Claude identifie des corrections à apporter, vous n'avez pas à les faire manuellement. Ajoutez le label IA sur la MR — Claude applique automatiquement les corrections qu'il a lui-même suggérées.
Bonnes pratiques

Obtenir les meilleurs résultats

Quelques règles simples pour maximiser la qualité du travail de Claude.

CLAUDE.md — le levier principal

Créez un fichier CLAUDE.md à la racine de chaque projet. Claude le lit automatiquement et adapte son code à votre stack, vos conventions et vos règles métier. C'est ce qui fait la différence entre du code générique et du code qui s'intègre parfaitement dans votre projet.

Rédigez des tickets précis
Mentionnez les fichiers concernés, le contexte technique, et l'objectif attendu. Plus Claude a d'informations, moins il improvise.
Utilisez [Réflexion] pour le complexe
Pour les features qui touchent plusieurs fichiers ou l'architecture, demandez d'abord un plan. Vous éviterez des implémentations à refaire.
Reviewez toujours le code
Claude crée toujours une MR — jamais de push direct sur main. Un humain reste responsable du merge final.
Itérez via les commentaires MR
Si le code ne convient pas, ajoutez des commentaires de review sur la MR puis ajoutez le label IA. Claude applique les corrections automatiquement.