gitlab-api 26.0.1__tar.gz → 26.1.0__tar.gz

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.
Files changed (104) hide show
  1. {gitlab_api-26.0.1/gitlab_api.egg-info → gitlab_api-26.1.0}/PKG-INFO +34 -9
  2. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/README.md +32 -7
  3. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/agent_server.py +1 -1
  4. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/api/api_client_issues.py +30 -0
  5. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/api/api_client_merge_requests.py +79 -0
  6. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/auth.py +3 -3
  7. gitlab_api-26.1.0/gitlab_api/connectors/mcp_source_presets.json +18 -0
  8. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/gitlab_input_models.py +4 -0
  9. gitlab_api-26.1.0/gitlab_api/kg_ingest.py +144 -0
  10. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/__init__.py +8 -0
  11. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_branches.py +4 -2
  12. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_commits.py +7 -1
  13. gitlab_api-26.1.0/gitlab_api/mcp/mcp_graphql_ops.py +93 -0
  14. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_issues.py +6 -2
  15. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_jobs.py +4 -1
  16. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_merge_requests.py +10 -2
  17. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_merge_rules.py +7 -1
  18. gitlab_api-26.1.0/gitlab_api/mcp/mcp_namespaces.py +53 -0
  19. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_projects.py +4 -1
  20. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_protected_branches.py +8 -2
  21. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_runners.py +4 -1
  22. gitlab_api-26.1.0/gitlab_api/mcp/mcp_users.py +61 -0
  23. gitlab_api-26.1.0/gitlab_api/mcp/mcp_wiki.py +63 -0
  24. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp_server.py +308 -15
  25. gitlab_api-26.1.0/gitlab_api/ontology/__init__.py +9 -0
  26. gitlab_api-26.1.0/gitlab_api/ontology/gitlab.ttl +152 -0
  27. gitlab_api-26.1.0/gitlab_api/prompts/devops_specialist.json +43 -0
  28. gitlab_api-26.1.0/gitlab_api/skills/gitlab-issues/SKILL.md +86 -0
  29. gitlab_api-26.1.0/gitlab_api/skills/gitlab-merge-request-create/SKILL.md +76 -0
  30. gitlab_api-26.1.0/gitlab_api/skills/gitlab-merge-request-review/SKILL.md +127 -0
  31. gitlab_api-26.1.0/gitlab_api/skills/gitlab-pipelines/SKILL.md +100 -0
  32. {gitlab_api-26.0.1 → gitlab_api-26.1.0/gitlab_api.egg-info}/PKG-INFO +34 -9
  33. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api.egg-info/SOURCES.txt +15 -1
  34. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api.egg-info/entry_points.txt +6 -0
  35. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api.egg-info/requires.txt +1 -1
  36. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/pyproject.toml +9 -3
  37. gitlab_api-26.1.0/tests/__init__.py +0 -0
  38. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/tests/test_action_discovery.py +1 -1
  39. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/tests/test_instances.py +1 -1
  40. gitlab_api-26.1.0/tests/test_kg_ingest.py +93 -0
  41. gitlab_api-26.0.1/gitlab_api/skills/gitlab-starter/SKILL.md +0 -19
  42. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/LICENSE +0 -0
  43. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/MANIFEST.in +0 -0
  44. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/__init__.py +0 -0
  45. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/__main__.py +0 -0
  46. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/api/__init__.py +0 -0
  47. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/api/api_client_base.py +0 -0
  48. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/api/api_client_environments.py +0 -0
  49. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/api/api_client_other.py +0 -0
  50. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/api/api_client_pipelines.py +0 -0
  51. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/api/api_client_projects.py +0 -0
  52. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/api/api_client_repositories.py +0 -0
  53. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/api/api_client_system.py +0 -0
  54. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/api/api_client_users_groups.py +0 -0
  55. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/api_client.py +0 -0
  56. {gitlab_api-26.0.1/gitlab_api/prompts → gitlab_api-26.1.0/gitlab_api/connectors}/__init__.py +0 -0
  57. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/gitlab_gql.py +0 -0
  58. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/gitlab_response_models.py +0 -0
  59. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/instances.py +0 -0
  60. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/main_agent.json +0 -0
  61. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_custom_api.py +0 -0
  62. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_deploy_tokens.py +0 -0
  63. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_environments.py +0 -0
  64. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_epics.py +0 -0
  65. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_graphql.py +0 -0
  66. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_groups.py +0 -0
  67. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_labels.py +0 -0
  68. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_members.py +0 -0
  69. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_milestones.py +0 -0
  70. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_misc.py +0 -0
  71. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_notes.py +0 -0
  72. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_packages.py +0 -0
  73. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_pipeline_schedules.py +0 -0
  74. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_pipelines.py +0 -0
  75. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_releases.py +0 -0
  76. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_snippets.py +0 -0
  77. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp/mcp_tags.py +0 -0
  78. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/mcp_config.json +0 -0
  79. {gitlab_api-26.0.1/gitlab_api/skills → gitlab_api-26.1.0/gitlab_api/prompts}/__init__.py +0 -0
  80. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api/prompts/main_agent.json +0 -0
  81. {gitlab_api-26.0.1/tests → gitlab_api-26.1.0/gitlab_api/skills}/__init__.py +0 -0
  82. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api.egg-info/dependency_links.txt +0 -0
  83. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/gitlab_api.egg-info/top_level.txt +0 -0
  84. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/requirements.txt +0 -0
  85. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/scripts/security_sanitizer.py +0 -0
  86. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/scripts/validate_a2a_agent.py +0 -0
  87. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/scripts/validate_agent.py +0 -0
  88. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/scripts/verify_api_integration.py +0 -0
  89. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/setup.cfg +0 -0
  90. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/tests/conftest.py +0 -0
  91. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/tests/test_api_wrapper.py +0 -0
  92. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/tests/test_auth.py +0 -0
  93. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/tests/test_concept_parity.py +0 -0
  94. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/tests/test_gitlab_a2a_validation.py +0 -0
  95. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/tests/test_gitlab_api_brute_force_coverage.py +0 -0
  96. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/tests/test_gitlab_gql.py +0 -0
  97. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/tests/test_gitlab_mcp_validation.py +0 -0
  98. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/tests/test_gitlab_models.py +0 -0
  99. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/tests/test_init_dynamics.py +0 -0
  100. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/tests/test_mock_coverage.py +0 -0
  101. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/tests/test_startup.py +0 -0
  102. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/tests/test_tool_modes.py +0 -0
  103. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/tests/test_verify_agent.py +0 -0
  104. {gitlab_api-26.0.1 → gitlab_api-26.1.0}/tests/verify_a2a_queries.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gitlab-api
