
公关代理
一种模型上下文协议(MCP)服务器,通过Slack集成自动执行拉取请求分析和团队通知。
概述
该项目提供了一个智能PR代理,可以监控GitHub工作流事件,使用AI分析拉取请求,并向Slack频道发送结构化通知。它结合了MCP工具和提示,以创建完整的团队沟通工作流程。
特性
- 自动PR分析:使用Google Gemini AI分析拉取请求内容并生成见解
- GitHub Webhook集成:监控GitHub操作事件和工作流运行
- Slack通知:通过webhooks向Slack频道发送格式化通知
- PR模板:支持具有预定义模板的多种PR类型(错误修复、功能、文档等)
- 事件存储:存储GitHub事件以进行处理和分析
- MCP服务器:通过模型上下文协议显示工具和提示
组件
核心文件
server.py-集成Slack通知的主MCP服务器webhook_server.py-用于接收事件的GitHub webhook端点mcp_gemini_client.py-用于公关分析的Gemini AI客户端templates/-针对不同类型变更的PR模板
模板
该项目包括常见PR类型的模板:
- 错误修正
- 功能实现
- 文档更新
- 代码重构
- 测试
- 性能改进
- 安全修补程序
安装
- 克隆存储库:
git clone https://github.com/mozaloom/codecraft-pr-agent.git
cd codecraft-pr-agent- 使用uv安装依赖项(推荐):
uv sync或者使用pip:
pip install -r requirements.txt- 设置环境变量:
创建一个 .env 文件包含:
GEMINI_API_KEY=your_google_gemini_api_key_here
SLACK_WEBHOOK_URL=your_slack_webhook_url或者,运行安装脚本:
bash setup.sh用法
启动MCP服务器
python server.py启动Webhook服务器
python webhook_server.py配置 GitHub Webhooks
在GitHub存储库中设置一个指向webhook服务器端点的webhook。webhook应在以下时间触发:
- 拉取请求事件
- 工作流运行事件
- 检查运行事件
配置
可以通过环境变量和模板目录配置代理。修改模板以根据团队的特定需求定制公关分析。
需求
- Python 3.12+
- UV包管理器(推荐)或pip
- Google Gemini API密钥
- Slack 网钩 URL
- 具有webhook访问权限的GitHub存储库
发展
运行测试:
pytest或者使用紫外线:
uv run pytest许可证
有关详细信息,请参阅LICENSE文件。
