gitlab-api 27.3.7__tar.gz → 27.3.8__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.
- {gitlab_api-27.3.7/gitlab_api.egg-info → gitlab_api-27.3.8}/PKG-INFO +2 -2
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/README.md +1 -1
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/connector_manifest.yml +26 -163
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/mcp_server.py +1 -1
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/ontology/gitlab.ttl +6 -28
- {gitlab_api-27.3.7 → gitlab_api-27.3.8/gitlab_api.egg-info}/PKG-INFO +2 -2
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api.egg-info/SOURCES.txt +1 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/pyproject.toml +1 -1
- gitlab_api-27.3.8/tests/test_cq_paths.py +51 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_ontology_parent_link.py +0 -5
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/LICENSE +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/MANIFEST.in +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/__init__.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/__main__.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/api/__init__.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/api/api_client_base.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/api/api_client_environments.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/api/api_client_issues.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/api/api_client_merge_requests.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/api/api_client_other.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/api/api_client_pipelines.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/api/api_client_projects.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/api/api_client_repositories.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/api/api_client_system.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/api/api_client_users_groups.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/api/api_client_vulnerabilities.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/api_client.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/auth.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/connector_prep.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/connectors/__init__.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/connectors/mcp_source_presets.json +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/connectors/tool_schema_fingerprints.json +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/gitlab_gql.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/gitlab_input_models.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/gitlab_response_models.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/instances.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/kg_ingest.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/mcp_config.json +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/ontology/__init__.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/ontology/certification.json +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/ontology/fixtures/records.json +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/ontology/ingest_sources.json +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/ontology/mappings/source.yaml +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/ontology/migrations/manifest.json +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/ontology/shapes/connector.shacl.ttl +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/prompts/__init__.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/prompts/devops_specialist.json +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/__init__.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-api-operations/SKILL.md +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-api-operations/agents/openai.yaml +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-api-operations/references/catalog.md +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-issues/SKILL.md +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-issues/WORKFLOW.md +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-merge-request-create/SKILL.md +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-merge-request-create/WORKFLOW.md +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-merge-request-review/SKILL.md +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-merge-request-review/WORKFLOW.md +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-pipelines/SKILL.md +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-pipelines/WORKFLOW.md +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-vulnerabilities/SKILL.md +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-vulnerabilities/WORKFLOW.md +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api.egg-info/dependency_links.txt +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api.egg-info/entry_points.txt +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api.egg-info/requires.txt +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api.egg-info/top_level.txt +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/requirements.txt +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/scripts/check_import_safety.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/scripts/security_contract.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/scripts/security_sanitizer.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/scripts/verify_api_integration.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/setup.cfg +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/__init__.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/conftest.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_api_wrapper.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_auth.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_connector_prep.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_default_content_surfaces.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_fleet_name.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_gitlab_a2a_validation.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_gitlab_api_brute_force_coverage.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_gitlab_gql.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_gitlab_mcp_validation.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_gitlab_models.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_identity_context_scoping.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_ingest_sources.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_init_dynamics.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_instances.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_kg_ingest.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_mock_coverage.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_security_sanitizer.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_startup.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_tool_modes.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/test_verify_agent.py +0 -0
- {gitlab_api-27.3.7 → gitlab_api-27.3.8}/tests/verify_a2a_queries.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gitlab-api
|
|
3
|
-
Version: 27.3.
|
|
3
|
+
Version: 27.3.8
|
|
4
4
|
Summary: GitLab API + MCP Server
|
|
5
5
|
Author-email: Project Maintainers <maintainers@users.noreply.github.com>
|
|
6
6
|
License: MIT
|
|
@@ -45,7 +45,7 @@ Dynamic: license-file
|
|
|
45
45
|

|
|
46
46
|

|
|
47
47
|
|
|
48
|
-
*Version: 27.3.
|
|
48
|
+
*Version: 27.3.8*
|
|
49
49
|
|
|
50
50
|
> **Documentation** — Installation, deployment, usage across the API, CLI, and MCP
|
|
51
51
|
> backing GitLab instance are maintained in the
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|

|
|
21
21
|

