GitLab quick actions

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

Quick actions provide text-based shortcuts for common actions in GitLab. Quick actions:

  • Execute common actions without using the user interface.
  • Support working with issues, merge requests, epics, and commits.
  • Run automatically when you save descriptions or comments.
  • Respond to specific contexts and conditions.
  • Process multiple commands when entered on separate lines.

For example, you can use quick actions to:

  • Assign users.
  • Add labels.
  • Set due dates.
  • Change status.
  • Set other attributes.

Each command starts with a forward slash (/) and must be entered on a separate line. Many quick actions accept parameters, which you can enter with quotation marks (") or specific formatting.

Parameters

Many quick actions require a parameter. For example, the /assign quick action requires a username. GitLab uses autocomplete characters with quick actions to help users enter parameters, by providing a list of available values.

If you manually enter a parameter, it must be enclosed in double quotation marks ("), unless it contains only these characters:

  • ASCII letters
  • Numbers (0-9)
  • Underscore (_), hyphen (-), question mark (?), dot (.), ampersand (&) or at (@)

Parameters are case-sensitive. Autocomplete handles this, and the insertion of quotation marks, automatically.

Issues, merge requests, and epics

The following quick actions are applicable to descriptions, discussions, and threads. Some quick actions might not be available to all subscription tiers.

CommandIssueMerge requestEpicAction
/add_child <item>check-circle Yesdotted-circle Nocheck-circle YesAdd <item> as a child item. The <item> value should be in the format of #item, group/project#item, or a URL to the item. For issues, you can add tasks and OKRs. The new look for issues must be enabled. For epics, you can add issues, tasks, and OKRs. Multiple work items can be added as child items at the same time.
/add_contacts [contact:email1@example.com] [contact:email2@example.com]check-circle Yesdotted-circle Nodotted-circle NoAdd one or more active CRM contacts.
/add_email email1 email2check-circle Yesdotted-circle Nodotted-circle NoAdd up to six email participants. This action is behind the feature flag issue_email_participants. Not supported in issue templates.
/approvedotted-circle Nocheck-circle Yesdotted-circle NoApprove the merge request.
/assign @user1 @user2check-circle Yescheck-circle Yesdotted-circle NoAssign one or more users.
/assign mecheck-circle Yescheck-circle Yesdotted-circle NoAssign yourself.
/assign_reviewer @user1 @user2 or /reviewer @user1 @user2dotted-circle Nocheck-circle Yesdotted-circle NoAssign one or more users as reviewers.
/assign_reviewer me or /reviewer medotted-circle Nocheck-circle Yesdotted-circle NoAssign yourself as a reviewer.
/blocked_by <item1> <item2>check-circle Yesdotted-circle Nocheck-circle YesMark the item as blocked by other items. The <item> value should be in the format of #item, group/project#item, or the full URL. (Introduced in GitLab 16.0).
/blocks <item1> <item2>check-circle Yesdotted-circle Nocheck-circle YesMark the item as blocking other items. The <item> value should be in the format of #item, group/project#item, or the full URL. (Introduced in GitLab 16.0).
/board_move ~columncheck-circle Yesdotted-circle Nodotted-circle NoMove issue to column on the board. The project must have only one issue board.
/cc @usercheck-circle Yescheck-circle Yescheck-circle YesMention a user. This command performs no action. You can instead type CC @user or only @user.
/clear_health_statuscheck-circle Yesdotted-circle Nocheck-circle YesClear health status.
/clear_weightcheck-circle Yesdotted-circle Nodotted-circle NoClear weight.
/clone <path/to/group_or_project> [--with_notes]check-circle Yesdotted-circle Nocheck-circle YesClone the work item to a given group or project, or the current one if no arguments are given. Copies as much data as possible as long as the target contains equivalent objects like labels, milestones, or epics. Does not copy comments or system notes unless --with_notes is provided as an argument.
/closecheck-circle Yescheck-circle Yescheck-circle YesClose.
/confidentialcheck-circle Yesdotted-circle Nocheck-circle YesMark issue or epic as confidential.
/convert_to_ticket <email address>check-circle Yesdotted-circle Nodotted-circle NoConvert an issue into a Service Desk ticket. Introduced in GitLab 16.9
/copy_metadata <!merge_request>check-circle Yescheck-circle Yesdotted-circle NoCopy labels and milestone from another merge request in the project.
/copy_metadata <#item>check-circle Yescheck-circle Yescheck-circle YesCopy labels and milestone from another item in the project.
/create_merge_request <branch name>check-circle Yesdotted-circle Nodotted-circle NoCreate a new merge request starting from the current issue.
/donecheck-circle Yescheck-circle Yescheck-circle YesMark to-do item as done.
/draftdotted-circle Nocheck-circle Yesdotted-circle NoSet the draft status.
/due <date>check-circle Yesdotted-circle Nocheck-circle YesSet due date. Examples of valid <date> include in 2 days, this Friday and December 31st. See Chronic for more examples.
/duplicate <item>check-circle Yesdotted-circle Nocheck-circle YesClose this item and mark as related to, and a duplicate of, <item>.
/epic <epic> or /set_parent <epic>check-circle Yesdotted-circle Nocheck-circle YesAdd to epic <epic> as a child item. The <epic> value should be in the format of &epic, #epic, group&epic, group#epic, or a URL to an epic.
/estimate <time> or /estimate_time <time>check-circle Yescheck-circle Yescheck-circle YesSet time estimate. For example, /estimate 1mo 2w 3d 4h 5m. For more information, see Time tracking.
/health_status <value>check-circle Yesdotted-circle Nocheck-circle YesSet health status. Valid options for <value> are on_track, needs_attention, and at_risk.
/iteration *iteration:<iteration ID> or <iteration name>check-circle Yesdotted-circle Nodotted-circle NoSet iteration. For example, to set the Late in July iteration: /iteration *iteration:"Late in July".
/iteration [cadence:<iteration cadence ID> or <iteration cadence name>] <--current or --next>check-circle Yesdotted-circle Nodotted-circle NoSet iteration to the current or next upcoming iteration of the referenced iteration cadence. For example, /iteration [cadence:"Team cadence"] --current sets the iteration to the current iteration of the iteration cadence named “Team cadence”. Introduced in GitLab 16.9.
/iteration <--current or --next>check-circle Yesdotted-circle Nodotted-circle NoSet iteration to the current or next upcoming iteration when a group has one iteration cadence. For example, /iteration --current sets the iteration to the current iteration of the iteration cadence. Introduced in GitLab 16.9.
/label ~label1 ~label2 or /labels ~label1 ~label2check-circle Yescheck-circle Yescheck-circle YesAdd one or more labels. Label names can also start without a tilde (~), but mixed syntax is not supported.
/linkcheck-circle Yesdotted-circle Nodotted-circle NoAdd a link and description to linked resources in an incident.
/lockcheck-circle Yescheck-circle Yescheck-circle YesLock the discussions.
/mergedotted-circle Nocheck-circle Yesdotted-circle NoMerge changes. Depending on the project setting, this may be when the pipeline succeeds, or adding to a Merge Train.
/milestone %milestonecheck-circle Yescheck-circle Yesdotted-circle NoSet milestone.
/move <path/to/group_or_project>check-circle Yesdotted-circle Nocheck-circle YesMove the work item to another group or project. Be careful when moving a work item to a location with different access rules. Before moving the work item, make sure it does not contain sensitive data.
/page <policy name>check-circle Yesdotted-circle Nodotted-circle NoStart escalations for the incident.
/promote_to_incidentcheck-circle Yesdotted-circle Nodotted-circle NoPromote issue to incident. You can also use the quick action when creating a new issue.
/promotecheck-circle Yesdotted-circle Nodotted-circle NoPromote issue to epic. If the new look for issues is enabled, use /promote_to epic instead.
/publishcheck-circle Yesdotted-circle Nodotted-circle NoPublish issue to an associated Status Page.
/react :emoji:check-circle Yescheck-circle Yescheck-circle YesToggle an emoji reaction. Renamed from /award in GitLab 16.7. /award is still available as an aliased command.
/readydotted-circle Nocheck-circle Yesdotted-circle NoSet the ready status.
/reassign @user1 @user2check-circle Yescheck-circle Yesdotted-circle NoReplace current assignees with those specified.
/reassign_reviewer @user1 @user2dotted-circle Nocheck-circle Yesdotted-circle NoReplace current reviewers with those specified.
/rebasedotted-circle Nocheck-circle Yesdotted-circle NoRebase source branch on the latest commit of the target branch. For help, see troubleshooting information.
/relabel ~label1 ~label2check-circle Yescheck-circle Yescheck-circle YesReplace current labels with those specified.
/relate <item1> <item2>check-circle Yesdotted-circle Nocheck-circle YesMark items as related. The <item> value should be in the format of #item, group/project#item, or the full URL.
/remove_child <item>check-circle Yesdotted-circle Nocheck-circle YesRemove <item> as child item. The <item> value should be in the format of #item, group/project#item, or a URL to the item. For issues, the new look for issues must be enabled.
/remove_contacts [contact:email1@example.com] [contact:email2@example.com]check-circle Yesdotted-circle Nodotted-circle NoRemove one or more CRM contacts
/remove_due_datecheck-circle Yesdotted-circle Nodotted-circle NoRemove due date.
/remove_email email1 email2check-circle Yesdotted-circle Nodotted-circle NoRemove up to six email participants. This action is behind the feature flag issue_email_participants. Not supported in issue templates, merge requests, or epics.
/remove_estimate or /remove_time_estimatecheck-circle Yescheck-circle Yescheck-circle YesRemove time estimate.
/remove_iterationcheck-circle Yesdotted-circle Nodotted-circle NoRemove iteration.
/remove_milestonecheck-circle Yescheck-circle Yesdotted-circle NoRemove milestone.
/remove_parentcheck-circle Yesdotted-circle Nocheck-circle YesRemove the parent from item. For issues, the new look for issues must be enabled.
/remove_time_spentcheck-circle Yescheck-circle Yescheck-circle YesRemove time spent.
/remove_zoomcheck-circle Yesdotted-circle Nodotted-circle NoRemove Zoom meeting from this issue.
/reopencheck-circle Yescheck-circle Yescheck-circle YesReopen.
/request_review @user1 @user2dotted-circle Nocheck-circle Yesdotted-circle NoAssigns or requests a new review from one or more users.
/request_review medotted-circle Nocheck-circle Yesdotted-circle NoAssigns or requests a new review from one or more users.
/set_parent <item>check-circle Yesdotted-circle Nocheck-circle YesSet parent item. The <item> value should be in the format of #IID, reference, or a URL to an item. For issues, the new look for issues must be enabled.
/severity <severity>check-circle Yesdotted-circle Nodotted-circle NoSet the severity. Issue type must be Incident. Options for <severity> are S1S4, critical, high, medium, low, unknown.
/shrugcheck-circle Yescheck-circle Yescheck-circle YesAdd ¯\_(ツ)_/¯.
/spend <time> [<date>] or /spend_time <time> [<date>]check-circle Yescheck-circle Yescheck-circle YesAdd or subtract spent time. Optionally, specify the date that time was spent on. For example, /spend 1mo 2w 3d 4h 5m 2018-08-26 or /spend -1h 30m. For more information, see Time tracking.
/status <value>check-circle Yesdotted-circle Nodotted-circle NoSet status. Valid options for <value> include status options set for the namespace. Introduced in GitLab 18.2 with flag named work_item_status_feature_flag.
/submit_reviewdotted-circle Nocheck-circle Yesdotted-circle NoSubmit a pending review.
/subscribecheck-circle Yescheck-circle Yescheck-circle YesSubscribe to notifications.
/tableflipcheck-circle Yescheck-circle Yescheck-circle YesAdd (╯°□°)╯︵ ┻━┻.
/target_branch <local branch name>dotted-circle Nocheck-circle Yesdotted-circle NoSet target branch.
/timeline <timeline comment> | <date(YYYY-MM-DD)> <time(HH:MM)>check-circle Yesdotted-circle Nodotted-circle NoAdd a timeline event to this incident. For example, /timeline DB load spiked | 2022-09-07 09:30.
/title <new title>check-circle Yescheck-circle Yescheck-circle YesChange title.
/todocheck-circle Yescheck-circle Yescheck-circle YesAdd a to-do item.
/unapprovedotted-circle Nocheck-circle Yesdotted-circle NoUnapprove the merge request.
/unassign @user1 @user2check-circle Yescheck-circle Yesdotted-circle NoRemove specific assignees.
/unassign_reviewer @user1 @user2 or /remove_reviewer @user1 @user2dotted-circle Nocheck-circle Yesdotted-circle NoRemove specific reviewers.
/unassign_reviewer medotted-circle Nocheck-circle Yesdotted-circle NoRemove yourself as a reviewer.
/unassign_reviewer or /remove_reviewerdotted-circle Nocheck-circle Yesdotted-circle NoRemove all reviewers.
/unassigndotted-circle Nocheck-circle Yesdotted-circle NoRemove all assignees.
/unlabel ~label1 ~label2 or /remove_label ~label1 ~label2check-circle Yescheck-circle Yescheck-circle YesRemove specified labels.
/unlabel or /remove_labelcheck-circle Yescheck-circle Yescheck-circle YesRemove all labels.
/unlink <item>check-circle Yesdotted-circle Nocheck-circle YesRemove link with to the provided issue. The <item> value should be in the format of #item, group/project#item, or the full URL. (Introduced in GitLab 16.1).
/unlockcheck-circle Yescheck-circle Yescheck-circle YesUnlock the discussions.
/unsubscribecheck-circle Yescheck-circle Yescheck-circle YesUnsubscribe from notifications.
/weight <value>check-circle Yesdotted-circle Nodotted-circle NoSet weight. Valid values are integers like 0, 1, or 2.
/zoom <Zoom URL>check-circle Yesdotted-circle Nodotted-circle NoAdd a Zoom meeting to this issue or incident. Users on GitLab Premium can add a short description when adding a Zoom link to an incident.

Work items

History

Work items in GitLab include:

The following quick actions can be applied through the description field when editing or commenting on work items.

CommandTaskObjectiveKey ResultAction
/assign @user1 @user2check-circle Yescheck-circle Yescheck-circle YesAssign one or more users.
/assign mecheck-circle Yescheck-circle Yescheck-circle YesAssign yourself.
/add_child <work_item>dotted-circle Nocheck-circle Yesdotted-circle NoAdd child to <work_item>. The <work_item> value should be in the format of #item, group/project#item, or a URL to a work item. Multiple work items can be added as child items at the same time. Introduced in GitLab 16.5.
/award :emoji:check-circle Yescheck-circle Yescheck-circle YesToggle an emoji reaction. Introduced in GitLab 16.5
/checkin_reminder <cadence>dotted-circle Nocheck-circle Yesdotted-circle NoSchedule check-in reminders. Options are weekly, twice-monthly, monthly, or never (default). Introduced in GitLab 16.4 with flags named okrs_mvc and okr_checkin_reminders.
/clear_health_statuscheck-circle Yescheck-circle Yescheck-circle YesClear health status.
/clear_weightcheck-circle Yesdotted-circle Nodotted-circle NoClear weight.
/closecheck-circle Yescheck-circle Yescheck-circle YesClose.
/confidentialcheck-circle Yescheck-circle Yescheck-circle YesMark work item as confidential. introduced in GitLab 16.4.
/copy_metadata <work_item>check-circle Yescheck-circle Yescheck-circle YesCopy labels and milestone from another work item in the same namespace. The <work_item> value should be in the format of #item or a URL to a work item. Introduced in GitLab 17.9.
/donecheck-circle Yescheck-circle Yescheck-circle YesMark to-do item as done. Introduced in GitLab 16.2.
/due <date>check-circle Yesdotted-circle Nocheck-circle YesSet due date. Examples of valid <date> include in 2 days, this Friday and December 31st.
/health_status <value>check-circle Yescheck-circle Yescheck-circle YesSet health status. Valid options for <value> are on_track, needs_attention, or at_risk.
/label ~label1 ~label2 or /labels ~label1 ~label2check-circle Yescheck-circle Yescheck-circle YesAdd one or more labels. Label names can also start without a tilde (~), but mixed syntax is not supported.
/promote_to <type>check-circle Yesdotted-circle Nocheck-circle YesPromotes work item to specified type. Available options for <type>: issue (promote a task) or objective (promote a key result). Introduced in GitLab 16.1.
/reassign @user1 @user2check-circle Yescheck-circle Yescheck-circle YesReplace current assignees with those specified.
/relabel ~label1 ~label2check-circle Yescheck-circle Yescheck-circle YesReplace current labels with those specified.
/remove_due_datecheck-circle Yesdotted-circle Nocheck-circle YesRemove due date.
/remove_child <work_item>dotted-circle Nocheck-circle Yesdotted-circle NoRemove the child <work_item>. The <work_item> value should be in the format of #item, group/project#item, or a URL to a work item. Introduced in GitLab 16.10.
/remove_parentcheck-circle Yesdotted-circle Nocheck-circle YesRemoves the parent work item. Introduced in GitLab 16.9.
/reopencheck-circle Yescheck-circle Yescheck-circle YesReopen.
/set_parent <work_item>check-circle Yesdotted-circle Nocheck-circle YesSet parent work item to <work_item>. The <work_item> value should be in the format of #item, group/project#item, or a URL to a work item. Introduced in GitLab 16.5. Alias /epic for issues with the new look introduced in GitLab 17.10.
/shrugcheck-circle Yescheck-circle Yescheck-circle YesAdd ¯\_(ツ)_/¯.
/status <value>check-circle Yesdotted-circle Nodotted-circle NoSet status. Valid options for <value> include status options set for the namespace. Introduced in GitLab 18.2 with flag named work_item_status_feature_flag.
/subscribecheck-circle Yescheck-circle Yescheck-circle YesSubscribe to notifications. Introduced in GitLab 16.4
/tableflipcheck-circle Yescheck-circle Yescheck-circle YesAdd (╯°□°)╯︵ ┻━┻.
/title <new title>check-circle Yescheck-circle Yescheck-circle YesChange title.
/todocheck-circle Yescheck-circle Yescheck-circle YesAdd a to-do item. Introduced in GitLab 16.2.
/typecheck-circle Yescheck-circle Yescheck-circle YesConverts work item to specified type. Available options for <type> include issue, task, objective and key result. Introduced in GitLab 16.0.
/unassign @user1 @user2check-circle Yescheck-circle Yescheck-circle YesRemove specific assignees.
/unassigndotted-circle Nocheck-circle Yescheck-circle YesRemove all assignees.
/unlabel ~label1 ~label2 or /remove_label ~label1 ~label2check-circle Yescheck-circle Yescheck-circle YesRemove specified labels.
/unlabel or /remove_labelcheck-circle Yescheck-circle Yescheck-circle YesRemove all labels.
/unlinkcheck-circle Yescheck-circle Yescheck-circle YesRemove link to the provided work item. The <work item> value should be in the format of #work_item, group/project#work_item, or the full work item URL. Introduced in GitLab 17.8.
/unsubscribecheck-circle Yescheck-circle Yescheck-circle YesUnsubscribe to notifications. Introduced in GitLab 16.4
/weight <value>check-circle Yesdotted-circle Nodotted-circle NoSet weight. Valid options for <value> include 0, 1, and 2.

Commit comments

You can use quick actions when commenting on individual commits. These quick actions work only in commit comment threads, not in commit messages or other GitLab contexts.

To use quick actions in commit comments:

  1. Go to a commit page by selecting a commit from the commits list, merge request, or other commit links.
  2. In the comment form at the bottom of the commit page, enter your quick action.
  3. Select Comment.

The following quick actions are applicable for commit comments:

CommandAction
/tag v1.2.3 <message>Creates a Git tag pointing to the commented commit, with an optional message.

Here is an example Git tag:

Ready for release after security fix.
/tag v2.1.1 Security patch release

This comment creates a Git tag named `v2.1.1` pointing to the commit, with the
message "Security patch release".

## Troubleshooting

### Quick action isn't executed

If you run a quick action, but nothing happens, check if the quick action appears in the autocomplete
box as you type it.
If it doesn't, it's possible that:

- The feature related to the quick action isn't available to you based on your subscription tier or
  user role for the group or project.
- A required condition for the quick action isn't met.
  For example, you're running `/unlabel` on an issue without any labels.