Package Information
Documentation
n8n-nodes-gitlab-pro
This package provides an extended GitLab node for n8n.
It is maintained as a downstream branch/fork of the original project at
xopoko/n8n-nodes-extended-gitlab.
On top of the upstream implementation, this variant focuses on:
- fixing bugs found during production use
- smoothing out awkward or error-prone node interactions
- extending the available GitLab API operations and resource coverage
It also includes a GitLab Trigger node that can register project webhooks and
start workflows from incoming GitLab events.
What is different in this branch
Compared with the upstream project, this branch is intended to be easier to use
in real n8n workflows and AI-driven automation scenarios.
- Improved usability around parameter selection and project targeting
- Fixed bugs in request handling and node behavior
- Expanded API coverage for issue notes, merge request discussions, labels, and
raw endpoint access - Kept the node usable as an AI tool in n8n agent workflows
Installation
Install the package as an n8n community node:
npm install n8n-nodes-gitlab-pro
You can also install it from the n8n Community Nodes UI if that matches your
deployment model.
Usage
- Install the package in n8n.
- Create
gitlab api procredentials with your GitLab server URL and personal
access token. - Add the
gitlab api pronode to a workflow. - Choose a resource and operation, then fill in the required parameters.
For project-scoped resources, the node supports Project Locator, so you can
target a project by either:
- numeric
projectId projectOwner+projectName
To react to GitLab webhook events, add the GitLab Trigger node, select the
target project and events, then activate the workflow so n8n can register the
webhook automatically.
Operations
Operations are grouped by resource. Select a resource, then choose the
corresponding operation.
Branch
create- Create a branchget- Get a branchgetAll- List branchesdelete- Delete a branchrename- Rename a branchprotect- Protect a branchunprotect- Unprotect a branchmerge- Merge a branch
Pipeline
create- Trigger a pipelineretry- Retry a pipelinecancel- Cancel a pipelineget- Get a pipeline by IDgetAll- List pipelinesgetJobs- List jobs for a pipelinedelete- Delete a pipelinedownloadArtifacts- Download artifacts from a pipeline
Tag
create- Create a tagget- Get a taggetAll- List tagsdelete- Delete a tag
Release
create- Create a releaseupdate- Update a releaseget- Get a releasegetAll- List releasesdelete- Delete a release
Group
create- Create a groupget- Get a groupdelete- Delete a groupgetMembers- List group members
Project
create- Create a projectget- Get a projectgetAll- List projectssearch- Search projects
File
create- Create a fileupdate- Update a filedelete- Delete a fileget- Retrieve a filelist- List repository files
Issue
create- Create an issueget- Get an issue by IIDgetAll- List issuesupdate- Update an issueclose- Close an issuereopen- Reopen an issuecreateNote- Add a note to an issuegetNotes- List issue notesgetNote- Get an issue noteupdateNote- Update an issue notedeleteNote- Delete an issue note
Merge Request
create- Create a merge requestget- Get a merge requestgetAll- List merge requestsgetChanges- Get merge request changesmerge- Merge a merge requestrebase- Rebase a merge requestclose- Close a merge requestreopen- Reopen a merge requestlabels- Add or remove labelscreateNote- Add a notegetNote- Get a noteupdateNote- Update a notedeleteNote- Delete a notegetDiscussions- List discussionsgetDiscussion- Get a discussionpostDiscussionNote- Start or reply to a discussionupdateDiscussion- Update a discussionresolveDiscussion- Resolve or unresolve a discussionupdateDiscussionNote- Update a discussion notedeleteDiscussion- Delete a discussiondeleteDiscussionNote- Delete a discussion note
Raw API
request- Call any GitLab REST API endpoint directly
Trigger Events
The GitLab Trigger node supports these project webhook events:
commentconfidential issuesconfidential commentsdeploymentsissuejobmerge requestpipelinepushreleasetagwiki page
Example: Managing Labels on a Merge Request
Use the labels operation with:
mergeRequestIid: the merge request IIDlabelAction:addorremovelabels: comma-separated label names
Example:
{
"operation": "labels",
"mergeRequestIid": 123,
"labelAction": "add",
"labels": "bug,urgent"
}
Parameters
Below is a concise list of commonly used parameter names exposed by the node.
Provide only the parameters required for your chosen resource and operation.
| Name | Description |
|---|---|
projectId |
Numeric project ID |
projectOwner |
GitLab namespace or owner |
projectName |
GitLab project name or path fragment |
branch |
Branch name |
ref |
Source branch, tag, or commit |
newBranch |
New branch name when renaming |
targetBranch |
Target branch for branch merges or merge requests |
developersCanPush |
Allow developers to push to a protected branch |
developersCanMerge |
Allow developers to merge into a protected branch |
pipelineId |
Numeric pipeline ID |
path |
File or directory path |
fileRef |
Branch, tag, or commit used for file reads |
title |
Title for issues or merge requests |
description |
Description text |
issueIid |
Numeric issue IID |
issueLabels |
Comma-separated issue labels |
issueState |
Issue state transition |
mergeRequestIid |
Numeric merge request IID |
labels |
Comma-separated labels |
labelAction |
add or remove |
body |
Note or comment body |
discussionId |
Merge request discussion ID |
noteId |
Note ID |
resolved |
Whether a discussion is resolved |
endpoint |
Raw API endpoint path |
httpMethod |
Raw API request method |
content |
Raw API request body |
queryParameters |
Raw API query string object |
returnAll |
Return every result when listing |
limit |
Maximum number of results |
Optional parameters set to null are omitted from requests, which is useful
for update operations where GitLab distinguishes between "missing" and
"explicitly set".
Credentials
Authentication can use saved gitlab api pro credentials or custom values
entered directly in the node.
When using custom authentication, provide:
- your GitLab server URL
- a personal access token with the scopes required by your workflow
The server value should point to your GitLab instance host, for examplehttps://gitlab.example.com. Requests automatically use the /api/v4 base
path.
Compatibility
This package requires:
- n8n
1.0.0or later - Node.js
20.15or later
Development
This repository is intended to be developed in an already prepared environment.
Do not run package installation commands during agent execution.
Before committing changes, run:
npm run format:check
npm run lint
npm test
Tool Usage for AI
The node is marked with usableAsTool: true, so it can be invoked directly by
n8n AI Agent workflows.
Typical use cases include:
- creating or updating issues
- reviewing or merging merge requests
- checking pipelines and jobs
- calling unsupported endpoints through the raw API resource
Prompting works best when the instruction is explicit about resource and intent,
for example:
Create an issue titled "Upgrade dependencies" in project 123List open merge requests targeting main with failing pipelinesMerge MR !42 if the pipeline succeeded