From 3df20b30a974a063eeed0983d98396a3ea74fe0e Mon Sep 17 00:00:00 2001 From: Dawid Rycerz Date: Thu, 17 Jul 2025 10:39:49 +0300 Subject: feat: add debug messages to detect version change --- servers/gitlab_python/pyproject.toml | 2 +- .../src/mcp_server_gitlab_python/server.py | 31 +++++++++++++++++----- servers/gitlab_python/uv.lock | 2 +- 3 files changed, 26 insertions(+), 9 deletions(-) (limited to 'servers') diff --git a/servers/gitlab_python/pyproject.toml b/servers/gitlab_python/pyproject.toml index 1b7bd1d..98f423b 100644 --- a/servers/gitlab_python/pyproject.toml +++ b/servers/gitlab_python/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "mcp-server-gitlab-python" -version = "0.1.0" +version = "0.2.0" description = "An MCP server for GitLab using python-gitlab" readme = "README.md" requires-python = ">=3.11" diff --git a/servers/gitlab_python/src/mcp_server_gitlab_python/server.py b/servers/gitlab_python/src/mcp_server_gitlab_python/server.py index 6688a1a..2f03b84 100644 --- a/servers/gitlab_python/src/mcp_server_gitlab_python/server.py +++ b/servers/gitlab_python/src/mcp_server_gitlab_python/server.py @@ -5,6 +5,7 @@ from typing import Any import gitlab import yaml from mcp.server.fastmcp import FastMCP +import mcp_server_gitlab_python logger = logging.getLogger("mcp_gitlab_python_server") @@ -96,6 +97,7 @@ def get_gitlab_settings(working_directory: str) -> tuple[str, str]: class GitLabPythonServer: def __init__(self, working_directory: str) -> None: + logger.info(f"Starting GitLabPythonServer version: {mcp_server_gitlab_python.__version__}") url, token = get_gitlab_settings(working_directory) self.gl = gitlab.Gitlab(url, private_token=token) self.gl.auth() @@ -192,22 +194,34 @@ class GitLabPythonServer: try: proj = self.gl.projects.get(project) mr = proj.mergerequests.get(mr_iid) - # Get the diff as a list of dicts (one per file) diffs = mr.diffs.list(get_all=True) - # Build unified diff string + logger.debug(f"Fetched {len(diffs)} diffs for MR {mr_iid} in project {project}") + if diffs: + logger.debug(f"First diff type: {type(diffs[0])}, attributes: {dir(diffs[0])}") diff_content = "" - for diff in diffs: - old_path = diff.old_path - new_path = diff.new_path - # Filter by extension + for i, diff in enumerate(diffs): + logger.debug(f"Processing diff #{i}: type={type(diff)}, attrs={dir(diff)}") + if all(hasattr(diff, attr) for attr in ("old_path", "new_path", "diff")): + old_path = diff.old_path + new_path = diff.new_path + diff_text = diff.diff + logger.debug(f"Using direct attributes for diff #{i}: old_path={old_path}, new_path={new_path}") + else: + logger.debug(f"Fetching full diff object for diff #{i} (id={getattr(diff, 'id', None)})") + full_diff = mr.diffs.get(diff.id) + old_path = full_diff.old_path + new_path = full_diff.new_path + diff_text = full_diff.diff if any( old_path.endswith(ext) or new_path.endswith(ext) for ext in filter_extensions ): + logger.debug(f"Skipping diff #{i} due to filter extension: {old_path}, {new_path}") continue diff_content += f"diff --git a/{old_path} b/{new_path}\n" - diff_content += diff.diff + "\n" + diff_content += diff_text + "\n" diff_size_kb = len(diff_content.encode("utf-8")) / 1024 + logger.debug(f"Total diff size: {diff_size_kb:.2f} KB") if diff_size_kb > max_size_kb: try: with tempfile.NamedTemporaryFile( @@ -219,6 +233,7 @@ class GitLabPythonServer: ) as temp_file: temp_file.write(diff_content) temp_path = temp_file.name + logger.info(f"Diff too large, saved to {temp_path}") return { "diff_too_large": True, "size_kb": round(diff_size_kb, 2), @@ -231,6 +246,7 @@ class GitLabPythonServer: ) } except Exception as e: + logger.error(f"Failed to create temp file for large diff: {e}") return { "error": ( f"Diff is too large ({diff_size_kb:.2f} KB) and failed to " @@ -243,6 +259,7 @@ class GitLabPythonServer: "temp_file_path": None } except Exception as e: + logger.error(f"Exception in get_mr_diff: {e}", exc_info=True) return {"error": str(e)} def run_ci_pipeline( diff --git a/servers/gitlab_python/uv.lock b/servers/gitlab_python/uv.lock index 5601b46..5f9ec61 100644 --- a/servers/gitlab_python/uv.lock +++ b/servers/gitlab_python/uv.lock @@ -310,7 +310,7 @@ wheels = [ [[package]] name = "mcp-server-gitlab-python" -version = "0.1.0" +version = "0.2.0" source = { editable = "." } dependencies = [ { name = "gitpython" }, -- cgit v1.2.3