Skip to content

Issues and work items

The whole life of an issue: create, read, list (in a project, a group or everywhere the user can see), update (closing and reopening included), reorder, move to another project and delete; subscriptions and to-do items; its notes and threaded discussions; links to other issues; time estimates and spent time; its participants and the merge requests related to it or closing it; award emoji on the issue and its notes; and the label, milestone and state events of its history. Issue statistics count issues by state.

Work items, the GraphQL model behind issues, epics and tasks, are actions here too, with their types and saved views. Iteration and weight events, and listing a project’s or a group’s iterations, are served from Premium.

On GitLab 19.4, issue.work_item_saved_view_create and issue.work_item_saved_view_subscribe made with a token nearly always answer 500: subscribing a user to a view locks the user’s row while GitLab’s sign-in tracking has left unsaved changes on it, which GitLab refuses. The create meets it after the view is saved, so the view exists and its creator is not subscribed; the error says so and names issue.work_item_saved_view_list, since creating the view again adds a duplicate. The subscribe fails before recording anything. The other saved view actions are not affected.

  • “List the open issues of project 42”
  • “Create an issue about the login bug and assign it to me”
  • “Close issue 10 with a comment”
  • “How much time has been spent on issue 7?”
  • Dynamic, the default surface: call gitlab_execute_action with action set to the action’s ID, such as issue.create, and its parameters in params. gitlab_find_action finds an ID from a description of the task.
  • Meta (GITLAB_MCP_TOOL_SURFACE=meta): call gitlab_issue with action set to the action’s name, such as create, and its parameters in params.
  • Individual (GITLAB_MCP_TOOL_SURFACE=individual): call the action’s own tool, such as gitlab_issue_create, with its parameters as the arguments.

How many of these actions an instance serves at each tier, out of a total of 71:

  • Free: 66
  • Premium: 71
  • Ultimate: 71

Read-only actions: 38 of 71, the ones a deployment in read-only mode keeps.

The description of each action, and of each of its parameters, is the text the server serves for it on the default surface, quoted as served. A destructive action runs only once confirmed, unless GITLAB_MCP_YOLO_MODE (or AUTOPILOT) skips that step: the dynamic surface needs confirm: true on gitlab_execute_action, and the other two take a confirm parameter or the client’s prompt (Destructive actions). A parameter followed by a tier in parentheses is served only from that tier on.

ActionTierIndividual
issue.createFreegitlab_issue_create
issue.create_todoFreegitlab_issue_create_todo
issue.deleteFreegitlab_issue_delete
issue.discussion_add_noteFreegitlab_add_issue_discussion_note
issue.discussion_createFreegitlab_create_issue_discussion
issue.discussion_delete_noteFreegitlab_delete_issue_discussion_note
issue.discussion_getFreegitlab_get_issue_discussion
issue.discussion_listFreegitlab_list_issue_discussions
issue.discussion_update_noteFreegitlab_update_issue_discussion_note
issue.emoji_issue_createFreegitlab_issue_emoji_create
issue.emoji_issue_deleteFreegitlab_issue_emoji_delete
issue.emoji_issue_getFreegitlab_issue_emoji_get
issue.emoji_issue_listFreegitlab_issue_emoji_list
issue.emoji_issue_note_createFreegitlab_issue_note_emoji_create
issue.emoji_issue_note_deleteFreegitlab_issue_note_emoji_delete
issue.emoji_issue_note_getFreegitlab_issue_note_emoji_get
issue.emoji_issue_note_listFreegitlab_issue_note_emoji_list
issue.event_issue_iteration_getPremiumgitlab_issue_iteration_event_get
issue.event_issue_iteration_listPremiumgitlab_issue_iteration_event_list
issue.event_issue_label_getFreegitlab_issue_label_event_get
issue.event_issue_label_listFreegitlab_issue_label_event_list
issue.event_issue_milestone_getFreegitlab_issue_milestone_event_get
issue.event_issue_milestone_listFreegitlab_issue_milestone_event_list
issue.event_issue_state_getFreegitlab_issue_state_event_get
issue.event_issue_state_listFreegitlab_issue_state_event_list
issue.event_issue_weight_listPremiumgitlab_issue_weight_event_list
issue.getFreegitlab_issue_get
issue.get_by_idFreegitlab_issue_get_by_id
issue.iteration_list_groupPremiumgitlab_list_group_iterations
issue.iteration_list_projectPremiumgitlab_list_project_iterations
issue.link_createFreegitlab_issue_link_create
issue.link_deleteFreegitlab_issue_link_delete
issue.link_getFreegitlab_issue_link_get
issue.link_listFreegitlab_issue_link_list
issue.listFreegitlab_issue_list
issue.list_allFreegitlab_issue_list_all
issue.list_groupFreegitlab_issue_list_group
issue.moveFreegitlab_issue_move
issue.mrs_closingFreegitlab_issue_mrs_closing
issue.mrs_relatedFreegitlab_issue_mrs_related
issue.note_createFreegitlab_issue_note_create
issue.note_deleteFreegitlab_issue_note_delete
issue.note_getFreegitlab_issue_note_get
issue.note_listFreegitlab_issue_note_list
issue.note_updateFreegitlab_issue_note_update
issue.participantsFreegitlab_issue_participants
issue.reorderFreegitlab_issue_reorder
issue.spent_time_addFreegitlab_issue_spent_time_add
issue.spent_time_resetFreegitlab_issue_spent_time_reset
issue.statistics_getFreegitlab_get_issue_statistics
issue.statistics_get_groupFreegitlab_get_group_issue_statistics
issue.statistics_get_projectFreegitlab_get_project_issue_statistics
issue.subscribeFreegitlab_issue_subscribe
issue.time_estimate_resetFreegitlab_issue_time_estimate_reset
issue.time_estimate_setFreegitlab_issue_time_estimate_set
issue.time_stats_getFreegitlab_issue_time_stats_get
issue.unsubscribeFreegitlab_issue_unsubscribe
issue.updateFreegitlab_issue_update
issue.work_item_createFreegitlab_create_work_item
issue.work_item_deleteFreegitlab_delete_work_item
issue.work_item_getFreegitlab_get_work_item
issue.work_item_listFreegitlab_list_work_items
issue.work_item_saved_view_createFreegitlab_work_item_saved_view_create
issue.work_item_saved_view_deleteFreegitlab_work_item_saved_view_delete
issue.work_item_saved_view_getFreegitlab_work_item_saved_view_get
issue.work_item_saved_view_listFreegitlab_work_item_saved_view_list
issue.work_item_saved_view_subscribeFreegitlab_work_item_saved_view_subscribe
issue.work_item_saved_view_unsubscribeFreegitlab_work_item_saved_view_unsubscribe
issue.work_item_saved_view_updateFreegitlab_work_item_saved_view_update
issue.work_item_type_listFreegitlab_list_work_item_types
issue.work_item_updateFreegitlab_update_work_item

Create a new issue in a project. Returns: the created issue with IID, state, labels, assignees, milestone, due date, and web URL. See also: issue.get, issue.list, issue.update.

  • Meta-tool: gitlab_issue, action create
  • Individual tool: gitlab_issue_create
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
titlestringyesIssue title
assignee_idintegernoSingle user ID to assign (use assignee_ids for multiple)
assignee_idsinteger[]noUser IDs to assign
confidentialbooleannoMark issue as confidential
created_atstringnoCreation date override (ISO 8601, requires admin permissions)
descriptionstringnoIssue description (Markdown supported)
discussion_to_resolvestringnoDiscussion ID to mark as resolved by this issue
due_datestringnoDue date in YYYY-MM-DD format
epic_id (Premium)integernoEpic ID to associate the issue with
iidintegernoExplicit issue IID to assign (requires admin permissions. Normally GitLab assigns the next IID automatically)
issue_typestring (issue, incident, test_case, task)noIssue type (issue, incident, test_case, task)
labelsstring[]noLabel names to apply
merge_request_to_resolve_discussions_ofintegernoMR IID whose unresolved discussions become issues
milestone_idintegernoMilestone ID to associate
weight (Premium)integernoIssue weight, 0 or higher

