From omniforge
Use when creating a GitLab merge request (OmniForge). Auto-populates title and description from commits, supports draft MRs, labels, assignees, reviewers, and issue linking
How this skill is triggered — by the user, by Claude, or both
Slash command
/omniforge:omnicreate-gitlabThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
- Current git status: !`git status --porcelain`
git status --porcelaingit branch --show-currentgit log --oneline -5git remote -v | grep gitlab | head -1glab version 2>/dev/null || echo "NOT_INSTALLED"glab auth status 2>&1 || echo "NOT_AUTHENTICATED"git log @{u}..HEAD --oneline 2>/dev/null || echo "NO_UPSTREAM"git rev-parse --show-toplevel 2>/dev/null || echo "NOT_A_GIT_REPO"Create a GitLab merge request using the mcp__omniforge__create_gitlab_mr MCP tool.
Why MCP instead of raw bash? The MCP tool validates all inputs, uses safe subprocess execution (no shell interpretation), and provides structured error output — making it safe for use by all models without risk of shell injection.
glab is installed. If not, inform the user:
brew install glab # macOS
Before creating the MR, verify:
mcp__omniforge__create_gitlab_mrUse this tool for all MR creation. It wraps glab mr create safely.
Required parameter:
repo_root: absolute path to the git repository root (from git rev-parse --show-toplevel)Optional parameters (pass only what the user specified):
| Parameter | Type | Default | Description |
|---|---|---|---|
title | string | "" | Custom MR title (overrides fill) |
description | string | "" | Custom MR description (overrides fill) |
target_branch | string | "main" | Target branch for the MR |
source_branch | string | "" | Source branch (default: current branch) |
assignees | string | "" | Comma-separated usernames to assign |
reviewers | string | "" | Comma-separated usernames to request review from |
labels | string | "" | Comma-separated label names |
draft | bool | false | Mark as draft MR |
fill | bool | true | Auto-populate title/description from commits |
fill_commit_body | bool | true | Include commit bodies in description |
push | bool | true | Push branch if not already pushed |
related_issue | string | "" | Issue number to link MR to |
copy_issue_labels | bool | false | Copy labels from related issue |
remove_source_branch | bool | false | Delete source branch after merge |
squash_before_merge | bool | false | Squash commits when merging |
milestone | string | "" | Milestone ID or title |
web | bool | false | Open in browser for final editing |
git rev-parse --show-toplevel to obtain the absolute pathmcp__omniforge__create_gitlab_mr with repo_root and any user-specified optionsDefault MR (auto-filled from commits):
→ Call mcp__omniforge__create_gitlab_mr with just repo_root
MR for a specific target branch with assignee:
→ repo_root, target_branch="staging", assignees="john"
Draft MR with WIP label:
→ repo_root, draft=true, labels="WIP"
MR with custom title and description:
→ repo_root, title="Fix bug", description="Detailed description...", fill=false
MR linked to issue #42:
→ repo_root, related_issue="42", copy_issue_labels=true
Open in browser for editing:
→ repo_root, web=true
| Error | Cause | Solution |
|---|---|---|
authentication required | Not logged in | Run glab auth login |
no upstream branch | Branch not pushed | The tool handles push automatically (push=true) |
branch already exists remotely | Push conflict | Pull and rebase, or force push with caution |
pipeline failed | CI checks failed | Fix failing tests before creating MR |
merge conflicts detected | Conflicts with target | Rebase onto target branch and resolve |
GLab requires authentication | Token expired | Run glab auth login --hostname <gitlab-host> |
glab auth login if neededAfter the MCP tool returns, provide a summary like:
## Merge Request Created
- **MR**: !123
- **URL**: https://gitlab.com/group/repo/-/merge_requests/123
- **Branch**: feature-branch → main
- **Status**: Open
If the tool returns an error, explain it and suggest remediation steps.
npx claudepluginhub nexiouscaliver/omniforge --plugin omniforgeCreates merge requests in GitLab projects via prompts for project ID/path, source/target branches, title, and description. Uses GitLab MCP tool; returns MR number and URL.
Automates GitLab Merge Requests to mergeable state: generates User Story docs with blob links, pushes branches, creates/updates MRs, polls CI pipelines via API, fixes failures, resolves conflicts until checks pass.
Creates new git branch if on main, commits changes with short imperative message, pushes to origin, and opens GitLab merge request via glab.