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.
- Sign in to GitLab → User Settings → Access Tokens (or Personal Access Tokens depending on version).
- Create a token with scopes: api, read_user, read_repository, write_repository.
- Set an expiration date (recommended) and copy the token (starts with glpat-).
- For service automation, use a Project or Group access token instead – same API surface, scoped to one project/group.
- 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.
| Operation | Category | What it does |
|---|---|---|
| Create Issue | General | Create a new issue |
| Create Merge Request | General | Create a merge request |
| Get Pipeline | General | Get pipeline details |
| Get Project | General | Get project details |
| List Issues | General | List project issues |
| List Merge Requests | General | List merge requests |
| List Pipelines | General | List CI/CD pipelines |
| List Projects | General | List accessible projects |
| List Releases | General | List releases |
| Update Issue | General | Update an issue |
Operations
Create Issue
Create a new issue
| Parameter | Required | Type | Description |
|---|---|---|---|
Project Id project_id | Yes | text | |
Title title | Yes | text | |
Description description | Yes | text | |
Labels labels | Yes | text | |
Assignee Ids assignee_ids | Yes | text |
Tips
- title required. description in Markdown. labels (array), assignee_ids (user IDs), milestone_id optional.
Create Merge Request
Create a merge request
| Parameter | Required | Type | Description |
|---|---|---|---|
Project Id project_id | Yes | text | |
Source Branch source_branch | Yes | text | |
Target Branch target_branch | Yes | text | |
Title title | Yes | text | |
Description description | Yes | text |
Tips
- source_branch + target_branch + title.
- remove_source_branch=true deletes source after merge; squash=true squashes commits.
Get Pipeline
Get pipeline details
| Parameter | Required | Type | Description |
|---|---|---|---|
Project Id project_id | Yes | text | |
Pipeline Id pipeline_id | Yes | text |
Tips
- Returns pipeline + status. Use List Pipeline Jobs for individual job details.
Get Project
Get project details
| Parameter | Required | Type | Description |
|---|---|---|---|
Project Id project_id | Yes | text |
Tips
- project_id: numeric or URL-encoded path (e.g. mygroup%2Fmyproject).
List Issues
List project issues
| Parameter | Required | Type | Description |
|---|---|---|---|
Project Id project_id | Yes | text |
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
| Parameter | Required | Type | Description |
|---|---|---|---|
Project Id project_id | Yes | text |
Tips
- state=opened / closed / merged / all. target_branch=main scopes by target.
List Pipelines
List CI/CD pipelines
| Parameter | Required | Type | Description |
|---|---|---|---|
Project Id project_id | Yes | text |
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
| Parameter | Required | Type | Description |
|---|---|---|---|
Project Id project_id | Yes | text |
Update Issue
Update an issue
| Parameter | Required | Type | Description |
|---|---|---|---|
Project Id project_id | Yes | text | |
Issue Iid issue_iid | Yes | text |
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.