Create a to-do for an issue. Returns: the created to-do item with action, target title and URL, author, body, state and created and updated times. See also: issue.get.

  • Meta-tool: gitlab_issue, action create_todo
  • Individual tool: gitlab_issue_create_todo
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path

Delete an issue permanently. Returns: a success confirmation naming the issue and project. See also: issue.get, issue.update.

  • Meta-tool: gitlab_issue, action delete
  • Individual tool: gitlab_issue_delete
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue IID (project-scoped internal ID, not ‘issue_id’)
project_idstring/integeryesProject ID or URL-encoded path

Add a reply note to an existing issue discussion thread. Returns: the created note (author, body, timestamps). See also: issue.discussion_create, issue.discussion_get, issue.discussion_update_note.

  • Meta-tool: gitlab_issue, action discussion_add_note
  • Individual tool: gitlab_add_issue_discussion_note
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
bodystringyesNote body (Markdown supported)
discussion_idstringyesDiscussion ID to reply to
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path
created_atstringnoBackdate the note creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z). Requires admin or owner rights

Create a new discussion thread on an issue with an initial note. Returns: the created thread with its first note. See also: issue.discussion_add_note, issue.discussion_list, issue.note_create.

  • Meta-tool: gitlab_issue, action discussion_create
  • Individual tool: gitlab_create_issue_discussion
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
bodystringyesDiscussion body (Markdown supported)
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path
created_atstringnoBackdate the discussion creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z). Requires admin or owner rights

Delete a note from an issue discussion thread (destructive). Returns: a deletion confirmation message. See also: issue.discussion_update_note, issue.discussion_get, issue.discussion_list.

  • Meta-tool: gitlab_issue, action discussion_delete_note
  • Individual tool: gitlab_delete_issue_discussion_note
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
discussion_idstringyesDiscussion ID
issue_iidintegeryesIssue internal ID
note_idintegeryesNote ID to delete
project_idstring/integeryesProject ID or URL-encoded path

Get a single issue discussion thread by its discussion id. Returns: the thread with every note (author, body, system flag, resolvable/resolved state). See also: issue.discussion_list, issue.discussion_add_note, issue.get.

  • Meta-tool: gitlab_issue, action discussion_get
  • Individual tool: gitlab_get_issue_discussion
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
discussion_idstringyesDiscussion ID
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path

List discussion threads on an issue with ordering and keyset pagination. Returns: discussion threads with their notes (author, body, system flag, resolvable state) and pagination metadata. See also: issue.discussion_get, issue.discussion_create, issue.get, issue.note_list.

  • Meta-tool: gitlab_issue, action discussion_list
  • Individual tool: gitlab_list_issue_discussions
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoColumn to order keyset-paginated results by (e.g. created_at, updated_at)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction (asc or desc)

Update the body of a note in an issue discussion thread. Returns: the updated note. See also: issue.discussion_add_note, issue.discussion_delete_note, issue.discussion_get.

  • Meta-tool: gitlab_issue, action discussion_update_note
  • Individual tool: gitlab_update_issue_discussion_note
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
bodystringyesUpdated note body
discussion_idstringyesDiscussion ID
issue_iidintegeryesIssue internal ID
note_idintegeryesNote ID to update
project_idstring/integeryesProject ID or URL-encoded path
created_atstringnoOverride the note creation time (ISO 8601, e.g. 2025-01-01T00:00:00Z). Requires admin or owner rights

Add an emoji reaction to an issue. Returns: the created award with its emoji name, awarding user object, timestamps, and awardable id/type. See also: issue.emoji_issue_list, issue.emoji_issue_delete.

  • Meta-tool: gitlab_issue, action emoji_issue_create
  • Individual tool: gitlab_issue_emoji_create
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue IID (project-scoped internal ID)
namestringyesEmoji name without colons (e.g. thumbsup)
project_idstring/integeryesProject ID or URL-encoded path

Remove an emoji reaction from an issue by award id. Returns: a success confirmation naming the award emoji. See also: issue.emoji_issue_list, issue.emoji_issue_get.

  • Meta-tool: gitlab_issue, action emoji_issue_delete
  • Individual tool: gitlab_issue_emoji_delete
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
award_idintegeryesAward emoji ID
issue_iidintegeryesIssue IID (project-scoped internal ID)
project_idstring/integeryesProject ID or URL-encoded path

Get a single emoji reaction on an issue by award id. Returns: the award with its emoji name, awarding user object, timestamps, and awardable id/type. See also: issue.emoji_issue_list, issue.emoji_issue_delete.

  • Meta-tool: gitlab_issue, action emoji_issue_get
  • Individual tool: gitlab_issue_emoji_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
award_idintegeryesAward emoji ID
issue_iidintegeryesIssue IID (project-scoped internal ID)
project_idstring/integeryesProject ID or URL-encoded path

List all emoji reactions on an issue. Returns: each award with its emoji name, the awarding user object, awardable id/type, and pagination metadata. See also: issue.emoji_issue_get, issue.emoji_issue_create, issue.get.

  • Meta-tool: gitlab_issue, action emoji_issue_list
  • Individual tool: gitlab_issue_emoji_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue IID (project-scoped internal ID)
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoColumn to order results by (e.g. created_at, updated_at, id). Used with keyset pagination.
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort order: ‘asc’ or ‘desc’.

Add an emoji reaction to an issue note. Returns: the created award with its emoji name, awarding user object, timestamps, and awardable id/type. See also: issue.emoji_issue_note_list, issue.emoji_issue_note_delete.

  • Meta-tool: gitlab_issue, action emoji_issue_note_create
  • Individual tool: gitlab_issue_note_emoji_create
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue IID (project-scoped internal ID)
namestringyesEmoji name without colons (e.g. thumbsup)
note_idintegeryesNote ID
project_idstring/integeryesProject ID or URL-encoded path

Remove an emoji reaction from an issue note by award id. Returns: a success confirmation naming the award emoji. See also: issue.emoji_issue_note_list, issue.emoji_issue_note_get.

  • Meta-tool: gitlab_issue, action emoji_issue_note_delete
  • Individual tool: gitlab_issue_note_emoji_delete
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
award_idintegeryesAward emoji ID
issue_iidintegeryesIssue IID (project-scoped internal ID)
note_idintegeryesNote ID
project_idstring/integeryesProject ID or URL-encoded path

Get a single emoji reaction on an issue note by award id. Returns: the award with its emoji name, awarding user object, timestamps, and awardable id/type. See also: issue.emoji_issue_note_list, issue.emoji_issue_note_delete.

  • Meta-tool: gitlab_issue, action emoji_issue_note_get
  • Individual tool: gitlab_issue_note_emoji_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
award_idintegeryesAward emoji ID
issue_iidintegeryesIssue IID (project-scoped internal ID)
note_idintegeryesNote ID
project_idstring/integeryesProject ID or URL-encoded path

List all emoji reactions on an issue note (comment). Returns: each award with its emoji name, the awarding user object, awardable id/type, and pagination metadata. See also: issue.emoji_issue_note_get, issue.emoji_issue_note_create, issue.note_get.

  • Meta-tool: gitlab_issue, action emoji_issue_note_list
  • Individual tool: gitlab_issue_note_emoji_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue IID (project-scoped internal ID)
note_idintegeryesNote ID
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoColumn to order results by (e.g. created_at, updated_at, id). Used with keyset pagination.
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort order: ‘asc’ or ‘desc’.

Get a single iteration event for an issue (Premium/Ultimate). Returns: the event with action, the iteration object, and the acting user. See also: issue.event_issue_iteration_list.

  • Meta-tool: gitlab_issue, action event_issue_iteration_get
  • Individual tool: gitlab_issue_iteration_event_get
  • Tier: Premium
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
iteration_event_idintegeryesIteration event ID
project_idstring/integeryesProject ID or URL-encoded path

