Release
gitlab_releasePublish and manage GitLab releases with notes, milestones, and asset links. Requires an existing Git tag. Use to attach binaries, runbooks, or packages to a release, and batch link creation after CI builds.
Instructions
Example: {"action":"create","params":{...}} For the params schema of any action, read the MCP resource gitlab://schema/meta/gitlab_release/.
Manage GitLab releases and their asset links (binaries, packages, runbooks). Releases wrap a Git tag with notes, milestones and downloadable assets. Delete is destructive: it removes the release but preserves the underlying tag. When to use: publish a release for a tag, list/get/update releases, attach asset links to a release, batch-attach links after a CI build. NOT for: creating tags (use gitlab_tag create first — release_create requires an existing tag_name), uploading binaries to the package registry (use gitlab_package), milestones (use gitlab_project milestone_*).
Returns:
list: array of releases with pagination.
get / get_latest / create / update: release object {name, tag_name, description, released_at, assets: {sources, links}, evidences, milestones}.
link_list: array of {id, name, url, link_type, direct_asset_path}.
link_create / link_create_batch / link_get / link_update: link object(s).
delete / link_delete: {success: bool, message: string}. Errors: 404 not found (hint: tag_name must exist), 403 forbidden (hint: requires Developer+ for create, Maintainer+ for update/delete), 400 invalid params (hint: link url must be absolute https://).
Param conventions: * = required. All actions need project_id*. Release actions need tag_name*. Link actions need tag_name* + link_id* (except link_create / link_create_batch / link_list).
Releases:
create: project_id*, tag_name* (must exist), name, description (Markdown), released_at (ISO 8601), milestones ([]string)
get: project_id*, tag_name*
get_latest: project_id*
list: project_id*, order_by (released_at/created_at), sort (asc/desc), page, per_page
update: project_id*, tag_name*, name, description, released_at, milestones
delete: project_id*, tag_name*
Asset links:
link_create: project_id*, tag_name*, name*, url*, link_type (runbook/package/image/other), filepath, direct_asset_path
link_create_batch: project_id*, tag_name*, links* (array of {name, url, link_type, filepath, direct_asset_path})
link_get: project_id*, tag_name*, link_id*
link_list: project_id*, tag_name*, page, per_page
link_update: project_id*, tag_name*, link_id*, name, url, filepath, direct_asset_path, link_type
link_delete: project_id*, tag_name*, link_id*
See also: gitlab_tag (create the tag before the release), gitlab_package (upload binaries; link_create can point at the package URL), gitlab_project (milestones referenced by releases).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform. Pick exactly one of the values in `enum`. Each action expects its own `params` object — see the tool description for the per-action parameter list. | |
| params | No | Action-specific parameters as a JSON object. Required and optional fields differ per action; consult this tool's description for the chosen action. Send only the fields documented for that action — unknown keys are rejected with a validation error (only reserved meta keys like `confirm` are stripped before validation). For the JSON Schema of a specific action's `params`, read the MCP resource `gitlab://schema/meta/{tool}/{action}` (replace placeholders with the tool name and the chosen action). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| next_steps | No | Optional. Suggested follow-up actions or tool calls for the LLM, contextual to the result. | |
| pagination | No | Present on list actions. Use `has_more` and `next_page` to paginate through results. |