원클릭으로
gitlab-merge-request
Working with GitLab merge requests via glab. Use when creating, updating, reviewing, or merging MRs.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Working with GitLab merge requests via glab. Use when creating, updating, reviewing, or merging MRs.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Query Claude Code session history via a DuckDB index over `~/.claude/projects/`. Use when asked about Claude Code activity ("how many tokens today?", "what did I work on this week?") or instead of reading, grepping, or jq-ing session transcripts. Not for codebase search, git log queries, or arbitrary databases.
Creating and optimizing Claude Code Skills including activation patterns, content structure, and development workflows. Use when creating new skills, converting memory files to skills, debugging skill activation, or understanding skill architecture and best practices.
Read and query Things 3 data (lists, todos, projects, tags, logbook). Not for writes. Use things:url to create/update, things:inbox for quick captures.
Triage and batch-implement Claude-tagged Things todos as PRs for the claude config repo, discover improvement candidates from session history, or watch open PRs to implement review feedback and close shipped todos. Use when the user wants to work on their Claude Code improvement backlog, process Things todos tagged claude-code, batch-implement configuration changes, mine session history for grounded config-change candidates (Discover mode), or watch this skill's open PRs for review feedback and merges (Watch mode).
Fetch, reply to, and resolve review threads on a GitHub pull request. Use when checking what review feedback needs addressing, whether threads are resolved, replying to review comments, or clearing AI-reviewer threads after acting on them.
Live tmux inbox for reviewing inbound pull requests across GitHub and GitLab. Use when reviewing multiple PRs, checking the review queue, batch reviews, or managing your review inbox. Pass --queue to spawn an already-ordered queue.
| name | gitlab:merge-request |
| description | Working with GitLab merge requests via glab. Use when creating, updating, reviewing, or merging MRs. |
| argument-hint | [create | merge | review | discussions | block] [--draft] [--auto] [--role author|reviewer] |
| allowed-tools | ["Bash(bun ${CLAUDE_SKILL_DIR}/scripts/*:*)","Bash(bun ${CLAUDE_PLUGIN_ROOT}/scripts/merge.ts:*)","Bash(glab mr:*)","Bash(glab api:*)"] |
Working with GitLab merge requests via glab mr.
$0 (optional verb) routes to a section below. With no verb, infer the operation from the request.
create: open an MR. See Patterns. --draft opens it as a draft (glab mr create --draft).merge: merge the MR. See Merging. --auto enables auto-merge (merge.ts --auto-merge).review: review MRs. See Reviews. --role reviewer (default) fetches MRs awaiting your review; --role author triages threads on MRs you authored.discussions: work MR discussion threads. See Discussions.block: block an MR until another merges. See Blocking.Flag defaults: --draft off, --auto off, --role reviewer.
glab mr create --fill # Create from commits (push branch first!)
glab mr list # List MRs
glab mr view # View current branch's MR
glab mr checkout <id> # Check out MR branch
Use glab mr --help and glab mr <command> --help for full options.
Always use merge.ts to merge. It handles merge trains, auto-merge, and squash, falling back to glab mr merge internally when appropriate.
bun ${CLAUDE_PLUGIN_ROOT}/scripts/merge.ts
bun ${CLAUDE_PLUGIN_ROOT}/scripts/merge.ts --auto-merge
bun ${CLAUDE_PLUGIN_ROOT}/scripts/merge.ts feature-branch --auto-merge --squash
Always push before creating:
git push -u origin feature-branch && glab mr create --fill
Draft MRs: Use --draft to prevent accidental merges.
Auto-fill vs custom: --fill auto-populates from commits but cannot combine with --title/--description. Choose one approach.
Body from file: No --body-file flag; use --description "$(cat file.md)".
Username resolution: Flags like --reviewer and --assignee require exact usernames; invalid names are silently ignored. Look up users first:
glab api projects/:id/members/all --paginate | jq '.[] | select(.name | test("<name>"; "i")) | {name, username}'
Prevent an MR from merging until another MR merges first. Uses the REST API since glab mr has no blocking subcommand.
# Block MR !10 until MR !5 merges
glab api projects/:id/merge_requests/10/blocks -X POST -f blocking_merge_request_iid=5
# List blocks on an MR
glab api projects/:id/merge_requests/10/blocks
# Remove a block
glab api projects/:id/merge_requests/10/blocks/<block-id> -X DELETE
Submit review feedback as draft notes that accumulate before publishing. See review.md for the draft notes workflow, code suggestions, and approvals.
Fetch MRs awaiting your first review across all projects (the UNREVIEWED bucket; REST's scope=reviews_for_me cannot filter by review state). Emits [{ url, reference, title }] as JSON:
bun ${CLAUDE_SKILL_DIR}/scripts/review-queue.ts
See review-state.md for the underlying GraphQL query and filter.
To group all your review-requested MRs by next actor (not just the UNREVIEWED slice), see Review Inbox (Next-Actor Triage) in review-state.md.
Re-trigger a review after a push reset approvals. The mergeRequestReviewerRereview mutation flips the target's reviewState back to UNREVIEWED and re-surfaces the MR. The reviewer must already be assigned. See Re-Request Review for the user-ID lookup and exact mutation.
Fetch, filter, resolve, and summarize MR discussion threads. See discussions.md for the discussions script, resolution workflow, and pagination pitfalls.
glab stack manages stacked diffs — small changes that build on each other. See stack.md.