List iteration events for an issue (Premium/Ultimate). Returns: iteration events with action, the iteration object, the acting user, and pagination metadata. See also: issue.event_issue_iteration_get, issue.get.

  • Meta-tool: gitlab_issue, action event_issue_iteration_list
  • Individual tool: gitlab_issue_iteration_event_list
  • Tier: Premium
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoColumn to order keyset-paginated results by (e.g. id)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction for keyset pagination: asc or desc

Get a single label event for an issue. Returns: the event with action, the label object, and the acting user. See also: issue.event_issue_label_list.

  • Meta-tool: gitlab_issue, action event_issue_label_get
  • Individual tool: gitlab_issue_label_event_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
label_event_idintegeryesLabel event ID
project_idstring/integeryesProject ID or URL-encoded path

List label events for an issue. Returns: label events with action, the label object, the acting user, and pagination metadata. See also: issue.event_issue_label_get, issue.get.

  • Meta-tool: gitlab_issue, action event_issue_label_list
  • Individual tool: gitlab_issue_label_event_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoColumn to order keyset-paginated results by (e.g. id)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction for keyset pagination: asc or desc

Get a single milestone event for an issue. Returns: the event with action, the milestone object, and the acting user. See also: issue.event_issue_milestone_list.

  • Meta-tool: gitlab_issue, action event_issue_milestone_get
  • Individual tool: gitlab_issue_milestone_event_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
milestone_event_idintegeryesMilestone event ID
project_idstring/integeryesProject ID or URL-encoded path

List milestone events for an issue. Returns: milestone events with action, the milestone object, the acting user, and pagination metadata. See also: issue.event_issue_milestone_get, issue.get.

  • Meta-tool: gitlab_issue, action event_issue_milestone_list
  • Individual tool: gitlab_issue_milestone_event_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoColumn to order keyset-paginated results by (e.g. id)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction for keyset pagination: asc or desc

Get a single state event for an issue. Returns: the event with the state value and the acting user. See also: issue.event_issue_state_list.

  • Meta-tool: gitlab_issue, action event_issue_state_get
  • Individual tool: gitlab_issue_state_event_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path
state_event_idintegeryesState event ID

List state events for an issue. Returns: state events with the state value, the acting user, and pagination metadata. See also: issue.event_issue_state_get, issue.get.

  • Meta-tool: gitlab_issue, action event_issue_state_list
  • Individual tool: gitlab_issue_state_event_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoColumn to order keyset-paginated results by (e.g. id)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction for keyset pagination: asc or desc

List weight events for an issue (Premium/Ultimate). Returns: weight events with the weight value, the acting user, and pagination metadata. See also: issue.get.

  • Meta-tool: gitlab_issue, action event_issue_weight_list
  • Individual tool: gitlab_issue_weight_event_list
  • Tier: Premium
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoColumn to order keyset-paginated results by (e.g. id)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction for keyset pagination: asc or desc

Get a single issue from a project by issue IID. Returns: issue metadata, state, labels, assignees, author, due date, task completion, and web URL. See also: issue.list, issue.update, issue.delete, issue.note_list.

  • Meta-tool: gitlab_issue, action get
  • Individual tool: gitlab_issue_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue IID (project-scoped internal ID, not ‘issue_id’)
project_idstring/integeryesProject ID or URL-encoded path

Get a single issue by its global ID. Returns: the issue with state, labels, assignees, author, and web URL. See also: issue.get, issue.list.

  • Meta-tool: gitlab_issue, action get_by_id
  • Individual tool: gitlab_issue_get_by_id
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_idintegeryesThe global issue ID (not the project-scoped IID)

List a group’s iterations (sprints), optionally filtered by state, search term, or ancestor groups. Returns: iterations with sequence, title, description, state, start and due dates, web URL, and pagination metadata. See also: group.get, issue.list_group, issue.iteration_list_project.

  • Meta-tool: gitlab_issue, action iteration_list_group
  • Individual tool: gitlab_list_group_iterations
  • Tier: Premium
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
group_idstring/integeryesGroup ID or URL-encoded path
include_ancestorsbooleannoInclude ancestor iterations
order_bystringnoFor keyset pagination, the column to order results by
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
searchstringnoSearch by title
sortstring (asc, desc)noSort order for keyset pagination: ‘asc’ or ‘desc’
statestring (opened, upcoming, current, closed, all)noFilter by state: opened, upcoming, current, closed, all

List iterations (sprints) for a project, optionally including ancestor-group iterations. Returns: iterations with id, iid, sequence, group_id, title, description, state, start/due dates, timestamps, web URL, and pagination metadata. See also: issue.iteration_list_group, issue.list, project.milestone_list.

  • Meta-tool: gitlab_issue, action iteration_list_project
  • Individual tool: gitlab_list_project_iterations
  • Tier: Premium
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
include_ancestorsbooleannoInclude ancestor iterations
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
searchstringnoSearch by title
statestring (opened, upcoming, current, closed, all)noFilter by state: opened, upcoming, current, closed, all

Create a link between two issues (optionally across projects). Returns: the created link with its id, link_type, and source_issue/target_issue objects. See also: issue.link_list, issue.link_delete, issue.get.

  • Meta-tool: gitlab_issue, action link_create
  • Individual tool: gitlab_issue_link_create
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesSource issue IID
project_idstring/integeryesSource project ID or URL-encoded path
target_issue_iidstringyesTarget issue IID
target_project_idstringyesTarget project ID or path
link_typestringnoLink type: relates_to (default), blocks, or is_blocked_by

Remove an existing issue link by its issue_link_id. Returns: a deletion confirmation. See also: issue.link_list, issue.link_create, issue.get.

  • Meta-tool: gitlab_issue, action link_delete
  • Individual tool: gitlab_issue_link_delete
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue IID
issue_link_idintegeryesIssue link ID to remove
project_idstring/integeryesProject ID or URL-encoded path

Get one issue link by its issue_link_id. Returns: the link’s id, link_type, and full source_issue/target_issue objects. See also: issue.link_list, issue.link_create, issue.get.

  • Meta-tool: gitlab_issue, action link_get
  • Individual tool: gitlab_issue_link_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue IID
issue_link_idintegeryesIssue link ID
project_idstring/integeryesProject ID or URL-encoded path

List all issues linked to a source issue. Returns: each linked issue with its link_type, issue_link_id, full author/assignee/milestone objects, labels, and dates. See also: issue.link_get, issue.link_create, issue.get.

  • Meta-tool: gitlab_issue, action link_list
  • Individual tool: gitlab_issue_link_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue IID
project_idstring/integeryesProject ID or URL-encoded path

List issues in one project with filtering and pagination. Returns: matching issues with state, labels, assignees, author, and pagination metadata. See also: issue.get, issue.create, search.issues.

  • Meta-tool: gitlab_issue, action list
  • Individual tool: gitlab_issue_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstring/integeryesProject ID or URL-encoded path
