GitLab integration

DevOps: projects, issues, merge requests, pipelines, releases, users

Help CentreConnectors

Overview

GitLab is an integrated DevOps platform – Git hosting, CI/CD, issues, merge requests, packages, container registry. The Automize GitLab connector covers the project lifecycle: projects, issues, merge requests, pipelines, releases, and users.

  • Regions: GitLab.com is global. Self-hosted GitLab (Community or Enterprise edition) uses the same REST API – configure the base URL on the connection.
  • Plans: Free, Premium, Ultimate on GitLab.com; CE / EE on self-hosted. Some features (epics, merge approval rules) need Premium or Ultimate.

Setting up the connection

Auth type: Bearer Token.

  1. Sign in to GitLab → User Settings → Access Tokens (or Personal Access Tokens depending on version).
  2. Create a token with scopes: api, read_user, read_repository, write_repository.
  3. Set an expiration date (recommended) and copy the token (starts with glpat-).
  4. For service automation, use a Project or Group access token instead – same API surface, scoped to one project/group.
  5. In Automize, open Settings → Connectors → GitLab → Add connection. Paste the token. For self-hosted, set the GitLab URL.

Find your credentials at https://gitlab.com/-/user_settings/personal_access_tokens.


Rate limits

GitLab.com enforces 2,000 requests/min per authenticated user (configurable per instance on self-hosted). The connector retries 429 with the Retry-After header. Search endpoints have a tighter limit.


Data model

Group ─┬─ Subgroups
       └─ Projects ─┬─ Issues ── Notes (comments)
                    ├─ Merge Requests ── Notes (comments)
                    ├─ Branches ── Commits
                    ├─ Pipelines ── Jobs
                    ├─ Releases
                    └─ Webhooks

project_id can be the numeric ID or URL-encoded path (group/project).

Available operations

10 operations available. Click any row to jump to its detail.

OperationCategoryWhat it does
Create IssueGeneralCreate a new issue
Create Merge RequestGeneralCreate a merge request
Get PipelineGeneralGet pipeline details
Get ProjectGeneralGet project details
List IssuesGeneralList project issues
List Merge RequestsGeneralList merge requests
List PipelinesGeneralList CI/CD pipelines
List ProjectsGeneralList accessible projects
List ReleasesGeneralList releases
Update IssueGeneralUpdate an issue

Operations

Create Issue

Create a new issue

ParameterRequiredTypeDescription
Project Id project_idYestext
Title titleYestext
Description descriptionYestext
Labels labelsYestext
Assignee Ids assignee_idsYestext

Tips

  • title required. description in Markdown. labels (array), assignee_ids (user IDs), milestone_id optional.

Create Merge Request

Create a merge request

ParameterRequiredTypeDescription
Project Id project_idYestext
Source Branch source_branchYestext
Target Branch target_branchYestext
Title titleYestext
Description descriptionYestext

Tips

  • source_branch + target_branch + title.
  • remove_source_branch=true deletes source after merge; squash=true squashes commits.

Get Pipeline

Get pipeline details

ParameterRequiredTypeDescription
Project Id project_idYestext
Pipeline Id pipeline_idYestext

Tips

  • Returns pipeline + status. Use List Pipeline Jobs for individual job details.

Get Project

Get project details

ParameterRequiredTypeDescription
Project Id project_idYestext

Tips

  • project_id: numeric or URL-encoded path (e.g. mygroup%2Fmyproject).

List Issues

List project issues

ParameterRequiredTypeDescription
Project Id project_idYestext

Tips

  • state=opened / closed / all. labels=bug,priority::high (comma list).
  • assignee_username + author_username filters scope to specific users.

List Merge Requests

List merge requests

ParameterRequiredTypeDescription
Project Id project_idYestext

Tips

  • state=opened / closed / merged / all. target_branch=main scopes by target.

List Pipelines

List CI/CD pipelines

ParameterRequiredTypeDescription
Project Id project_idYestext

Tips

  • Filter by status (pending, running, success, failed, canceled).
  • ref=main scopes to a specific branch.

List Projects

List accessible projects

No input parameters.

Tips

  • membership=true returns only projects you're a member of (recommended for bot tokens).
  • owned=true returns projects you own.

List Releases

List releases

ParameterRequiredTypeDescription
Project Id project_idYestext

Update Issue

Update an issue

ParameterRequiredTypeDescription
Project Id project_idYestext
Issue Iid issue_iidYestext

Tips

  • state_event: 'close' or 'reopen'. Add/remove labels via add_labels / remove_labels (comma-separated).

FAQ

Numeric ID vs path – when?
Both work for project_id. Path is human-readable (group/project), URL-encoded (group%2Fproject). Numeric ID is faster (no resolution step). Either is fine.
Self-hosted GitLab – same connector?
Yes. Set the GitLab URL on the connection (e.g. https://gitlab.yourcompany.com). API surface is identical.
Why does my Merge fail with 'cannot be merged'?
Either pipeline is still running, approvals are missing (Premium+), or there are merge conflicts. Look at the merge_status field on Get Merge Request – it tells you exactly what's blocking.
Project access token vs PAT?
Project access tokens scope to one project – safer for automation. PATs are user-scoped. For org-wide automation, use a group access token (Premium+) or a dedicated bot user.

Related connectors

See it working on your own data

Everything documented here ships with the platform – try the document tools free, or go live in 7 days.