Package Information
Available Nodes
Documentation
n8n-nodes-extended-gitlab
This package provides an extended GitLab node for n8n. It expands the built-in GitLab integration with many additional API operations.
Installation
Follow the community node installation guide to install the package from npm:
npm install n8n-nodes-extended-gitlab
Usage
- Install the package through Community Nodes in the n8n settings or run
npm install n8n-nodes-extended-gitlabin your n8n directory. - Create Gitlab Extended API credentials providing your server URL, personal access token and default project ID.
- Drop the Gitlab Extended node into a workflow and select your credentials.
- Pick a resource and operation, then fill in the required fields.
For example, choose pipeline and getAll to list all pipelines in your project.
Operations
Operations are grouped by resource. Select the desired resource and then pick
one of its operations.
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 issueupdate– Update an issueclose– Close an issuereopen– Reopen an issueget– Get an issue by numbergetAll– List issues
Merge request
create– Create a merge requestget– Get a merge requestgetAll– List merge requestscreateNote– Add a notepostDiscussionNote– Reply or start a discussionupdateNote– Update a note by IDupdateDiscussionNote– Update a note in a discussiondeleteNote– Delete a notegetNote– Get a notegetChanges– Get merge request changesgetDiscussions– List discussionsgetDiscussion– Get a discussionupdateDiscussion– Update a discussiondeleteDiscussion– Delete a discussionresolveDiscussion– Resolve or unresolve a discussionmerge– Merge (accept) a merge requestrebase– Rebase a merge requestclose– Close a merge requestreopen– Reopen a merge requestlabels– Add or remove labels based onlabelAction
Raw API
request– Call any GitLab endpoint
Example: Managing Labels on a Merge Request
To add labels to a merge request, use the labels operation with the following parameters:
mergeRequestIid: The IID of the merge request.labelAction: Set toaddorremove.labels: Comma-separated label names.
Example:
{
"operation": "labels",
"mergeRequestIid": 123,
"labelAction": "add",
"labels": "bug,urgent"
}
Parameters
Below is a concise list of parameter names used by the node. Provide only those
required for your chosen operation.
| Name | Description |
|---|---|
branch |
Name of a branch |
ref |
Source branch or commit |
newBranch |
New name when renaming |
targetBranch |
Target branch for merges |
developersCanPush |
Allow developers to push |
developersCanMerge |
Allow developers to merge |
pipelineId |
Numeric pipeline ID (positive) |
pipelineRef |
Branch or tag for pipelines and artifact downloads |
path |
File or directory path |
fileRef |
Branch, tag or commit for file operations |
title |
Title for issues and merge requests |
description |
Description text |
issueIid |
Issue IID (positive) |
issueLabels |
Issue labels, comma-separated |
issueState |
Desired issue state (reopen or close) |
mergeRequestIid |
Merge request IID (positive) |
labels |
Comma-separated label list |
labelAction |
add or remove |
body |
Body of a note |
startDiscussion |
Start a new discussion |
discussionId |
Discussion ID |
resolved |
Whether a discussion is resolved |
noteId |
ID of a note (positive) |
positionType |
text or image position |
newPath/oldPath |
File paths for note position |
newLine/oldLine |
Optional line numbers for note position |
lineRangeStartLineCode |
Line code for the start line of a multiline note |
lineRangeStartType |
new or old start line type |
lineRangeStartOldLine/lineRangeStartNewLine |
Optional line numbers for the start line |
lineRangeEndLineCode |
Line code for the end line of a multiline note |
lineRangeEndType |
new or old end line type |
lineRangeEndOldLine/lineRangeEndNewLine |
Optional line numbers for the end line |
baseSha |
Base commit SHA |
headSha |
Head commit SHA |
startSha |
Start commit SHA |
mergeCommitMessage |
Commit message when merging |
mergeStrategy |
merge or squash |
skipCi |
Skip CI when rebasing |
httpMethod |
Method for raw requests |
endpoint |
Endpoint path |
content |
JSON body payload |
queryParameters |
JSON query parameters |
returnAll |
Return every result when listing |
limit |
Maximum number of results |
Optional parameters set to null are omitted from requests. Use this to avoid
sending the resolved flag when updating a note body with updateDiscussionNote.
| groupId | Numeric group ID |
| groupName | Name when creating a group |
| groupPath | Path when creating a group |
| parentId | Parent group ID when creating a subgroup |
| projectId | Numeric project ID |
| projectName | Name when creating a project |
| projectPath | Path when creating a project |
| namespaceId | Namespace for the new project |
| searchTerm | Term to search projects |
Credentials
Authentication can use the saved Gitlab Extended API credentials or custom values entered directly in the node. When selecting Custom authentication you provide the server URL, token and project details on the node itself.
The credentials' or custom server field specifies your GitLab instance host (e.g. https://gitlab.your-company.com). Requests automatically use the /api/v4 path.
Compatibility
This package requires n8n version 1.0.0 or later and is tested on Node.js 20.
Development
Install dependencies with npm install and ensure the n8n-workflow peer is installed:
npm install
npm install n8n-workflow
Run the tests with:
npm test
Tool usage for AI
The node is marked with usableAsTool: true, so it can be invoked by n8n's AI
features. After installing the package and creating the Gitlab Extended API
credentials, the node appears in the list of available tools when building
generative AI workflows. An AI agent can call any of the supported operations—
such as fetching files or creating issues—by providing the necessary
parameters in natural language. The node runs using the credentials you
configured, enabling automated access to your GitLab projects from AI-driven
flows.