assignee_idintegernoFilter by assignee user ID
assignee_usernamestringnoFilter by assignee username
author_idintegernoFilter by author user ID
author_usernamestringnoFilter by author username
confidentialbooleannoFilter by confidential status
created_afterstringnoReturn issues created after date (ISO 8601 format, e.g. 2025-01-01T00:00:00Z)
created_beforestringnoReturn issues created before date (ISO 8601 format, e.g. 2025-12-31T23:59:59Z)
due_datestringnoFilter by due date (0=no due date, overdue, week, month, next_month_and_previous_two_weeks)
iidsinteger[]noFilter by issue internal IDs
instring (title, description, title,description)noFields the search query applies to (title, description, or title,description)
issue_typestring (issue, incident, test_case, task)noFilter by issue type (issue, incident, test_case, task)
iteration_id (Premium)integernoFilter by iteration ID
labelsstring[]noLabel names to filter by
milestonestringnoMilestone title to filter by
my_reaction_emojistringnoFilter by issues you reacted to with this emoji (e.g. thumbsup, or None/Any)
not_assignee_idintegernoExclude issues assigned to this user ID
not_assignee_usernamestringnoExclude issues assigned to this username
not_author_idintegernoExclude issues authored by this user ID
not_author_usernamestringnoExclude issues authored by this username
not_instring (title, description, title,description)noFields the negated search query applies to (title, description)
not_labelsstring[]noLabel names to exclude
not_milestonestringnoMilestone title to exclude
not_my_reaction_emojistringnoExclude issues you reacted to with this emoji
order_bystring (created_at, due_date, id, label_priority, milestone_due, popularity, priority, relative_position, title, updated_at, weight)noOrder by field (created_at, updated_at, priority, due_date, relative_position, label_priority, milestone_due, popularity, weight)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
scopestring (created_by_me, assigned_to_me, all)noFilter by scope (created_by_me, assigned_to_me, all)
searchstringnoSearch in title and description
sortstring (asc, desc)noSort direction (asc, desc)
statestring (opened, closed, all)noFilter by state (opened, closed, all)
updated_afterstringnoReturn issues updated after date (ISO 8601 format, e.g. 2025-01-01T00:00:00Z)
updated_beforestringnoReturn issues updated before date (ISO 8601 format, e.g. 2025-12-31T23:59:59Z)
with_labels_detailsbooleannoReturn label objects with full details (id, name, color, description) instead of just names

List issues across projects: only the ones the caller created when scope is omitted, since GitLab defaults to scope=created_by_me, and every issue the caller can see with scope=all. Returns: the matching issues with project context and pagination metadata. See also: issue.list, issue.list_group, search.issues.

  • Meta-tool: gitlab_issue, action list_all
  • Individual tool: gitlab_issue_list_all
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
assignee_idintegernoFilter by assignee user ID
assignee_usernamestringnoFilter by assignee username
author_idintegernoFilter by author user ID
author_usernamestringnoFilter by author username
confidentialbooleannoFilter by confidential status
created_afterstringnoReturn issues created after date (ISO 8601)
created_beforestringnoReturn issues created before date (ISO 8601)
due_datestringnoFilter by due date (0, overdue, week, month, next_month_and_previous_two_weeks)
iidsinteger[]noFilter by issue internal IDs
instring (title, description, title,description)noFields the search query applies to (title, description, or title,description)
issue_typestring (issue, incident, test_case, task)noFilter by issue type (issue, incident, test_case, task)
iteration_id (Premium)integernoFilter by iteration ID
labelsstring[]noLabel names to filter by
milestonestringnoMilestone title to filter by
my_reaction_emojistringnoFilter by issues you reacted to with this emoji (or None/Any)
not_assignee_idinteger[]noExclude issues assigned to these user IDs
not_assignee_usernamestringnoExclude issues assigned to this username
not_author_idinteger[]noExclude issues authored by these user IDs
not_author_usernamestringnoExclude issues authored by this username
not_instring (title, description, title,description)noFields the negated search query applies to (title, description)
not_labelsstring[]noLabel names to exclude
not_milestonestringnoMilestone title to exclude
not_my_reaction_emojistring[]noExclude issues you reacted to with these emoji
not_searchstringnoExclude issues matching this search text
order_bystring (created_at, due_date, id, label_priority, milestone_due, popularity, priority, relative_position, title, updated_at, weight)noOrder by field (created_at, updated_at, priority, due_date, relative_position, label_priority, milestone_due, popularity, weight)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
scopestring (created_by_me, assigned_to_me, all)noWhich issues to return: created_by_me (the caller’s own, and GitLab’s default when scope is omitted), assigned_to_me, or all (every issue the caller can see)
searchstringnoSearch in title and description
sortstring (asc, desc)noSort direction (asc, desc)
statestring (opened, closed, all)noFilter by state (opened, closed, all)
updated_afterstringnoReturn issues updated after date (ISO 8601)
updated_beforestringnoReturn issues updated before date (ISO 8601)
with_labels_detailsbooleannoReturn label objects with full details instead of just names

List issues across a group and its subgroups and projects. Use when work is scoped to a group rather than a single project.

  • Meta-tool: gitlab_issue, action list_group
  • Individual tool: gitlab_issue_list_group
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
group_idstring/integeryesGroup ID or URL-encoded path
assignee_idintegernoFilter by assignee user ID
assignee_usernamestringnoFilter by assignee username
author_idintegernoFilter by author user ID
author_usernamestringnoFilter by author username
confidentialbooleannoFilter by confidential status
created_afterstringnoReturn issues created after date (ISO 8601)
created_beforestringnoReturn issues created before date (ISO 8601)
due_datestringnoFilter by due date (0, overdue, week, month, next_month_and_previous_two_weeks)
iidsinteger[]noFilter by issue internal IDs
instring (title, description, title,description)noFields the search query applies to (title, description, or title,description)
issue_typestring (issue, incident, test_case, task)noFilter by issue type (issue, incident, test_case, task)
iteration_id (Premium)integernoFilter by iteration ID
labelsstring[]noLabel names to filter by
milestonestringnoMilestone title to filter by
my_reaction_emojistringnoFilter by issues you reacted to with this emoji (or None/Any)
not_assignee_idintegernoExclude issues assigned to this user ID
not_assignee_usernamestringnoExclude issues assigned to this username
not_author_idintegernoExclude issues authored by this user ID
not_author_usernamestringnoExclude issues authored by this username
not_instring (title, description, title,description)noFields the negated search query applies to (title, description)
not_labelsstring[]noLabel names to exclude
not_milestonestringnoMilestone title to exclude
not_my_reaction_emojistringnoExclude issues you reacted to with this emoji
not_searchstringnoExclude issues matching this search text
order_bystring (created_at, due_date, id, label_priority, milestone_due, popularity, priority, relative_position, title, updated_at, weight)noOrder by field (created_at, updated_at, priority, due_date, relative_position, label_priority, milestone_due, popularity, weight)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
scopestring (created_by_me, assigned_to_me, all)noScope (created_by_me, assigned_to_me, all)
searchstringnoSearch in title and description
sortstring (asc, desc)noSort direction (asc, desc)
statestring (opened, closed, all)noFilter by state (opened, closed, all)
updated_afterstringnoReturn issues updated after date (ISO 8601)
updated_beforestringnoReturn issues updated before date (ISO 8601)
with_labels_detailsbooleannoReturn label objects with full details instead of just names

Move an issue to another project. Returns: the issue in its new project. See also: issue.get, issue.update.

  • Meta-tool: gitlab_issue, action move
  • Individual tool: gitlab_issue_move
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
project_idstring/integeryesSource project ID or URL-encoded path
to_project_idintegeryesTarget project ID to move issue to

List MRs that close this issue on merge. Returns: related merge requests with state, author, and branches. See also: issue.get, issue.mrs_related.

  • Meta-tool: gitlab_issue, action mrs_closing
  • Individual tool: gitlab_issue_mrs_closing
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoColumn to order results by (e.g. created_at, updated_at)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction (asc, desc)

List MRs related to this issue. Returns: related merge requests with state, author, and branches. See also: issue.get, issue.mrs_closing.

  • Meta-tool: gitlab_issue, action mrs_related
  • Individual tool: gitlab_issue_mrs_related
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path
order_bystringnoColumn to order results by (e.g. created_at, updated_at)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction (asc, desc)

Add a comment (note) to an issue. Returns: the created note with id, author, body, timestamps, and resolvable/internal flags. See also: issue.note_list, issue.get, issue.discussion_create.

  • Meta-tool: gitlab_issue, action note_create
  • Individual tool: gitlab_issue_note_create
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
bodystringyesNote body (Markdown supported)
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path
created_atstringnoBackdate the note to this RFC 3339 timestamp (e.g. 2026-01-15T10:00:00Z). Requires administrator or project/group owner permissions. Ignored otherwise.
internalbooleannoMark note as internal (visible only to project members)

