GitLab draft merge requests: how to mark one as draft, or as ready
Short answer
A draft merge request can't merge until it's marked ready, even if every other check passes. To make one a draft, select Mark as draft in the merge request's actions menu, start the title with Draft:, [Draft] or (Draft), comment /draft, or push a commit whose message starts with draft:, Draft:, fixup! or Fixup!. To mark it ready, select Mark as ready, remove the prefix, or comment /ready; GitLab then notifies participants and watchers. Drafts run the same pipelines as ready merge requests unless workflow rules skip them.
A draft merge request is GitLab’s way of saying “not yet”: people can read it and comment on it, but it can’t be merged. Here is every way to mark a merge request as draft or as ready in 2026, and what being a draft changes.
What a draft does
- It can’t merge. A draft merge request stays blocked until the draft flag is removed, even if it meets every other merge requirement.
- Marking it ready tells people. GitLab notifies the merge request’s participants and watchers when it becomes ready.
- Automatic reviewers wait. On Premium and Ultimate, from GitLab 19.1, if the project assigns Code Owners as reviewers automatically, GitLab skips drafts and assigns them when the draft is marked ready.
Mark a merge request as draft
- On the merge request: in the upper-right corner, select Merge request actions, then Mark as draft.
- In the title: start it with
Draft:,[Draft]or(Draft), or select Mark as draft below the Title field when you create or edit the merge request. - In a comment: use the
/draftquick action. - In a commit: start a commit message on the source branch with
draft:,Draft:,fixup!orFixup!. - From the command line:
glab mr create --draftopens a new draft,glab mr update 23 --draftconverts an existing one, andgit push -o merge_request.draftmarks it as you push.
Mark it as ready
- On the merge request: select Mark as ready in the upper-right corner. Users with the Developer role or higher can also select Mark as ready at the bottom of the description.
- In the title: remove the
Draft:,[Draft]or(Draft)prefix, or clear Mark as draft when editing. - In a comment: use the
/readyquick action. - From the command line:
glab mr update 23 --ready.
The commit message surprise
If your merge request suddenly became a draft after a push, look at the commit messages. A commit whose message starts with fixup!, which git commit --fixup creates, or with draft:, marks the merge request as a draft. It isn’t a toggle: pushing another such commit doesn’t mark it ready again, so do that by hand once you’ve squashed the fixups away. (More on that in how to squash commits in a GitLab merge request.)
Find or hide drafts
In the project’s merge request list, select the search box, choose the Draft filter, then =, and pick Yes to show drafts or No to hide them.
Pipelines for drafts
Drafts run the same pipelines as merge requests marked ready. To save runner time, skip merge request pipelines while a merge request is a draft:
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_DRAFT == "true"
when: never
- when: always
CI_MERGE_REQUEST_DRAFT recognises every draft format GitLab supports and arrived in GitLab 17.10. On older versions, match CI_MERGE_REQUEST_TITLE with a regular expression instead.
Drafts on your phone
A draft is one of the reasons GitLab gives for not merging, and MergeBell’s merge sheet lists every reason before you tap Merge. Once a teammate marks their draft ready and asks for your review, the review request arrives as a push from your To-Do List, free and checked every five minutes. If it still won’t merge, why can’t I merge my GitLab merge request? covers the other blockers.
Frequently asked questions
How do I mark a GitLab merge request as a draft?
On the merge request, select Merge request actions in the upper-right corner, then Mark as draft. You can also start the title with Draft:, [Draft] or (Draft), comment /draft, push a commit whose message starts with draft: or fixup!, run glab mr update with --draft, or push with -o merge_request.draft.
How do I mark a draft merge request as ready?
Select Mark as ready in the upper-right corner of the merge request, remove the Draft: prefix from the title or clear Mark as draft when editing, comment /ready, or run glab mr update with --ready. GitLab notifies the merge request's participants and watchers.
Can a draft merge request be merged?
No. A merge request marked as draft can't merge until the draft flag is removed, even if it meets every other merge requirement.
Why did my merge request turn into a draft after I pushed?
A commit message that starts with draft:, Draft:, fixup! or Fixup!, on the merge request's source branch, marks it as a draft. That's how git commit --fixup commits can trigger it. It isn't a toggle: mark the merge request ready by hand.
Do draft merge requests run pipelines?
Yes, the same pipelines as merge requests marked ready. To skip them, add a workflow rule that matches merge request pipelines where CI_MERGE_REQUEST_DRAFT is true, a variable available since GitLab 17.10.
Sources
- GitLab docs — Draft merge requests
- GitLab docs — workflow keyword: skip pipelines for draft merge requests
- GitLab CLI docs — glab mr update
- GitLab CLI docs — glab mr create
- GitLab docs — Push options
- GitLab docs — Automatic reviewer assignment
Checked against these pages on 22 October 2026. GitLab changes quickly — if something here no longer matches, tell us and we will fix it.
Do this from your phone with MergeBell
Free for the whole review loop: the To-Do inbox, diffs and line comments, approve and merge, pipelines with retry, and push alerts for your To-Dos. Works with gitlab.com and self-managed GitLab 16.0+.
Get MergeBell for AndroidiPhone: email me at launch
On Google Play for Android 12 or later. The iPhone app is coming soon to the App Store. An independent app, not affiliated with GitLab Inc.