# repository — gitlab

> 41 actions
> This page as plain markdown. Index: https://mcp.jmrp.io/llms.txt

Canonical: https://mcp.jmrp.io/servers/gitlab/actions/repository/
Language: en
Alternate: https://mcp.jmrp.io/es/servers/gitlab/actions/repository/index.md
Updated: 2026-09-11T09:56:41+02:00
License: https://mcp.jmrp.io/license/

Counted with a Free-tier token against gitlab.com, which is the only host this endpoint talks to: to use it against a self-managed instance, run the server yourself — its documentation covers that. The catalog is scoped to the token that asks, so the count moves with both its tier and its permissions: higher tiers expose more actions, and administration domains only appear to tokens allowed to use them. That is why the figures differ elsewhere: the upstream project catalogues 1,006 actions across 162 domains, and 851 on the Free/CE surface, while this deployment publishes 747 because it is OAuth-only and acts with your token, so the administration domains a non-admin account cannot call never appear. All three describe the same catalog, counted from three vantage points.

## Actions

### `repository.archive` — Repository Archive

_read-only_

Build the download URL for a repository archive. Returns: the project, ref/SHA, format, and archive download URL (binary content is not returned). See also: repository.tree, tag.list.

**Required parameters:** `project_id (string)`

### `repository.blob` — Repository Blob

_read-only_

Get a git blob by SHA. Returns: blob SHA, byte size, decoded text content (or image data), and a content category (text/image/binary). See also: repository.raw_blob, repository.tree.

**Required parameters:** `project_id (string)`, `sha (string)`

### `repository.changelog_add` — Repository Changelog Add

Add changelog data to a changelog file by committing the generated entries. Returns: a success confirmation with the version. See also: repository.changelog_generate, release.create.

**Required parameters:** `project_id (string)`, `version (string)`

### `repository.changelog_generate` — Repository Changelog Generate

_read-only_

Generate changelog notes for a version range without committing. Returns: the rendered changelog notes (read-only preview). See also: repository.changelog_add, release.create.

**Required parameters:** `project_id (string)`, `version (string)`

### `repository.commit_cherry_pick` — Commit Cherry Pick

Cherry-pick a commit onto a target branch, optionally as a dry run. Returns: the newly created commit (SHA, title, author, dates, web URL) or a conflict error. See also: repository.commit_get, branch.list, repository.commit_revert.

**Required parameters:** `branch (string)`, `project_id (string)`

### `repository.commit_comment_create` — Commit Comment Create

Post a comment on a commit, optionally inline on a specific file path and line. Returns: the created comment with note text, author user object, and optional path/line/line_type. See also: repository.commit_comments, repository.commit_diff, repository.commit_get.

**Required parameters:** `note (string)`, `project_id (string)`, `sha (string)`

### `repository.commit_comments` — Commit Comments

_read-only_

List the comments on a commit. Returns: comment entries with note text, author user object, optional file path, line, and line type, plus pagination metadata. See also: repository.commit_comment_create, repository.commit_get, repository.commit_diff.

**Required parameters:** `project_id (string)`, `sha (string)`

### `repository.commit_create` — Commit Create

Create a commit with multiple file actions (create/update/delete/move/chmod) on a branch in one call. Returns: the created commit with SHA, title, author/committer, dates, parent IDs, stats, trailers, and web URL. See also: branch.list, repository.tree, repository.commit_get.

**Required parameters:** `actions (array)`, `branch (string)`, `commit_message (string)`, `project_id (string)`

### `repository.commit_diff` — Commit Diff

_read-only_

Get the file diffs of a single commit, optionally in unified-diff format. Returns: per-file diffs (old/new path, diff body, new/renamed/deleted flags, file modes) with pagination metadata. See also: repository.commit_get, repository.file_history, repository.commit_comments.

**Required parameters:** `project_id (string)`, `sha (string)`

### `repository.commit_discussion_add_note` — Add Commit Discussion Note

Add a reply note to an existing commit discussion thread. Returns: the created note (author, body, timestamps, resolvable state). See also: repository.commit_discussion_create, repository.commit_discussion_get, repository.commit_discussion_update_note.

**Required parameters:** `body (string)`, `commit_sha (string)`, `discussion_id (string)`, `project_id (string)`

### `repository.commit_discussion_create` — Create Commit Discussion

Create a new discussion thread on a commit, optionally as an inline diff comment. Returns: the created thread with its first note (author, body, resolvable state, diff position). See also: repository.commit_discussion_add_note, repository.commit_discussion_list, repository.commit_diff.

**Required parameters:** `body (string)`, `commit_sha (string)`, `project_id (string)`

### `repository.commit_discussion_delete_note` — Delete Commit Discussion Note

_destructive_

Delete a note from a commit discussion thread (destructive). Returns: a deletion confirmation message. See also: repository.commit_discussion_update_note, repository.commit_discussion_get, repository.commit_discussion_list.

**Required parameters:** `commit_sha (string)`, `discussion_id (string)`, `note_id (integer)`, `project_id (string)`

