get_chromium_latest_commit
Retrieve the most recent commit details for a specific file in the Chromium repository, including hash, author, message, and changes.
Instructions
MCP handler to get the latest commit information for a specified file in Chromium repository
Args:
file_path (str): Relative path of the file in Chromium repository (e.g., "components/sync/service/data_type_manager.cc")
Returns:
str: Formatted commit information including hash, author, message, modified files list, and diff details
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes |
Implementation Reference
- src/server.py:70-82 (handler)The MCP tool handler function, registered via @mcp.tool decorator, which executes the tool logic by instantiating ChromiumCommitFetcher and calling its get_file_commit_info method with detailed and diff options.@mcp.tool("get_chromium_latest_commit") async def get_chromium_latest_commit(file_path: str): """ MCP handler to get the latest commit information for a specified file in Chromium repository Args: file_path (str): Relative path of the file in Chromium repository (e.g., "components/sync/service/data_type_manager.cc") Returns: str: Formatted commit information including hash, author, message, modified files list, and diff details """ fetcher = ChromiumCommitFetcher() return fetcher.get_file_commit_info(file_path, detailed=True, show_diff=True)
- src/get_chromium_commits.py:249-281 (helper)Core helper method in ChromiumCommitFetcher class that orchestrates fetching the latest commit info for a file, retrieves commit details and diff if requested, and formats the output. This is the primary implementation delegated to by the tool handler.def get_file_commit_info( self, file_path: str, detailed: bool = True, show_diff: bool = False ) -> Optional[str]: """ Get complete commit information for a file Args: file_path: File path detailed: Whether to get detailed information (including all modified files) show_diff: Whether to show diff code comparison Returns: Formatted commit information string """ # Get the latest commit for the file commit_info = self.get_file_latest_commit(file_path) if not commit_info: return None commit_details = None commit_diff = None commit_hash = commit_info.get("commit") if commit_hash: if detailed: commit_details = self.get_commit_details(commit_hash) if show_diff: commit_diff = self.get_commit_diff(commit_hash) return self.format_commit_info( commit_info, commit_details, show_diff, commit_diff )
- src/get_chromium_commits.py:27-73 (helper)Helper method that queries the Chromium Gitiles API to find the latest commit hash and basic info for the specific file path.def get_file_latest_commit(self, file_path: str) -> Optional[Dict]: """ Get the latest commit information for the specified file Args: file_path: Relative path of the file, e.g. "components/sync/service/data_type_manager.cc" Returns: Dictionary containing commit information, or None if not found """ # Normalize path format (use forward slashes) normalized_path = file_path.replace("\\", "/") # Build API URL to get commit history for this file url = f"{self.base_url}/+log/HEAD/{normalized_path}?format=JSON&n=1" try: print(f"Querying file: {normalized_path}") print(f"Request URL: {url}") response = requests.get(url, timeout=30) response.raise_for_status() # Gitiles API returns JSON with a security prefix ")]}'" that needs to be removed content = response.text if content.startswith(")]}'"): content = content[4:] data = json.loads(content) if "log" not in data or not data["log"]: print(f"Error: No commit history found for file {normalized_path}") return None # Get the latest commit latest_commit = data["log"][0] return latest_commit except requests.exceptions.RequestException as e: print(f"Network request error: {e}") return None except json.JSONDecodeError as e: print(f"JSON parsing error: {e}") return None except Exception as e: print(f"Unknown error: {e}") return None