gitlab-api 25.36.2__tar.gz → 25.39.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.
- {gitlab_api-25.36.2/gitlab_api.egg-info → gitlab_api-25.39.0}/PKG-INFO +6 -6
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/README.md +1 -1
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/agent_server.py +1 -1
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/api_client.py +1 -1
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/gitlab_gql.py +4 -4
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_misc.py +1 -1
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp_server.py +2 -2
- {gitlab_api-25.36.2 → gitlab_api-25.39.0/gitlab_api.egg-info}/PKG-INFO +6 -6
- gitlab_api-25.39.0/gitlab_api.egg-info/requires.txt +21 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/pyproject.toml +5 -5
- gitlab_api-25.39.0/requirements.txt +1 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/tests/test_gitlab_api_brute_force_coverage.py +1 -1
- gitlab_api-25.36.2/gitlab_api.egg-info/requires.txt +0 -21
- gitlab_api-25.36.2/requirements.txt +0 -1
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/LICENSE +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/MANIFEST.in +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/__init__.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/__main__.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/api/__init__.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/api/api_client_base.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/api/api_client_environments.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/api/api_client_issues.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/api/api_client_merge_requests.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/api/api_client_other.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/api/api_client_pipelines.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/api/api_client_projects.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/api/api_client_repositories.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/api/api_client_system.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/api/api_client_users_groups.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/auth.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/gitlab_input_models.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/gitlab_response_models.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/__init__.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_branches.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_commits.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_custom_api.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_deploy_tokens.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_environments.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_epics.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_graphql.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_groups.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_issues.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_jobs.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_labels.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_members.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_merge_requests.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_merge_rules.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_milestones.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_notes.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_packages.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_pipeline_schedules.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_pipelines.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_projects.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_protected_branches.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_releases.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_runners.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_snippets.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp/mcp_tags.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api/mcp_config.json +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api.egg-info/SOURCES.txt +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api.egg-info/dependency_links.txt +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api.egg-info/entry_points.txt +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/gitlab_api.egg-info/top_level.txt +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/scripts/security_sanitizer.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/scripts/validate_a2a_agent.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/scripts/validate_agent.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/scripts/verify_api_integration.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/setup.cfg +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/tests/__init__.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/tests/conftest.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/tests/test_api_wrapper.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/tests/test_auth.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/tests/test_concept_parity.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/tests/test_gitlab_a2a_validation.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/tests/test_gitlab_gql.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/tests/test_gitlab_mcp_validation.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/tests/test_gitlab_models.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/tests/test_init_dynamics.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/tests/test_mock_coverage.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/tests/test_startup.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.0}/tests/test_verify_agent.py +0 -0
- {gitlab_api-25.36.2 → gitlab_api-25.39.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: 25.
|
|
3
|
+
Version: 25.39.0
|
|
4
4
|
Summary: GitLab API + MCP Server + A2A Server
|
|
5
5
|
Author-email: Audel Rouhi <knucklessg1@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -12,17 +12,17 @@ Classifier: Programming Language :: Python :: 3
|
|
|
12
12
|
Requires-Python: <3.14,>=3.11
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
|
-
Requires-Dist: agent-utilities>=0.
|
|
15
|
+
Requires-Dist: agent-utilities>=0.41.0
|
|
16
16
|
Requires-Dist: python-dotenv>=1.0.0
|
|
17
17
|
Requires-Dist: gql>=4.0.0
|
|
18
18
|
Provides-Extra: mcp
|
|
19
|
-
Requires-Dist: agent-utilities[mcp]>=0.
|
|
19
|
+
Requires-Dist: agent-utilities[mcp]>=0.41.0; extra == "mcp"
|
|
20
20
|
Provides-Extra: agent
|
|
21
|
-
Requires-Dist: agent-utilities[agent,logfire]>=0.
|
|
21
|
+
Requires-Dist: agent-utilities[agent,logfire]>=0.41.0; extra == "agent"
|
|
22
22
|
Provides-Extra: gql
|
|
23
23
|
Requires-Dist: gql>=4.0.0; extra == "gql"
|
|
24
24
|
Provides-Extra: all
|
|
25
|
-
Requires-Dist: gitlab-api[agent,gql,logfire,mcp]>=25.
|
|
25
|
+
Requires-Dist: gitlab-api[agent,gql,logfire,mcp]>=25.39.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
|

|
|
53
53
|

|
|
54
54
|
|
|
55
|
-
*Version: 25.
|
|
55
|
+
*Version: 25.39.0*
|
|
56
56
|
|
|
57
57
|
---
|
|
58
58
|
|
|
@@ -2071,7 +2071,7 @@ class GraphQL:
|
|
|
2071
2071
|
Note:
|
|
2072
2072
|
Deploy tokens are not fully supported in GraphQL; use REST API.
|
|
2073
2073
|
"""
|
|
2074
|
-
raise
|
|
2074
|
+
raise RuntimeError(
|
|
2075
2075
|
"Deploy tokens not available in GitLab GraphQL; use REST API."
|
|
2076
2076
|
)
|
|
2077
2077
|
|
|
@@ -2100,7 +2100,7 @@ class GraphQL:
|
|
|
2100
2100
|
Note:
|
|
2101
2101
|
Deploy tokens are not supported in GraphQL; use REST API.
|
|
2102
2102
|
"""
|
|
2103
|
-
raise
|
|
2103
|
+
raise RuntimeError(
|
|
2104
2104
|
"Deploy token creation not available in GitLab GraphQL; use REST API."
|
|
2105
2105
|
)
|
|
2106
2106
|
|
|
@@ -2121,7 +2121,7 @@ class GraphQL:
|
|
|
2121
2121
|
Note:
|
|
2122
2122
|
Deploy tokens are not supported in GraphQL; use REST API.
|
|
2123
2123
|
"""
|
|
2124
|
-
raise
|
|
2124
|
+
raise RuntimeError(
|
|
2125
2125
|
"Deploy token deletion not available in GitLab GraphQL; use REST API."
|
|
2126
2126
|
)
|
|
2127
2127
|
|
|
@@ -3331,7 +3331,7 @@ class GraphQL:
|
|
|
3331
3331
|
Note:
|
|
3332
3332
|
File uploads are not directly supported in GitLab GraphQL; use REST API.
|
|
3333
3333
|
"""
|
|
3334
|
-
raise
|
|
3334
|
+
raise RuntimeError(
|
|
3335
3335
|
"Wiki attachment upload not available in GitLab GraphQL; use REST API."
|
|
3336
3336
|
)
|
|
3337
3337
|
|
|
@@ -33,7 +33,7 @@ from dotenv import find_dotenv, load_dotenv
|
|
|
33
33
|
|
|
34
34
|
from gitlab_api.auth import get_client
|
|
35
35
|
|
|
36
|
-
__version__ = "25.
|
|
36
|
+
__version__ = "25.39.0"
|
|
37
37
|
print(f"Gitlab MCP v{__version__}", file=sys.stderr)
|
|
38
38
|
|
|
39
39
|
logger = get_logger(name="mcp_server")
|
|
@@ -45,7 +45,7 @@ DEFAULT_GITLAB_TOKEN = os.getenv("GITLAB_TOKEN", None)
|
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
def register_misc_tools(mcp: FastMCP):
|
|
48
|
-
|
|
48
|
+
return None
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
def register_branches_tools(mcp: FastMCP):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gitlab-api
|
|
3
|
-
Version: 25.
|
|
3
|
+
Version: 25.39.0
|
|
4
4
|
Summary: GitLab API + MCP Server + A2A Server
|
|
5
5
|
Author-email: Audel Rouhi <knucklessg1@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -12,17 +12,17 @@ Classifier: Programming Language :: Python :: 3
|
|
|
12
12
|
Requires-Python: <3.14,>=3.11
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
|
-
Requires-Dist: agent-utilities>=0.
|
|
15
|
+
Requires-Dist: agent-utilities>=0.41.0
|
|
16
16
|
Requires-Dist: python-dotenv>=1.0.0
|
|
17
17
|
Requires-Dist: gql>=4.0.0
|
|
18
18
|
Provides-Extra: mcp
|
|
19
|
-
Requires-Dist: agent-utilities[mcp]>=0.
|
|
19
|
+
Requires-Dist: agent-utilities[mcp]>=0.41.0; extra == "mcp"
|
|
20
20
|
Provides-Extra: agent
|
|
21
|
-
Requires-Dist: agent-utilities[agent,logfire]>=0.
|
|
21
|
+
Requires-Dist: agent-utilities[agent,logfire]>=0.41.0; extra == "agent"
|
|
22
22
|
Provides-Extra: gql
|
|
23
23
|
Requires-Dist: gql>=4.0.0; extra == "gql"
|
|
24
24
|
Provides-Extra: all
|
|
25
|
-
Requires-Dist: gitlab-api[agent,gql,logfire,mcp]>=25.
|
|
25
|
+
Requires-Dist: gitlab-api[agent,gql,logfire,mcp]>=25.39.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
|

|
|
53
53
|

|
|
54
54
|
|
|
55
|
-
*Version: 25.
|
|
55
|
+
*Version: 25.39.0*
|
|
56
56
|
|
|
57
57
|
---
|
|
58
58
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
agent-utilities>=0.41.0
|
|
2
|
+
python-dotenv>=1.0.0
|
|
3
|
+
gql>=4.0.0
|
|
4
|
+
|
|
5
|
+
[agent]
|
|
6
|
+
agent-utilities[agent,logfire]>=0.41.0
|
|
7
|
+
|
|
8
|
+
[all]
|
|
9
|
+
gitlab-api[agent,gql,logfire,mcp]>=25.39.0
|
|
10
|
+
|
|
11
|
+
[gql]
|
|
12
|
+
gql>=4.0.0
|
|
13
|
+
|
|
14
|
+
[mcp]
|
|
15
|
+
agent-utilities[mcp]>=0.41.0
|
|
16
|
+
|
|
17
|
+
[test]
|
|
18
|
+
pytest-xdist>=3.6.0
|
|
19
|
+
pytest
|
|
20
|
+
pytest-asyncio
|
|
21
|
+
pytest-cov
|
|
@@ -4,12 +4,12 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "gitlab-api"
|
|
7
|
-
version = "25.
|
|
7
|
+
version = "25.39.0"
|
|
8
8
|
description = "GitLab API + MCP Server + A2A Server"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
classifiers = [ "Development Status :: 5 - Production/Stable", "License :: Public Domain", "Environment :: Console", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3",]
|
|
11
11
|
requires-python = ">=3.11, <3.14"
|
|
12
|
-
dependencies = [ "agent-utilities>=0.
|
|
12
|
+
dependencies = [ "agent-utilities>=0.41.0", "python-dotenv>=1.0.0", "gql>=4.0.0",]
|
|
13
13
|
[[project.authors]]
|
|
14
14
|
name = "Audel Rouhi"
|
|
15
15
|
email = "knucklessg1@gmail.com"
|
|
@@ -18,10 +18,10 @@ email = "knucklessg1@gmail.com"
|
|
|
18
18
|
text = "MIT"
|
|
19
19
|
|
|
20
20
|
[project.optional-dependencies]
|
|
21
|
-
mcp = [ "agent-utilities[mcp]>=0.
|
|
22
|
-
agent = [ "agent-utilities[agent,logfire]>=0.
|
|
21
|
+
mcp = [ "agent-utilities[mcp]>=0.41.0",]
|
|
22
|
+
agent = [ "agent-utilities[agent,logfire]>=0.41.0",]
|
|
23
23
|
gql = [ "gql>=4.0.0",]
|
|
24
|
-
all = [ "gitlab-api[mcp,agent,gql,logfire]>=25.
|
|
24
|
+
all = [ "gitlab-api[mcp,agent,gql,logfire]>=25.39.0",]
|
|
25
25
|
test = [
|
|
26
26
|
"pytest-xdist>=3.6.0", "pytest", "pytest-asyncio", "pytest-cov",]
|
|
27
27
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
agent-utilities>=0.41.0
|
|
@@ -99,7 +99,7 @@ def test_mcp_server_coverage(mock_session):
|
|
|
99
99
|
return await call_next(context)
|
|
100
100
|
|
|
101
101
|
async def dummy_log(*args, **kwargs):
|
|
102
|
-
|
|
102
|
+
return None
|
|
103
103
|
|
|
104
104
|
# Let's mock get_client and get_graphql_client using dummy functions with proper signature
|
|
105
105
|
mock_api = MagicMock(spec=Api)
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
agent-utilities>=0.36.0
|
|
2
|
-
python-dotenv>=1.0.0
|
|
3
|
-
gql>=4.0.0
|
|
4
|
-
|
|
5
|
-
[agent]
|
|
6
|
-
agent-utilities[agent,logfire]>=0.36.0
|
|
7
|
-
|
|
8
|
-
[all]
|
|
9
|
-
gitlab-api[agent,gql,logfire,mcp]>=25.36.0
|
|
10
|
-
|
|
11
|
-
[gql]
|
|
12
|
-
gql>=4.0.0
|
|
13
|
-
|
|
14
|
-
[mcp]
|
|
15
|
-
agent-utilities[mcp]>=0.36.0
|
|
16
|
-
|
|
17
|
-
[test]
|
|
18
|
-
pytest-xdist>=3.6.0
|
|
19
|
-
pytest
|
|
20
|
-
pytest-asyncio
|
|
21
|
-
pytest-cov
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
agent-utilities>=0.6.2
|
|
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
|
|
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
|