gitlab-pro

Extended GitLab node for n8n.

Package Information

Released: 4 mo ago
Downloads: 31 weekly / 72 monthly
Latest Version: 1.0.5
Author: Cyrus

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

  1. Install the package in n8n.
  2. Create gitlab api pro credentials with your GitLab server URL and personal
    access token.
  3. Add the gitlab api pro node to a workflow.
  4. 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 branch
  • get - Get a branch
  • getAll - List branches
  • delete - Delete a branch
  • rename - Rename a branch
  • protect - Protect a branch
  • unprotect - Unprotect a branch
  • merge - Merge a branch

Pipeline

  • create - Trigger a pipeline
  • retry - Retry a pipeline
  • cancel - Cancel a pipeline
  • get - Get a pipeline by ID
  • getAll - List pipelines
  • getJobs - List jobs for a pipeline
  • delete - Delete a pipeline
  • downloadArtifacts - Download artifacts from a pipeline

Tag

  • create - Create a tag
  • get - Get a tag
  • getAll - List tags
  • delete - Delete a tag

Release

  • create - Create a release
  • update - Update a release
  • get - Get a release
  • getAll - List releases
  • delete - Delete a release

Group

  • create - Create a group
  • get - Get a group
  • delete - Delete a group
  • getMembers - List group members

Project

  • create - Create a project
  • get - Get a project
  • getAll - List projects
  • search - Search projects

File

  • create - Create a file
  • update - Update a file
  • delete - Delete a file
  • get - Retrieve a file
  • list - List repository files

Issue

  • create - Create an issue
  • get - Get an issue by IID
  • getAll - List issues
  • update - Update an issue
  • close - Close an issue
  • reopen - Reopen an issue
  • createNote - Add a note to an issue
  • getNotes - List issue notes
  • getNote - Get an issue note
  • updateNote - Update an issue note
  • deleteNote - Delete an issue note

Merge Request

  • create - Create a merge request
  • get - Get a merge request
  • getAll - List merge requests
  • getChanges - Get merge request changes
  • merge - Merge a merge request
  • rebase - Rebase a merge request
  • close - Close a merge request
  • reopen - Reopen a merge request
  • labels - Add or remove labels
  • createNote - Add a note
  • getNote - Get a note
  • updateNote - Update a note
  • deleteNote - Delete a note
  • getDiscussions - List discussions
  • getDiscussion - Get a discussion
  • postDiscussionNote - Start or reply to a discussion
  • updateDiscussion - Update a discussion
  • resolveDiscussion - Resolve or unresolve a discussion
  • updateDiscussionNote - Update a discussion note
  • deleteDiscussion - Delete a discussion
  • deleteDiscussionNote - 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:

  • comment
  • confidential issues
  • confidential comments
  • deployments
  • issue
  • job
  • merge request
  • pipeline
  • push
  • release
  • tag
  • wiki page

Example: Managing Labels on a Merge Request

Use the labels operation with:

  • mergeRequestIid: the merge request IID
  • labelAction: add or remove
  • labels: 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 example
https://gitlab.example.com. Requests automatically use the /api/v4 base
path.

Compatibility

This package requires:

  • n8n 1.0.0 or later
  • Node.js 20.15 or 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 123
  • List open merge requests targeting main with failing pipelines
  • Merge MR !42 if the pipeline succeeded

Resources

License

MIT

Discussion