GitLab Merge Request Trigger

Placing the following snippet at the top of an RWX file will result in all tasks in the file running any time a GitLab merge request is opened, updated, or merged.

on:
  gitlab:
    merge-request:

It's common to pass values from the event as init parameters into tasks.

on:
  gitlab:
    merge-request:
      init:
        commit-sha: ${{ event.git.sha }}

base:
  os: ubuntu 24.04
  tag: 1.2

tasks:
  - key: code
    call: git/clone 1.6.9
    with:
      repository: [email protected]:YOUR_ORG/YOUR_REPO.git
      ref: ${{ init.commit-sha }}
      ssh-key: ${{ gitlab['YOUR_ORG/YOUR_REPO'].ssh-key }}

Event Fields

The following values are available in the event context for GitLab merge request triggers:

PathDescription
event.git.shaThe SHA of the commit that triggered the event.
event.git.refThe ref of the merge request.
event.gitlab.merge-request.object_attributes.iidThe internal ID of the merge request.
event.gitlab.merge-request.object_attributes.urlThe URL of the merge request.
event.gitlab.merge-request.object_attributes.titleThe title of the merge request.
event.gitlab.merge-request.object_attributes.actionThe action that triggered the event (opened, reopened, updated, merged, closed).
event.gitlab.merge-request.object_attributes.last_commit.messageThe last commit message.
event.gitlab.merge-request.object_attributes.last_commit.author.nameThe last commit author name.
event.gitlab.merge-request.object_attributes.source_branchThe source branch of the merge request.
event.gitlab.merge-request.project.idThe ID of the GitLab project.
event.gitlab.merge-request.project.path_with_namespaceThe full path of the project (e.g., group/subgroup/project).
event.gitlab.merge-request.project.web_urlThe web URL of the project.
event.gitlab.merge-request.user.idThe ID of the user who triggered the event.
event.gitlab.merge-request.user.usernameThe username of the user who triggered the event.

For all values available in the event.gitlab context for GitLab merge request triggers, see GitLab's documentation on merge request events.

Actions

By default, RWX fires the merge request trigger on [open, reopen, update]. If you only want to handle certain actions, you can specify them:

on:
  gitlab:
    merge-request:
      actions: [open]

See GitLab's documentation on merge request events for a full list of available actions.