3
- Version: 26.0.1
3
+ Version: 26.1.0
4
4
  Summary: GitLab API + MCP Server + A2A Server
5
5
  Author-email: Audel Rouhi <knucklessg1@gmail.com>
6
6
  License: MIT
@@ -22,7 +22,7 @@ Requires-Dist: agent-utilities[agent,logfire]>=1.0.0; extra == "agent"
22
22
  Provides-Extra: gql
23
23
  Requires-Dist: gql[requests]>=4.0.0; extra == "gql"
24
24
  Provides-Extra: all
25
- Requires-Dist: gitlab-api[agent,gql,logfire,mcp]>=26.0.1; extra == "all"
25
+ Requires-Dist: gitlab-api[agent,gql,logfire,mcp]>=26.1.0; extra == "all"
26
26
  Provides-Extra: test
27
27
  Requires-Dist: pytest-xdist>=3.6.0; extra == "test"
28
28
  Requires-Dist: pytest; extra == "test"
@@ -52,7 +52,7 @@ Dynamic: license-file
52
52
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/gitlab-api)
53
53
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/gitlab-api)
54
54
 
55
- *Version: 26.0.1*
55
+ *Version: 26.1.0*
56
56
 
57
57
  > **Documentation** — Installation, deployment, usage across the API, CLI, and MCP
58
58
  > interfaces, the integrated A2A agent server, and guidance for provisioning the
@@ -114,8 +114,10 @@ _Auto-generated from the live MCP server — do not edit by hand._
114
114
  | `gitlab_environments` | `ENVIRONMENTSTOOL` | Manage gitlab environments operations. |
115
115
  | `gitlab_epics` | `EPICSTOOL` | Manage GitLab epics. |
116
116
  | `gitlab_graphql` | `GRAPHQLTOOL` | Execute raw GraphQL queries and mutations natively on GitLab. |
117
+ | `gitlab_graphql_ops` | `GRAPHQL_OPSTOOL` | Run a typed GitLab GraphQL operation by name. |
117
118
  | `gitlab_groups` | `GROUPSTOOL` | Manage gitlab groups operations. |
118
- | `gitlab_instances` | `MISCTOOL` | List the configured GitLab tenants (CONCEPT:KG-2.9g). |
119
+ | `gitlab_ingest_projects` | `MISCTOOL` | Natively ingest GitLab projects into epistemic-graph as typed :Project nodes. |
120
+ | `gitlab_instances` | `MISCTOOL` | List the configured GitLab tenants (CONCEPT:AU-KG.backend.declared-columns-so-schema). |
119
121
  | `gitlab_issues` | `ISSUESTOOL` | Manage GitLab issues. |
120
122
  | `gitlab_jobs` | `JOBSTOOL` | Manage gitlab jobs operations. |
121
123
  | `gitlab_labels` | `LABELSTOOL` | Manage GitLab labels. |
@@ -123,6 +125,7 @@ _Auto-generated from the live MCP server — do not edit by hand._
123
125
  | `gitlab_merge_requests` | `MERGE_REQUESTSTOOL` | Manage gitlab merge requests operations. |
124
126
  | `gitlab_merge_rules` | `MERGE_RULESTOOL` | Manage gitlab merge rules operations. |
125
127
  | `gitlab_milestones` | `MILESTONESTOOL` | Manage GitLab milestones. |
128
+ | `gitlab_namespaces` | `NAMESPACESTOOL` | Manage gitlab namespaces operations. |
126
129
  | `gitlab_notes` | `NOTESTOOL` | Manage GitLab notes/comments on issues, merge requests, commits, and epics. |
127
130
  | `gitlab_packages` | `PACKAGESTOOL` | Manage gitlab packages operations. |
128
131
  | `gitlab_pipeline_schedules` | `PIPELINE_SCHEDULESTOOL` | Manage gitlab pipeline schedules operations. |
@@ -133,17 +136,21 @@ _Auto-generated from the live MCP server — do not edit by hand._
133
136
  | `gitlab_runners` | `RUNNERSTOOL` | Manage gitlab runners operations. |
134
137
  | `gitlab_snippets` | `SNIPPETSTOOL` | Manage GitLab snippets. |
135
138
  | `gitlab_tags` | `TAGSTOOL` | Manage gitlab tags operations. |
