gitlab-api 25.15.34__tar.gz → 25.15.41__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.15.34/gitlab_api.egg-info → gitlab_api-25.15.41}/PKG-INFO +5 -5
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/README.md +1 -1
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/gitlab_api/__init__.py +6 -4
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/gitlab_api/__main__.py +1 -1
- gitlab_api-25.15.41/gitlab_api/agent_data/IDENTITY.md +45 -0
- gitlab_api-25.15.41/gitlab_api/agent_data/chats +3 -0
- gitlab_api-25.15.41/gitlab_api/agent_data/icon.png +3 -0
- gitlab_api-25.15.34/gitlab_api/agent.py → gitlab_api-25.15.41/gitlab_api/agent_server.py +1 -1
- gitlab_api-25.15.34/gitlab_api/mcp.py → gitlab_api-25.15.41/gitlab_api/mcp_server.py +1 -1
- {gitlab_api-25.15.34 → gitlab_api-25.15.41/gitlab_api.egg-info}/PKG-INFO +5 -5
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/gitlab_api.egg-info/SOURCES.txt +13 -11
- gitlab_api-25.15.41/gitlab_api.egg-info/entry_points.txt +3 -0
- gitlab_api-25.15.41/gitlab_api.egg-info/requires.txt +13 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/pyproject.toml +10 -7
- gitlab_api-25.15.34/gitlab_api/agent/IDENTITY.md +0 -15
- gitlab_api-25.15.34/gitlab_api.egg-info/entry_points.txt +0 -3
- gitlab_api-25.15.34/gitlab_api.egg-info/requires.txt +0 -13
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/LICENSE +0 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/MANIFEST.in +0 -0
- /gitlab_api-25.15.34/gitlab_api/agent/AGENTS.md → /gitlab_api-25.15.41/gitlab_api/agent_data/A2A_AGENTS.md +0 -0
- {gitlab_api-25.15.34/gitlab_api/agent → gitlab_api-25.15.41/gitlab_api/agent_data}/CRON.md +0 -0
- {gitlab_api-25.15.34/gitlab_api/agent → gitlab_api-25.15.41/gitlab_api/agent_data}/CRON_LOG.md +0 -0
- {gitlab_api-25.15.34/gitlab_api/agent → gitlab_api-25.15.41/gitlab_api/agent_data}/HEARTBEAT.md +0 -0
- {gitlab_api-25.15.34/gitlab_api/agent → gitlab_api-25.15.41/gitlab_api/agent_data}/MEMORY.md +0 -0
- {gitlab_api-25.15.34/gitlab_api/agent → gitlab_api-25.15.41/gitlab_api/agent_data}/USER.md +0 -0
- {gitlab_api-25.15.34/gitlab_api/agent → gitlab_api-25.15.41/gitlab_api/agent_data}/mcp_config.json +0 -0
- {gitlab_api-25.15.34/gitlab_api/agent → gitlab_api-25.15.41/gitlab_api/agent_data}/templates.py +0 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/gitlab_api/auth.py +0 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/gitlab_api/gitlab_api.py +0 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/gitlab_api/gitlab_gql.py +0 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/gitlab_api/gitlab_input_models.py +0 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/gitlab_api/gitlab_response_models.py +0 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/gitlab_api.egg-info/dependency_links.txt +0 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/gitlab_api.egg-info/top_level.txt +0 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/requirements.txt +0 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/scripts/validate_a2a_agent.py +0 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/scripts/validate_agent.py +0 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/setup.cfg +0 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/tests/test_gitlab_a2a_validation.py +0 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/tests/test_gitlab_api.py +0 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/tests/test_gitlab_mcp_validation.py +0 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/tests/test_gitlab_models.py +0 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/tests/test_verify_agent.py +0 -0
- {gitlab_api-25.15.34 → gitlab_api-25.15.41}/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.15.
|
|
3
|
+
Version: 25.15.41
|
|
4
4
|
Summary: GitLab API + MCP Server + A2A Server
|
|
5
5
|
Author-email: Audel Rouhi <knucklessg1@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -12,11 +12,11 @@ Classifier: Programming Language :: Python :: 3
|
|
|
12
12
|
Requires-Python: >=3.10
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
|
-
Requires-Dist: agent-utilities>=0.2.
|
|
15
|
+
Requires-Dist: agent-utilities>=0.2.25
|
|
16
16
|
Provides-Extra: mcp
|
|
17
|
-
Requires-Dist: agent-utilities[mcp]>=0.2.
|
|
17
|
+
Requires-Dist: agent-utilities[mcp]>=0.2.25; extra == "mcp"
|
|
18
18
|
Provides-Extra: agent
|
|
19
|
-
Requires-Dist: agent-utilities[agent,logfire]>=0.2.
|
|
19
|
+
Requires-Dist: agent-utilities[agent,logfire]>=0.2.25; extra == "agent"
|
|
20
20
|
Provides-Extra: gql
|
|
21
21
|
Requires-Dist: gql>=4.0.0; extra == "gql"
|
|
22
22
|
Provides-Extra: all
|
|
@@ -46,7 +46,7 @@ Dynamic: license-file
|
|
|
46
46
|

