README
🚀 Gerrit 代码审查 MCP 服务器
此 MCP 服务器提供了与 Gerrit 代码审查系统集成的功能,允许 AI 助手通过简单的接口查看和评估代码变更及其详细信息,极大地提升了代码审查的效率和便捷性。
🚀 快速开始
此 MCP 服务器提供了与 Gerrit 代码审查系统集成的功能,允许 AI 助手通过简单的接口查看和评估代码变更及其详细信息。在使用前,请确保满足以下先决条件:
- 安装 Python 3.8 或更高版本。
- 确保 Gerrit 服务器已启用 HTTPS 访问。
- 配置正确的 HTTP 凭证以访问 Gerrit REST API。
✨ 主要特性
该服务器提供了一套精简的代码审查工具:
获取变更详情
fetch_gerrit_change(change_id: str, patchset_number: Optional[str] = None)
- 获取完整的变更信息,包括文件和补丁集。
- 显示每个修改文件的详细差异信息。
- 展示文件更改、插入和删除。
- 支持查看特定补丁集。
- 返回全面的变更详情,涵盖项目和分支信息、作者和审阅者信息、评论和审查历史记录、文件修改内容及差异、当前补丁集信息。
比较补丁集差异
fetch_patchset_diff(change_id: str, base_patchset: str, target_patchset: str, file_path: Optional[str] = None)
- 比较两个补丁集之间的差异。
- 查看特定文件的差异或所有更改文件。
- 分析代码修改在补丁集版本中的演变。
- 跟踪审查迭代中的变更发展。
📦 安装指南
通过 Smithery
使用以下命令安装和管理此包:
smith install @cayirtepeomer/gerrit-code-review-mcp
手动安装
- 克隆仓库:
git clone https://github.com/cayirtepeomer/gerrit-code-review-mcp.git cd gerrit-code-review-mcp - 安装依赖项:
pip install -r requirements.txt
💻 使用示例
基础用法
审查完整的变更:
# 获取变更 23824 的最新补丁集
change = fetch_gerrit_change("23824")
高级用法
比较特定的补丁集
# 比较变更 23824 中补丁集 1 和 2 的差异
diff = fetch_patchset_diff("23824", "1", "2")
获取某个文件在两个补丁集之间的具体变化
# 获取 change_id 下 file_path 文件在 base 到 target 补丁集的修改内容
content_diff = fetch_patchset_diff(change_id, base, target, file_path=file_path)
📚 详细文档
配置步骤
环境变量设置
在项目的根目录下创建一个 .env 文件,并添加以下内容:
GERRIT_HOST=your-gerrit-host
GERRIT_USERNAME=username
GERRIT_HTTP_PASSWORD=http-password
将 your-gerrit-host 替换为您的 Gerrit 服务器地址,例如:https://gerrit.example.com
MCP 配置
在项目的根目录下创建或修改 config.json 文件,并添加以下内容:
{
"servers": {
"gerrit-code-review-mcp": {
"host": "localhost",
"port": 8080,
"ssl": false,
"auth": {
"type": "digest",
"username": "your-username",
"password": "your-http-password"
}
}
}
}
故障排除
如果遇到连接问题:
- 确保 HTTP 密码设置正确。
- 检查
GERRIT_HOST设置。 - 确保 Gerrit 服务器启用了 HTTPS 访问。
- 使用 curl 测试连接:
curl -u "username:http-password" https://your-gerrit-host/a/changes/ - 确认您的账户在 Gerrit 上有访问权限。
🔧 技术细节
该服务器使用 Gerrit REST API 进行交互,具备以下特点:
- 快速可靠的变更信息检索。
- 使用 HTTP 摘要认证的安全性。
- 支持多种 Gerrit REST 终端点。
- 清洁且易于维护的代码库。
- HTTPS 加密以确保通信安全。
📄 许可证
此项目采用 MIT 许可证。
贡献指南
我们欢迎任何贡献!请按照以下步骤操作:
- 叉取仓库。
- 创建功能分支。
- 进行修改。
- 提交拉取请求。
Scan to contact