GitLab Automation via Rube MCP
Automate GitLab operations including project management, issue tracking, merge request workflows, CI/CD pipeline monitoring, branch management, and user administration through Composio's GitLab toolkit.
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active GitLab connection via
RUBE_MANAGE_CONNECTIONS with toolkit gitlab
- Always call
RUBE_SEARCH_TOOLS first to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLS responds
- Call
RUBE_MANAGE_CONNECTIONS with toolkit gitlab
- If connection is not ACTIVE, follow the returned auth link to complete GitLab OAuth
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Manage Issues
When to use: User wants to create, update, list, or search issues in a GitLab project
Tool sequence:
GITLAB_GET_PROJECTS - Find the target project and get its ID [Prerequisite]
GITLAB_LIST_PROJECT_ISSUES - List and filter issues for a project [Required]
GITLAB_CREATE_PROJECT_ISSUE - Create a new issue [Required for create]
GITLAB_UPDATE_PROJECT_ISSUE - Update an existing issue (title, labels, state, assignees) [Required for update]
GITLAB_LIST_PROJECT_USERS - Find user IDs for assignment [Optional]
Key parameters:
id: Project ID (integer) or URL-encoded path (e.g., "my-group/my-project")
title: Issue title (required for creation)
description: Issue body text (max 1,048,576 characters)
labels: Comma-separated label names (e.g., "bug,critical")
add_labels / remove_labels: Add or remove labels without replacing all
state: Filter by "all", "opened", or "closed"
state_event: "close" or "reopen" to change issue state
assignee_ids: Array of user IDs; use [0] to unassign all
issue_iid: Internal issue ID within the project (required for updates)
milestone: Filter by milestone title
search: Search in title and description
scope: "created_by_me", "assigned_to_me", or "all"
page / per_page: Pagination (default per_page: 20)
Pitfalls:
id accepts either integer project ID or URL-encoded path; wrong IDs yield 4xx errors
issue_iid is the project-internal ID (shown as #42), different from the global issue ID
- Labels in
labels field replace ALL existing labels; use add_labels/remove_labels for incremental changes
- Setting
assignee_ids to empty array does NOT unassign; use [0] instead
updated_at field requires administrator or project/group owner rights
2. Manage Merge Requests
When to use: User wants to list, filter, or review merge requests in a project
Tool sequence:
GITLAB_GET_PROJECT - Get project details and verify access [Prerequisite]
GITLAB_GET_PROJECT_MERGE_REQUESTS - List and filter merge requests [Required]
GITLAB_GET_REPOSITORY_BRANCHES - Verify source/target branches [Optional]
GITLAB_LIST_ALL_PROJECT_MEMBERS - Find reviewers/assignees [Optional]
Key parameters:
id: Project ID or URL-encoded path
state: "opened", "closed", "locked", "merged", or "all"
scope: "created_by_me" (default), "assigned_to_me", or "all"
source_branch / target_branch: Filter by branch names
author_id / author_username: Filter by MR author
assignee_id: Filter by assignee (use None for unassigned, Any for assigned)
reviewer_id / reviewer_username: Filter by reviewer
labels: Comma-separated label filter
search: Search in title and description
wip: "yes" for draft MRs, "no" for non-draft
order_by: "created_at" (default), "title", "merged_at", "updated_at"
view: "simple" for minimal fields
iids[]: Filter by specific MR internal IDs
Pitfalls:
- Default
scope is "created_by_me" which limits results; use "all" for complete listings
author_id and author_username are mutually exclusive
reviewer_id and reviewer_username are mutually exclusive
approved filter requires the mr_approved_filter feature flag (disabled by default)
- Large MR histories can be noisy; use filters and moderate
per_page values
3. Manage Projects and Repositories
When to use: User wants to list projects, create new projects, or manage branches
Tool sequence:
GITLAB_GET_PROJECTS - List all accessible projects with filters [Required]
GITLAB_GET_PROJECT - Get detailed info for a specific project [Optional]
GITLAB_LIST_USER_PROJECTS - List projects owned by a specific user [Optional]
GITLAB_CREATE_PROJECT - Create a new project [Required for create]
GITLAB_GET_REPOSITORY_BRANCHES - List branches in a project [Required for branch ops]
GITLAB_CREATE_REPOSITORY_BRANCH - Create a new branch [Optional]
GITLAB_GET_REPOSITORY_BRANCH - Get details of a specific branch [Optional]
GITLAB_LIST_REPOSITORY_COMMITS - View commit history [Optional]
GITLAB_GET_PROJECT_LANGUAGES - Get language breakdown [Optional]
Key parameters:
name / path: Project name and URL-friendly path (both required for creation)
visibility: "private", "internal", or "public"
namespace_id: Group or user ID for project placement
search: Case-insensitive substring search for projects
membership: true to limit to projects user is a member of
owned: true to limit to user-owned projects
project_id: Project ID for branch operations
branch_name: Name for new branch
ref: Source branch or commit SHA for new branch creation
order_by: "id", "name", "path", "created_at", "updated_at", "star_count", "last_activity_at"
Pitfalls:
GITLAB_GET_PROJECTS pagination is required for complete coverage; stopping at first page misses projects
- Some responses place items under
data.details; parse the actual returned list structure
- Most follow-up calls depend on correct
project_id; verify with GITLAB_GET_PROJECT first
- Invalid
branch_name/ref/sha causes client errors; verify branch existence via GITLAB_GET_REPOSITORY_BRANCHES first
- Both
name and path are required for GITLAB_CREATE_PROJECT
4. Monitor CI/CD Pipelines
When to use: User wants to check pipeline status, list jobs, or monitor CI/CD runs
Tool sequence:
GITLAB_GET_PROJECT - Verify project access [Prerequisite]
GITLAB_LIST_PROJECT_PIPELINES - List pipelines with filters [Required]
GITLAB_GET_SINGLE_PIPELINE - Get detailed info for a specific pipeline [Optional]
GITLAB_LIST_PIPELINE_JOBS - List jobs within a pipeline [Optional]
Key parameters:
id: Project ID or URL-encoded path
status: Filter by "created", "waiting_for_resource", "preparing", "pending", "running", "success", "failed", "canceled", "skipped", "manual", "scheduled"
scope: "running", "pending", "finished", "branches", "tags"
ref: Branch or tag name
sha: Specific commit SHA
source: Pipeline source (use "parent_pipeline" for child pipelines)
order_by: "id" (default), "status", "ref", "updated_at", "user_id"
created_after / created_before: ISO 8601 date filters
pipeline_id: Specific pipeline ID for job listing
include_retried: true to include retried jobs (default false)
Pitfalls:
- Large pipeline histories can be noisy; use
status, ref, and date filters to narrow results
- Use moderate
per_page values to keep output manageable
- Pipeline job
scope accepts single status string or array of statuses
yaml_errors: true returns only pipelines with invalid configurations
5. Manage Users and Members
When to use: User wants to find users, list project members, or check user status
Tool sequence:
GITLAB_GET_USERS - Search and list GitLab users [Required]
GITLAB_GET_USER - Get details for a specific user by ID [Optional]
GITLAB_GET_USERS_ID_STATUS - Get user status message and availability [Optional]
GITLAB_LIST_ALL_PROJECT_MEMBERS - List all project members (direct + inherited) [Required for member listing]
GITLAB_LIST_PROJECT_USERS - List project users with search filter [Optional]
Key parameters:
search: Search by name, username, or public email
username: Get specific user by username
active / blocked: Filter by user state
id: Project ID for member listing
query: Filter members by name, email, or username
state: Filter members by "awaiting" or "active" (Premium/Ultimate)
user_ids: Filter by specific user IDs
Pitfalls:
- Many user filters (admins, auditors, extern_uid, two_factor) are admin-only
GITLAB_LIST_ALL_PROJECT_MEMBERS includes direct, inherited, and invited members
- User search is case-insensitive but may not match partial email domains
- Premium/Ultimate features (state filter, seat info) are not available on free plans
Common Patterns
ID Resolution
GitLab uses two identifier formats for projects:
- Numeric ID: Integer project ID (e.g.,
123)
- URL-encoded path: Namespace/project format (e.g.,
"my-group%2Fmy-project" or "my-group/my-project")
- Issue IID vs ID:
issue_iid is the project-internal number (#42); the global id is different
- User ID: Numeric; resolve via
GITLAB_GET_USERS with search or username
Pagination
GitLab uses offset-based pagination:
- Set
page (starting at 1) and per_page (1-100, default 20)
- Continue incrementing
page until response returns fewer items than per_page or is empty
- Total count may be available in response headers (
X-Total, X-Total-Pages)
- Always paginate to completion for accurate results
URL-Encoded Paths
When using project paths as identifiers:
- Forward slashes must be URL-encoded:
my-group/my-project becomes my-group%2Fmy-project
- Some tools accept unencoded paths; check schema for each tool
- Prefer numeric IDs when available for reliability
Known Pitfalls
ID Formats
- Project
id field accepts both integer and string (URL-encoded path)
- Issue
issue_iid is project-scoped; do not confuse with global issue ID
- Pipeline IDs are project-scoped integers
- User IDs are global integers across the GitLab instance
Rate Limits
- GitLab has per-user rate limits (typically 300-2000 requests/minute depending on plan)
- Large pipeline/issue histories should use date and status filters to reduce result sets
- Paginate responsibly with moderate
per_page values
Parameter Quirks
labels field replaces ALL labels; use add_labels/remove_labels for incremental changes
assignee_ids: [0] unassigns all; empty array does nothing
scope defaults vary: "created_by_me" for MRs, "all" for issues
author_id and author_username are mutually exclusive in MR filters
- Date parameters use ISO 8601 format:
"2024-01-15T10:30:00Z"
Plan Restrictions
- Some features require Premium/Ultimate:
epic_id, weight, iteration_id, approved_by_ids, member state filter
- Admin-only features: user management filters,
updated_at override, custom attributes
- The
mr_approved_filter feature flag is disabled by default
Quick Reference
| Task |
Tool Slug |
Key Params |
| List projects |
GITLAB_GET_PROJECTS |
search, membership, visibility |
| Get project details |
GITLAB_GET_PROJECT |
id |
| User's projects |
GITLAB_LIST_USER_PROJECTS |
id, search, owned |
| Create project |
GITLAB_CREATE_PROJECT |
name, path, visibility |
| List issues |
GITLAB_LIST_PROJECT_ISSUES |
id, state, labels, search |
| Create issue |
GITLAB_CREATE_PROJECT_ISSUE |
id, title, description, labels |
| Update issue |
GITLAB_UPDATE_PROJECT_ISSUE |
id, issue_iid, state_event |
| List merge requests |
GITLAB_GET_PROJECT_MERGE_REQUESTS |
id, state, scope, labels |
| List branches |
GITLAB_GET_REPOSITORY_BRANCHES |
project_id, search |
| Get branch |
GITLAB_GET_REPOSITORY_BRANCH |
project_id, branch_name |
| Create branch |
GITLAB_CREATE_REPOSITORY_BRANCH |
project_id, branch_name, ref |
| List commits |
GITLAB_LIST_REPOSITORY_COMMITS |
project ID, branch ref |
| Project languages |
GITLAB_GET_PROJECT_LANGUAGES |
project ID |
| List pipelines |
GITLAB_LIST_PROJECT_PIPELINES |
id, status, ref |
| Get pipeline |
GITLAB_GET_SINGLE_PIPELINE |
project_id, pipeline_id |
| List pipeline jobs |
GITLAB_LIST_PIPELINE_JOBS |
id, pipeline_id, scope |
| Search users |
GITLAB_GET_USERS |
search, username, active |
| Get user |
GITLAB_GET_USER |
user ID |
| User status |
GITLAB_GET_USERS_ID_STATUS |
user ID |
| List project members |
GITLAB_LIST_ALL_PROJECT_MEMBERS |
id, query, state |
| List project users |
GITLAB_LIST_PROJECT_USERS |
id, search |
When to Use
This skill is applicable to execute the workflow or actions described in the overview.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Source: sickn33/agentic-awesome-skills → skills/gitlab-automation/SKILL.md
Also appears in: sickn33/agentic-awesome-skills/plugins/agentic-awesome-skills/skills/gitlab-automation/SKILL.md, sickn33/agentic-awesome-skills/plugins/agentic-awesome-skills-claude/skills/gitlab-automation/SKILL.md
1---2name: gitlab-automation3description: Automate GitLab project management, issues, merge requests, pipelines, branches, and user operations via Rube MCP (Composio). Always search tools first for current schemas.4---567# GitLab Automation via Rube MCP89Automate GitLab operations including project management, issue tracking, merge request workflows, CI/CD pipeline monitoring, branch management, and user administration through Composio's GitLab toolkit.1011## Prerequisites1213- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)14- Active GitLab connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `gitlab`15- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas1617## Setup1819**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.20211. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds222. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `gitlab`233. If connection is not ACTIVE, follow the returned auth link to complete GitLab OAuth244. Confirm connection status shows ACTIVE before running any workflows2526## Core Workflows2728### 1. Manage Issues2930**When to use**: User wants to create, update, list, or search issues in a GitLab project3132**Tool sequence**:331. `GITLAB_GET_PROJECTS` - Find the target project and get its ID [Prerequisite]342. `GITLAB_LIST_PROJECT_ISSUES` - List and filter issues for a project [Required]353. `GITLAB_CREATE_PROJECT_ISSUE` - Create a new issue [Required for create]364. `GITLAB_UPDATE_PROJECT_ISSUE` - Update an existing issue (title, labels, state, assignees) [Required for update]375. `GITLAB_LIST_PROJECT_USERS` - Find user IDs for assignment [Optional]3839**Key parameters**:40- `id`: Project ID (integer) or URL-encoded path (e.g., `"my-group/my-project"`)41- `title`: Issue title (required for creation)42- `description`: Issue body text (max 1,048,576 characters)43- `labels`: Comma-separated label names (e.g., `"bug,critical"`)44- `add_labels` / `remove_labels`: Add or remove labels without replacing all45- `state`: Filter by `"all"`, `"opened"`, or `"closed"`46- `state_event`: `"close"` or `"reopen"` to change issue state47- `assignee_ids`: Array of user IDs; use `[0]` to unassign all48- `issue_iid`: Internal issue ID within the project (required for updates)49- `milestone`: Filter by milestone title50- `search`: Search in title and description51- `scope`: `"created_by_me"`, `"assigned_to_me"`, or `"all"`52- `page` / `per_page`: Pagination (default per_page: 20)5354**Pitfalls**:55- `id` accepts either integer project ID or URL-encoded path; wrong IDs yield 4xx errors56- `issue_iid` is the project-internal ID (shown as #42), different from the global issue ID57- Labels in `labels` field replace ALL existing labels; use `add_labels`/`remove_labels` for incremental changes58- Setting `assignee_ids` to empty array does NOT unassign; use `[0]` instead59- `updated_at` field requires administrator or project/group owner rights6061### 2. Manage Merge Requests6263**When to use**: User wants to list, filter, or review merge requests in a project6465**Tool sequence**:661. `GITLAB_GET_PROJECT` - Get project details and verify access [Prerequisite]672. `GITLAB_GET_PROJECT_MERGE_REQUESTS` - List and filter merge requests [Required]683. `GITLAB_GET_REPOSITORY_BRANCHES` - Verify source/target branches [Optional]694. `GITLAB_LIST_ALL_PROJECT_MEMBERS` - Find reviewers/assignees [Optional]7071**Key parameters**:72- `id`: Project ID or URL-encoded path73- `state`: `"opened"`, `"closed"`, `"locked"`, `"merged"`, or `"all"`74- `scope`: `"created_by_me"` (default), `"assigned_to_me"`, or `"all"`75- `source_branch` / `target_branch`: Filter by branch names76- `author_id` / `author_username`: Filter by MR author77- `assignee_id`: Filter by assignee (use `None` for unassigned, `Any` for assigned)78- `reviewer_id` / `reviewer_username`: Filter by reviewer79- `labels`: Comma-separated label filter80- `search`: Search in title and description81- `wip`: `"yes"` for draft MRs, `"no"` for non-draft82- `order_by`: `"created_at"` (default), `"title"`, `"merged_at"`, `"updated_at"`83- `view`: `"simple"` for minimal fields84- `iids[]`: Filter by specific MR internal IDs8586**Pitfalls**:87- Default `scope` is `"created_by_me"` which limits results; use `"all"` for complete listings88- `author_id` and `author_username` are mutually exclusive89- `reviewer_id` and `reviewer_username` are mutually exclusive90- `approved` filter requires the `mr_approved_filter` feature flag (disabled by default)91- Large MR histories can be noisy; use filters and moderate `per_page` values9293### 3. Manage Projects and Repositories9495**When to use**: User wants to list projects, create new projects, or manage branches9697**Tool sequence**:981. `GITLAB_GET_PROJECTS` - List all accessible projects with filters [Required]992. `GITLAB_GET_PROJECT` - Get detailed info for a specific project [Optional]1003. `GITLAB_LIST_USER_PROJECTS` - List projects owned by a specific user [Optional]1014. `GITLAB_CREATE_PROJECT` - Create a new project [Required for create]1025. `GITLAB_GET_REPOSITORY_BRANCHES` - List branches in a project [Required for branch ops]1036. `GITLAB_CREATE_REPOSITORY_BRANCH` - Create a new branch [Optional]1047. `GITLAB_GET_REPOSITORY_BRANCH` - Get details of a specific branch [Optional]1058. `GITLAB_LIST_REPOSITORY_COMMITS` - View commit history [Optional]1069. `GITLAB_GET_PROJECT_LANGUAGES` - Get language breakdown [Optional]107108**Key parameters**:109- `name` / `path`: Project name and URL-friendly path (both required for creation)110- `visibility`: `"private"`, `"internal"`, or `"public"`111- `namespace_id`: Group or user ID for project placement112- `search`: Case-insensitive substring search for projects113- `membership`: `true` to limit to projects user is a member of114- `owned`: `true` to limit to user-owned projects115- `project_id`: Project ID for branch operations116- `branch_name`: Name for new branch117- `ref`: Source branch or commit SHA for new branch creation118- `order_by`: `"id"`, `"name"`, `"path"`, `"created_at"`, `"updated_at"`, `"star_count"`, `"last_activity_at"`119120**Pitfalls**:121- `GITLAB_GET_PROJECTS` pagination is required for complete coverage; stopping at first page misses projects122- Some responses place items under `data.details`; parse the actual returned list structure123- Most follow-up calls depend on correct `project_id`; verify with `GITLAB_GET_PROJECT` first124- Invalid `branch_name`/`ref`/`sha` causes client errors; verify branch existence via `GITLAB_GET_REPOSITORY_BRANCHES` first125- Both `name` and `path` are required for `GITLAB_CREATE_PROJECT`126127### 4. Monitor CI/CD Pipelines128129**When to use**: User wants to check pipeline status, list jobs, or monitor CI/CD runs130131**Tool sequence**:1321. `GITLAB_GET_PROJECT` - Verify project access [Prerequisite]1332. `GITLAB_LIST_PROJECT_PIPELINES` - List pipelines with filters [Required]1343. `GITLAB_GET_SINGLE_PIPELINE` - Get detailed info for a specific pipeline [Optional]1354. `GITLAB_LIST_PIPELINE_JOBS` - List jobs within a pipeline [Optional]136137**Key parameters**:138- `id`: Project ID or URL-encoded path139- `status`: Filter by `"created"`, `"waiting_for_resource"`, `"preparing"`, `"pending"`, `"running"`, `"success"`, `"failed"`, `"canceled"`, `"skipped"`, `"manual"`, `"scheduled"`140- `scope`: `"running"`, `"pending"`, `"finished"`, `"branches"`, `"tags"`141- `ref`: Branch or tag name142- `sha`: Specific commit SHA143- `source`: Pipeline source (use `"parent_pipeline"` for child pipelines)144- `order_by`: `"id"` (default), `"status"`, `"ref"`, `"updated_at"`, `"user_id"`145- `created_after` / `created_before`: ISO 8601 date filters146- `pipeline_id`: Specific pipeline ID for job listing147- `include_retried`: `true` to include retried jobs (default `false`)148149**Pitfalls**:150- Large pipeline histories can be noisy; use `status`, `ref`, and date filters to narrow results151- Use moderate `per_page` values to keep output manageable152- Pipeline job `scope` accepts single status string or array of statuses153- `yaml_errors: true` returns only pipelines with invalid configurations154155### 5. Manage Users and Members156157**When to use**: User wants to find users, list project members, or check user status158159**Tool sequence**:1601. `GITLAB_GET_USERS` - Search and list GitLab users [Required]1612. `GITLAB_GET_USER` - Get details for a specific user by ID [Optional]1623. `GITLAB_GET_USERS_ID_STATUS` - Get user status message and availability [Optional]1634. `GITLAB_LIST_ALL_PROJECT_MEMBERS` - List all project members (direct + inherited) [Required for member listing]1645. `GITLAB_LIST_PROJECT_USERS` - List project users with search filter [Optional]165166**Key parameters**:167- `search`: Search by name, username, or public email168- `username`: Get specific user by username169- `active` / `blocked`: Filter by user state170- `id`: Project ID for member listing171- `query`: Filter members by name, email, or username172- `state`: Filter members by `"awaiting"` or `"active"` (Premium/Ultimate)173- `user_ids`: Filter by specific user IDs174175**Pitfalls**:176- Many user filters (admins, auditors, extern_uid, two_factor) are admin-only177- `GITLAB_LIST_ALL_PROJECT_MEMBERS` includes direct, inherited, and invited members178- User search is case-insensitive but may not match partial email domains179- Premium/Ultimate features (state filter, seat info) are not available on free plans180181## Common Patterns182183### ID Resolution184GitLab uses two identifier formats for projects:185- **Numeric ID**: Integer project ID (e.g., `123`)186- **URL-encoded path**: Namespace/project format (e.g., `"my-group%2Fmy-project"` or `"my-group/my-project"`)187- **Issue IID vs ID**: `issue_iid` is the project-internal number (#42); the global `id` is different188- **User ID**: Numeric; resolve via `GITLAB_GET_USERS` with `search` or `username`189190### Pagination191GitLab uses offset-based pagination:192- Set `page` (starting at 1) and `per_page` (1-100, default 20)193- Continue incrementing `page` until response returns fewer items than `per_page` or is empty194- Total count may be available in response headers (`X-Total`, `X-Total-Pages`)195- Always paginate to completion for accurate results196197### URL-Encoded Paths198When using project paths as identifiers:199- Forward slashes must be URL-encoded: `my-group/my-project` becomes `my-group%2Fmy-project`200- Some tools accept unencoded paths; check schema for each tool201- Prefer numeric IDs when available for reliability202203## Known Pitfalls204205### ID Formats206- Project `id` field accepts both integer and string (URL-encoded path)207- Issue `issue_iid` is project-scoped; do not confuse with global issue ID208- Pipeline IDs are project-scoped integers209- User IDs are global integers across the GitLab instance210211### Rate Limits212- GitLab has per-user rate limits (typically 300-2000 requests/minute depending on plan)213- Large pipeline/issue histories should use date and status filters to reduce result sets214- Paginate responsibly with moderate `per_page` values215216### Parameter Quirks217- `labels` field replaces ALL labels; use `add_labels`/`remove_labels` for incremental changes218- `assignee_ids: [0]` unassigns all; empty array does nothing219- `scope` defaults vary: `"created_by_me"` for MRs, `"all"` for issues220- `author_id` and `author_username` are mutually exclusive in MR filters221- Date parameters use ISO 8601 format: `"2024-01-15T10:30:00Z"`222223### Plan Restrictions224- Some features require Premium/Ultimate: `epic_id`, `weight`, `iteration_id`, `approved_by_ids`, member `state` filter225- Admin-only features: user management filters, `updated_at` override, custom attributes226- The `mr_approved_filter` feature flag is disabled by default227228## Quick Reference229230| Task | Tool Slug | Key Params |231|------|-----------|------------|232| List projects | `GITLAB_GET_PROJECTS` | `search`, `membership`, `visibility` |233| Get project details | `GITLAB_GET_PROJECT` | `id` |234| User's projects | `GITLAB_LIST_USER_PROJECTS` | `id`, `search`, `owned` |235| Create project | `GITLAB_CREATE_PROJECT` | `name`, `path`, `visibility` |236| List issues | `GITLAB_LIST_PROJECT_ISSUES` | `id`, `state`, `labels`, `search` |237| Create issue | `GITLAB_CREATE_PROJECT_ISSUE` | `id`, `title`, `description`, `labels` |238| Update issue | `GITLAB_UPDATE_PROJECT_ISSUE` | `id`, `issue_iid`, `state_event` |239| List merge requests | `GITLAB_GET_PROJECT_MERGE_REQUESTS` | `id`, `state`, `scope`, `labels` |240| List branches | `GITLAB_GET_REPOSITORY_BRANCHES` | `project_id`, `search` |241| Get branch | `GITLAB_GET_REPOSITORY_BRANCH` | `project_id`, `branch_name` |242| Create branch | `GITLAB_CREATE_REPOSITORY_BRANCH` | `project_id`, `branch_name`, `ref` |243| List commits | `GITLAB_LIST_REPOSITORY_COMMITS` | project ID, branch ref |244| Project languages | `GITLAB_GET_PROJECT_LANGUAGES` | project ID |245| List pipelines | `GITLAB_LIST_PROJECT_PIPELINES` | `id`, `status`, `ref` |246| Get pipeline | `GITLAB_GET_SINGLE_PIPELINE` | `project_id`, `pipeline_id` |247| List pipeline jobs | `GITLAB_LIST_PIPELINE_JOBS` | `id`, `pipeline_id`, `scope` |248| Search users | `GITLAB_GET_USERS` | `search`, `username`, `active` |249| Get user | `GITLAB_GET_USER` | user ID |250| User status | `GITLAB_GET_USERS_ID_STATUS` | user ID |251| List project members | `GITLAB_LIST_ALL_PROJECT_MEMBERS` | `id`, `query`, `state` |252| List project users | `GITLAB_LIST_PROJECT_USERS` | `id`, `search` |253254## When to Use255This skill is applicable to execute the workflow or actions described in the overview.256257## Limitations258- Use this skill only when the task clearly matches the scope described above.259- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.260- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.261262---263264**Source:** [`sickn33/agentic-awesome-skills`](https://github.com/sickn33/agentic-awesome-skills) → `skills/gitlab-automation/SKILL.md`265266**Also appears in:** `sickn33/agentic-awesome-skills/plugins/agentic-awesome-skills/skills/gitlab-automation/SKILL.md`, `sickn33/agentic-awesome-skills/plugins/agentic-awesome-skills-claude/skills/gitlab-automation/SKILL.md`