139
+ | `gitlab_users` | `USERSTOOL` | Manage gitlab users operations. |
140
+ | `gitlab_wiki` | `WIKITOOL` | Manage gitlab wiki operations. |
136
141
 
137
142
  #### Verbose 1:1 API-mapped tools (`MCP_TOOL_MODE=verbose` or `both`)
138
143
 
139
144
  <details>
140
- <summary>188 per-operation tools — one per public API method (click to expand)</summary>
145
+ <summary>192 per-operation tools — one per public API method (click to expand)</summary>
141
146
 
142
147
  | MCP Tool | Toggle Env Var | Description |
143
148
  |----------|----------------|-------------|
149
+ | `gitlab_accept_merge_request` | `MERGE_REQUESTSTOOL` | Accept (merge) a merge request. |
144
150
  | `gitlab_api_request` | `SYSTEMTOOL` | Make a custom API request to the GitLab server. |
145
151
  | `gitlab_approve_merge_request` | `MERGE_REQUESTSTOOL` | Approve a specific merge request. |
146
152
  | `gitlab_archive_project` | `PROJECTSTOOL` | Archive a specific project. |
153
+ | `gitlab_cancel_merge_when_pipeline_succeeds` | `MERGE_REQUESTSTOOL` | Cancel a merge request's queued "merge when pipeline succeeds" (auto-merge). |
147
154
  | `gitlab_cancel_project_job` | `PROJECTSTOOL` | Cancel a specific job within a project. |
148
155
  | `gitlab_cherry_pick_commit` | `REPOSITORIESTOOL` | Cherry-pick a commit into a new branch. |
149
156
  | `gitlab_create_branch` | `REPOSITORIESTOOL` | Create a new branch in a project. |
@@ -159,6 +166,7 @@ _Auto-generated from the live MCP server — do not edit by hand._
159
166
  | `gitlab_create_note` | `OTHERTOOL` | Create a new note/comment on an issue. |
160
167
  | `gitlab_create_pipeline_schedule` | `PIPELINESTOOL` | Create a pipeline schedule for a specific project. |
161
168
  | `gitlab_create_pipeline_schedule_variable` | `PIPELINESTOOL` | Create a variable for a pipeline schedule. |
169
+ | `gitlab_create_project` | `PROJECTSTOOL` | Create a new project. |
162
170
  | `gitlab_create_project_deploy_token` | `PROJECTSTOOL` | Create a deploy token for a project. |
163
171
  | `gitlab_create_project_level_rule` | `PROJECTSTOOL` | Create a new project-level merge request approval rule. |
164
172
  | `gitlab_create_release` | `ENVIRONMENTSTOOL` | Create a new release in a project. |
@@ -220,6 +228,7 @@ _Auto-generated from the live MCP server — do not edit by hand._
220
228
  | `gitlab_get_group_deploy_token` | `USERS_GROUPSTOOL` | Get a specific deploy token for a group. |
221
229
  | `gitlab_get_group_deploy_tokens` | `USERS_GROUPSTOOL` | Get deploy tokens for a specific group. |
222
230
  | `gitlab_get_group_descendant_groups` | `USERS_GROUPSTOOL` | Get descendant groups of a specific group. |
231
+ | `gitlab_get_group_issues` | `ISSUESTOOL` | Get the list of issues for a group (and, by default, its subgroups). |
223
232
  | `gitlab_get_group_level_rule` | `USERS_GROUPSTOOL` | Get details of a group-level merge request approval setting. |
224
233
  | `gitlab_get_group_members` | `USERS_GROUPSTOOL` | Get members of a specific group. |
225
234
  | `gitlab_get_group_merge_requests` | `MERGE_REQUESTSTOOL` | Get merge requests associated with a specific group. |
@@ -332,7 +341,7 @@ _Auto-generated from the live MCP server — do not edit by hand._
332
341
 
333
342
  </details>
334
343
 
335
- _27 action-routed tool(s) (default) · 188 verbose 1:1 tool(s). Each is enabled unless its `<DOMAIN>TOOL` toggle is set false; `MCP_TOOL_MODE` selects the surface (`condensed` default · `verbose` 1:1 · `both`). Auto-generated — do not edit._
344
+ _32 action-routed tool(s) (default) · 192 verbose 1:1 tool(s). Each is enabled unless its `<DOMAIN>TOOL` toggle is set false; `MCP_TOOL_MODE` selects the surface (`condensed` default · `verbose` 1:1 · `both`). Auto-generated — do not edit._
336
345
  <!-- MCP-TOOLS-TABLE:END -->
337
346
 
338
347
  Detailed tool schemas, parameter shapes, and validation constraints are preserved in [docs/mcp.md](docs/mcp.md).
@@ -391,6 +400,7 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
391
400
  "GITLAB_TOKEN": "your_gitlab_token_here",
392
401
  "GITLAB_URL": "https://gitlab.example.com",
393
402
  "GRAPHQLTOOL": "True",
403
+ "GRAPHQL_OPSTOOL": "True",
394
404
  "GROUPSTOOL": "True",
395
405
  "ISSUESTOOL": "True",
396
406
  "JOBSTOOL": "True",
@@ -400,6 +410,7 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
400
410
  "MERGE_RULESTOOL": "True",
401
411
  "MILESTONESTOOL": "True",
402
412
  "MISCTOOL": "True",
413
+ "NAMESPACESTOOL": "True",
403
414
  "NOTESTOOL": "True",
404
415
  "PACKAGESTOOL": "True",
405
416
  "PIPELINESTOOL": "True",