|
|
47
47
|

|
|
48
48
|
|
|
49
|
-
*Version: 25.15.
|
|
49
|
+
*Version: 25.15.41*
|
|
50
50
|
|
|
51
51
|
## Overview
|
|
52
52
|
|
|
@@ -13,8 +13,8 @@ CORE_MODULES = [
|
|
|
13
13
|
|
|
14
14
|
OPTIONAL_MODULES = {
|
|
15
15
|
"gitlab_api.gitlab_gql": "gql",
|
|
16
|
-
"gitlab_api.
|
|
17
|
-
"gitlab_api.
|
|
16
|
+
"gitlab_api.agent_server": "agent",
|
|
17
|
+
"gitlab_api.mcp_server": "mcp",
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
|
|
@@ -48,8 +48,10 @@ for module_name, extra_name in OPTIONAL_MODULES.items():
|
|
|
48
48
|
else:
|
|
49
49
|
globals()[f"_{extra_name.upper()}_AVAILABLE"] = False
|
|
50
50
|
|
|
51
|
-
_MCP_AVAILABLE =
|
|
52
|
-
|
|
51
|
+
_MCP_AVAILABLE = (
|
|
52
|
+
"gitlab_api.mcp_server" in globals() or "gitlab_api.mcp_server" in sys.modules
|
|
53
|
+
)
|
|
54
|
+
_AGENT_AVAILABLE = "gitlab_api.agent_server" in globals()
|
|
53
55
|
_GQL_AVAILABLE = "gitlab_api.gitlab_gql" in globals()
|
|
54
56
|
|
|
55
57
|
__all__.extend(["_MCP_AVAILABLE", "_AGENT_AVAILABLE", "_GQL_AVAILABLE"])
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# IDENTITY.md - AdGuard Home Agent Identity
|
|
2
|
+
|
|
3
|
+
## [default]
|
|
4
|
+
* **Name:** GitLab Agent
|
|
5
|
+
* **Role:** GitLab DevOps operations including projects, groups, branches, merge requests, pipelines, and runners.
|
|
6
|
+
* **Emoji:** 🦊
|
|
7
|
+
* **Vibe:** Professional, efficient, helpful
|
|
8
|
+
|
|
9
|
+
### System Prompt
|
|
10
|
+
You are a specialized agent for **GitLab Agent**. You have two primary toolsets:
|
|
11
|
+
|
|
12
|
+
1. **Specialized GitLab Agent Tools**: Use the `mcp-client` skill to interact with the GitLab Agent MCP Server for all networking, DNS, and filtering administrative tasks. (If these tools are required, you must go through the entire Workflow for AdGuard Tasks to discover all capabilities)
|
|
13
|
+
2. **Internal Utility Tools**: Use native tools for memory management, automated scheduling, and collaborating with other specialized agents (A2A).
|
|
14
|
+
|
|
15
|
+
#### Workflow for GitLab Agent Tasks:
|
|
16
|
+
To access AdGuard Home MCP tools securely through the `mcp-client` skill, perform the following steps:
|
|
17
|
+
- **Discover Tools**: Call `run_skill_script(skill_name="mcp-client", script_name="scripts/mcp_client.py", args={"config": "../references/gitlab-api.json", "action": "list-mcp-tools"})`.
|
|
18
|
+
- **Call Tools**: Execute a specific tool by specifying it inside the `args` dictionary: `run_skill_script(skill_name="mcp-client", script_name="scripts/mcp_client.py", args={"config": "../references/gitlab-api.json", "action": "call-mcp-tool", "tool-name": "<TOOL_NAME>", "tool-args": "{\"arg\": \"val\"}"})`.
|
|
19
|
+
#### Workflow for Meta-Tasks:
|
|
20
|
+
- **Memory Management**:
|
|
21
|
+
- Use `create_memory` to persist critical decisions, outcomes, or user preferences.
|
|
22
|
+
- Use `search_memory` to find historical context or specific log entries.
|
|
23
|
+
- Use `delete_memory_entry` (with 1-based index) to prune incorrect or outdated information.
|
|
24
|
+
- Use `compress_memory` (default 50 entries) periodically to keep the log concise.
|
|
25
|
+
- **Advanced Scheduling**:
|
|
26
|
+
- Use `schedule_task` to automate any prompt (and its associated tools) on a recurring basis.
|
|
27
|
+
- Use `list_tasks` to review your current automated maintenance schedule.
|
|
28
|
+
- Use `delete_task` to permanently remove a recurring routine.
|
|
29
|
+
- **Collaboration (A2A)**:
|
|
30
|
+
- Use `list_a2a_peers` and `get_a2a_peer` to discover specialized agents.
|
|
31
|
+
- Use `register_a2a_peer` to add new agents and `delete_a2a_peer` to decommission them.
|
|
32
|
+
- **Dynamic Extensions**:
|
|
33
|
+
- Use `update_mcp_config` to register new MCP servers (takes effect on next run).
|
|
34
|
+
- Use `create_skill` to scaffold new capabilities and `edit_skill` / `get_skill_content` to refine them.
|
|
35
|
+
- Use `delete_skill` to remove workspace-level skills that are no longer needed.
|
|
36
|
+
|
|
37
|
+
Anytime you are asked about your capabilities, you must walk through this dual-set of tools (AdGuard Specialized + Internal Utilities).
|
|
38
|
+
|
|
39
|
+
### Capabilities
|
|
40
|
+
- **Specialized GitLab Agent Administration**: Full control via the GitLab Agent MCP Server.
|
|
41
|
+
- **Long-Term Memory**: Comprehensive persistence, search, deletion, and compression of historical context in `MEMORY.md`.
|
|
42
|
+
- **Persistent Automation**: Robust scheduling of periodic tasks with full lifecycle management (create, list, delete).
|
|
43
|
+
- **Inter-Agent Collaboration**: Discovery, registration, and removal of A2A peer agents for distributed task execution.
|
|
44
|
+
- **Self-Extension**: Dynamic creation and modification of skills and MCP configurations to adapt to new environments.
|
|
45
|
+
- **Self-Diagnostics**: Standardized periodic self-checks via the `HEARTBEAT.md` workflow.
|
|
@@ -20,7 +20,7 @@ from gitlab_api.auth import get_client
|
|
|
20
20
|
from starlette.requests import Request
|
|
21
21
|
from starlette.responses import JSONResponse
|
|
22
22
|
|
|
23
|
-
__version__ = "25.15.
|
|
23
|
+
__version__ = "25.15.41"
|
|
24
24
|
print(f"Gitlab MCP v{__version__}")
|
|
25
25
|
|
|
26
26
|
logger = get_logger(name="mcp_server")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gitlab-api
|
|
3
|
-
Version: 25.15.
|
|
3
|
+
Version: 25.15.41
|
|
4
4
|
Summary: GitLab API + MCP Server + A2A Server
|
|
5
5
|
Author-email: Audel Rouhi <knucklessg1@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -12,11 +12,11 @@ Classifier: Programming Language :: Python :: 3
|
|
|
12
12
|
Requires-Python: >=3.10
|
|
13
13
|
Description-Content-Type: text/markdown
|
|
14
14
|
License-File: LICENSE
|
|
15
|
-
Requires-Dist: agent-utilities>=0.2.
|
|
15
|
+
Requires-Dist: agent-utilities>=0.2.25
|
|
16
16
|
Provides-Extra: mcp
|
|
17
|
-
Requires-Dist: agent-utilities[mcp]>=0.2.
|
|
17
|
+
Requires-Dist: agent-utilities[mcp]>=0.2.25; extra == "mcp"
|
|
18
18
|
Provides-Extra: agent
|
|
19
|
-
Requires-Dist: agent-utilities[agent,logfire]>=0.2.
|
|
19
|
+
Requires-Dist: agent-utilities[agent,logfire]>=0.2.25; extra == "agent"
|
|
20
20
|
Provides-Extra: gql
|
|
21
21
|
Requires-Dist: gql>=4.0.0; extra == "gql"
|
|
22
22
|
Provides-Extra: all
|
|
@@ -46,7 +46,7 @@ Dynamic: license-file
|
|
|
46
46
|

|
|
47
47
|

|
|
48
48
|
|
|
49
|
-
*Version: 25.15.
|
|
49
|
+
*Version: 25.15.41*
|
|
50
50
|
|
|
51
51
|
## Overview
|
|
52
52
|
|
|
@@ -5,28 +5,30 @@ pyproject.toml
|
|
|
5
5
|
requirements.txt
|
|
6
6
|
gitlab_api/__init__.py
|
|
7
7
|
gitlab_api/__main__.py
|
|
8
|
-
gitlab_api/
|
|
8
|
+
gitlab_api/agent_server.py
|
|
9
9
|
gitlab_api/auth.py
|
|
10
10
|
gitlab_api/gitlab_api.py
|
|
11
11
|
gitlab_api/gitlab_gql.py
|
|
12
12
|
gitlab_api/gitlab_input_models.py
|
|
13
13
|
gitlab_api/gitlab_response_models.py
|
|
14
|
-
gitlab_api/
|
|
14
|
+
gitlab_api/mcp_server.py
|
|
15
15
|
gitlab_api.egg-info/PKG-INFO
|
|
16
16
|
gitlab_api.egg-info/SOURCES.txt
|
|
17
17
|
gitlab_api.egg-info/dependency_links.txt
|
|
18
18
|
gitlab_api.egg-info/entry_points.txt
|
|
19
19
|
gitlab_api.egg-info/requires.txt
|
|
20
20
|
gitlab_api.egg-info/top_level.txt
|
|
21
|
-
gitlab_api/
|
|
22
|
-
gitlab_api/
|
|
23
|
-
gitlab_api/
|
|
24
|
-
gitlab_api/
|
|
25
|
-
gitlab_api/
|
|
26
|
-
gitlab_api/
|
|
27
|
-
gitlab_api/
|
|
28
|
-
gitlab_api/
|
|
29
|
-
gitlab_api/
|
|
21
|
+
gitlab_api/agent_data/A2A_AGENTS.md
|
|
22
|
+
gitlab_api/agent_data/CRON.md
|
|
23
|
+
gitlab_api/agent_data/CRON_LOG.md
|
|
24
|
+
gitlab_api/agent_data/HEARTBEAT.md
|
|
25
|
+
gitlab_api/agent_data/IDENTITY.md
|
|
26
|
+
gitlab_api/agent_data/MEMORY.md
|
|
27
|
+
gitlab_api/agent_data/USER.md
|
|
28
|
+
gitlab_api/agent_data/chats
|
|
29
|
+
gitlab_api/agent_data/icon.png
|
|
30
|
+
gitlab_api/agent_data/mcp_config.json
|
|
31
|
+
gitlab_api/agent_data/templates.py
|
|
30
32
|
scripts/validate_a2a_agent.py
|
|
31
33
|
scripts/validate_agent.py
|
|
32
34
|
tests/test_gitlab_a2a_validation.py
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "gitlab-api"
|
|
7
|
-
version = "25.15.
|
|
7
|
+
version = "25.15.41"
|
|
8
8
|
description = "GitLab API + MCP Server + A2A Server"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [{ name = "Audel Rouhi", email = "knucklessg1@gmail.com" }]
|
|
@@ -17,13 +17,13 @@ classifiers = [
|
|
|
17
17
|
"Programming Language :: Python :: 3"]
|
|
18
18
|
requires-python = ">=3.10"
|
|
19
19
|
dependencies = [
|
|
20
|
-
"agent-utilities>=0.2.
|
|
20
|
+
"agent-utilities>=0.2.25"]
|
|
21
21
|
[project.optional-dependencies]
|
|
22
22
|
mcp = [
|
|
23
|
-
"agent-utilities[mcp]>=0.2.
|
|
23
|
+
"agent-utilities[mcp]>=0.2.25"]
|
|
24
24
|
|
|
25
25
|
agent = [
|
|
26
|
-
"agent-utilities[agent,logfire]>=0.2.
|
|
26
|
+
"agent-utilities[agent,logfire]>=0.2.25"]
|
|
27
27
|
|
|
28
28
|
gql = [
|
|
29
29
|
"gql>=4.0.0"]
|
|
@@ -33,11 +33,14 @@ all = [
|
|
|
33
33
|
]
|
|
34
34
|
|
|
35
35
|
[project.scripts]
|
|
36
|
-
gitlab-mcp = "gitlab_api.
|
|
37
|
-
gitlab-agent = "gitlab_api.
|
|
36
|
+
gitlab-mcp = "gitlab_api.mcp_server:mcp_server"
|
|
37
|
+
gitlab-agent = "gitlab_api.agent_server:agent_server"
|
|
38
38
|
|
|
39
39
|
[tool.setuptools.package-data]
|
|
40
|
-
gitlab_api = [ "mcp_config.json", "
|
|
40
|
+
gitlab_api = [ "mcp_config.json", "agent_data/**"]
|
|
41
41
|
|
|
42
42
|
[tool.setuptools.packages.find]
|
|
43
43
|
where = ["."]
|
|
44
|
+
|
|
45
|
+
[tool.setuptools]
|
|
46
|
+
include-package-data = true
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# IDENTITY.md - GitLab Agent Identity
|
|
2
|
-
|
|
3
|
-
## [default]
|
|
4
|
-
* **Name:** GitLab Agent
|
|
5
|
-
* **Role:** GitLab DevOps operations including projects, groups, branches, merge requests, pipelines, and runners.
|
|
6
|
-
* **Emoji:** 🦊
|
|
7
|
-
|
|
8
|
-
### System Prompt
|
|
9
|
-
You are the GitLab Agent.
|
|
10
|
-
You must always first run `list_skills` to show all skills.
|
|
11
|
-
Then, use the `mcp-client` universal skill and check the reference documentation for `gitlab-api.md` to discover the exact tags and tools available for your capabilities.
|
|
12
|
-
|
|
13
|
-
### Capabilities
|
|
14
|
-
- **MCP Operations**: Leverage the `mcp-client` skill to interact with the target MCP server. Refer to `gitlab-api.md` for specific tool capabilities.
|
|
15
|
-
- **Custom Agent**: Handle custom tasks or general tasks.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gitlab_api-25.15.34/gitlab_api/agent → gitlab_api-25.15.41/gitlab_api/agent_data}/CRON_LOG.md
RENAMED
|
File without changes
|
{gitlab_api-25.15.34/gitlab_api/agent → gitlab_api-25.15.41/gitlab_api/agent_data}/HEARTBEAT.md
RENAMED
|
File without changes
|
{gitlab_api-25.15.34/gitlab_api/agent → gitlab_api-25.15.41/gitlab_api/agent_data}/MEMORY.md
RENAMED
|
File without changes
|
|
File without changes
|
{gitlab_api-25.15.34/gitlab_api/agent → gitlab_api-25.15.41/gitlab_api/agent_data}/mcp_config.json
RENAMED
|
File without changes
|
{gitlab_api-25.15.34/gitlab_api/agent → gitlab_api-25.15.41/gitlab_api/agent_data}/templates.py
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
|