gitlab_get_commit
Retrieve detailed information about a specific GitLab commit including author, message, and change statistics using the commit SHA identifier.
Instructions
Get single commit details Returns: Complete commit information with stats Use when: Examining specific commit Required: Commit SHA (short or full)
Example response: { "id": "e83c5163316f89bfbde7d9ab23ca2e25604af290", "title": "Fix critical bug", "message": "Fix critical bug\n\nDetailed explanation...", "author": {"name": "John Doe", "email": "john@example.com"}, "parent_ids": ["ae1d9fb46aa2b07ee9836d49862ec4e2c46fbbba"], "stats": { "additions": 15, "deletions": 3, "total": 18 } }
Related tools:
gitlab_get_commit_diff: View changes
gitlab_cherry_pick_commit: Apply to another branch
gitlab_list_commits: Browse history
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No | Project identifier (auto-detected if not provided) Type: integer OR string Format: numeric ID or 'namespace/project' Optional: Yes - auto-detects from current git repository Examples: - 12345 (numeric ID) - 'gitlab-org/gitlab' (namespace/project path) - 'my-group/my-subgroup/my-project' (nested groups) Note: If in a git repo with GitLab remote, this can be omitted | |
| commit_sha | Yes | Git commit SHA Type: string Format: Abbreviated (min 7 chars) or full 40-character SHA Required: Yes Examples: - 'a1b2c3d' (short form - minimum 7 characters) - 'a1b2c3d4e5f6' (medium form) - 'e83c5163316f89bfbde7d9ab23ca2e25604af290' (full SHA) How to find: git log, GitLab UI, or MR/commit pages | |
| include_stats | No | Include statistics Type: boolean Default: false Options: - true: Include additions, deletions, total changes - false: Basic information only Use case: true for code review, false for quick browsing |
Implementation Reference
- src/mcp_gitlab/tool_handlers.py:199-206 (handler)The primary handler function that implements the core logic for the gitlab_get_commit tool. Extracts project_id (auto-detects from git if possible), commit_sha, and optional stats flag, then calls the GitLabClient.get_commit method.def handle_get_commit(client: GitLabClient, arguments: Optional[Dict[str, Any]]) -> Dict[str, Any]: """Handle getting single commit""" project_id = require_project_id(client, arguments) commit_sha = require_argument(arguments, "commit_sha") include_stats = get_argument(arguments, "include_stats", False) return client.get_commit(project_id, commit_sha, include_stats)
- Pydantic/JSON schema definition for the gitlab_get_commit tool input parameters, including descriptions from tool_descriptions.py.name=TOOL_GET_COMMIT, description=desc.DESC_GET_COMMIT, inputSchema={ "type": "object", "properties": { "project_id": {"type": "string", "description": desc.DESC_PROJECT_ID}, "commit_sha": {"type": "string", "description": desc.DESC_COMMIT_SHA}, "include_stats": {"type": "boolean", "description": desc.DESC_INCLUDE_STATS, "default": False} }, "required": ["commit_sha"] } ),
- src/mcp_gitlab/tool_handlers.py:1034-1034 (registration)Registration of the handle_get_commit function in the central TOOL_HANDLERS dictionary used by the MCP server to route tool calls.TOOL_GET_COMMIT: handle_get_commit,
- src/mcp_gitlab/constants.py:219-219 (registration)Constant definition of the tool name 'gitlab_get_commit' used consistently across the codebase for registration and references.TOOL_GET_COMMIT = "gitlab_get_commit"
- Detailed description text for the gitlab_get_commit tool, used in schema definitions and documentation.DESC_GET_COMMIT = """Get single commit details Returns: Complete commit information with stats Use when: Examining specific commit Required: Commit SHA (short or full) Example response: { "id": "e83c5163316f89bfbde7d9ab23ca2e25604af290", "title": "Fix critical bug", "message": "Fix critical bug\\n\\nDetailed explanation...", "author": {"name": "John Doe", "email": "john@example.com"}, "parent_ids": ["ae1d9fb46aa2b07ee9836d49862ec4e2c46fbbba"], "stats": { "additions": 15, "deletions": 3, "total": 18 } } Related tools: - gitlab_get_commit_diff: View changes - gitlab_cherry_pick_commit: Apply to another branch - gitlab_list_commits: Browse history"""