@@ -409,7 +420,9 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
409
420
  "RELEASESTOOL": "True",
410
421
  "RUNNERSTOOL": "True",
411
422
  "SNIPPETSTOOL": "True",
412
- "TAGSTOOL": "True"
423
+ "TAGSTOOL": "True",
424
+ "USERSTOOL": "True",
425
+ "WIKITOOL": "True"
413
426
  }
414
427
  }
415
428
  }
@@ -446,6 +459,7 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
446
459
  "GITLAB_TOKEN": "your_gitlab_token_here",
447
460
  "GITLAB_URL": "https://gitlab.example.com",
448
461
  "GRAPHQLTOOL": "True",
462
+ "GRAPHQL_OPSTOOL": "True",
449
463
  "GROUPSTOOL": "True",
450
464
  "ISSUESTOOL": "True",
451
465
  "JOBSTOOL": "True",
@@ -455,6 +469,7 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
455
469
  "MERGE_RULESTOOL": "True",
456
470
  "MILESTONESTOOL": "True",
457
471
  "MISCTOOL": "True",
472
+ "NAMESPACESTOOL": "True",
458
473
  "NOTESTOOL": "True",
459
474
  "PACKAGESTOOL": "True",
460
475
  "PIPELINESTOOL": "True",
@@ -464,7 +479,9 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
464
479
  "RELEASESTOOL": "True",
465
480
  "RUNNERSTOOL": "True",
466
481
  "SNIPPETSTOOL": "True",
467
- "TAGSTOOL": "True"
482
+ "TAGSTOOL": "True",
483
+ "USERSTOOL": "True",
484
+ "WIKITOOL": "True"
468
485
  }
469
486
  }
470
487
  }
@@ -502,6 +519,7 @@ docker run -d \
502
519
  -e GITLAB_TOKEN=your_gitlab_token_here \
503
520
  -e GITLAB_URL=https://gitlab.example.com \
504
521
  -e GRAPHQLTOOL=True \
522
+ -e GRAPHQL_OPSTOOL=True \
505
523
  -e GROUPSTOOL=True \
506
524
  -e ISSUESTOOL=True \
507
525
  -e JOBSTOOL=True \
@@ -511,6 +529,7 @@ docker run -d \
511
529
  -e MERGE_RULESTOOL=True \
512
530
  -e MILESTONESTOOL=True \
513
531
  -e MISCTOOL=True \
532
+ -e NAMESPACESTOOL=True \
514
533
  -e NOTESTOOL=True \
515
534
  -e PACKAGESTOOL=True \
516
535
  -e PIPELINESTOOL=True \
@@ -521,6 +540,8 @@ docker run -d \
521
540
  -e RUNNERSTOOL=True \
522
541
  -e SNIPPETSTOOL=True \
523
542
  -e TAGSTOOL=True \
543
+ -e USERSTOOL=True \
544
+ -e WIKITOOL=True \
524
545
  knucklessg1/gitlab-api:mcp
