Chromium Latest Commit
Query the latest commit information for any file in the Chromium repository with detailed commit data including hash, author, timestamp, message, modified files, and diffs. Integrate seamlessly with M
Description
Chromium Commits Query Tool
A comprehensive tool to query the latest commit information for files in the Chromium repository. Supports CLI usage, Python API integration, and Model Context Protocol (MCP) server functionality.
Features
- 🔍 Query Latest Commits: Get detailed information about the most recent commit that modified any file in the Chromium repository
- 📊 Comprehensive Details: Retrieve commit hash, author, timestamp, message, and complete list of modified files
- 🔧 Multiple Interfaces: Use via command line, Python API, or as an MCP server
- 📁 Batch Processing: Process multiple files at once with batch operations
- 🐳 Docker Support: Easy deployment with containerization
- 🌐 MCP Integration: Seamless integration with AI agents and tools
Installation
Using UV (Recommended)
git clone https://github.com/hydavinci/chromium-commits.git
cd chromium-commits
uv sync
Using pip
git clone https://github.com/hydavinci/chromium-commits.git
cd chromium-commits
pip install -r requirements.txt
Using Docker
docker build -t chromium-commits .
docker run --rm chromium-commits
Usage
🖥️ Command Line Interface (CLI)
Navigate to the src directory and use the following commands:
cd src
# Basic usage - get latest commit for a single file
python get_chromium_commits.py "chrome/browser/ui/browser.cc"
# Save output to file
python get_chromium_commits.py -o result.txt "components/sync/service/data_type_manager.cc"
# Show detailed diff information
python get_chromium_commits.py --show-diff "chrome/browser/ui/browser.cc"
# Batch processing multiple files
python batch_get_commits.py files.txt
🐍 Python API
from src.get_chromium_commits import ChromiumCommitFetcher
# Initialize the fetcher
fetcher = ChromiumCommitFetcher()
# Get basic commit info
basic_info = fetcher.get_file_latest_commit("chrome/browser/ui/browser.cc")
# Get detailed commit info with all modified files
detailed_info = fetcher.get_file_commit_info(
"chrome/browser/ui/browser.cc",
detailed=True,
show_diff=True
)
print(detailed_info)
🔗 MCP Server
Start the MCP server for integration with AI agents:
cd src
python server.py
The server provides the get_chromium_latest_commit tool that can be used by MCP-compatible clients.
📖 Example Usage
See src/example_usage.py for a comprehensive demonstration of the Python API:
cd src
python example_usage.py
📋 Example Output
=============================================================
Latest Commit Information for: chrome/browser/ui/browser.cc
=============================================================
Commit Hash: a1b2c3d4e5f6789abcdef123456789abcdef1234
Author: developer@chromium.org
Author Email: developer@chromium.org
Commit Time: 2024-12-20 15:30:45 UTC
Commit Message: [Chrome] Improve browser window management and memory optimization
Files modified in this commit (Total: 15):
[MODIFIED] chrome/browser/ui/browser.cc
[MODIFIED] chrome/browser/ui/browser.h
[MODIFIED] chrome/browser/ui/views/frame/browser_view.cc
[MODIFIED] chrome/browser/memory/tab_manager.cc
[ADDED] chrome/browser/ui/browser_memory_coordinator.cc
[ADDED] chrome/browser/ui/browser_memory_coordinator.h
[MODIFIED] chrome/test/base/browser_test_base.cc
...
Diff Details:
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -123,6 +123,10 @@ void Browser::CreateTabContents() {
web_contents->SetDelegate(this);
+
+ // Initialize memory coordinator for better resource management
+ memory_coordinator_ = std::make_unique<BrowserMemoryCoordinator>(this);
+ memory_coordinator_->Initialize();
}
🗂️ Common File Paths
Here are some frequently queried file paths in the Chromium repository:
Core Chrome Browser
cd src
python get_chromium_commits.py "chrome/browser/ui/browser.cc"
python get_chromium_commits.py "chrome/browser/chrome_browser_main.cc"
python get_chromium_commits.py "chrome/browser/profiles/profile_manager.cc"
Blink Rendering Engine
python get_chromium_commits.py "third_party/blink/renderer/core/dom/document.cc"
python get_chromium_commits.py "third_party/blink/renderer/core/html/parser/html_parser.cc"
python get_chromium_commits.py "third_party/blink/renderer/core/css/css_parser.cc"
Component Libraries
python get_chromium_commits.py "components/sync/service/data_type_manager.cc"
python get_chromium_commits.py "components/autofill/core/browser/autofill_manager.cc"
python get_chromium_commits.py "components/password_manager/core/browser/password_manager.cc"
Build and Configuration
python get_chromium_commits.py "BUILD.gn"
python get_chromium_commits.py "DEPS"
python get_chromium_commits.py ".gn"
Content/Web Platform
python get_chromium_commits.py "content/browser/renderer_host/render_process_host_impl.cc"
python get_chromium_commits.py "content/renderer/render_frame_impl.cc"
📁 Project Structure
chromium-commits/
├── src/
│ ├── get_chromium_commits.py # Main CLI tool and ChromiumCommitFetcher class
│ ├── batch_get_commits.py # Batch processing utility
│ ├── example_usage.py # Usage examples and demonstrations
│ └── server.py # MCP server implementation
├── pyproject.toml # Project configuration and dependencies
├── uv.lock # Dependency lock file
├── Dockerfile # Docker container configuration
├── smithery.yaml # Smithery MCP server configuration
├── LICENSE # MIT license
└── README.md # This documentation
⚙️ Requirements
- Python: 3.10 or higher
- Dependencies:
requests>=2.31.0(HTTP requests to Chromium Gitiles API)mcp>=1.0.0(Model Context Protocol server functionality)
- Network: Internet connection to access Chromium Gitiles API
🚀 API Reference
ChromiumCommitFetcher Class
Methods
-
get_file_latest_commit(file_path: str) -> Optional[Dict]- Returns basic commit information for the latest change to the specified file
-
get_commit_details(commit_hash: str) -> Optional[Dict]- Returns detailed information about a specific commit including all modified files
-
get_file_commit_info(file_path: str, detailed: bool = False, show_diff: bool = False) -> Optional[str]- Returns formatted commit information with optional details and diff
🔧 Configuration
The tool uses the Chromium Gitiles API and requires no authentication. All requests are made to:
https://chromium.googlesource.com/chromium/src
🤝 Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes and add tests
- Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin feature-name - Submit a pull request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🔗 Links
Reviews (0)
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!