Delete an issue note permanently. Returns: a success confirmation naming the note, issue, and project. See also: issue.note_get, issue.note_list.

  • Meta-tool: gitlab_issue, action note_delete
  • Individual tool: gitlab_issue_note_delete
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
note_idintegeryesID of the note to delete
project_idstring/integeryesProject ID or URL-encoded path

Get a single issue note by its ID. Returns: the note with author, body, timestamps, position, and resolvable/internal flags. See also: issue.note_list, issue.note_update, issue.note_delete.

  • Meta-tool: gitlab_issue, action note_get
  • Individual tool: gitlab_issue_note_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
note_idintegeryesID of the note to retrieve
project_idstring/integeryesProject ID or URL-encoded path

List all notes (comments) on an issue. Returns: notes with author, body, system/internal flags, and pagination metadata. See also: issue.note_get, issue.note_create, issue.discussion_get.

  • Meta-tool: gitlab_issue, action note_list
  • Individual tool: gitlab_issue_note_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path
order_bystring (created_at, updated_at)noOrder by field (created_at, updated_at)
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
page_tokenstringnoKeyset pagination cursor: record id at which to fetch the next page, taken from the previous keyset response. Only used when pagination=‘keyset’.
paginationstringnoPagination method: ‘keyset’ for keyset-based pagination on large ordered result sets, or ‘offset’ (the default). Keyset avoids deep-offset cost.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.
sortstring (asc, desc)noSort direction (asc, desc)

Update an issue note’s body. Returns: the updated note with new body and updated_at timestamp. See also: issue.note_get, issue.note_list, issue.note_delete.

  • Meta-tool: gitlab_issue, action note_update
  • Individual tool: gitlab_issue_note_update
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
bodystringyesUpdated note body (Markdown supported)
issue_iidintegeryesIssue internal ID
note_idintegeryesID of the note to update
project_idstring/integeryesProject ID or URL-encoded path

List an issue’s participants. Returns: participating users with ID, username, name, state, locked flag, public email, avatar and profile URL, with pagination metadata. See also: issue.get, issue.note_list.

  • Meta-tool: gitlab_issue, action participants
  • Individual tool: gitlab_issue_participants
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue IID (project-scoped internal ID, not ‘issue_id’)
project_idstring/integeryesProject ID or URL-encoded path
pageintegernoPage number to fetch, 1-based. Defaults to 1. Use the next_page field from the previous response to paginate forward.
per_pageintegernoItems per page. Defaults to 20, minimum 1, maximum 100. Use 100 to minimize round trips when the result set is large.

Reorder an issue within its list. Returns: the updated issue. See also: issue.get, issue.list.

  • Meta-tool: gitlab_issue, action reorder
  • Individual tool: gitlab_issue_reorder
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path
move_after_idintegernoID of issue to position after
move_before_idintegernoID of issue to position before

Add spent time to an issue. Returns: the updated time tracking stats. See also: issue.spent_time_reset, issue.time_stats_get.

  • Meta-tool: gitlab_issue, action spent_time_add
  • Individual tool: gitlab_issue_spent_time_add
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
durationstringyesHuman-readable duration (e.g. 1h, 30m, 1w2d)
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path
summarystringnoOptional summary of work done

Reset an issue’s spent time. Returns: the updated time tracking stats. See also: issue.spent_time_add, issue.time_stats_get.

  • Meta-tool: gitlab_issue, action spent_time_reset
  • Individual tool: gitlab_issue_spent_time_reset
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue IID (project-scoped internal ID, not ‘issue_id’)
project_idstring/integeryesProject ID or URL-encoded path

Get global issue count statistics: of the issues the caller created when scope is omitted, since GitLab defaults to scope=created_by_me, and of every issue the caller can see with scope=all. Returns: a statistics object with nested counts (all, opened, closed). See also: issue.statistics_get_group, issue.statistics_get_project, issue.list.

  • Meta-tool: gitlab_issue, action statistics_get
  • Individual tool: gitlab_get_issue_statistics
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
assignee_idintegernoFilter by assignee user ID
assignee_usernamestring[]noFilter by assignee usernames
author_idintegernoFilter by author user ID
author_usernamestringnoFilter by author username
confidentialbooleannoFilter by confidential status
created_afterstringnoReturn issues created after date (ISO 8601, e.g. 2025-01-01T00:00:00Z)
created_beforestringnoReturn issues created before date (ISO 8601, e.g. 2025-12-31T23:59:59Z)
iidsinteger[]noFilter by issue internal IDs
instring (title, description, title,description)noFields the search query applies to (title, description, or title,description)
labelsstring[]noLabel names to filter by
milestonestringnoMilestone title to filter by
my_reaction_emojistringnoFilter by issues you reacted to with this emoji (or None/Any)
scopestring (created_by_me, assigned_to_me, all)noWhich issues to count: created_by_me (the caller’s own, and GitLab’s default when scope is omitted), assigned_to_me, or all (every issue the caller can see)
searchstringnoSearch string for title and description
updated_afterstringnoReturn issues updated after date (ISO 8601, e.g. 2025-01-01T00:00:00Z)
updated_beforestringnoReturn issues updated before date (ISO 8601, e.g. 2025-12-31T23:59:59Z)

Get issue count statistics for a group and its descendant projects. Returns: a statistics object with nested counts (all, opened, closed). See also: issue.statistics_get, issue.statistics_get_project, group.get.

  • Meta-tool: gitlab_issue, action statistics_get_group
  • Individual tool: gitlab_get_group_issue_statistics
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
group_idstringyesGroup ID or URL-encoded path
assignee_idintegernoFilter by assignee user ID
assignee_usernamestring[]noFilter by assignee usernames
author_idintegernoFilter by author user ID
author_usernamestringnoFilter by author username
confidentialbooleannoFilter by confidential status
created_afterstringnoReturn issues created after date (ISO 8601)
created_beforestringnoReturn issues created before date (ISO 8601)
iidsinteger[]noFilter by issue internal IDs
labelsstring[]noLabel names to filter by
milestonestringnoMilestone title to filter by
my_reaction_emojistringnoFilter by issues you reacted to with this emoji (or None/Any)
scopestring (created_by_me, assigned_to_me, all)noScope: created_by_me, assigned_to_me, all
searchstringnoSearch string for title and description
updated_afterstringnoReturn issues updated after date (ISO 8601)
updated_beforestringnoReturn issues updated before date (ISO 8601)

Get issue count statistics for a single project. Returns: a statistics object with nested counts (all, opened, closed). See also: issue.statistics_get, issue.statistics_get_group, project.get.

  • Meta-tool: gitlab_issue, action statistics_get_project
  • Individual tool: gitlab_get_project_issue_statistics
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
project_idstringyesProject ID or URL-encoded path
assignee_idintegernoFilter by assignee user ID
assignee_usernamestring[]noFilter by assignee usernames
author_idintegernoFilter by author user ID
author_usernamestringnoFilter by author username
confidentialbooleannoFilter by confidential status
created_afterstringnoReturn issues created after date (ISO 8601)
created_beforestringnoReturn issues created before date (ISO 8601)
iidsinteger[]noFilter by issue internal IDs
labelsstring[]noLabel names to filter by
milestonestringnoMilestone title to filter by
my_reaction_emojistringnoFilter by issues you reacted to with this emoji (or None/Any)
scopestring (created_by_me, assigned_to_me, all)noScope: created_by_me, assigned_to_me, all
searchstringnoSearch string for title and description
updated_afterstringnoReturn issues updated after date (ISO 8601)
updated_beforestringnoReturn issues updated before date (ISO 8601)

Subscribe to an issue’s notifications. Returns: the issue with the updated subscription state. See also: issue.get, issue.unsubscribe.

  • Meta-tool: gitlab_issue, action subscribe
  • Individual tool: gitlab_issue_subscribe
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path