|
|
22
22
|
|
|
23
|
-
*Version: 27.3.
|
|
23
|
+
*Version: 27.3.8*
|
|
24
24
|
|
|
25
25
|
> **Documentation** — Installation, deployment, usage across the API, CLI, and MCP
|
|
26
26
|
> backing GitLab instance are maintained in the
|
|
@@ -2,18 +2,10 @@ connector: gitlab-mcp
|
|
|
2
2
|
ontology_source: gitlab
|
|
3
3
|
schema_version: '1'
|
|
4
4
|
resources:
|
|
5
|
-
- name: Branch
|
|
6
|
-
label: Branch
|
|
7
|
-
id_prefix: branch
|
|
8
|
-
relations: []
|
|
9
5
|
- name: CheckRun
|
|
10
6
|
label: Check Run
|
|
11
7
|
id_prefix: checkrun
|
|
12
8
|
relations: []
|
|
13
|
-
- name: Commit
|
|
14
|
-
label: Commit
|
|
15
|
-
id_prefix: commit
|
|
16
|
-
relations: []
|
|
17
9
|
- name: Epic
|
|
18
10
|
label: Epic
|
|
19
11
|
id_prefix: epic
|
|
@@ -46,10 +38,6 @@ resources:
|
|
|
46
38
|
label: targets branch
|
|
47
39
|
target: Branch
|
|
48
40
|
lpg_rel_type: ''
|
|
49
|
-
- name: Milestone
|
|
50
|
-
label: Milestone
|
|
51
|
-
id_prefix: milestone
|
|
52
|
-
relations: []
|
|
53
41
|
- name: Pipeline
|
|
54
42
|
label: Pipeline
|
|
55
43
|
id_prefix: pipeline
|
|
@@ -58,14 +46,6 @@ resources:
|
|
|
58
46
|
label: has job
|
|
59
47
|
target: Job
|
|
60
48
|
lpg_rel_type: ''
|
|
61
|
-
- name: PipelineRun
|
|
62
|
-
label: Pipeline Run
|
|
63
|
-
id_prefix: pipelinerun
|
|
64
|
-
relations:
|
|
65
|
-
- name: ranFor
|
|
66
|
-
label: ran for
|
|
67
|
-
target: owl:Thing
|
|
68
|
-
lpg_rel_type: ''
|
|
69
49
|
- name: Project
|
|
70
50
|
label: Project
|
|
71
51
|
id_prefix: project
|
|
@@ -74,14 +54,6 @@ resources:
|
|
|
74
54
|
label: part of group
|
|
75
55
|
target: GitLabGroup
|
|
76
56
|
lpg_rel_type: ''
|
|
77
|
-
- name: Release
|
|
78
|
-
label: Release
|
|
79
|
-
id_prefix: release
|
|
80
|
-
relations: []
|
|
81
|
-
- name: Runner
|
|
82
|
-
label: Runner
|
|
83
|
-
id_prefix: runner
|
|
84
|
-
relations: []
|
|
85
57
|
actions:
|
|
86
58
|
- id: epistemic-answer
|
|
87
59
|
name: Epistemic Answer
|
|
@@ -123,40 +95,8 @@ permissions:
|
|
|
123
95
|
tenant_field: null
|
|
124
96
|
read_roles: []
|
|
125
97
|
schema_mappings:
|
|
126
|
-
Branch:
|
|
127
|
-
ontology_class: null
|
|
128
|
-
fields:
|
|
129
|
-
createdAt: xsd:dateTime
|
|
130
|
-
duration: xsd:decimal
|
|
131
|
-
failureReason: xsd:string
|
|
132
|
-
finishedAt: xsd:dateTime
|
|
133
|
-
iid: xsd:string
|
|
134
|
-
logUrl: xsd:string
|
|
135
|
-
pipelineStatus: xsd:string
|
|
136
|
-
ref: xsd:string
|
|
137
|
-
sha: xsd:string
|
|
138
|
-
startedAt: xsd:dateTime
|
|
139
|
-
state: xsd:string
|
|
140
|
-
triggerSource: xsd:string
|
|
141
|
-
webUrl: xsd:string
|
|
142
98
|
CheckRun:
|
|
143
|
-
ontology_class:
|
|
144
|
-
fields:
|
|
145
|
-
createdAt: xsd:dateTime
|
|
146
|
-
duration: xsd:decimal
|
|
147
|
-
failureReason: xsd:string
|
|
148
|
-
finishedAt: xsd:dateTime
|
|
149
|
-
iid: xsd:string
|
|
150
|
-
logUrl: xsd:string
|
|
151
|
-
pipelineStatus: xsd:string
|
|
152
|
-
ref: xsd:string
|
|
153
|
-
sha: xsd:string
|
|
154
|
-
startedAt: xsd:dateTime
|
|
155
|
-
state: xsd:string
|
|
156
|
-
triggerSource: xsd:string
|
|
157
|
-
webUrl: xsd:string
|
|
158
|
-
Commit:
|
|
159
|
-
ontology_class: null
|
|
99
|
+
ontology_class: PipelineRun
|
|
160
100
|
fields:
|
|
161
101
|
createdAt: xsd:dateTime
|
|
162
102
|
duration: xsd:decimal
|
|
@@ -172,7 +112,7 @@ schema_mappings:
|
|
|
172
112
|
triggerSource: xsd:string
|
|
173
113
|
webUrl: xsd:string
|
|
174
114
|
Epic:
|
|
175
|
-
ontology_class:
|
|
115
|
+
ontology_class: WorkItem
|
|
176
116
|
fields:
|
|
177
117
|
createdAt: xsd:dateTime
|
|
178
118
|
duration: xsd:decimal
|
|
@@ -188,7 +128,7 @@ schema_mappings:
|
|
|
188
128
|
triggerSource: xsd:string
|
|
189
129
|
webUrl: xsd:string
|
|
190
130
|
GitLabGroup:
|
|
191
|
-
ontology_class:
|
|
131
|
+
ontology_class: IdentityGroup
|
|
192
132
|
fields:
|
|
193
133
|
createdAt: xsd:dateTime
|
|
194
134
|
duration: xsd:decimal
|
|
@@ -204,7 +144,7 @@ schema_mappings:
|
|
|
204
144
|
triggerSource: xsd:string
|
|
205
145
|
webUrl: xsd:string
|
|
206
146
|
Issue:
|
|
207
|
-
ontology_class:
|
|
147
|
+
ontology_class: WorkItem
|
|
208
148
|
fields:
|
|
209
149
|
createdAt: xsd:dateTime
|
|
210
150
|
duration: xsd:decimal
|
|
@@ -236,23 +176,7 @@ schema_mappings:
|
|
|
236
176
|
triggerSource: xsd:string
|
|
237
177
|
webUrl: xsd:string
|
|
238
178
|
MergeRequest:
|
|
239
|
-
ontology_class:
|
|
240
|
-
fields:
|
|
241
|
-
createdAt: xsd:dateTime
|
|
242
|
-
duration: xsd:decimal
|
|
243
|
-
failureReason: xsd:string
|
|
244
|
-
finishedAt: xsd:dateTime
|
|
245
|
-
iid: xsd:string
|
|
246
|
-
logUrl: xsd:string
|
|
247
|
-
pipelineStatus: xsd:string
|
|
248
|
-
ref: xsd:string
|
|
249
|
-
sha: xsd:string
|
|
250
|
-
startedAt: xsd:dateTime
|
|
251
|
-
state: xsd:string
|
|
252
|
-
triggerSource: xsd:string
|
|
253
|
-
webUrl: xsd:string
|
|
254
|
-
Milestone:
|
|
255
|
-
ontology_class: null
|
|
179
|
+
ontology_class: PullRequest
|
|
256
180
|
fields:
|
|
257
181
|
createdAt: xsd:dateTime
|
|
258
182
|
duration: xsd:decimal
|
|
@@ -268,23 +192,7 @@ schema_mappings:
|
|
|
268
192
|
triggerSource: xsd:string
|
|
269
193
|
webUrl: xsd:string
|
|
270
194
|
Pipeline:
|
|
271
|
-
ontology_class:
|
|
272
|
-
fields:
|
|
273
|
-
createdAt: xsd:dateTime
|
|
274
|
-
duration: xsd:decimal
|
|
275
|
-
failureReason: xsd:string
|
|
276
|
-
finishedAt: xsd:dateTime
|
|
277
|
-
iid: xsd:string
|
|
278
|
-
logUrl: xsd:string
|
|
279
|
-
pipelineStatus: xsd:string
|
|
280
|
-
ref: xsd:string
|
|
281
|
-
sha: xsd:string
|
|
282
|
-
startedAt: xsd:dateTime
|
|
283
|
-
state: xsd:string
|
|
284
|
-
triggerSource: xsd:string
|
|
285
|
-
webUrl: xsd:string
|
|
286
|
-
PipelineRun:
|
|
287
|
-
ontology_class: null
|
|
195
|
+
ontology_class: PipelineRun
|
|
288
196
|
fields:
|
|
289
197
|
createdAt: xsd:dateTime
|
|
290
198
|
duration: xsd:decimal
|
|
@@ -315,38 +223,6 @@ schema_mappings:
|
|
|
315
223
|
state: xsd:string
|
|
316
224
|
triggerSource: xsd:string
|
|
317
225
|
webUrl: xsd:string
|
|
318
|
-
Release:
|
|
319
|
-
ontology_class: null
|
|
320
|
-
fields:
|
|
321
|
-
createdAt: xsd:dateTime
|
|
322
|
-
duration: xsd:decimal
|
|
323
|
-
failureReason: xsd:string
|
|
324
|
-
finishedAt: xsd:dateTime
|
|
325
|
-
iid: xsd:string
|
|
326
|
-
logUrl: xsd:string
|
|
327
|
-
pipelineStatus: xsd:string
|
|
328
|
-
ref: xsd:string
|
|
329
|
-
sha: xsd:string
|
|
330
|
-
startedAt: xsd:dateTime
|
|
331
|
-
state: xsd:string
|
|
332
|
-
triggerSource: xsd:string
|
|
333
|
-
webUrl: xsd:string
|
|
334
|
-
Runner:
|
|
335
|
-
ontology_class: null
|
|
336
|
-
fields:
|
|
337
|
-
createdAt: xsd:dateTime
|
|
338
|
-
duration: xsd:decimal
|
|
339
|
-
failureReason: xsd:string
|
|
340
|
-
finishedAt: xsd:dateTime
|
|
341
|
-
iid: xsd:string
|
|
342
|
-
logUrl: xsd:string
|
|
343
|
-
pipelineStatus: xsd:string
|
|
344
|
-
ref: xsd:string
|
|
345
|
-
sha: xsd:string
|
|
346
|
-
startedAt: xsd:dateTime
|
|
347
|
-
state: xsd:string
|
|
348
|
-
triggerSource: xsd:string
|
|
349
|
-
webUrl: xsd:string
|
|
350
226
|
sync:
|
|
351
227
|
- preset: gitlab-projects
|
|
352
228
|
server: gitlab-mcp
|
|
@@ -376,20 +252,20 @@ sync:
|
|
|
376
252
|
params_style: args
|
|
377
253
|
provenance:
|
|
378
254
|
generated_by: scripts/generate_connector_manifests.py
|
|
379
|
-
generated_at: '2026-10-
|
|
255
|
+
generated_at: '2026-10-23T00:00:00Z'
|
|
380
256
|
source_artifacts:
|
|
381
257
|
- gitlab_api/connectors/mcp_source_presets.json
|
|
382
258
|
- gitlab_api/connectors/tool_schema_fingerprints.json
|
|
383
259
|
- gitlab_api/ontology/gitlab.ttl
|
|
384
260
|
integrity:
|
|
385
261
|
algorithm: urdna2015-sha256
|
|
386
|
-
hash:
|
|
387
|
-
triple_count:
|
|
262
|
+
hash: 51cdef79ba7080a662846127c295b57fed42f9c35abd42d513112051eeebf473
|
|
263
|
+
triple_count: 95
|
|
388
264
|
signer: UNSIGNED-PREVIEW
|
|
389
265
|
signature_algorithm: none
|
|
390
266
|
signing_public_key: ''
|
|
391
267
|
signature: null
|
|
392
|
-
source_commit:
|
|
268
|
+
source_commit: 0ad207db86cf74ee989ebf72581f432906efe85a
|
|
393
269
|
policy:
|
|
394
270
|
pii_fields: {}
|
|
395
271
|
tenant_boundary: null
|
|
@@ -403,37 +279,24 @@ review_todos:
|
|
|
403
279
|
\ ontology \u2014 not attached to any resource; verify its true domain manually."
|
|
404
280
|
- "relation 'hasMilestone' has no declared rdfs:domain resolving to a known resource in this connector's\
|
|
405
281
|
\ ontology \u2014 not attached to any resource; verify its true domain manually."
|
|
282
|
+
- "relation 'ranFor' has no declared rdfs:domain resolving to a known resource in this connector's ontology\
|
|
283
|
+
\ \u2014 not attached to any resource; verify its true domain manually."
|
|
406
284
|
- "relation 'triggeredPipeline' has no declared rdfs:domain resolving to a known resource in this connector's\
|
|
407
285
|
\ ontology \u2014 not attached to any resource; verify its true domain manually."
|
|
408
|
-
- "schema_mappings.
|
|
409
|
-
\
|
|
410
|
-
- "schema_mappings.
|
|
411
|
-
\
|
|
412
|
-
- "schema_mappings.
|
|
413
|
-
\
|
|
414
|
-
- "schema_mappings.
|
|
415
|
-
\
|
|
416
|
-
- "schema_mappings.GitLabGroup.ontology_class = 'Organization' [DRAFT \u2014 nearest hub-canonical-class-by-name\
|
|
417
|
-
\ heuristic (D16 residue; human sign-off required before use)] \u2014 verify manually before relying\
|
|
418
|
-
\ on this crosswalk for reasoning/joins."
|
|
419
|
-
- "schema_mappings.Issue.ontology_class = 'Incident' [DRAFT \u2014 nearest hub-canonical-class-by-name\
|
|
420
|
-
\ heuristic (D16 residue; human sign-off required before use)] \u2014 verify manually before relying\
|
|
421
|
-
\ on this crosswalk for reasoning/joins."
|
|
286
|
+
- "schema_mappings.CheckRun.ontology_class = 'PipelineRun' [source ttl rdfs:subClassOf] \u2014 verify\
|
|
287
|
+
\ manually before relying on this crosswalk for reasoning/joins."
|
|
288
|
+
- "schema_mappings.Epic.ontology_class = 'WorkItem' [source ttl rdfs:subClassOf] \u2014 verify manually\
|
|
289
|
+
\ before relying on this crosswalk for reasoning/joins."
|
|
290
|
+
- "schema_mappings.GitLabGroup.ontology_class = 'IdentityGroup' [source ttl rdfs:subClassOf] \u2014 verify\
|
|
291
|
+
\ manually before relying on this crosswalk for reasoning/joins."
|
|
292
|
+
- "schema_mappings.Issue.ontology_class = 'WorkItem' [source ttl rdfs:subClassOf] \u2014 verify manually\
|
|
293
|
+
\ before relying on this crosswalk for reasoning/joins."
|
|
422
294
|
- "schema_mappings.Job.ontology_class = 'Action' [DRAFT \u2014 nearest hub-canonical-class-by-name heuristic\
|
|
423
295
|
\ (D16 residue; human sign-off required before use)] \u2014 verify manually before relying on this crosswalk\
|
|
424
296
|
\ for reasoning/joins."
|
|
425
|
-
- "schema_mappings.MergeRequest.ontology_class =
|
|
426
|
-
\
|
|
427
|
-
- "schema_mappings.
|
|
428
|
-
\
|
|
429
|
-
- "schema_mappings.
|
|
430
|
-
\
|
|
431
|
-
- "schema_mappings.PipelineRun.ontology_class = None [UNRESOLVED \u2014 no crosswalk found by any heuristic]\
|
|
432
|
-
\ \u2014 verify manually before relying on this crosswalk for reasoning/joins."
|
|
433
|
-
- "schema_mappings.Project.ontology_class = 'SoftwareProject' [DRAFT \u2014 nearest hub-canonical-class-by-name\
|
|
434
|
-
\ heuristic (D16 residue; human sign-off required before use)] \u2014 verify manually before relying\
|
|
435
|
-
\ on this crosswalk for reasoning/joins."
|
|
436
|
-
- "schema_mappings.Release.ontology_class = None [UNRESOLVED \u2014 no crosswalk found by any heuristic]\
|
|
437
|
-
\ \u2014 verify manually before relying on this crosswalk for reasoning/joins."
|
|
438
|
-
- "schema_mappings.Runner.ontology_class = None [UNRESOLVED \u2014 no crosswalk found by any heuristic]\
|
|
439
|
-
\ \u2014 verify manually before relying on this crosswalk for reasoning/joins."
|
|
297
|
+
- "schema_mappings.MergeRequest.ontology_class = 'PullRequest' [source ttl rdfs:subClassOf] \u2014 verify\
|
|
298
|
+
\ manually before relying on this crosswalk for reasoning/joins."
|
|
299
|
+
- "schema_mappings.Pipeline.ontology_class = 'PipelineRun' [source ttl rdfs:subClassOf] \u2014 verify\
|
|
300
|
+
\ manually before relying on this crosswalk for reasoning/joins."
|
|
301
|
+
- "schema_mappings.Project.ontology_class = 'SoftwareProject' [source ttl rdfs:subClassOf] \u2014 verify\
|
|
302
|
+
\ manually before relying on this crosswalk for reasoning/joins."
|
|
@@ -35,7 +35,7 @@ from agent_connector_sdk.mcp.tool_surface import register_tool_surface
|
|
|
35
35
|
from gitlab_api.api_client import Api
|
|
36
36
|
from gitlab_api.auth import get_client
|
|
37
37
|
|
|
38
|
-
__version__ = "27.3.
|
|
38
|
+
__version__ = "27.3.8"
|
|
39
39
|
print(f"Gitlab MCP v{__version__}", file=sys.stderr)
|
|
40
40
|
|
|
41
41
|
logger = get_logger(name="mcp_server")
|
|
@@ -11,6 +11,9 @@
|
|
|
11
11
|
# per-package IRI. Backs the gitlab-api MCP tool surface (gitlab_projects / gitlab_merge_requests
|
|
12
12
|
# / gitlab_pipelines / gitlab_issues / …).
|
|
13
13
|
|
|
14
|
+
# Shared concepts owned by the epistemic-graph ontology and referenced here, never redeclared:
|
|
15
|
+
# Commit, Branch, Release, Runner, Milestone, PipelineRun. Only the GitLab-specific subclasses and properties are declared in this pack.
|
|
16
|
+
|
|
14
17
|
:GitLabGroup a owl:Class ;
|
|
15
18
|
rdfs:subClassOf :IdentityGroup ;
|
|
16
19
|
rdfs:label "GitLab Group" ;
|
|
@@ -22,6 +25,7 @@
|
|
|
22
25
|
rdfs:comment "A GitLab project / repository (gitlab_projects)." .
|
|
23
26
|
|
|
24
27
|
:MergeRequest a owl:Class ;
|
|
28
|
+
rdfs:subClassOf :PullRequest ;
|
|
25
29
|
rdfs:label "Merge Request" ;
|
|
26
30
|
rdfs:comment "A proposed change under review, from a source to a target branch (gitlab_merge_requests)." .
|
|
27
31
|
|
|
@@ -30,19 +34,12 @@
|
|
|
30
34
|
rdfs:label "Pipeline" ;
|
|
31
35
|
rdfs:comment "A CI/CD pipeline run for a commit/ref (gitlab_pipelines)." .
|
|
32
36
|
|
|
33
|
-
:PipelineRun a owl:Class ;
|
|
34
|
-
rdfs:label "Pipeline Run" ;
|
|
35
|
-
rdfs:comment """A single CI/CD execution for a commit/ref/merge request (a GitLab pipeline
|
|
36
|
-
run, ingested by gitlab_api.kg_ingest.ingest_pipeline_runs, id gitlab:pipelinerun:<project>:<id>).
|
|
37
|
-
Shares its class name with the twin github-agent producer so GitLab CI/CD and GitHub Actions
|
|
38
|
-
unify under one node shape in the knowledge graph.""" ;
|
|
39
|
-
owl:equivalentClass :Pipeline .
|
|
40
|
-
|
|
41
37
|
:Job a owl:Class ;
|
|
42
38
|
rdfs:label "Job" ;
|
|
43
39
|
rdfs:comment "A single stage/job within a pipeline (gitlab_jobs)." .
|
|
44
40
|
|
|
45
41
|
:CheckRun a owl:Class ;
|
|
42
|
+
rdfs:subClassOf :PipelineRun ;
|
|
46
43
|
rdfs:label "Check Run" ;
|
|
47
44
|
rdfs:comment """A single job/check within a PipelineRun (a GitLab pipeline job, ingested by
|
|
48
45
|
gitlab_api.kg_ingest.ingest_pipeline_runs, id gitlab:checkrun:<project>:<pipeline>:<job>).
|
|
@@ -59,26 +56,6 @@
|
|
|
59
56
|
rdfs:label "Epic" ;
|
|
60
57
|
rdfs:comment "A group-level container aggregating related issues (gitlab_epics)." .
|
|
61
58
|
|
|
62
|
-
:Milestone a owl:Class ;
|
|
63
|
-
rdfs:label "Milestone" ;
|
|
64
|
-
rdfs:comment "A time-boxed delivery target grouping issues and merge requests (gitlab_milestones)." .
|
|
65
|
-
|
|
66
|
-
:Commit a owl:Class ;
|
|
67
|
-
rdfs:label "Commit" ;
|
|
68
|
-
rdfs:comment "A git commit recorded in a project (gitlab_commits)." .
|
|
69
|
-
|
|
70
|
-
:Branch a owl:Class ;
|
|
71
|
-
rdfs:label "Branch" ;
|
|
72
|
-
rdfs:comment "A named git branch within a project (gitlab_branches)." .
|
|
73
|
-
|
|
74
|
-
:Release a owl:Class ;
|
|
75
|
-
rdfs:label "Release" ;
|
|
76
|
-
rdfs:comment "A tagged, published project release (gitlab_releases)." .
|
|
77
|
-
|
|
78
|
-
:Runner a owl:Class ;
|
|
79
|
-
rdfs:label "Runner" ;
|
|
80
|
-
rdfs:comment "A CI runner that executes pipeline jobs (gitlab_runners)." .
|
|
81
|
-
|
|
82
59
|
# --- links (owl:ObjectProperty) ---
|
|
83
60
|
|
|
84
61
|
:belongsToProject a owl:ObjectProperty ;
|
|
@@ -154,6 +131,7 @@
|
|
|
154
131
|
:state a owl:DatatypeProperty ;
|
|
155
132
|
rdfs:label "state" ;
|
|
156
133
|
rdfs:comment "Lifecycle state (opened, closed, merged, locked)." ;
|
|
134
|
+
rdfs:domain [ a owl:Class ; owl:unionOf ( :Issue :MergeRequest ) ] ;
|
|
157
135
|
rdfs:range xsd:string .
|
|
158
136
|
|
|
159
137
|
:pipelineStatus a owl:DatatypeProperty ;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gitlab-api
|
|
3
|
-
Version: 27.3.
|
|
3
|
+
Version: 27.3.8
|
|
4
4
|
Summary: GitLab API + MCP Server
|
|
5
5
|
Author-email: Project Maintainers <maintainers@users.noreply.github.com>
|
|
6
6
|
License: MIT
|
|
@@ -45,7 +45,7 @@ Dynamic: license-file
|
|
|
45
45
|

|
|
46
46
|

|
|
47
47
|
|
|
48
|
-
*Version: 27.3.
|
|
48
|
+
*Version: 27.3.8*
|
|
49
49
|
|
|
50
50
|
> **Documentation** — Installation, deployment, usage across the API, CLI, and MCP
|
|
51
51
|
> backing GitLab instance are maintained in the
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "gitlab-api"
|
|
7
|
-
version = "27.3.
|
|
7
|
+
version = "27.3.8"
|
|
8
8
|
description = "GitLab API + MCP Server"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
classifiers = [ "Development Status :: 5 - Production/Stable", "License :: OSI Approved :: MIT License", "Environment :: Console", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3",]
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"""Competency-question paths of the GitLab pack (CONN-GITLAB-API-CONNECTOR-CONTENT-R004)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import re
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
import pytest
|
|
9
|
+
import yaml
|
|
10
|
+
|
|
11
|
+
import gitlab_api
|
|
12
|
+
|
|
13
|
+
pytestmark = pytest.mark.spec("CONN-GITLAB-API-CONNECTOR-CONTENT-R004")
|
|
14
|
+
|
|
15
|
+
PACKAGE = Path(gitlab_api.__file__).parent
|
|
16
|
+
TTL = (PACKAGE / "ontology" / "gitlab.ttl").read_text("utf-8")
|
|
17
|
+
# Concepts the epistemic-graph ontology owns: referenced, never declared here.
|
|
18
|
+
SHARED = ("Commit", "Branch", "Release", "Runner", "Milestone", "PipelineRun")
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def _block(name: str) -> str:
|
|
22
|
+
match = re.search(rf"^:{name} a [^\n]*\n(?:[^\n]+\n)*", TTL, flags=re.M)
|
|
23
|
+
assert match, name
|
|
24
|
+
return match.group(0)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@pytest.mark.parametrize("name", SHARED)
|
|
28
|
+
def test_shared_concepts_are_not_redeclared(name: str) -> None:
|
|
29
|
+
assert not re.search(rf"^:{name} a owl:Class", TTL, flags=re.M), name
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def test_state_is_declared_on_the_issue_type() -> None:
|
|
33
|
+
block = _block("state")
|
|
34
|
+
assert re.search(r"rdfs:domain \[ a owl:Class ; owl:unionOf \( :Issue ", block)
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def test_merge_request_and_check_run_extend_shared_classes() -> None:
|
|
38
|
+
assert "rdfs:subClassOf :PullRequest" in _block("MergeRequest")
|
|
39
|
+
assert "rdfs:subClassOf :PipelineRun" in _block("CheckRun")
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def test_no_mapping_has_a_null_ontology_class() -> None:
|
|
43
|
+
manifest = yaml.safe_load(
|
|
44
|
+
(PACKAGE.parent / "connector_manifest.yml").read_text("utf-8")
|
|
45
|
+
)
|
|
46
|
+
unmapped = [
|
|
47
|
+
name
|
|
48
|
+
for name, mapping in manifest["schema_mappings"].items()
|
|
49
|
+
if not mapping["ontology_class"]
|
|
50
|
+
]
|
|
51
|
+
assert unmapped == []
|
|
@@ -32,12 +32,7 @@ PARENT_CLASSES = frozenset(
|
|
|
32
32
|
# parent class (see the orphan mapping report); a class leaves this set when it gains a parent.
|
|
33
33
|
PENDING_NEW_PARENT: frozenset[str] = frozenset(
|
|
34
34
|
(
|
|
35
|
-
"http://knuckles.team/kg#Branch",
|
|
36
|
-
"http://knuckles.team/kg#CheckRun",
|
|
37
35
|
"http://knuckles.team/kg#Job",
|
|
38
|
-
"http://knuckles.team/kg#Milestone",
|
|
39
|
-
"http://knuckles.team/kg#Release",
|
|
40
|
-
"http://knuckles.team/kg#Runner",
|
|
41
36
|
)
|
|
42
37
|
)
|
|
43
38
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-api-operations/agents/openai.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-merge-request-create/SKILL.md
RENAMED
|
File without changes
|
{gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-merge-request-create/WORKFLOW.md
RENAMED
|
File without changes
|
{gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-merge-request-review/SKILL.md
RENAMED
|
File without changes
|
{gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-merge-request-review/WORKFLOW.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gitlab_api-27.3.7 → gitlab_api-27.3.8}/gitlab_api/skills/gitlab-vulnerabilities/WORKFLOW.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|