README
🚀 MCP合并请求摘要生成器
MCP(模型上下文协议)工具,可根据git日志自动生成全面的合并请求摘要。该工具分析提交历史,对更改进行分类,并生成适合合并请求描述的结构化摘要。
🚀 快速开始
MCP合并请求摘要生成器是一款强大的工具,能帮助开发者更高效地处理合并请求。它可以自动分析提交历史,生成详细的摘要。
✨ 主要特性
- 自动提交分析:分析分支之间的git日志,以了解更改情况。
- 智能分类:按类型(功能、错误修复、重构等)对提交进行分类。
- 全面摘要:生成详细的合并请求描述,包含:
- 概述和统计信息
- 关键更改和重要提交
- 分类更改(功能、错误修复、重构)
- 重大更改检测
- 文件分类和影响分析
- 预估审核时间
- 多种输出格式:支持Markdown和JSON输出。
- 灵活集成:可独立运行,也可作为MCP服务器使用。
- 跨平台:与Windows、macOS和Linux兼容。
📦 安装指南
🚀 快速开始(推荐)
-
克隆仓库:
git clone https://github.com/yourusername/mcp-merge-request-summarizer.git cd mcp-merge-request-summarizer -
运行安装脚本:
- Windows:双击
install.bat或在PowerShell中运行install.bat。 - Mac/Linux:运行
chmod +x install.sh && ./install.sh。
- Windows:双击
-
配置编辑器:
- 查看
QUICK_START.md获取30秒设置说明。 - 或查看
configs/README.md获取详细配置选项。
- 查看
手动安装
git clone https://github.com/yourusername/mcp-merge-request-summarizer.git
cd mcp-merge-request-summarizer
pip install -e .
从PyPI安装
pip install mcp-merge-request-summarizer
⚠️ 重要提示
该软件包尚未发布到PyPI。目前,请使用安装脚本或手动安装。
💻 使用示例
作为独立工具使用
# 基本用法(将当前分支与develop分支进行比较)
python -m mcp_mr_summarizer.cli
# 指定不同的分支
python -m mcp_mr_summarizer.cli --base main --current feature/new-feature
# 输出到文件
python -m mcp_mr_summarizer.cli --output mr_summary.md
# JSON输出
python -m mcp_mr_summarizer.cli --format json --output summary.json
# 帮助信息
python -m mcp_mr_summarizer.cli --help
作为MCP服务器使用
-
配置MCP客户端(例如,Claude Desktop、Cursor、VSCode):
{ "mcp.servers": { "merge-request-summarizer": { "command": "python", "args": ["-m", "mcp_mr_summarizer.server"] } } } -
设置工作目录上下文(推荐):
# 设置工作目录,以便repo_path="."能正常工作 await set_working_directory("/path/to/your/git/repo") -
通过MCP客户端界面使用工具和资源:
工具(操作)
set_working_directory:设置代理的工作目录上下文。get_working_directory:获取当前工作目录上下文。generate_merge_request_summary:创建完整的合并请求摘要。analyze_git_commits:提供详细的提交分析。
资源(数据)
git://repo/status:当前仓库状态和信息。git://commits/{base_branch}..{current_branch}:分支之间的提交历史。git://branches:所有仓库分支的列表。git://files/changed/{base_branch}..{current_branch}:分支之间更改的文件。
📊 示例输出
# feat: 4个新功能和改进
## 概述
此合并请求包含9次提交,更改了35个文件(插入1543行,删除1485行)。
## 关键更改
- 重构MLB、NBA、NHL和NFL中的映射器,以使用对象初始化器语法(bdf5d9c) - 更改3028行。
- 重构赛季统计服务,以使用基类并改进依赖注入(30de323) - 更改1976行。
### 🚀 新功能(4个)
- 添加足球指标提取方法并注册足球赛季统计服务(176930f)。
- 更新服务以使用构造函数注入依赖项(29f1c46)。
- 更新CbStatsDaemon和CbStatsFeedPublicApi以使用异步主机运行方法(22c1202)。
- 重构PoolSeasonStatsController和相关服务(3a28ab4)。
### 🔧 重构(3个)
- 重构MLB、NBA、NHL和NFL中的映射器,以使用对象初始化器语法(bdf5d9c)。
- 重构赛季统计服务,以使用基类并改进依赖注入(30de323)。
- 重构赛季统计服务中的日志记录,以使用一致的大小写(fd7b8b9)。
### 📊 摘要
- **总提交数**:9
- **更改文件数**:35
- **插入行数**:1543
- **删除行数**:1485
- **预估审核时间**:1小时15分钟
🛠️ 配置
快速配置(推荐)
对于VSCode/Cursor
- 打开设置(Ctrl/Cmd + ,)。
- 对于VSCode:搜索“mcp”并点击“在settings.json中编辑”。
- 对于Cursor:转到工具与集成 → 新MCP服务器。
- 添加以下配置:
VSCode(settings.json):
{
"mcp.servers": {
"merge-request-summarizer": {
"command": "python",
"args": ["-m", "mcp_mr_summarizer.server"]
}
}
}
Cursor(GUI或settings.json):
- 名称:
merge-request-summarizer - 命令:
python - 参数:
["-m", "mcp_mr_summarizer.server"]
Cursor(替代JSON格式):
{
"mcpServers": {
"merge-request-summarizer": {
"command": "python",
"args": ["-m", "mcp_mr_summarizer.server"]
}
}
}
对于Claude Desktop
- 转到设置 → MCP服务器。
- 添加具有以下配置的新服务器:
{
"mcpServers": {
"merge-request-summarizer": {
"command": "python",
"args": ["-m", "mcp_mr_summarizer.server"]
}
}
}
即用型配置文件
从configs/文件夹中复制适当的配置:
configs/vscode_settings.json- 用于VSCode。configs/cursor_settings.json- 用于Cursor。configs/claude_desktop_config.json- 用于Claude Desktop。
查看configs/README.md获取详细设置说明。
🎯 自定义
添加自定义提交类别
通过修改categorize_commit方法扩展类别:
def categorize_commit(self, commit: CommitInfo) -> List[str]:
categories = []
message_lower = commit.message.lower()
# 添加自定义模式
if any(word in message_lower for word in ['security', 'vulnerability']):
categories.append('security')
# ... 现有模式 ...
return categories
自定义文件类别
添加自定义文件类型类别:
def _categorize_files(self, files: set) -> Dict[str, List[str]]:
categories = {
'Services': [],
'Models': [],
'Controllers': [],
'Tests': [],
'Configuration': [],
'Documentation': [],
'CustomCategory': [], # 添加自定义类别
'Other': []
}
for file in files:
if 'CustomPattern' in file: # 添加自定义模式
categories['CustomCategory'].append(file)
# ... 现有模式 ...
return categories
🧪 测试
# 运行测试
python -m pytest tests/
# 运行并生成覆盖率报告
python -m pytest tests/ --cov=mcp_mr_summarizer --cov-report=html
🤝 贡献
- 分叉仓库。
- 创建功能分支(
git checkout -b feature/amazing-feature)。 - 进行更改。
- 为更改添加测试。
- 运行测试套件。
- 提交更改(
git commit -m 'Add some amazing feature')。 - 推送到分支(
git push origin feature/amazing-feature)。 - 打开拉取请求。
📝 许可证
本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE文件。
🙏 致谢
- 为模型上下文协议(MCP)生态系统构建。
- 受对更好的合并请求文档需求的启发。
- 感谢所有贡献者和用户。
📞 支持
为想要更好合并请求摘要的开发者用心打造 ❤️
Scan to join WeChat group