diff --git a/src/git/pyproject.toml b/src/git/pyproject.toml index f25b33d064..1869135c60 100644 --- a/src/git/pyproject.toml +++ b/src/git/pyproject.toml @@ -36,4 +36,4 @@ dev-dependencies = ["pyright>=1.1.389", "ruff>=0.7.3", "pytest>=8.0.0"] testpaths = ["tests"] python_files = "test_*.py" python_classes = "Test*" -python_functions = "test_*" \ No newline at end of file +python_functions = "test_*" diff --git a/src/git/src/mcp_server_git/py.typed b/src/git/src/mcp_server_git/py.typed new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/git/src/mcp_server_git/server.py b/src/git/src/mcp_server_git/server.py index c6a346cfef..3b13e28367 100644 --- a/src/git/src/mcp_server_git/server.py +++ b/src/git/src/mcp_server_git/server.py @@ -102,16 +102,16 @@ def git_log(repo: git.Repo, max_count: int = 10) -> list[str]: log = [] for commit in commits: log.append( - f"Commit: {commit.hexsha}\n" - f"Author: {commit.author}\n" + f"Commit: {commit.hexsha!r}\n" + f"Author: {commit.author!r}\n" f"Date: {commit.authored_datetime}\n" - f"Message: {commit.message}\n" + f"Message: {commit.message!r}\n" ) return log def git_create_branch(repo: git.Repo, branch_name: str, base_branch: str | None = None) -> str: if base_branch: - base = repo.refs[base_branch] + base = repo.references[base_branch] else: base = repo.active_branch @@ -132,10 +132,10 @@ def git_init(repo_path: str) -> str: def git_show(repo: git.Repo, revision: str) -> str: commit = repo.commit(revision) output = [ - f"Commit: {commit.hexsha}\n" - f"Author: {commit.author}\n" - f"Date: {commit.authored_datetime}\n" - f"Message: {commit.message}\n" + f"Commit: {commit.hexsha!r}\n" + f"Author: {commit.author!r}\n" + f"Date: {commit.authored_datetime!r}\n" + f"Message: {commit.message!r}\n" ] if commit.parents: parent = commit.parents[0] @@ -166,62 +166,62 @@ async def list_tools() -> list[Tool]: Tool( name=GitTools.STATUS, description="Shows the working tree status", - inputSchema=GitStatus.schema(), + inputSchema=GitStatus.model_json_schema(), ), Tool( name=GitTools.DIFF_UNSTAGED, description="Shows changes in the working directory that are not yet staged", - inputSchema=GitDiffUnstaged.schema(), + inputSchema=GitDiffUnstaged.model_json_schema(), ), Tool( name=GitTools.DIFF_STAGED, description="Shows changes that are staged for commit", - inputSchema=GitDiffStaged.schema(), + inputSchema=GitDiffStaged.model_json_schema(), ), Tool( name=GitTools.DIFF, description="Shows differences between branches or commits", - inputSchema=GitDiff.schema(), + inputSchema=GitDiff.model_json_schema(), ), Tool( name=GitTools.COMMIT, description="Records changes to the repository", - inputSchema=GitCommit.schema(), + inputSchema=GitCommit.model_json_schema(), ), Tool( name=GitTools.ADD, description="Adds file contents to the staging area", - inputSchema=GitAdd.schema(), + inputSchema=GitAdd.model_json_schema(), ), Tool( name=GitTools.RESET, description="Unstages all staged changes", - inputSchema=GitReset.schema(), + inputSchema=GitReset.model_json_schema(), ), Tool( name=GitTools.LOG, description="Shows the commit logs", - inputSchema=GitLog.schema(), + inputSchema=GitLog.model_json_schema(), ), Tool( name=GitTools.CREATE_BRANCH, description="Creates a new branch from an optional base branch", - inputSchema=GitCreateBranch.schema(), + inputSchema=GitCreateBranch.model_json_schema(), ), Tool( name=GitTools.CHECKOUT, description="Switches branches", - inputSchema=GitCheckout.schema(), + inputSchema=GitCheckout.model_json_schema(), ), Tool( name=GitTools.SHOW, description="Shows the contents of a commit", - inputSchema=GitShow.schema(), + inputSchema=GitShow.model_json_schema(), ), Tool( name=GitTools.INIT, description="Initialize a new Git repository", - inputSchema=GitInit.schema(), + inputSchema=GitInit.model_json_schema(), ) ]