525
546
  ```
526
547
 
@@ -581,6 +602,7 @@ consumed from a **remote deployment**. The
581
602
  | `MERGE_REQUESTSTOOL` | `True` | |
582
603
  | `MERGE_RULESTOOL` | `True` | |
583
604
  | `MILESTONESTOOL` | `True` | |
605
+ | `NAMESPACESTOOL` | `True` | |
584
606
  | `NOTESTOOL` | `True` | |
585
607
  | `PACKAGESTOOL` | `True` | |
586
608
  | `PIPELINESTOOL` | `True` | |
@@ -590,8 +612,11 @@ consumed from a **remote deployment**. The
590
612
  | `RUNNERSTOOL` | `True` | |
591
613
  | `SNIPPETSTOOL` | `True` | |
592
614
  | `TAGSTOOL` | `True` | |
615
+ | `USERSTOOL` | `True` | |
616
+ | `WIKITOOL` | `True` | |
593
617
  | `CUSTOM_APITOOL` | `True` | |
594
618
  | `GRAPHQLTOOL` | `True` | |
619
+ | `GRAPHQL_OPSTOOL` | `True` | |
595
620
 
596
621
  #### Inherited agent-utilities variables (apply to every connector)
597
622
 
@@ -612,7 +637,7 @@ consumed from a **remote deployment**. The
612
637
  | `MODEL_ID` | `gpt-4o` | Model id for the agent |
613
638
  | `ENABLE_WEB_UI` | `True` | Serve the AG-UI web interface |
614
639
 
615
- _40 package + 14 inherited variable(s). Auto-generated from `.env.example` + the shared agent-utilities set — do not edit._
640
+ _44 package + 14 inherited variable(s). Auto-generated from `.env.example` + the shared agent-utilities set — do not edit._
616
641
  <!-- ENV-VARS-TABLE:END -->
617
642
 
618
643
 
@@ -20,7 +20,7 @@
20
20
  ![PyPI - Wheel](https://img.shields.io/pypi/wheel/gitlab-api)
21
21
  ![PyPI - Implementation](https://img.shields.io/pypi/implementation/gitlab-api)
22
22
 
23
- *Version: 26.0.1*
23
+ *Version: 26.1.0*
24
24
 
25
25
  > **Documentation** — Installation, deployment, usage across the API, CLI, and MCP
26
26
  > interfaces, the integrated A2A agent server, and guidance for provisioning the
@@ -82,8 +82,10 @@ _Auto-generated from the live MCP server — do not edit by hand._
82
82
  | `gitlab_environments` | `ENVIRONMENTSTOOL` | Manage gitlab environments operations. |
83
83
  | `gitlab_epics` | `EPICSTOOL` | Manage GitLab epics. |
84
84
  | `gitlab_graphql` | `GRAPHQLTOOL` | Execute raw GraphQL queries and mutations natively on GitLab. |
85
+ | `gitlab_graphql_ops` | `GRAPHQL_OPSTOOL` | Run a typed GitLab GraphQL operation by name. |
85
86
  | `gitlab_groups` | `GROUPSTOOL` | Manage gitlab groups operations. |
86
- | `gitlab_instances` | `MISCTOOL` | List the configured GitLab tenants (CONCEPT:KG-2.9g). |
87
+ | `gitlab_ingest_projects` | `MISCTOOL` | Natively ingest GitLab projects into epistemic-graph as typed :Project nodes. |
88
+ | `gitlab_instances` | `MISCTOOL` | List the configured GitLab tenants (CONCEPT:AU-KG.backend.declared-columns-so-schema). |
87
89
  | `gitlab_issues` | `ISSUESTOOL` | Manage GitLab issues. |
88
90
  | `gitlab_jobs` | `JOBSTOOL` | Manage gitlab jobs operations. |
89
91
  | `gitlab_labels` | `LABELSTOOL` | Manage GitLab labels. |
@@ -91,6 +93,7 @@ _Auto-generated from the live MCP server — do not edit by hand._
91
93
  | `gitlab_merge_requests` | `MERGE_REQUESTSTOOL` | Manage gitlab merge requests operations. |
92
94
  | `gitlab_merge_rules` | `MERGE_RULESTOOL` | Manage gitlab merge rules operations. |
93
95
  | `gitlab_milestones` | `MILESTONESTOOL` | Manage GitLab milestones. |
96
+ | `gitlab_namespaces` | `NAMESPACESTOOL` | Manage gitlab namespaces operations. |
94
97
  | `gitlab_notes` | `NOTESTOOL` | Manage GitLab notes/comments on issues, merge requests, commits, and epics. |
95
98
  | `gitlab_packages` | `PACKAGESTOOL` | Manage gitlab packages operations. |
96
99
  | `gitlab_pipeline_schedules` | `PIPELINE_SCHEDULESTOOL` | Manage gitlab pipeline schedules operations. |
@@ -101,17 +104,21 @@ _Auto-generated from the live MCP server — do not edit by hand._
101
104
  | `gitlab_runners` | `RUNNERSTOOL` | Manage gitlab runners operations. |
102
105
  | `gitlab_snippets` | `SNIPPETSTOOL` | Manage GitLab snippets. |
103
106
  | `gitlab_tags` | `TAGSTOOL` | Manage gitlab tags operations. |
107
+ | `gitlab_users` | `USERSTOOL` | Manage gitlab users operations. |
108
+ | `gitlab_wiki` | `WIKITOOL` | Manage gitlab wiki operations. |
104
109
 
105
110
  #### Verbose 1:1 API-mapped tools (`MCP_TOOL_MODE=verbose` or `both`)
106
111
 
107
112
  <details>
108
- <summary>188 per-operation tools — one per public API method (click to expand)</summary>
113
+ <summary>192 per-operation tools — one per public API method (click to expand)</summary>
109
114
 
110
115
  | MCP Tool | Toggle Env Var | Description |
111
116
  |----------|----------------|-------------|
117
+ | `gitlab_accept_merge_request` | `MERGE_REQUESTSTOOL` | Accept (merge) a merge request. |
112
118
  | `gitlab_api_request` | `SYSTEMTOOL` | Make a custom API request to the GitLab server. |
113
119
  | `gitlab_approve_merge_request` | `MERGE_REQUESTSTOOL` | Approve a specific merge request. |
114
120
  | `gitlab_archive_project` | `PROJECTSTOOL` | Archive a specific project. |
121
+ | `gitlab_cancel_merge_when_pipeline_succeeds` | `MERGE_REQUESTSTOOL` | Cancel a merge request's queued "merge when pipeline succeeds" (auto-merge). |
115
122
  | `gitlab_cancel_project_job` | `PROJECTSTOOL` | Cancel a specific job within a project. |
116
123
  | `gitlab_cherry_pick_commit` | `REPOSITORIESTOOL` | Cherry-pick a commit into a new branch. |
117
124
  | `gitlab_create_branch` | `REPOSITORIESTOOL` | Create a new branch in a project. |
@@ -127,6 +134,7 @@ _Auto-generated from the live MCP server — do not edit by hand._
127
134
  | `gitlab_create_note` | `OTHERTOOL` | Create a new note/comment on an issue. |
128
135
  | `gitlab_create_pipeline_schedule` | `PIPELINESTOOL` | Create a pipeline schedule for a specific project. |
129
136
  | `gitlab_create_pipeline_schedule_variable` | `PIPELINESTOOL` | Create a variable for a pipeline schedule. |
137
+ | `gitlab_create_project` | `PROJECTSTOOL` | Create a new project. |
130
138
  | `gitlab_create_project_deploy_token` | `PROJECTSTOOL` | Create a deploy token for a project. |
131
139
  | `gitlab_create_project_level_rule` | `PROJECTSTOOL` | Create a new project-level merge request approval rule. |
132
140
  | `gitlab_create_release` | `ENVIRONMENTSTOOL` | Create a new release in a project. |
@@ -188,6 +196,7 @@ _Auto-generated from the live MCP server — do not edit by hand._
188
196
  | `gitlab_get_group_deploy_token` | `USERS_GROUPSTOOL` | Get a specific deploy token for a group. |
189
197
  | `gitlab_get_group_deploy_tokens` | `USERS_GROUPSTOOL` | Get deploy tokens for a specific group. |
190
198
  | `gitlab_get_group_descendant_groups` | `USERS_GROUPSTOOL` | Get descendant groups of a specific group. |
199
+ | `gitlab_get_group_issues` | `ISSUESTOOL` | Get the list of issues for a group (and, by default, its subgroups). |
191
200
  | `gitlab_get_group_level_rule` | `USERS_GROUPSTOOL` | Get details of a group-level merge request approval setting. |
192
201
  | `gitlab_get_group_members` | `USERS_GROUPSTOOL` | Get members of a specific group. |
193
202
  | `gitlab_get_group_merge_requests` | `MERGE_REQUESTSTOOL` | Get merge requests associated with a specific group. |
@@ -300,7 +309,7 @@ _Auto-generated from the live MCP server — do not edit by hand._
300
309
 
301
310
  </details>
302
311
 
303
- _27 action-routed tool(s) (default) · 188 verbose 1:1 tool(s). Each is enabled unless its `<DOMAIN>TOOL` toggle is set false; `MCP_TOOL_MODE` selects the surface (`condensed` default · `verbose` 1:1 · `both`). Auto-generated — do not edit._
312
+ _32 action-routed tool(s) (default) · 192 verbose 1:1 tool(s). Each is enabled unless its `<DOMAIN>TOOL` toggle is set false; `MCP_TOOL_MODE` selects the surface (`condensed` default · `verbose` 1:1 · `both`). Auto-generated — do not edit._
304
313
  <!-- MCP-TOOLS-TABLE:END -->
305
314
 
306
315
  Detailed tool schemas, parameter shapes, and validation constraints are preserved in [docs/mcp.md](docs/mcp.md).
@@ -359,6 +368,7 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
359
368
  "GITLAB_TOKEN": "your_gitlab_token_here",
360
369
  "GITLAB_URL": "https://gitlab.example.com",
361
370
  "GRAPHQLTOOL": "True",
371
+ "GRAPHQL_OPSTOOL": "True",
362
372
  "GROUPSTOOL": "True",
363
373
  "ISSUESTOOL": "True",
364
374
  "JOBSTOOL": "True",
@@ -368,6 +378,7 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
368
378
  "MERGE_RULESTOOL": "True",
369
379
  "MILESTONESTOOL": "True",
370
380
  "MISCTOOL": "True",
381
+ "NAMESPACESTOOL": "True",
371
382
  "NOTESTOOL": "True",
372
383
  "PACKAGESTOOL": "True",
373
384
  "PIPELINESTOOL": "True",
@@ -377,7 +388,9 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
377
388
  "RELEASESTOOL": "True",
378
389
  "RUNNERSTOOL": "True",
379
390
  "SNIPPETSTOOL": "True",
380
- "TAGSTOOL": "True"
391
+ "TAGSTOOL": "True",
392
+ "USERSTOOL": "True",
393
+ "WIKITOOL": "True"
381
394
  }
382
395
  }
383
396
  }
@@ -414,6 +427,7 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
414
427
  "GITLAB_TOKEN": "your_gitlab_token_here",
415
428
  "GITLAB_URL": "https://gitlab.example.com",
416
429
  "GRAPHQLTOOL": "True",
430
+ "GRAPHQL_OPSTOOL": "True",
417
431
  "GROUPSTOOL": "True",
418
432
  "ISSUESTOOL": "True",
419
433
  "JOBSTOOL": "True",
@@ -423,6 +437,7 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
423
437
  "MERGE_RULESTOOL": "True",
424
438
  "MILESTONESTOOL": "True",
425
439
  "MISCTOOL": "True",
440
+ "NAMESPACESTOOL": "True",
426
441
  "NOTESTOOL": "True",
427
442
  "PACKAGESTOOL": "True",
428
443
  "PIPELINESTOOL": "True",
@@ -432,7 +447,9 @@ When query strings or parameters are supplied, an LLM-free **Knowledge Graph res
432
447
  "RELEASESTOOL": "True",
433
448
  "RUNNERSTOOL": "True",
434
449
  "SNIPPETSTOOL": "True",
435
- "TAGSTOOL": "True"
450
+ "TAGSTOOL": "True",
451
+ "USERSTOOL": "True",
452
+ "WIKITOOL": "True"
436
453
  }
437
454
  }
438
455
  }
@@ -470,6 +487,7 @@ docker run -d \
470
487
  -e GITLAB_TOKEN=your_gitlab_token_here \
471
488
  -e GITLAB_URL=https://gitlab.example.com \
472
489
  -e GRAPHQLTOOL=True \
490
+ -e GRAPHQL_OPSTOOL=True \
473
491
  -e GROUPSTOOL=True \
474
492
  -e ISSUESTOOL=True \
475
493
  -e JOBSTOOL=True \
@@ -479,6 +497,7 @@ docker run -d \
479
497
  -e MERGE_RULESTOOL=True \
480
498
  -e MILESTONESTOOL=True \
481
499
  -e MISCTOOL=True \
500
+ -e NAMESPACESTOOL=True \
482
501
  -e NOTESTOOL=True \
483
502
  -e PACKAGESTOOL=True \
484
503
  -e PIPELINESTOOL=True \
@@ -489,6 +508,8 @@ docker run -d \
489
508
  -e RUNNERSTOOL=True \
490
509
  -e SNIPPETSTOOL=True \
491
510
  -e TAGSTOOL=True \
511
+ -e USERSTOOL=True \
512
+ -e WIKITOOL=True \
492
513
  knucklessg1/gitlab-api:mcp
493
514
  ```