### `repository.commit_discussion_get` — Get Commit Discussion

_read-only_

Get a single commit discussion thread by its discussion id. Returns: the thread with every note (author, body, system flag, resolvable/resolved state, diff position). See also: repository.commit_discussion_list, repository.commit_discussion_add_note, repository.commit_get.

**Required parameters:** `commit_sha (string)`, `discussion_id (string)`, `project_id (string)`

### `repository.commit_discussion_list` — List Commit Discussions

_read-only_

List discussion threads on a commit with ordering and keyset pagination. Returns: discussion threads with their notes (author, body, system flag, resolvable state, diff position) and pagination metadata. See also: repository.commit_discussion_get, repository.commit_discussion_create, repository.commit_get.

**Required parameters:** `commit_sha (string)`, `project_id (string)`

### `repository.commit_discussion_update_note` — Update Commit Discussion Note

Update the body of a note in a commit discussion thread. Returns: the updated note (author, body, timestamps). See also: repository.commit_discussion_add_note, repository.commit_discussion_delete_note, repository.commit_discussion_get.

**Required parameters:** `body (string)`, `commit_sha (string)`, `discussion_id (string)`, `note_id (integer)`, `project_id (string)`

### `repository.commit_get` — Commit Get

_read-only_

Get a single commit from a project by SHA (full, short, branch, or tag). Returns: full commit metadata, message, parent IDs, author/committer, dates, stats, trailers, project ID, and last pipeline. See also: repository.file_history, repository.commit_diff, repository.commit_refs, repository.commit_statuses.

**Required parameters:** `project_id (string)`, `sha (string)`

### `repository.commit_list` — Commit List

_read-only_

List repository commits for a project, optionally filtered by ref_name, since/until, path, or author. Returns: commit summaries (SHA, title, author, dates, parent IDs, stats, trailers, last pipeline) with pagination metadata. See also: repository.commit_get, repository.commit_diff, repository.commit_statuses, branch.list.

**Required parameters:** `project_id (string)`

### `repository.commit_merge_requests` — Commit Merge Requests

_read-only_

List merge requests associated with a commit. Returns: basic MR entries with IID, title, state, source/target branches, web URL, and author. See also: repository.commit_get, merge_request.get, mr_review.changes_get.

**Required parameters:** `project_id (string)`, `sha (string)`

### `repository.commit_refs` — Commit Refs

_read-only_

List branches and tags that reference (contain) a commit, optionally filtered by ref type. Returns: ref entries with type and name plus pagination metadata. See also: repository.commit_get, branch.list, tag.list.

**Required parameters:** `project_id (string)`, `sha (string)`

### `repository.commit_revert` — Commit Revert

Revert a commit on a target branch, creating a new commit that undoes it. Returns: the newly created revert commit (SHA, title, author, dates, web URL) or a conflict error. See also: repository.commit_get, branch.list, repository.commit_cherry_pick.

**Required parameters:** `branch (string)`, `project_id (string)`

### `repository.commit_signature` — Commit Signature

_read-only_

Get the signature (GPG/X.509/SSH) of a commit for authenticity verification. Returns: the signing key ID, primary key ID, signer name/email, verification status, and optional subkey ID. See also: repository.commit_get, repository.file_history.

**Required parameters:** `project_id (string)`, `sha (string)`

### `repository.commit_status_set` — Commit Status Set

Set or update the pipeline status of a commit (used by external CI/reporting integrations). Returns: the resulting status with state, name, ref, coverage, pipeline ID, timestamps, and author user object. See also: repository.commit_statuses, repository.commit_get, pipeline.list.

**Required parameters:** `project_id (string)`, `sha (string)`, `state (string)`

### `repository.commit_statuses` — Commit Statuses

_read-only_

List the statuses of a commit (CI jobs and external integrations), filtered by ref, stage, name, or pipeline. Returns: status entries with state, name, ref, coverage, pipeline ID, timestamps, and author user object, plus pagination metadata. See also: repository.commit_status_set, repository.commit_get, pipeline.list.

**Required parameters:** `project_id (string)`, `sha (string)`

### `repository.compare` — Repository Compare

_read-only_

Compare two refs (branches, tags, or commits) in a project. Use from_project_id for cross-project comparison. Returns: commits, diffs, and comparison metadata. See also: repository.tree, branch.list.

**Required parameters:** `from (string)`, `project_id (string)`, `to (string)`

### `repository.contributors` — Repository Contributors

_read-only_

List repository contributors. Returns: each contributor's name, email, commit count, additions, deletions, and pagination metadata. See also: repository.tree, repository.file_history.

**Required parameters:** `project_id (string)`

### `repository.file_blame` — File Blame

_read-only_

Get blame information for a file, optionally for a line range. Returns: file_path and blame ranges, each with commit id, message, author name/email, authored and committed dates, and the covered lines. See also: repository.file_get, repository.file_history.

**Required parameters:** `file_path (string)`, `project_id (string)`

### `repository.file_create` — File Create