Clear an issue’s time estimate. Returns: the updated time tracking stats. See also: issue.time_estimate_set, issue.time_stats_get.

  • Meta-tool: gitlab_issue, action time_estimate_reset
  • Individual tool: gitlab_issue_time_estimate_reset
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue IID (project-scoped internal ID, not ‘issue_id’)
project_idstring/integeryesProject ID or URL-encoded path

Set an issue’s time estimate. Returns: the updated time tracking stats. See also: issue.time_estimate_reset, issue.time_stats_get.

  • Meta-tool: gitlab_issue, action time_estimate_set
  • Individual tool: gitlab_issue_time_estimate_set
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
durationstringyesHuman-readable duration (e.g. 3h30m, 1w2d)
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path

Read an issue’s time tracking totals. Returns: estimate and spent time in seconds and human-readable form. See also: issue.time_estimate_set, issue.spent_time_add.

  • Meta-tool: gitlab_issue, action time_stats_get
  • Individual tool: gitlab_issue_time_stats_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue IID (project-scoped internal ID, not ‘issue_id’)
project_idstring/integeryesProject ID or URL-encoded path

Unsubscribe from an issue’s notifications. Returns: the issue with the updated subscription state. See also: issue.get, issue.subscribe.

  • Meta-tool: gitlab_issue, action unsubscribe
  • Individual tool: gitlab_issue_unsubscribe
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue internal ID
project_idstring/integeryesProject ID or URL-encoded path

Update issue fields. To close or reopen an issue with issue.update, set params.state_event to close or reopen. Dynamic execute also accepts issue.close and issue.reopen aliases that fill state_event automatically.

  • Meta-tool: gitlab_issue, action update
  • Individual tool: gitlab_issue_update
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
issue_iidintegeryesIssue IID (project-scoped internal ID, not ‘issue_id’)
project_idstring/integeryesProject ID or URL-encoded path
add_labelsstring[]noLabel names to add without removing existing
assignee_idintegernoSingle user ID to assign (use assignee_ids for multiple)
assignee_idsinteger[]noNew assignee user IDs
confidentialbooleannoUpdate confidential flag
descriptionstringnoNew description (Markdown supported)
discussion_lockedbooleannoLock discussions on this issue
due_datestringnoNew due date in YYYY-MM-DD format
epic_id (Premium)integernoEpic ID to associate
issue_typestring (issue, incident, test_case, task)noIssue type (issue, incident, test_case, task)
labelsstring[]noLabel names to replace all existing
milestone_idintegernoNew milestone ID (0 to unset. Omit to leave unchanged)
remove_labelsstring[]noLabel names to remove
state_eventstring (close, reopen)noState transition. Set to close or reopen when changing issue state.
titlestringnoNew title
updated_atstringnoUpdate timestamp override (ISO 8601/RFC 3339, requires admin permissions)
weight (Premium)integernoIssue weight, 0 or higher

