plugins/all-skills/skills/gitlab-automation/SKILL.md
Automate GitLab project management, issues, merge requests, pipelines, branches, and user operations via Rube MCP (Composio). Always search tools first for current schemas.
npx skillsauth add davepoon/buildwithclaude gitlab-automationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
Toolkit docs: composio.dev/toolkits/gitlab
RUBE_MANAGE_CONNECTIONS with toolkit gitlabRUBE_SEARCH_TOOLS first to get current tool schemasGet 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.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit gitlabWhen 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 allstate: Filter by "all", "opened", or "closed"state_event: "close" or "reopen" to change issue stateassignee_ids: Array of user IDs; use [0] to unassign allissue_iid: Internal issue ID within the project (required for updates)milestone: Filter by milestone titlesearch: Search in title and descriptionscope: "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 errorsissue_iid is the project-internal ID (shown as #42), different from the global issue IDlabels field replace ALL existing labels; use add_labels/remove_labels for incremental changesassignee_ids to empty array does NOT unassign; use [0] insteadupdated_at field requires administrator or project/group owner rightsWhen 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 pathstate: "opened", "closed", "locked", "merged", or "all"scope: "created_by_me" (default), "assigned_to_me", or "all"source_branch / target_branch: Filter by branch namesauthor_id / author_username: Filter by MR authorassignee_id: Filter by assignee (use None for unassigned, Any for assigned)reviewer_id / reviewer_username: Filter by reviewerlabels: Comma-separated label filtersearch: Search in title and descriptionwip: "yes" for draft MRs, "no" for non-draftorder_by: "created_at" (default), "title", "merged_at", "updated_at"view: "simple" for minimal fieldsiids[]: Filter by specific MR internal IDsPitfalls:
scope is "created_by_me" which limits results; use "all" for complete listingsauthor_id and author_username are mutually exclusivereviewer_id and reviewer_username are mutually exclusiveapproved filter requires the mr_approved_filter feature flag (disabled by default)per_page valuesWhen 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 placementsearch: Case-insensitive substring search for projectsmembership: true to limit to projects user is a member ofowned: true to limit to user-owned projectsproject_id: Project ID for branch operationsbranch_name: Name for new branchref: Source branch or commit SHA for new branch creationorder_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 projectsdata.details; parse the actual returned list structureproject_id; verify with GITLAB_GET_PROJECT firstbranch_name/ref/sha causes client errors; verify branch existence via GITLAB_GET_REPOSITORY_BRANCHES firstname and path are required for GITLAB_CREATE_PROJECTWhen 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 pathstatus: 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 namesha: Specific commit SHAsource: 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 filterspipeline_id: Specific pipeline ID for job listinginclude_retried: true to include retried jobs (default false)Pitfalls:
status, ref, and date filters to narrow resultsper_page values to keep output manageablescope accepts single status string or array of statusesyaml_errors: true returns only pipelines with invalid configurationsWhen 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 emailusername: Get specific user by usernameactive / blocked: Filter by user stateid: Project ID for member listingquery: Filter members by name, email, or usernamestate: Filter members by "awaiting" or "active" (Premium/Ultimate)user_ids: Filter by specific user IDsPitfalls:
GITLAB_LIST_ALL_PROJECT_MEMBERS includes direct, inherited, and invited membersGitLab uses two identifier formats for projects:
123)"my-group%2Fmy-project" or "my-group/my-project")issue_iid is the project-internal number (#42); the global id is differentGITLAB_GET_USERS with search or usernameGitLab uses offset-based pagination:
page (starting at 1) and per_page (1-100, default 20)page until response returns fewer items than per_page or is emptyX-Total, X-Total-Pages)When using project paths as identifiers:
my-group/my-project becomes my-group%2Fmy-projectid field accepts both integer and string (URL-encoded path)issue_iid is project-scoped; do not confuse with global issue IDper_page valueslabels field replaces ALL labels; use add_labels/remove_labels for incremental changesassignee_ids: [0] unassigns all; empty array does nothingscope defaults vary: "created_by_me" for MRs, "all" for issuesauthor_id and author_username are mutually exclusive in MR filters"2024-01-15T10:30:00Z"epic_id, weight, iteration_id, approved_by_ids, member state filterupdated_at override, custom attributesmr_approved_filter feature flag is disabled by default| 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 |
Powered by Composio
development
Stop coding agents from shipping generic UI. Use UIZZE's 800,000+ real web and iOS screens to build product-specific interfaces, define a design contract, cover required states, and run a hard finish gate. Use for web or iOS UI design, implementation, redesign, critique, and pre-ship review in Codex, Claude Code, Cursor, Copilot, and other coding agents.
development
Convene an AI executive board of directors (CEO, CFO, COO, CLO, CISO sub-agent personas) to vet a business idea, product concept, new service offering, M&A target, or operational initiative — and deliver an integrated board memo with a Go/No-Go recommendation. Use this skill whenever the user wants an idea vetted, stress-tested, or reviewed from multiple executive perspectives; asks to "present this to the board," "run this by the boardroom," "vet this idea," "poke holes in this plan," or "prep me for a board meeting"; or shares a business plan, pitch, proposal, or initiative document and asks for structured executive feedback. Also trigger when the user asks for a Go/No-Go decision, risk review across finance/legal/security/operations, or preparation for presenting an initiative to real leadership.
data-ai
私人旅行管家 — 从出发地到目的地的完整行程规划+攻略导出。 输入出发地、目的地、天数、预算、风格偏好,自动输出闭环行程, 包含交通推荐、酒店推荐、美食路线、每日预算,并可选生成攻略。 当用户提到「做攻略」「旅行规划」「旅游计划」「行程安排」时使用。
tools
Use Ontoly's deterministic Software Graph and MCP server for codebase architecture, request tracing, dependency analysis, and impact analysis.