494
515
 
@@ -549,6 +570,7 @@ consumed from a **remote deployment**. The
549
570
  | `MERGE_REQUESTSTOOL` | `True` | |
550
571
  | `MERGE_RULESTOOL` | `True` | |
551
572
  | `MILESTONESTOOL` | `True` | |
573
+ | `NAMESPACESTOOL` | `True` | |
552
574
  | `NOTESTOOL` | `True` | |
553
575
  | `PACKAGESTOOL` | `True` | |
554
576
  | `PIPELINESTOOL` | `True` | |
@@ -558,8 +580,11 @@ consumed from a **remote deployment**. The
558
580
  | `RUNNERSTOOL` | `True` | |
559
581
  | `SNIPPETSTOOL` | `True` | |
560
582
  | `TAGSTOOL` | `True` | |
583
+ | `USERSTOOL` | `True` | |
584
+ | `WIKITOOL` | `True` | |
561
585
  | `CUSTOM_APITOOL` | `True` | |
562
586
  | `GRAPHQLTOOL` | `True` | |
587
+ | `GRAPHQL_OPSTOOL` | `True` | |
563
588
 
564
589
  #### Inherited agent-utilities variables (apply to every connector)
565
590
 
@@ -580,7 +605,7 @@ consumed from a **remote deployment**. The
580
605
  | `MODEL_ID` | `gpt-4o` | Model id for the agent |