Create a new work item under a namespace. Returns: the created work item with id, iid, type, state, title, description, assignees, labels, linked items, parent and child work items, milestone, iteration, weight, health status, color, start and due dates, and web URL. Experimental. See also: issue.work_item_get, issue.work_item_list, issue.work_item_type_list.

  • Meta-tool: gitlab_issue, action work_item_create
  • Individual tool: gitlab_create_work_item
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
full_pathstringyesFull path of the project or group
titlestringyesTitle of the work item
work_item_type_idstringyesGlobal ID of work item type (e.g. gid://gitlab/WorkItems::Type/1 for Issue)
assignee_idsinteger[]noGlobal IDs of assignees
color (Premium)stringnoColor hex code (e.g. #fefefe)
confidentialbooleannoWhether the work item is confidential
create_sourcestringnoName of whatever triggered the creation. Recorded for tracking and changes nothing about the work item
created_atstringnoCreation timestamp to record instead of now. ISO 8601 date-time such as 2025-01-01T00:00:00Z. GitLab accepts it from instance administrators and project owners only
crm_contact_idsinteger[]noCRM contact IDs to attach to the new work item
descriptionstringnoDescription of the work item
due_datestringnoDue date (YYYY-MM-DD)
health_status (Ultimate)string (onTrack, needsAttention, atRisk)noHealth status (onTrack/needsAttention/atRisk)
iteration_id (Premium)integernoGlobal ID of the iteration
label_idsinteger[]noGlobal IDs of labels
linked_itemsobjectnoLinked work items to add on creation
milestone_idintegernoGlobal ID of the milestone
parent_idintegernoGlobal ID of the parent work item. Creates the item already under its parent, which otherwise takes a create followed by an update
start_datestringnoStart date (YYYY-MM-DD)
status (Premium)string (TODO, IN_PROGRESS, DONE, WONT_DO, DUPLICATE)noWork item status: TODO, IN_PROGRESS, DONE, WONT_DO, or DUPLICATE
weight (Premium)integernoWeight of the work item

Delete a work item permanently by namespace path and IID. Returns: a success confirmation naming the work item and namespace. Experimental. See also: issue.work_item_get, issue.work_item_update.

  • Meta-tool: gitlab_issue, action work_item_delete
  • Individual tool: gitlab_delete_work_item
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
full_pathstringyesFull path of the project or group (e.g. my-group/my-project)
work_item_iidintegeryesWork item IID

Get a single work item by namespace path and IID. Returns: id, iid, type, state, status, title, description, author, assignees, labels, linked items, parent and child work items, milestone, iteration, weight, health status, color, start and due dates, confidentiality, timestamps, and web URL. Experimental. See also: issue.work_item_list, issue.work_item_update, issue.work_item_delete.

  • Meta-tool: gitlab_issue, action work_item_get
  • Individual tool: gitlab_get_work_item
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
full_pathstringyesFull path of the project or group (e.g. my-group/my-project)
work_item_iidintegeryesWork item IID

List work items in a project or group namespace with filtering and cursor pagination. Returns: matching work items with type, state, title, author, assignees, labels, linked items, parent and child work items, milestone, start and due dates, timestamps, and the cursors for the next and previous pages. On Premium and Ultimate instances the status, weight, health status, iteration and color of each item come back too. returned_fields narrows that set to the fields named, which shrinks a large page without changing which work items match. Pages in both directions: first with after walks forward, last with before walks back. Experimental. See also: issue.work_item_get, issue.work_item_create, issue.work_item_type_list.

  • Meta-tool: gitlab_issue, action work_item_list
  • Individual tool: gitlab_list_work_items
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
full_pathstringyesFull path of the project or group
afterstringnoCursor for forward pagination (from previous response end_cursor)
assignee_usernamesstring[]noFilter by assignee usernames
assignee_wildcard_idstring (ANY, ME, NONE)noAssignee wildcard filter: ANY, ME or NONE
author_usernamestringnoFilter by author username
beforestringnoCursor for backward pagination (from previous response start_cursor). The page size comes from last, or from first when last is omitted
closed_afterstringnoMatch work items closed after this timestamp. ISO 8601 date-time such as 2025-01-01T00:00:00Z. A bare date is read as midnight UTC
closed_beforestringnoMatch work items closed before this timestamp. ISO 8601 date-time such as 2025-01-01T00:00:00Z. A bare date is read as midnight UTC
confidentialbooleannoFilter by confidentiality
created_afterstringnoMatch work items created after this timestamp. ISO 8601 date-time such as 2025-01-01T00:00:00Z. A bare date is read as midnight UTC
created_beforestringnoMatch work items created before this timestamp. ISO 8601 date-time such as 2025-01-01T00:00:00Z. A bare date is read as midnight UTC
crm_contact_idstringnoFilter by CRM contact numeric ID as a string, e.g. 1. Not a global ID
crm_organization_idstringnoFilter by CRM organization numeric ID as a string, e.g. 1. Not a global ID
due_afterstringnoMatch work items due after this timestamp. ISO 8601 date-time such as 2025-01-01T00:00:00Z. A bare date is read as midnight UTC
due_beforestringnoMatch work items due before this timestamp. ISO 8601 date-time such as 2025-01-01T00:00:00Z. A bare date is read as midnight UTC
firstintegernoNumber of items to return (default 20, max 100)
health_status_filter (Ultimate)string (ANY, NONE, atRisk, needsAttention, onTrack)noFilter by health status: onTrack, needsAttention, atRisk, ANY or NONE. Case sensitive
idsstring[]noFilter by work item global IDs, each the full gid://gitlab/WorkItem/<id> form
iidsstring[]noFilter by work item internal IDs (IIDs) as strings, e.g. 12
instring[] (DESCRIPTION, TITLE)noFields the search term is matched against: TITLE or DESCRIPTION. Only meaningful together with search
include_ancestorsbooleannoInclude ancestor work items
include_descendantsbooleannoInclude descendant work items
iteration_cadence_id (Premium)string[]noFilter by iteration cadence global IDs, each the full gid://gitlab/Iterations::Cadence/<id> form
iteration_id (Premium)string[]noFilter by iteration global IDs, each the full gid://gitlab/Iteration/<id> form. Unlike the iteration_id create and update take, this one is a list of global IDs rather than a single numeric ID
iteration_wildcard_id (Premium)string (ANY, CURRENT, NONE)noIteration wildcard filter: ANY, CURRENT or NONE
label_namestring[]noFilter by label names
lastintegernoNumber of items to return from the end of the range (backward pagination). Cannot be combined with first
milestone_titlestring[]noFilter by milestone titles. Titles, not the milestone_id that create and update take
milestone_wildcard_idstring (ANY, NONE, STARTED, UPCOMING)noMilestone wildcard filter: ANY, NONE, STARTED or UPCOMING
my_reaction_emojistringnoFilter by the emoji the authenticated user reacted with
parent_idsstring[]noFilter by parent work item global IDs, each the full gid://gitlab/WorkItem/<id> form. Pairs with include_descendants
release_tagstring[]noFilter by release tags
release_tag_wildcard_idstring (ANY, NONE)noRelease tag wildcard filter: ANY or NONE
returned_fieldsstring[] (assignees, author, closedAt, color, confidential, createdAt, description, healthStatus, hierarchy, id, iid, iteration, labels, linkedItems, milestone, startAndDueDate, state, status, title, type, updatedAt, webUrl, weight)noFields of each work item the query asks for. Selects what comes back, not which work items match: an unselected field is absent from every item rather than empty. Omit for the default set, which is every Community Edition field plus the five Enterprise ones on a Premium or Ultimate instance. Naming color, healthStatus, iteration, status or weight against a Community Edition instance fails the whole query, since its schema does not define those widgets
searchstringnoSearch in title and description
sortstring (BLOCKING_ISSUES_ASC, BLOCKING_ISSUES_DESC, CLOSED_AT_ASC, CLOSED_AT_DESC, CREATED_ASC, CREATED_DESC, DUE_DATE_ASC, DUE_DATE_DESC, ESCALATION_STATUS_ASC, ESCALATION_STATUS_DESC, HEALTH_STATUS_ASC, HEALTH_STATUS_DESC, LABEL_PRIORITY_ASC, LABEL_PRIORITY_DESC, MILESTONE_DUE_ASC, MILESTONE_DUE_DESC, POPULARITY_ASC, POPULARITY_DESC, PRIORITY_ASC, PRIORITY_DESC, RELATIVE_POSITION_ASC, SEVERITY_ASC, SEVERITY_DESC, START_DATE_ASC, START_DATE_DESC, STATUS_ASC, STATUS_DESC, TITLE_ASC, TITLE_DESC, UPDATED_ASC, UPDATED_DESC, WEIGHT_ASC, WEIGHT_DESC)noSort order, a WorkItemSort enum value such as CREATED_DESC or TITLE_ASC
statestring (opened, closed, all)noFilter by state (opened/closed/all)
subscribedstring (EXPLICITLY_SUBSCRIBED, EXPLICITLY_UNSUBSCRIBED)noFilter by the authenticated user’s subscription: EXPLICITLY_SUBSCRIBED or EXPLICITLY_UNSUBSCRIBED
typesstring[] (EPIC, INCIDENT, ISSUE, KEY_RESULT, OBJECTIVE, REQUIREMENT, TASK, TEST_CASE, TICKET)noFilter by work item types, IssueType enum values such as ISSUE or TASK
updated_afterstringnoMatch work items updated after this timestamp. ISO 8601 date-time such as 2025-01-01T00:00:00Z. A bare date is read as midnight UTC
updated_beforestringnoMatch work items updated before this timestamp. ISO 8601 date-time such as 2025-01-01T00:00:00Z. A bare date is read as midnight UTC
weight (Premium)stringnoFilter by weight. GitLab types this filter as a string, so send 3 quoted rather than as a number
weight_wildcard_id (Premium)string (ANY, NONE)noWeight wildcard filter: ANY or NONE

Create a work item saved view under a namespace. Returns: the created view with id, global id, name, private flag, subscription state, sort order, filters, and display settings. Experimental: the Work Item Saved Views API is a work in progress and may introduce breaking changes even between minor versions. See also: issue.work_item_saved_view_list, issue.work_item_saved_view_update, issue.work_item_saved_view_get.

  • Meta-tool: gitlab_issue, action work_item_saved_view_create
  • Individual tool: gitlab_work_item_saved_view_create
  • Tier: Free
  • Behavior: writes, not idempotent
ParameterTypeMandatoryDescription
namestringyesName of the saved view
namespace_pathstringyesFull path of the group or project to create the saved view under
sortstring (BLOCKING_ISSUES_ASC, BLOCKING_ISSUES_DESC, CLOSED_AT_ASC, CLOSED_AT_DESC, CREATED_ASC, CREATED_DESC, DUE_DATE_ASC, DUE_DATE_DESC, ESCALATION_STATUS_ASC, ESCALATION_STATUS_DESC, HEALTH_STATUS_ASC, HEALTH_STATUS_DESC, LABEL_PRIORITY_ASC, LABEL_PRIORITY_DESC, MILESTONE_DUE_ASC, MILESTONE_DUE_DESC, POPULARITY_ASC, POPULARITY_DESC, PRIORITY_ASC, PRIORITY_DESC, RELATIVE_POSITION_ASC, SEVERITY_ASC, SEVERITY_DESC, START_DATE_ASC, START_DATE_DESC, STATUS_ASC, STATUS_DESC, TITLE_ASC, TITLE_DESC, UPDATED_ASC, UPDATED_DESC, WEIGHT_ASC, WEIGHT_DESC)yesSort order the view applies, a WorkItemSort enum value such as CREATED_DESC or TITLE_ASC
descriptionstringnoDescription of the saved view
display_settingsobjectnoDisplay settings for the consuming UI. GitLab validates this object and rejects unknown keys. The accepted ones are camelCase: viewMode (list, board, or table), hiddenMetadataKeys, collapsedGroups, visibleGroups, groupOrder. Omit to store an empty object
filtersobjectnoFilters the view applies. Omit for a view with no filters
is_privatebooleannoKeep the view private to the creating user. Defaults to true when omitted

Delete a work item saved view permanently by numeric ID. Returns: a success confirmation naming the view. Experimental: the Work Item Saved Views API is a work in progress and may introduce breaking changes even between minor versions. See also: issue.work_item_saved_view_get, issue.work_item_saved_view_list.

  • Meta-tool: gitlab_issue, action work_item_saved_view_delete
  • Individual tool: gitlab_work_item_saved_view_delete
  • Tier: Free
  • Behavior: writes, destructive (needs confirmation), idempotent
ParameterTypeMandatoryDescription
saved_view_idintegeryesNumeric ID of the saved view to delete

Get a single work item saved view by namespace path and numeric ID. Returns: id, global id, name, description, private flag, subscription state, sort order, filters, and display settings. Experimental: the Work Item Saved Views API is a work in progress and may introduce breaking changes even between minor versions. See also: issue.work_item_saved_view_list, issue.work_item_saved_view_update, issue.work_item_saved_view_delete.

  • Meta-tool: gitlab_issue, action work_item_saved_view_get
  • Individual tool: gitlab_work_item_saved_view_get
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
namespace_pathstringyesFull path of the group or project the saved view belongs to (e.g. my-group or my-group/my-project)
saved_view_idintegeryesNumeric ID of the saved view

List work item saved views for a group or project namespace with cursor pagination. Returns: id, name, description, private flag, subscription state, and sort order per view, plus pagination cursors. Filters are omitted here, so read one view with issue.work_item_saved_view_get. Experimental: the Work Item Saved Views API is a work in progress and may introduce breaking changes even between minor versions. See also: issue.work_item_saved_view_get, issue.work_item_saved_view_create, issue.work_item_list.

  • Meta-tool: gitlab_issue, action work_item_saved_view_list
  • Individual tool: gitlab_work_item_saved_view_list
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
namespace_pathstringyesFull path of the group or project whose saved views to list
afterstringnoCursor for forward pagination (from previous response end_cursor)
beforestringnoCursor for backward pagination (from previous response start_cursor). The page size comes from last, or from first when last is omitted
firstintegernoNumber of items to return (default 20, max 100)
lastintegernoNumber of items to return from the end of the range (backward pagination). Cannot be combined with first

Subscribe the authenticated user to a work item saved view. Returns: the view with the updated subscription state. Experimental: the Work Item Saved Views API is a work in progress and may introduce breaking changes even between minor versions. See also: issue.work_item_saved_view_unsubscribe, issue.work_item_saved_view_get, issue.work_item_saved_view_list.

  • Meta-tool: gitlab_issue, action work_item_saved_view_subscribe
  • Individual tool: gitlab_work_item_saved_view_subscribe
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
saved_view_idintegeryesNumeric ID of the saved view to subscribe to

Unsubscribe the authenticated user from a work item saved view. Returns: the view with the updated subscription state. Experimental: the Work Item Saved Views API is a work in progress and may introduce breaking changes even between minor versions. See also: issue.work_item_saved_view_subscribe, issue.work_item_saved_view_get, issue.work_item_saved_view_list.

  • Meta-tool: gitlab_issue, action work_item_saved_view_unsubscribe
  • Individual tool: gitlab_work_item_saved_view_unsubscribe
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
saved_view_idintegeryesNumeric ID of the saved view to unsubscribe from

Update a work item saved view by numeric ID. Returns: the updated view with id, global id, name, private flag, subscription state, sort order, filters, and display settings. Experimental: the Work Item Saved Views API is a work in progress and may introduce breaking changes even between minor versions. See also: issue.work_item_saved_view_get, issue.work_item_saved_view_list, issue.work_item_saved_view_delete.

  • Meta-tool: gitlab_issue, action work_item_saved_view_update
  • Individual tool: gitlab_work_item_saved_view_update
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
saved_view_idintegeryesNumeric ID of the saved view to update
descriptionstringnoNew description for the saved view
display_settingsobjectnoReplacement display settings, with the camelCase keys GitLab accepts: viewMode (list, board, or table), hiddenMetadataKeys, collapsedGroups, visibleGroups, groupOrder. Omit to leave the existing settings unchanged
filtersobjectnoReplacement filters. Omit to leave the existing filters unchanged
is_privatebooleannoWhether the view is private to the user who created it
namestringnoNew name for the saved view
sortstring (BLOCKING_ISSUES_ASC, BLOCKING_ISSUES_DESC, CLOSED_AT_ASC, CLOSED_AT_DESC, CREATED_ASC, CREATED_DESC, DUE_DATE_ASC, DUE_DATE_DESC, ESCALATION_STATUS_ASC, ESCALATION_STATUS_DESC, HEALTH_STATUS_ASC, HEALTH_STATUS_DESC, LABEL_PRIORITY_ASC, LABEL_PRIORITY_DESC, MILESTONE_DUE_ASC, MILESTONE_DUE_DESC, POPULARITY_ASC, POPULARITY_DESC, PRIORITY_ASC, PRIORITY_DESC, RELATIVE_POSITION_ASC, SEVERITY_ASC, SEVERITY_DESC, START_DATE_ASC, START_DATE_DESC, STATUS_ASC, STATUS_DESC, TITLE_ASC, TITLE_DESC, UPDATED_ASC, UPDATED_DESC, WEIGHT_ASC, WEIGHT_DESC)noNew sort order, a WorkItemSort enum value such as CREATED_DESC or TITLE_ASC

List work item types for a namespace. Returns: id, name, and enabled flag for each type. Supports name filter, only_available flag, and cursor pagination. Experimental. See also: issue.work_item_list, issue.work_item_create.

  • Meta-tool: gitlab_issue, action work_item_type_list
  • Individual tool: gitlab_list_work_item_types
  • Tier: Free
  • Behavior: read-only, idempotent
ParameterTypeMandatoryDescription
full_pathstringyesProject or group full path (namespace path)
afterstringnoCursor for forward pagination (from previous response end_cursor)
beforestringnoCursor for backward pagination (from previous response start_cursor). The page size comes from last, or from first when last is omitted
firstintegernoNumber of items to return (default 20, max 100)
lastintegernoNumber of items to return from the end of the range (backward pagination). Cannot be combined with first
namestring (EPIC, INCIDENT, ISSUE, KEY_RESULT, OBJECTIVE, REQUIREMENT, TASK, TEST_CASE, TICKET)noFilter by work item type name, an IssueType enum value such as ISSUE or TASK
only_availablebooleannoReturn only available work item types

Update an existing work item by namespace path and IID. Returns: the updated work item with id, iid, type, state, status, title, description, assignees, labels, linked items, parent and child work items, milestone, iteration, weight, health status, color, start and due dates, and web URL. Experimental. See also: issue.work_item_get, issue.work_item_delete, issue.work_item_list.

  • Meta-tool: gitlab_issue, action work_item_update
  • Individual tool: gitlab_update_work_item
  • Tier: Free
  • Behavior: writes, idempotent
ParameterTypeMandatoryDescription
full_pathstringyesFull path of the project or group (e.g. my-group/my-project)
work_item_iidintegeryesWork item IID
add_label_idsinteger[]noGlobal IDs of labels to add
assignee_idsinteger[]noGlobal IDs of assignees. Replaces the current assignees. Pass an empty array [] to remove every assignee. Omit the field to leave assignees untouched
color (Premium)stringnoColor hex code (e.g. #fefefe)
confirmbooleannoConfirms removing existing assignees or CRM contacts when assignee_ids or crm_contact_ids is an empty array. Only required when entries would actually be deleted
crm_contact_idsinteger[]noCRM contact IDs. Replaces the current contacts. Pass an empty array [] to remove every contact. Omit the field to leave contacts untouched
descriptionstringnoNew description
due_datestringnoDue date (YYYY-MM-DD)
health_status (Ultimate)string (onTrack, needsAttention, atRisk)noHealth status (onTrack/needsAttention/atRisk)
iteration_id (Premium)integernoGlobal ID of the iteration
milestone_idintegernoGlobal ID of the milestone
parent_idintegernoGlobal ID of the parent work item
remove_label_idsinteger[]noGlobal IDs of labels to remove
start_datestringnoStart date (YYYY-MM-DD)
state_eventstring (CLOSE, REOPEN)noState event: CLOSE or REOPEN
status (Premium)string (TODO, IN_PROGRESS, DONE, WONT_DO, DUPLICATE)noWork item status: TODO, IN_PROGRESS, DONE, WONT_DO, or DUPLICATE
titlestringnoNew title
weight (Premium)integernoWeight of the work item