View as Markdown
GitLab icon

GitLab ACTION

Get Merge Request Diffs

List the file-level changes in a merge request — each changed file's path, whether it was added, deleted or renamed, and its unified diff. This is the tool to call before reviewing, approving or commenting on a merge request: the new_path values and the line numbers inside each diff hunk are what Create Merge Request Comment and Create Merge Request Review need to anchor an inline comment. Large merge requests can be trimmed with Paths (only files under the given prefixes) and Max Files. Watch for too_large: true or collapsed: true on a file — GitLab omits or shortens those diffs, so do not conclude a file is unchanged. Use Get Merge Request for metadata and merge readiness, and Get Merge Request Commits for the commit history. See the documentation
  • Action
  • Read only
  • OAuth
  • SDK
  • MCP

IMPLEMENTATION

Call this tool

Connect a user's GitLab account once, then configure and run Get Merge Request Diffs from your backend or agent.

import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "gitlab-get-merge-request-diffs",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    gitlab: { authProvisionId: "apn_xxxxxxx" },
    projectId: "Project",
    mergeRequestIid: 10,
  },
})

console.log(result)

SCHEMA

Inputs

Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.

Get Merge Request Diffs inputs
Property Type Description
projectId Project string
The project, given either as its path — group/project or group/subgroup/project, e.g. backend/payments — or as its numeric project ID. The path is what appears in the project URL and is usually what a user will name, so prefer it. A pasted GitLab URL also works. Use List Projects to find the path if you only know part of the name.
Required
mergeRequestIid Merge Request IID integer
The merge request's internal ID — the !N shown in the GitLab UI and the number at the end of the merge request URL. This is not the id field, which is a much larger instance-wide number; passing id here returns a 404. Use List Merge Requests or Search Merge Requests to resolve the IID from a title, branch or author.
Required
paths Paths string[]
Return only files whose path starts with one of these prefixes, e.g. src/api/ or app/models/user.rb. Filtering happens after fetching, so this trims the response but not the number of requests. Leave blank for every changed file.
Optional
maxFiles Max Files integer
Maximum number of changed files to return in total, paginating as needed. Defaults to 100. Lower it for a merge request that touches hundreds of files.
Optional
includeDiffText Include Diff Text boolean
Whether to include each file's unified diff text. Defaults to true. Set to false for a cheap list of which files changed, without the contents.
Optional

REFERENCE

Tool details

Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.

Registry key
gitlab-get-merge-request-diffs
Version
0.0.1
App
GitLab
Authentication
OAuth
Read-only
Yes
Destructive
No
Open world
Yes