Create a new file in a repository in a single commit. Returns: file_path, branch, commit_id, and last_commit_id. See also: repository.file_update, repository.file_get, repository.file_delete.

**Required parameters:** `branch (string)`, `commit_message (string)`, `content (string)`, `file_path (string)`, `project_id (string)`

### `repository.file_delete` — File Delete

_destructive_

Delete a file from a repository in a single commit. Returns: a success confirmation naming the file and project. See also: repository.file_get, repository.file_update.

**Required parameters:** `branch (string)`, `commit_message (string)`, `file_path (string)`, `project_id (string)`

### `repository.file_get` — File Get

_read-only_

Get a single file's decoded content and metadata from a repository. Returns: file_name, file_path, size, encoding, content, content_sha256, ref, blob_id, commit_id, last_commit_id, and execute_filemode. See also: repository.file_raw, repository.file_metadata, repository.file_blame, repository.tree.

**Required parameters:** `file_path (string)`, `project_id (string)`

### `repository.file_history` — Commit List

_read-only_

List repository commits for a project, optionally filtered by ref_name, since/until, path, or author. Returns: commit summaries (SHA, title, author, dates, parent IDs, stats, trailers, last pipeline) with pagination metadata. See also: repository.commit_get, repository.commit_diff, repository.commit_statuses, branch.list.

**Required parameters:** `project_id (string)`

**alias of:** `repository.commit_list` (repository)

### `repository.file_metadata` — File Metadata

_read-only_

Get a file's metadata without content (HEAD request). Returns: file_name, file_path, size, encoding, ref, blob_id, commit_id, last_commit_id, execute_filemode, and content_sha256. See also: repository.file_get, repository.file_raw_metadata.

**Required parameters:** `file_path (string)`, `project_id (string)`

### `repository.file_raw` — File Raw

_read-only_

Get the raw content of a file from a repository. Returns: file_path, size, content, and content_category. See also: repository.file_get, repository.file_raw_metadata.

**Required parameters:** `file_path (string)`, `project_id (string)`

### `repository.file_raw_metadata` — File Raw Metadata

_read-only_

Get raw file metadata without content (HEAD request to the raw endpoint). Returns: file_name, file_path, size, encoding, ref, blob_id, commit_id, last_commit_id, execute_filemode, and content_sha256. See also: repository.file_raw, repository.file_metadata.

**Required parameters:** `file_path (string)`, `project_id (string)`

### `repository.file_update` — File Update

Update an existing file in a repository in a single commit. Returns: file_path, branch, commit_id, and last_commit_id. See also: repository.file_create, repository.file_get, repository.file_delete.

**Required parameters:** `branch (string)`, `commit_message (string)`, `content (string)`, `file_path (string)`, `project_id (string)`

### `repository.list_submodules` — List Repository Submodules

_read-only_

List the Git submodules defined in a repository's .gitmodules. Returns: each submodule's name, path, remote url, resolved_project, and pinned commit_sha, plus a count. See also: repository.read_submodule_file, repository.update_submodule, repository.tree.

**Required parameters:** `project_id (string)`

### `repository.markdown_render` — Render Markdown

_read-only_

Render arbitrary Markdown text to HTML using the GitLab Markdown API. Optionally apply GitLab Flavored Markdown and resolve references within a project's context. Returns: the rendered HTML string. See also: repository.file_get, wiki.get.

**Required parameters:** `text (string)`

### `repository.merge_base` — Repository Merge Base

_read-only_

Find the common ancestor (merge base) of two or more refs. Returns: the merge-base commit with metadata and web URL. See also: repository.compare, branch.list.

**Required parameters:** `project_id (string)`, `refs (array)`

### `repository.raw_blob` — Repository Raw Blob

_read-only_

Get the raw content of a git blob by SHA. Returns: blob SHA, byte size, decoded text content (or image data), and a content category (text/image/binary). See also: repository.blob, repository.tree.

**Required parameters:** `project_id (string)`, `sha (string)`

### `repository.read_submodule_file` — Read Repository Submodule File

_read-only_

Read a file from inside a submodule at the parent-pinned commit. Returns: file_name, file_path, submodule_path, resolved_project, commit_sha, size, decoded content, and encoding. See also: repository.list_submodules, repository.file_get, repository.update_submodule.

**Required parameters:** `file_path (string)`, `project_id (string)`, `submodule_path (string)`

### `repository.tree` — Repository Tree

_read-only_

List repository tree items. Returns: paths, object IDs, entry types (blob/tree), and pagination metadata. See also: repository.blob, repository.raw_blob, branch.list.

**Required parameters:** `project_id (string)`

### `repository.update_submodule` — Update Repository Submodule

Update a submodule pointer to a new commit SHA on a branch. Returns: the created commit with id, short_id, title, author and committer details, dates, parent_ids, message, and web_url. See also: repository.list_submodules, repository.read_submodule_file, repository.commit_get.

**Required parameters:** `branch (string)`, `commit_sha (string)`, `project_id (string)`, `submodule (string)`