581
606
  | `ENABLE_WEB_UI` | `True` | Serve the AG-UI web interface |
582
607
 
583
- _40 package + 14 inherited variable(s). Auto-generated from `.env.example` + the shared agent-utilities set — do not edit._
608
+ _44 package + 14 inherited variable(s). Auto-generated from `.env.example` + the shared agent-utilities set — do not edit._
584
609
  <!-- ENV-VARS-TABLE:END -->
585
610
 
586
611
 
@@ -4,7 +4,7 @@ import os
4
4
  import sys
5
5
  import warnings
6
6
 
7
- __version__ = "26.0.1"
7
+ __version__ = "26.1.0"
8
8
 
9
9
  logging.basicConfig(
10
10
  level=logging.INFO,
@@ -77,6 +77,36 @@ class GitLabApiIssues(GitLabApiBase):
77
77
  except ValidationError as e:
78
78
  raise ParameterError(f"Invalid parameters: {e.errors()}") from e
79
79
 
80
+ def get_group_issues(self, **kwargs) -> Response:
81
+ """
82
+ Get the list of issues for a group (and, by default, its subgroups).
83
+
84
+ Args:
85
+ **kwargs: group_id (required) plus optional filters (state, labels,
86
+ assignee_username, milestone, search, order_by, ...).
87
+
88
+ Returns:
89
+ Response: A wrapper containing the original response and a list of Issue models.
90
+
91
+ Raises:
92
+ MissingParameterError: If the group_id is missing.
93
+ ParameterError: If invalid parameters are provided.
94
+ """
95
+ issue = IssueModel(**kwargs)
96
+ if issue.group_id is None:
97
+ raise MissingParameterError("Missing required parameter: group_id")
98
+ try:
99
+ response, data = self._fetch_all_pages(
100
+ endpoint=f"/groups/{issue.group_id}/issues",
101
+ model=issue,
102
+ id_field=None,
103
+ id_value=None,
104
+ )
105
+ parsed_data = [Issue(**item) for item in data]
106
+ return Response(response=response, data=parsed_data)
107
+ except ValidationError as e:
108
+ raise ParameterError(f"Invalid parameters: {e.errors()}") from e
109
+
80
110
  def get_issue(self, **kwargs) -> Response:
81
111
  """
82
112
  Get a single issue.
@@ -239,6 +239,85 @@ class GitLabApiMergeRequests(GitLabApiBase):
239
239
  except ValidationError as e:
240
240
  raise ParameterError(f"Invalid parameters: {e.errors()}") from e
241
241
 
242
+ def accept_merge_request(self, **kwargs) -> Response:
243
+ """
244
+ Accept (merge) a merge request.
245
+
246
+ Pass ``merge_when_pipeline_succeeds=True`` to set auto-merge (merge once
247
+ the pipeline succeeds) rather than merging immediately. Optional body
248
+ params: merge_commit_message, squash_commit_message, squash,
249
+ should_remove_source_branch, sha.
250
+
251
+ Args:
252
+ **kwargs: project_id and merge_request_iid (required) plus optional
253
+ merge parameters listed above.
254
+
255
+ Returns:
256
+ Response: A wrapper containing the original response and a MergeRequest model.
257
+
258
+ Raises:
259
+ MissingParameterError: If the project_id or merge_request_iid is missing.
260
+ ParameterError: If invalid parameters are provided.
261
+ """
262
+ merge_rule = MergeRequestRuleModel(**kwargs)
263
+ if merge_rule.project_id is None or merge_rule.merge_request_iid is None:
264
+ raise MissingParameterError
265
+ payload = {
266
+ key: kwargs[key]
267
+ for key in (
268
+ "merge_commit_message",
269
+ "squash_commit_message",
270
+ "squash",
271
+ "should_remove_source_branch",
272
+ "merge_when_pipeline_succeeds",
273
+ "sha",
274
+ )
275
+ if key in kwargs
276
+ }
277
+ try:
278
+ response = self._session.put(
279
+ url=f"{self.url}/projects/{merge_rule.project_id}/merge_requests/{merge_rule.merge_request_iid}/merge",
280
+ headers=self.headers,
281
+ json=payload or None,
282
+ verify=self.verify,
283
+ proxies=self.proxies,
284
+ )
285
+ response.raise_for_status()
286
+ parsed_data = MergeRequest(**response.json())
287
+ return Response(response=response, data=parsed_data)
288
+ except ValidationError as e:
289
+ raise ParameterError(f"Invalid parameters: {e.errors()}") from e
290
+
291
+ def cancel_merge_when_pipeline_succeeds(self, **kwargs) -> Response:
292
+ """
293
+ Cancel a merge request's queued "merge when pipeline succeeds" (auto-merge).
294
+
295
+ Args:
296
+ **kwargs: project_id and merge_request_iid (required).
297
+
298
+ Returns:
299
+ Response: A wrapper containing the original response and a MergeRequest model.
300
+
301
+ Raises:
302
+ MissingParameterError: If the project_id or merge_request_iid is missing.
303
+ ParameterError: If invalid parameters are provided.
304
+ """
305
+ merge_rule = MergeRequestRuleModel(**kwargs)
306
+ if merge_rule.project_id is None or merge_rule.merge_request_iid is None:
307
+ raise MissingParameterError
308
+ try:
309
+ response = self._session.post(
310
+ url=f"{self.url}/projects/{merge_rule.project_id}/merge_requests/{merge_rule.merge_request_iid}/cancel_merge_when_pipeline_succeeds",
311
+ headers=self.headers,
312
+ verify=self.verify,
313
+ proxies=self.proxies,
314
+ )
315
+ response.raise_for_status()
316
+ parsed_data = MergeRequest(**response.json())
317
+ return Response(response=response, data=parsed_data)
318
+ except ValidationError as e:
319
+ raise ParameterError(f"Invalid parameters: {e.errors()}") from e
320
+
242
321
  def unapprove_merge_request(self, **kwargs) -> Response:
243
322
  """
244
323
  Unapprove a specific merge request.
@@ -25,7 +25,7 @@ logger = get_logger(__name__)
25
25
  def _resolve_connection(
26
26
  instance: str | None, token: str | None, verify: bool | None
27
27
  ) -> tuple[str, str | None, bool]:
28
- """Resolve ``(url, token, verify)`` for a target tenant (CONCEPT:KG-2.9g).
28
+ """Resolve ``(url, token, verify)`` for a target tenant (CONCEPT:AU-KG.backend.declared-columns-so-schema).
29
29
 
30
30
  ``instance`` may be a configured instance NAME (resolved from the shared
31
31
  ``gitlab_instances`` config), a bare URL (used as-is, back-compat), or ``None``
@@ -71,7 +71,7 @@ def get_client(
71
71
  ) -> Api:
72
72
  """Factory function to create the GitLab Api client.
73
73
 
74
- Multi-tenant (CONCEPT:KG-2.9g): ``instance`` selects a configured tenant by
74
+ Multi-tenant (CONCEPT:AU-KG.backend.declared-columns-so-schema): ``instance`` selects a configured tenant by
75
75
  name (from the shared ``gitlab_instances`` config), accepts a bare URL, or
76
76
  defaults to the first configured instance / ``GITLAB_URL``. Supports OIDC
77
77
  delegation and fixed credentials (token) via the shared ``delegated_auth``
@@ -132,7 +132,7 @@ def get_graphql_client(
132
132
  ) -> Any:
133
133
  """Factory function to create the GitLab GraphQL client.
134
134
 
135
- Multi-tenant (CONCEPT:KG-2.9g): ``instance`` selects a configured tenant by
135
+ Multi-tenant (CONCEPT:AU-KG.backend.declared-columns-so-schema): ``instance`` selects a configured tenant by
136
136
  name, a bare URL, or the default. Supports OIDC delegation and fixed
137
137
  credentials (token).
138
138
  """
@@ -0,0 +1,18 @@
1
+ {
2
+ "_comment": "Tier-1 mcp_tool source presets for gitlab-api (AU-KG.ingest.mcp-tool-connector). Syncs GitLab projects into the KG as repository documents via the gitlab-api MCP server. Contributed presets win over the central MCP_TOOL_PRESETS. Extend with merge-request / pipeline presets as needed.",
3
+ "gitlab-projects": {
4
+ "server": "gitlab-api",
5
+ "tool": "gitlab_projects",
6
+ "action": "get",
7
+ "records_path": "data",
8
+ "id_field": "id",
9
+ "title_field": "path_with_namespace",
10
+ "text_field": "description",
11
+ "updated_field": "last_activity_at",
12
+ "pagination": "page",
13
+ "page_kind": "page",
14
+ "page_param": "page",
15
+ "page_size_param": "per_page",
16
+ "doc_type": "repository"
17
+ }
18
+ }
@@ -487,6 +487,10 @@ class IssueModel(BaseModel):
487
487
  project_id: int | str | None = Field(
488
488
  default=None, description="Project ID or full path"
489
489
  )
490
+ group_id: int | str | None = Field(
491
+ default=None,
492
+ description="Group ID or full path (for group-scoped issue listing)",
493
+ )
490
494
  title: str | None = Field(default=None, description="Title of the issue")
491
495
  description: str | None = Field(
492
496
  default=None, description="Description of the issue"