Intégration GitLab n8nAutomatiser GitLab avec n8n.
Ce qui se passe dans tes dépôts n'a aucune raison de rester dans tes dépôts. Une intégration GitLab n8n expose 18 opérations réparties sur 5 ressources : fichiers, issues, releases, dépôts et utilisateurs. Le GitLab Trigger écoute 12 types d'événements et réagit en quelques secondes.
Avis vérifiés sur Trustpilot · Agence IA, automatisation & growth
À quoi sert une intégration GitLab n8n ?
Une intégration GitLab n8n relie tes dépôts à tout ce qui gravite autour. Le nœud GitLab appelle l'API de GitLab à ta place : un workflow lit un fichier, ouvre une issue ou publie une release sans que personne n'ouvre l'interface. Le GitLab Trigger fait le trajet inverse. Il enregistre un webhook, c'est-à-dire une URL n8n que GitLab appelle dès qu'il se passe quelque chose dans le projet.
Premier scénario : les notes de version qui s'écrivent seules. Un tag arrive, le trigger part sur tag_push, le nœud enchaîne release.create avec ce tag et une description construite en amont, et l'annonce tombe dans Slack avant que quiconque ait rafraîchi une page.
Deuxième scénario : le tri des tickets qui ne dépend plus de la vigilance d'une personne. repository.getIssues récupère chaque matin les issues ouvertes, filtre sur un label, et dépose la liste dans Google Sheets pour la revue hebdo. Ajoute issue.edit et les tickets dormants se ferment sur une règle, pas sur une humeur.
Troisième scénario : le dépôt comme fichier de configuration. file.get lit un JSON sur la branche par défaut, le workflow s'en sert, puis file.create réécrit le résultat avec un message de commit qui dit d'où il vient. Les équipes qui gardent aussi un miroir sur GitHub rejouent le même montage des deux côtés.
Quand l'opération n'existe pas dans le nœud, le repli s'appelle HTTP Request. Le nœud GitLab couvre les fichiers, les issues, les releases, les dépôts et les utilisateurs. Le reste de l'API GitLab reste accessible : le nœud HTTP Request tape l'endpoint directement et réutilise le même credential GitLab, cet identifiant enregistré une fois dans n8n, via l'authentification prédéfinie.
Deux limites à connaître avant de construire. Les opérations de release demandent un Project ID, l'identifiant ou le chemin encodé du projet, alors que les fichiers et les issues demandent un Project Owner : un même workflow jongle donc avec les deux conventions. Et les listes reviennent paginées : si Return All reste décoché, n8n s'arrête à Limit. Si le choix de plateforme n'est pas tranché, l'Avis n8n traite le sujet, et la Formation n8n va plus loin sur les expressions.
Comment connecter GitLab à n8n ?
- 01
Créer un jeton d'accès dans GitLab
Dans GitLab, clique sur ton avatar, puis Edit profile, puis Access tokens dans la barre latérale, puis Add new token. Donne-lui un Name du genre
n8n integration, renseigne une expiry date, et choisis tes Scopes. Le scopeapiouvre d'un coup tout ce que sait faire le nœud ; des scopes plus fins conviennent une fois que tu sais quelles opérations tournent vraiment. - 02
Enregistrer le credential dans n8n
Ouvre le menu Credentials de n8n et crée un credential GitLab. Colle le jeton dans Access Token, puis renseigne GitLab Server avec l'URL de ton instance : ça compte dès que l'équipe héberge GitLab elle-même au lieu de passer par gitlab.com. Un credential se crée une fois et se réutilise partout. Le nœud GitLab comme le GitLab Trigger vont le chercher dans une liste déroulante.
- 03
Ou déclarer une application OAuth2
OAuth2 est la méthode recommandée. Dans GitLab, va dans Edit profile, puis Applications, puis Add new application. Recopie l'OAuth Redirect URL affichée par n8n dans le champ Redirect URI de GitLab, coche les mêmes Scopes, et enregistre. GitLab renvoie alors un Application ID et un Secret, qui deviennent Client ID et Client Secret côté n8n.
Quels événements GitLab peuvent lancer un workflow ?
GitLab Trigger est le nœud qui démarre un workflow quand quelque chose se passe dans GitLab. Il écoute 12 événements, listés ci-dessous par famille. Tu en choisis un ou plusieurs, tu actives le workflow : n8n enregistre le webhook (l'URL que GitLab appelle) sur ton compte.
Ce que tu vois dans n8n
Tous les événements, par famille
Une ligne par objet, une puce par action. L'événement à cocher dans le nœud s'écrit objet.action ; survole une puce pour lire quand il se déclenche.
confidential_issues.*1confidential_issues. confidential_issues
confidential_note.*1confidential_note. confidential_note
deployment.*1deployment.deployment
issues.*1issues.issues
job.*1job.job
merge_requests.*1merge_requests. merge_requests
note.*1note.note
pipeline.*1pipeline.pipeline
push.*1push.push
releases.*1releases.releases
tag_push.*1tag_push. tag_push
wiki_page.*1wiki_page. wiki_page
Le trigger accepte aussi * (tout événement). Pratique pour du log, dangereux en production.
Notes de configuration
01Configure the GitLab Trigger
Le trigger a besoin de savoir quel projet surveiller et quoi écouter. Rien de plus.
Paramètres clés
- Repository Owner : l'utilisateur, le groupe ou le namespace auquel appartient le projet.
- Repository Name : le nom du dépôt lui-même.
- Events : la liste que tu coches. Une entrée joker,
*, s'abonne à tous les événements d'un coup, pratique tant que tu cherches encore ce qui t'intéresse.
02Push, Tag and Merge Request events
Ces trois-là portent le mouvement quotidien du code.
Paramètres clés
- Push (
push) : part quand tu pousses sur le dépôt, sauf quand le push concerne un tag. - Tag (
tag_push) : part quand tu crées ou supprimes des tags, le point d'accroche propre pour tout ce qui ressemble à une version. - Merge Request (
merge_requests) : part quand une merge request est créée, mise à jour, fusionnée ou fermée, et aussi quand un commit s'ajoute sur la branche source.
issue.edit ou de résumer le changement là où traînent les relecteurs. Comme push reste muet sur les tags, tu peux traiter les commits et les versions dans deux workflows séparés.03Pipeline, Job and Deployment events
Côté CI, GitLab raconte lui-même son avancement.
Paramètres clés
- Pipeline (
pipeline) : part à chaque changement de statut d'un pipeline. - Job (
job) : part à chaque changement de statut d'un job, donc un seul pipeline en produit plusieurs. - Deployments (
deployment) : part quand un déploiement démarre, réussit, échoue ou est annulé. - Release (
releases) : part quand une release est créée ou mise à jour.
pipeline, filtre sur le statut contenu dans la charge utile, et envoie les échecs là où les gens regardent déjà. Garde job pour les cas où il te faut l'étape fautive par son nom : c'est nettement plus bavard. Quant à deployment, c'est celui à prendre quand la question porte sur l'environnement plutôt que sur le build, puisqu'il remonte aussi les annulations.04Issue, Comment and Wiki Page events
Tout ce que les humains écrivent autour du code a son propre événement.
Paramètres clés
- Issue (
issues) : part quand une issue est créée, mise à jour, fermée ou rouverte. - Comment (
note) : part sur un nouveau commentaire, qu'il soit posé sur un commit, une merge request, une issue ou un extrait de code. - Confidential Issues et Confidential Comments (
confidential_issues,confidential_note) : les mêmes signaux pour les issues et les commentaires confidentiels, volontairement séparés. - Wiki Page (
wiki_page) : part quand une page de wiki est créée, modifiée ou supprimée.
issues, parce qu'un nouveau ticket ouvre un processus qui continue loin de GitLab. Ne t'abonne aux variantes confidentielles que si le workflow a le droit de manipuler ce contenu : les événements standards ne les couvrent pas.Ce que le nœud GitLab sait faire
Le nœud GitLab expose 18 opérations sur 5 ressources. Pour chacune : le nœud tel que tu le configures dans n8n, les champs obligatoires, et nos notes de terrain.
| Ressource | Create | Get | Get Many | Update | Delete | Create Comment | Edit | Get Issues | Get Repositories | List | Lock |
|---|---|---|---|---|---|---|---|---|---|---|---|
| File | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
| Issue | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
| Release | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
| Repository | ✓ | ✓ | |||||||||
| User | ✓ |
Sommaire des opérations
File
5 opérationsCreate a file
file.createCe que tu vois dans n8n
Notes & cas d'usage
Commite un nouveau fichier dans le dépôt, sur la branche que tu indiques, exactement comme le ferait un développeur.
Paramètres clés
- Project Owner : l'utilisateur, le groupe ou le namespace du projet, par exemple
n8n-io. - Binary File : décoché, n8n écrit le texte saisi dans File Content ; coché, il prend le fichier dans Input Binary Field, le champ binaire entrant désigné par son nom.
- Commit Message et Branch : le message enregistré avec le commit, et la branche qui le reçoit.
- File Path : le chemin complet, du type
docs/README.md, ou vide pour la racine.
Delete a file
file.deleteCe que tu vois dans n8n
Notes & cas d'usage
Supprime un fichier et enregistre la suppression sous forme de commit : l'historique en garde la trace.
Paramètres clés
- File Path : le chemin complet du fichier à retirer, ou vide pour viser la racine.
- Branch : la branche sur laquelle le commit de suppression est ajouté.
- Commit Message : ce que l'historique affichera, c'est-à-dire la seule explication qu'aura un relecteur six mois plus tard.
- Project Owner : l'utilisateur, le groupe ou le namespace du projet.
Edit a file
file.editCe que tu vois dans n8n
Notes & cas d'usage
Remplace le contenu d'un fichier déjà présent et commite la nouvelle version.
Paramètres clés
- File Content : le nouveau texte, qui écrase l'ancien au lieu de s'ajouter à la suite.
- Binary File : coche-le pour pousser le fichier depuis Input Binary Field plutôt qu'un texte saisi.
- File Path, Branch et Commit Message : quel fichier change, où, et sous quel message.
- Project Owner : l'utilisateur, le groupe ou le namespace du projet.
Get a file
file.getCe que tu vois dans n8n
Notes & cas d'usage
Relit un fichier du dépôt pour que la suite du workflow travaille sur son contenu.
Paramètres clés
- Put Output File in Field : le nom du champ binaire de sortie dans lequel n8n dépose le fichier.
- As Binary Property : coché, tu récupères un champ binaire ; décoché, tu reçois la réponse brute de l'API.
- Reference, dans Additional Parameters : le commit, la branche ou le tag à lire, par exemple
main. Laissé vide, GitLab prend la branche par défaut du dépôt.
List files
file.listCe que tu vois dans n8n
Notes & cas d'usage
Liste le contenu d'un dossier du dépôt, un item par entrée trouvée.
Paramètres clés
- File Path : le dossier à lister, vide pour la racine.
- Return All : coché, n8n parcourt toutes les pages de résultats ; décoché, il s'arrête à Limit, et Page te permet d'aller chercher une page précise.
- Recursive, dans Additional Parameters : coché, tu obtiens tout l'arbre sous le chemin au lieu d'un seul niveau.
- Reference : le commit, la branche ou le tag à lister.
Issue
5 opérationsCreate an issue
issue.createCe que tu vois dans n8n
Notes & cas d'usage
Ouvre une nouvelle issue dans le projet et la renvoie, numéro compris, aux nœuds suivants.
Paramètres clés
- Title : le titre de l'issue, seul champ obligatoire en plus du projet.
- Body : la description, souvent construite depuis l'item entrant avec une expression du type
{{ $json.message }}. - Due Date et Assignees : une échéance, et les personnes qui la portent.
- Label et Assignee, dans la collection Labels : un label à poser, et un identifiant d'utilisateur à qui attribuer l'issue.
Create a comment on an issue
issue.createCommentCe que tu vois dans n8n
Notes & cas d'usage
Ajoute un commentaire sur une issue existante, ce qui garde la conversation là où l'équipe la lit déjà.
Paramètres clés
- Issue Number : le numéro de l'issue qui reçoit le commentaire, en général repris d'un nœud précédent avec
{{ $json.iid }}. - Body : le texte du commentaire.
- Project Owner : l'utilisateur, le groupe ou le namespace du projet.
Edit an issue
issue.editCe que tu vois dans n8n
Notes & cas d'usage
Met à jour une issue existante, en ne changeant que les champs ajoutés dans la collection.
Paramètres clés
- Issue Number : quelle issue est modifiée.
- State, dans Edit Fields :
closedouopen, ce qui permet à un workflow de fermer un ticket tout seul. - Title, Body, Labels, Assignees et Due Date : tout le reste que la collection autorise à réécrire.
Get an issue
issue.getCe que tu vois dans n8n
Notes & cas d'usage
Récupère une issue précise et renvoie ses données, sans rien modifier dans GitLab.
Paramètres clés
- Issue Number : le numéro de l'issue à lire.
- Project Owner : l'utilisateur, le groupe ou le namespace du projet.
Lock an issue
issue.lockCe que tu vois dans n8n
Notes & cas d'usage
Verrouille la discussion d'une issue : plus aucun commentaire ne peut s'ajouter au fil.
Paramètres clés
- Issue Number : l'issue à verrouiller.
- Lock Reason : au choix
off-topic,too heated,resolvedouspam, ce qui consigne pourquoi le fil a été gelé.
resolved, et les mainteneurs arrêtent de répondre à la même question.Release
5 opérationsCreate a release
release.createCe que tu vois dans n8n
Notes & cas d'usage
Publie une release sur le projet, rattachée à un tag, et la renvoie.
Paramètres clés
- Tag : le tag de la release, seul champ requis en plus du projet.
- Ref, dans Additional Fields : si le tag n'existe pas encore, GitLab crée la release à partir de cette référence, un SHA de commit, un autre nom de tag ou un nom de branche.
- Name et Description : le nom affiché de la release et ses notes.
Delete a release
release.deleteCe que tu vois dans n8n
Notes & cas d'usage
Supprime une release du projet. Le tag Git, lui, reste un objet distinct de la release.
Paramètres clés
- Project ID : l'identifiant ou le chemin encodé du projet, que les opérations de release utilisent à la place d'un simple propriétaire.
- Tag Name : le tag Git auquel la release est associée.
- Project Owner : l'utilisateur, le groupe ou le namespace du projet.
Get a release
release.getCe que tu vois dans n8n
Notes & cas d'usage
Renvoie une release, identifiée par son tag, avec les données telles que GitLab les stocke.
Paramètres clés
- Tag Name : le tag Git auquel la release est associée.
- Project ID : l'identifiant ou le chemin encodé du projet.
- Project Owner : l'utilisateur, le groupe ou le namespace du projet.
Get many releases
release.getAllCe que tu vois dans n8n
Notes & cas d'usage
Renvoie les releases d'un projet sous forme de liste, un item par release.
Paramètres clés
- Return All : coché, n8n parcourt tout l'historique ; décoché, il s'arrête à Limit.
- Order By, dans Additional Fields :
created_atoureleased_at, deux dates qui diffèrent dès qu'une release est préparée à l'avance. - Sort :
ascoudescpour le sens du tri.
Update a release
release.updateCe que tu vois dans n8n
Notes & cas d'usage
Modifie une release déjà publiée, sans toucher au tag sur lequel elle pointe.
Paramètres clés
- Tag Name : quelle release est mise à jour.
- Description, dans Additional Fields : les notes de la release, où le Markdown est accepté.
- Milestones : le titre de chaque jalon à associer, sous forme de liste de titres séparés par des virgules.
- Released At : la date à laquelle la release est ou était prête.
- Name : le nom de la release.
Repository
2 opérationsGet a repository
repository.getCe que tu vois dans n8n
Notes & cas d'usage
Renvoie les données d'un dépôt, et ne demande rien d'autre que le projet lui-même.
Paramètres clés
- Project Owner : l'utilisateur, le groupe ou le namespace du projet, par exemple
n8n-io.
Get issues of a repository
repository.getIssuesCe que tu vois dans n8n
Notes & cas d'usage
Renvoie les issues d'un dépôt, filtrées côté serveur plutôt que dans un nœud plus loin.
Paramètres clés
- State, dans Filters :
opened,closed, ou vide pour tous les états. - Labels, Assignee, Creator et Search : restreindre par liste de labels, par nom d'utilisateur, ou sur le titre et la description.
- Updated After : seulement les issues touchées à partir d'une date, la base d'un récapitulatif quotidien.
- Return All et Limit : la liste entière, ou une liste plafonnée.
User
1 opérationGet a user's repositories
user.getRepositoriesCe que tu vois dans n8n
Notes & cas d'usage
Renvoie les dépôts d'un utilisateur, d'un groupe ou d'un namespace, un item par dépôt.
Paramètres clés
- Project Owner : l'utilisateur, le groupe ou le namespace dont tu veux les dépôts, par exemple
n8n-io.
Besoin d'aide pour automatiser GitLab avec n8n ?
L'équipe te répond directement.
Chaque message est lu par une personne.
