gitlab-mcp 1.2.1 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -29
- package/dist/config/dotenv.js +6 -2
- package/dist/config/dotenv.js.map +1 -1
- package/dist/config/env.d.ts +5 -2
- package/dist/config/env.js +27 -1
- package/dist/config/env.js.map +1 -1
- package/dist/http-app.js +10 -3
- package/dist/http-app.js.map +1 -1
- package/dist/http.js +6 -4
- package/dist/http.js.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/lib/auth-context.d.ts +2 -1
- package/dist/lib/auth-context.js.map +1 -1
- package/dist/lib/gitlab-client.d.ts +42 -8
- package/dist/lib/gitlab-client.js +380 -42
- package/dist/lib/gitlab-client.js.map +1 -1
- package/dist/lib/network.js +12 -6
- package/dist/lib/network.js.map +1 -1
- package/dist/lib/oauth-scopes.d.ts +2 -0
- package/dist/lib/oauth-scopes.js +16 -0
- package/dist/lib/oauth-scopes.js.map +1 -0
- package/dist/lib/policy.d.ts +5 -1
- package/dist/lib/policy.js +11 -1
- package/dist/lib/policy.js.map +1 -1
- package/dist/lib/regex.d.ts +5 -0
- package/dist/lib/regex.js +111 -0
- package/dist/lib/regex.js.map +1 -0
- package/dist/lib/request-runtime.js +24 -11
- package/dist/lib/request-runtime.js.map +1 -1
- package/dist/lib/tool-capabilities.d.ts +3 -0
- package/dist/lib/tool-capabilities.js +3 -0
- package/dist/lib/tool-capabilities.js.map +1 -0
- package/dist/lib/tool-schema.d.ts +14 -0
- package/dist/lib/tool-schema.js +52 -0
- package/dist/lib/tool-schema.js.map +1 -0
- package/dist/tools/gitlab.js +496 -299
- package/dist/tools/gitlab.js.map +1 -1
- package/dist/tools/mr-code-context.d.ts +1 -1
- package/dist/tools/mr-code-context.js +2 -1
- package/dist/tools/mr-code-context.js.map +1 -1
- package/dist/types/auth.d.ts +1 -0
- package/dist/types/auth.js +2 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/context.d.ts +1 -0
- package/docs/architecture.md +7 -6
- package/docs/authentication.md +4 -1
- package/docs/configuration.md +25 -22
- package/docs/deployment.md +9 -1
- package/docs/mcp-integration-testing-best-practices.md +381 -730
- package/docs/tools.md +76 -66
- package/package.json +1 -1
package/docs/tools.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Tools Reference
|
|
2
2
|
|
|
3
|
-
This document lists all MCP tools provided by gitlab-mcp. Each tool is prefixed with `gitlab_` (except `health_check`).
|
|
3
|
+
This document lists all MCP tools provided by gitlab-mcp. Each tool is prefixed with `gitlab_` (except `health_check`). The **Mutating** column is a legacy shorthand for read-only mode visibility; runtime policy additionally classifies tools by capability (`read`, `write`, `delete`, `admin`, `graphql`).
|
|
4
4
|
|
|
5
5
|
All project-scoped tools accept an optional `project_id` parameter. When `GITLAB_ALLOWED_PROJECT_IDS` is configured with a single project, `project_id` is automatically inferred.
|
|
6
6
|
|
|
@@ -88,6 +88,7 @@ Most list endpoints support `page` and `per_page`. Notable exceptions are `gitla
|
|
|
88
88
|
| `gitlab_list_merge_request_diffs` | No | List detailed MR diffs (versions/changes view). Supports `unidiff`. |
|
|
89
89
|
| `gitlab_list_merge_request_versions` | No | List MR diff versions. |
|
|
90
90
|
| `gitlab_get_merge_request_version` | No | Get one MR diff version. Params: `version_id` (required), `unidiff`. |
|
|
91
|
+
| `gitlab_get_merge_request_conflicts` | No | Get merge request conflict details from GitLab's conflicts endpoint. |
|
|
91
92
|
|
|
92
93
|
### MR Code Context
|
|
93
94
|
|
|
@@ -125,43 +126,43 @@ Most list endpoints support `page` and `per_page`. Notable exceptions are `gitla
|
|
|
125
126
|
|
|
126
127
|
## MR Discussions
|
|
127
128
|
|
|
128
|
-
| Tool | Mutating | Description
|
|
129
|
-
| --------------------------------------------- | -------- |
|
|
130
|
-
| `gitlab_list_merge_request_discussions` | No | List MR discussions.
|
|
131
|
-
| `gitlab_mr_discussions` | No | Alias of `list_merge_request_discussions`.
|
|
132
|
-
| `gitlab_create_merge_request_thread` | **Yes** | Create a new discussion thread. Params: `body` (required). Supports `position` (for diff comments), `created_at`.
|
|
133
|
-
| `gitlab_create_merge_request_discussion_note` | **Yes** | Reply to an existing discussion thread. Params: `discussion_id`, `body` (required).
|
|
134
|
-
| `gitlab_update_merge_request_discussion_note` | **Yes** | Update a discussion note. Provide either `body` or `resolved` (not both).
|
|
135
|
-
| `gitlab_delete_merge_request_discussion_note` | **Yes** | Delete
|
|
136
|
-
| `gitlab_resolve_merge_request_thread` | **Yes** | Resolve/unresolve a discussion note. Params: `discussion_id`, `note_id`, `resolved` (default `true`).
|
|
129
|
+
| Tool | Mutating | Description |
|
|
130
|
+
| --------------------------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
131
|
+
| `gitlab_list_merge_request_discussions` | No | List MR discussions. |
|
|
132
|
+
| `gitlab_mr_discussions` | No | Alias of `list_merge_request_discussions`. |
|
|
133
|
+
| `gitlab_create_merge_request_thread` | **Yes** | Create a new discussion thread. Params: `body` (required). Supports `position` (for diff comments), `created_at`. |
|
|
134
|
+
| `gitlab_create_merge_request_discussion_note` | **Yes** | Reply to an existing discussion thread. Params: `discussion_id`, `body` (required). |
|
|
135
|
+
| `gitlab_update_merge_request_discussion_note` | **Yes** | Update a discussion note. Provide either `body` or `resolved` (not both). |
|
|
136
|
+
| `gitlab_delete_merge_request_discussion_note` | **Yes** | Delete an MR discussion note permanently. Irreversible. Requires `merge_request_iid`, `discussion_id`, `note_id`. Pre-check with `list_merge_request_discussions`. |
|
|
137
|
+
| `gitlab_resolve_merge_request_thread` | **Yes** | Resolve/unresolve a discussion note. Params: `discussion_id`, `note_id`, `resolved` (default `true`). |
|
|
137
138
|
|
|
138
139
|
---
|
|
139
140
|
|
|
140
141
|
## MR Notes (Comments)
|
|
141
142
|
|
|
142
|
-
| Tool | Mutating | Description
|
|
143
|
-
| ---------------------------------- | -------- |
|
|
144
|
-
| `gitlab_list_merge_request_notes` | No | List top-level MR notes. Supports `sort`, `order_by`.
|
|
145
|
-
| `gitlab_get_merge_request_notes` | No | Alias of `list_merge_request_notes`.
|
|
146
|
-
| `gitlab_get_merge_request_note` | No | Get a single MR note by ID.
|
|
147
|
-
| `gitlab_create_merge_request_note` | **Yes** | Create a top-level MR comment. Params: `body` (required).
|
|
148
|
-
| `gitlab_update_merge_request_note` | **Yes** | Update MR note body. Params: `note_id`, `body` (required).
|
|
149
|
-
| `gitlab_delete_merge_request_note` | **Yes** | Delete
|
|
150
|
-
| `gitlab_create_note` | **Yes** | Create a note on an issue or MR. Params: `noteable_type` (`issue`/`merge_request`), `noteable_iid`, `body` (required).
|
|
143
|
+
| Tool | Mutating | Description |
|
|
144
|
+
| ---------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
145
|
+
| `gitlab_list_merge_request_notes` | No | List top-level MR notes. Supports `sort`, `order_by`. |
|
|
146
|
+
| `gitlab_get_merge_request_notes` | No | Alias of `list_merge_request_notes`. |
|
|
147
|
+
| `gitlab_get_merge_request_note` | No | Get a single MR note by ID. |
|
|
148
|
+
| `gitlab_create_merge_request_note` | **Yes** | Create a top-level MR comment. Params: `body` (required). |
|
|
149
|
+
| `gitlab_update_merge_request_note` | **Yes** | Update MR note body. Params: `note_id`, `body` (required). |
|
|
150
|
+
| `gitlab_delete_merge_request_note` | **Yes** | Delete a top-level MR note permanently. Irreversible. Requires `merge_request_iid`, `note_id`. Pre-check with `get_merge_request_note` or `list_merge_request_notes`. |
|
|
151
|
+
| `gitlab_create_note` | **Yes** | Create a note on an issue or MR. Params: `noteable_type` (`issue`/`merge_request`), `noteable_iid`, `body` (required). |
|
|
151
152
|
|
|
152
153
|
---
|
|
153
154
|
|
|
154
155
|
## Draft Notes
|
|
155
156
|
|
|
156
|
-
| Tool | Mutating | Description
|
|
157
|
-
| --------------------------------- | -------- |
|
|
158
|
-
| `gitlab_get_draft_note` | No | Get a single draft note.
|
|
159
|
-
| `gitlab_list_draft_notes` | No | List draft notes on an MR.
|
|
160
|
-
| `gitlab_create_draft_note` | **Yes** | Create a draft note. Params: `body` (required). Supports `position`, `resolve_discussion`.
|
|
161
|
-
| `gitlab_update_draft_note` | **Yes** | Update a draft note. At least one of `body`, `position`, or `resolve_discussion` required.
|
|
162
|
-
| `gitlab_delete_draft_note` | **Yes** | Delete a draft note.
|
|
163
|
-
| `gitlab_publish_draft_note` | **Yes** | Publish one draft note.
|
|
164
|
-
| `gitlab_bulk_publish_draft_notes` | **Yes** | Publish all draft notes on an MR.
|
|
157
|
+
| Tool | Mutating | Description |
|
|
158
|
+
| --------------------------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
159
|
+
| `gitlab_get_draft_note` | No | Get a single draft note. |
|
|
160
|
+
| `gitlab_list_draft_notes` | No | List draft notes on an MR. |
|
|
161
|
+
| `gitlab_create_draft_note` | **Yes** | Create a draft note. Params: `body` (required). Supports `position`, `resolve_discussion`. |
|
|
162
|
+
| `gitlab_update_draft_note` | **Yes** | Update a draft note. At least one of `body`, `position`, or `resolve_discussion` required. |
|
|
163
|
+
| `gitlab_delete_draft_note` | **Yes** | Delete a draft note permanently. Irreversible. Requires `merge_request_iid`, `draft_note_id`. Pre-check with `get_draft_note` or `list_draft_notes`. |
|
|
164
|
+
| `gitlab_publish_draft_note` | **Yes** | Publish one draft note. |
|
|
165
|
+
| `gitlab_bulk_publish_draft_notes` | **Yes** | Publish all draft notes on an MR. |
|
|
165
166
|
|
|
166
167
|
---
|
|
167
168
|
|
|
@@ -174,7 +175,7 @@ Most list endpoints support `page` and `per_page`. Notable exceptions are `gitla
|
|
|
174
175
|
| `gitlab_get_issue` | No | Get issue by IID. |
|
|
175
176
|
| `gitlab_create_issue` | **Yes** | Create an issue. Params: `title` (required). Supports `description`, `labels`, `milestone_id`, `due_date`, `confidential`, `issue_type`, `assignee_ids`. |
|
|
176
177
|
| `gitlab_update_issue` | **Yes** | Update issue fields. Supports `title`, `description`, `state_event`, `labels`, `assignee_ids`, `weight`, `issue_type`, `discussion_locked`. |
|
|
177
|
-
| `gitlab_delete_issue` | **Yes** | Delete an issue.
|
|
178
|
+
| `gitlab_delete_issue` | **Yes** | Delete an issue permanently. Irreversible. Requires `issue_iid`. Pre-check with `get_issue`. |
|
|
178
179
|
| `gitlab_list_issue_discussions` | No | List issue discussions. |
|
|
179
180
|
| `gitlab_create_issue_note` | **Yes** | Create issue comment. Params: `body` (required). Supports `discussion_id` (to reply to thread), `created_at`. |
|
|
180
181
|
| `gitlab_update_issue_note` | **Yes** | Update an issue note. Provide either `body` or `resolved` (not both). |
|
|
@@ -186,7 +187,7 @@ Most list endpoints support `page` and `per_page`. Notable exceptions are `gitla
|
|
|
186
187
|
| `gitlab_list_issue_links` | No | List related issue links. |
|
|
187
188
|
| `gitlab_get_issue_link` | No | Get a single issue link by ID. |
|
|
188
189
|
| `gitlab_create_issue_link` | **Yes** | Create a relation between two issues. Params: `target_project_id`, `target_issue_iid` (required). Supports `link_type` (`relates_to`, `blocks`, `is_blocked_by`). |
|
|
189
|
-
| `gitlab_delete_issue_link` | **Yes** | Delete
|
|
190
|
+
| `gitlab_delete_issue_link` | **Yes** | Delete an issue link permanently. Irreversible for that relation. Requires `issue_iid`, `issue_link_id`. Pre-check with `get_issue_link` or `list_issue_links`. |
|
|
190
191
|
|
|
191
192
|
---
|
|
192
193
|
|
|
@@ -200,7 +201,7 @@ Requires `USE_GITLAB_WIKI=true` (default).
|
|
|
200
201
|
| `gitlab_get_wiki_page` | No | Get wiki page by slug. Supports `version`. |
|
|
201
202
|
| `gitlab_create_wiki_page` | **Yes** | Create a wiki page. Params: `title`, `content` (required). Supports `format` (`markdown`, `rdoc`, `asciidoc`, `org`). |
|
|
202
203
|
| `gitlab_update_wiki_page` | **Yes** | Update wiki page by slug. Params: `slug`, `content` (required). Supports `title`, `format`. |
|
|
203
|
-
| `gitlab_delete_wiki_page` | **Yes** | Delete wiki page
|
|
204
|
+
| `gitlab_delete_wiki_page` | **Yes** | Delete a wiki page permanently. Irreversible. Requires `slug`. Pre-check with `get_wiki_page` or `list_wiki_pages`. |
|
|
204
205
|
|
|
205
206
|
---
|
|
206
207
|
|
|
@@ -208,20 +209,29 @@ Requires `USE_GITLAB_WIKI=true` (default).
|
|
|
208
209
|
|
|
209
210
|
Requires `USE_PIPELINE=true` (default).
|
|
210
211
|
|
|
211
|
-
| Tool
|
|
212
|
-
|
|
|
213
|
-
| `gitlab_list_pipelines`
|
|
214
|
-
| `gitlab_get_pipeline`
|
|
215
|
-
| `
|
|
216
|
-
| `
|
|
217
|
-
| `
|
|
218
|
-
| `
|
|
219
|
-
| `
|
|
220
|
-
| `
|
|
221
|
-
| `
|
|
222
|
-
| `
|
|
223
|
-
| `
|
|
224
|
-
| `
|
|
212
|
+
| Tool | Mutating | Description |
|
|
213
|
+
| ------------------------------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
214
|
+
| `gitlab_list_pipelines` | No | List pipelines. Supports `scope`, `status`, `ref`, `sha`, `username`, `source`, `order_by`, `sort`, date filters. |
|
|
215
|
+
| `gitlab_get_pipeline` | No | Get one pipeline by ID. |
|
|
216
|
+
| `gitlab_list_deployments` | No | List deployments. Supports `environment`, `ref`, `sha`, `status`, `order_by`, `sort`, date filters. |
|
|
217
|
+
| `gitlab_get_deployment` | No | Get one deployment by ID. |
|
|
218
|
+
| `gitlab_list_environments` | No | List environments. Supports `name`, `search`, `states`, pagination. |
|
|
219
|
+
| `gitlab_get_environment` | No | Get one environment by ID. |
|
|
220
|
+
| `gitlab_list_pipeline_jobs` | No | List jobs in a pipeline. Supports `scope`, `include_retried`. |
|
|
221
|
+
| `gitlab_list_pipeline_trigger_jobs` | No | List downstream/bridge trigger jobs in a pipeline. |
|
|
222
|
+
| `gitlab_get_pipeline_job` | No | Get one job by ID. |
|
|
223
|
+
| `gitlab_get_pipeline_job_output` | No | Get raw job trace/log output. |
|
|
224
|
+
| `gitlab_list_job_artifacts` | No | List files and directories inside a job artifacts archive. Supports `path`, `recursive`. |
|
|
225
|
+
| `gitlab_download_job_artifacts` | No | Download the full artifacts archive as base64 content. |
|
|
226
|
+
| `gitlab_download_job_artifacts_local` | **Yes** | Download the full artifacts archive to a local directory. Supports `local_path`. Available only on local transports; not exposed over HTTP. |
|
|
227
|
+
| `gitlab_get_job_artifact_file` | No | Return one file from a job artifacts archive as inline content. Text-like files are UTF-8; binary files are base64. |
|
|
228
|
+
| `gitlab_get_job_artifact_file_local` | **Yes** | Save one file from a job artifacts archive to a local directory. Supports `local_path`. Available only on local transports; not exposed over HTTP. |
|
|
229
|
+
| `gitlab_create_pipeline` | **Yes** | Trigger a new pipeline. Params: `ref` (required). Supports `variables` array (`key`, `value`, `variable_type`) and typed `inputs` for `spec:inputs` (`string`, `number`, `boolean`, arrays). |
|
|
230
|
+
| `gitlab_retry_pipeline` | **Yes** | Retry failed jobs in a pipeline. |
|
|
231
|
+
| `gitlab_cancel_pipeline` | **Yes** | Cancel a running pipeline. |
|
|
232
|
+
| `gitlab_retry_pipeline_job` | **Yes** | Retry one failed job. |
|
|
233
|
+
| `gitlab_cancel_pipeline_job` | **Yes** | Cancel one running job. |
|
|
234
|
+
| `gitlab_play_pipeline_job` | **Yes** | Play/trigger a manual job. |
|
|
225
235
|
|
|
226
236
|
---
|
|
227
237
|
|
|
@@ -229,18 +239,18 @@ Requires `USE_PIPELINE=true` (default).
|
|
|
229
239
|
|
|
230
240
|
Requires `USE_MILESTONE=true` (default).
|
|
231
241
|
|
|
232
|
-
| Tool | Mutating | Description
|
|
233
|
-
| -------------------------------------- | -------- |
|
|
234
|
-
| `gitlab_list_milestones` | No | List project milestones. Supports `iids`, `state`, `title`, `search`, `include_ancestors`, date filters.
|
|
235
|
-
| `gitlab_get_milestone` | No | Get a milestone by ID.
|
|
236
|
-
| `gitlab_create_milestone` | **Yes** | Create a milestone. Params: `title` (required). Supports `description`, `due_date`, `start_date`.
|
|
237
|
-
| `gitlab_update_milestone` | **Yes** | Update milestone fields.
|
|
238
|
-
| `gitlab_edit_milestone` | **Yes** | Alias of `update_milestone`.
|
|
239
|
-
| `gitlab_delete_milestone` | **Yes** | Delete a milestone.
|
|
240
|
-
| `gitlab_get_milestone_issue` | No | List issues assigned to a milestone.
|
|
241
|
-
| `gitlab_get_milestone_merge_requests` | No | List MRs assigned to a milestone.
|
|
242
|
-
| `gitlab_promote_milestone` | **Yes** | Promote a project milestone to a group milestone.
|
|
243
|
-
| `gitlab_get_milestone_burndown_events` | No | List burndown events for a milestone.
|
|
242
|
+
| Tool | Mutating | Description |
|
|
243
|
+
| -------------------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------- |
|
|
244
|
+
| `gitlab_list_milestones` | No | List project milestones. Supports `iids`, `state`, `title`, `search`, `include_ancestors`, date filters. |
|
|
245
|
+
| `gitlab_get_milestone` | No | Get a milestone by ID. |
|
|
246
|
+
| `gitlab_create_milestone` | **Yes** | Create a milestone. Params: `title` (required). Supports `description`, `due_date`, `start_date`. |
|
|
247
|
+
| `gitlab_update_milestone` | **Yes** | Update milestone fields. |
|
|
248
|
+
| `gitlab_edit_milestone` | **Yes** | Alias of `update_milestone`. |
|
|
249
|
+
| `gitlab_delete_milestone` | **Yes** | Delete a milestone permanently. Irreversible. Requires `milestone_id`. Pre-check with `get_milestone` or `list_milestones`. |
|
|
250
|
+
| `gitlab_get_milestone_issue` | No | List issues assigned to a milestone. |
|
|
251
|
+
| `gitlab_get_milestone_merge_requests` | No | List MRs assigned to a milestone. |
|
|
252
|
+
| `gitlab_promote_milestone` | **Yes** | Promote a project milestone to a group milestone. |
|
|
253
|
+
| `gitlab_get_milestone_burndown_events` | No | List burndown events for a milestone. |
|
|
244
254
|
|
|
245
255
|
---
|
|
246
256
|
|
|
@@ -254,7 +264,7 @@ Requires `USE_RELEASE=true` (default).
|
|
|
254
264
|
| `gitlab_get_release` | No | Get one release by tag name. |
|
|
255
265
|
| `gitlab_create_release` | **Yes** | Create a release. Params: `tag_name` (required). Supports `name`, `tag_message`, `description`, `ref`, `released_at`, `milestones`, `assets`. |
|
|
256
266
|
| `gitlab_update_release` | **Yes** | Update existing release. |
|
|
257
|
-
| `gitlab_delete_release` | **Yes** | Delete
|
|
267
|
+
| `gitlab_delete_release` | **Yes** | Delete the release entry for `tag_name` permanently. Irreversible for the release record. Pre-check with `get_release` or `list_releases`. |
|
|
258
268
|
| `gitlab_create_release_evidence` | **Yes** | Create evidence for an existing release. |
|
|
259
269
|
| `gitlab_download_release_asset` | No | Download a release asset. Params: `tag_name`, `direct_asset_path` (required). |
|
|
260
270
|
|
|
@@ -262,13 +272,13 @@ Requires `USE_RELEASE=true` (default).
|
|
|
262
272
|
|
|
263
273
|
## Labels
|
|
264
274
|
|
|
265
|
-
| Tool | Mutating | Description
|
|
266
|
-
| --------------------- | -------- |
|
|
267
|
-
| `gitlab_list_labels` | No | List project labels. Supports `with_counts`, `include_ancestor_groups`, `search`.
|
|
268
|
-
| `gitlab_get_label` | No | Get one label by ID. Supports `include_ancestor_groups`.
|
|
269
|
-
| `gitlab_create_label` | **Yes** | Create a label. Params: `name`, `color` (required). Supports `description`, `priority`.
|
|
270
|
-
| `gitlab_update_label` | **Yes** | Update a label. Identify by `name` or `label_id`. Supports `new_name`, `color`, `description`, `priority`.
|
|
271
|
-
| `gitlab_delete_label` | **Yes** | Delete a label. Identify by `name` or `label_id`.
|
|
275
|
+
| Tool | Mutating | Description |
|
|
276
|
+
| --------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------ |
|
|
277
|
+
| `gitlab_list_labels` | No | List project labels. Supports `with_counts`, `include_ancestor_groups`, `search`. |
|
|
278
|
+
| `gitlab_get_label` | No | Get one label by ID. Supports `include_ancestor_groups`. |
|
|
279
|
+
| `gitlab_create_label` | **Yes** | Create a label. Params: `name`, `color` (required). Supports `description`, `priority`. |
|
|
280
|
+
| `gitlab_update_label` | **Yes** | Update a label. Identify by `name` or `label_id`. Supports `new_name`, `color`, `description`, `priority`. |
|
|
281
|
+
| `gitlab_delete_label` | **Yes** | Delete a label permanently. Irreversible. Identify by `name` or `label_id`. Pre-check with `get_label` or `list_labels`. |
|
|
272
282
|
|
|
273
283
|
---
|
|
274
284
|
|
|
@@ -289,6 +299,6 @@ Requires `USE_RELEASE=true` (default).
|
|
|
289
299
|
| `gitlab_execute_graphql_mutation` | **Yes** | Execute a GraphQL mutation. Disabled in read-only mode. |
|
|
290
300
|
| `gitlab_execute_graphql` | No\* | Backward-compatible executor. Automatically detects mutations and enforces read-only policy. |
|
|
291
301
|
|
|
292
|
-
\* `gitlab_execute_graphql` is registered
|
|
302
|
+
\* `gitlab_execute_graphql` is registered with read + graphql capability and dynamically requires write + graphql capability when the payload contains a mutation.
|
|
293
303
|
|
|
294
304
|
When `GITLAB_ALLOWED_PROJECT_IDS` is configured, GraphQL tools are disabled by default. Set `GITLAB_ALLOW_GRAPHQL_WITH_PROJECT_SCOPE=true` to enable them explicitly.
|