PR分析自动化工具

一个通过Slack集成自动分析GitHub拉取请求并发送团队通知的MCP服务器。

  • by mozaloom
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 mozaloom/codecraft-pr-agent

使用说明

公关代理

一种模型上下文协议(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类型的模板:

  • 错误修正
  • 功能实现
  • 文档更新
  • 代码重构
  • 测试
  • 性能改进
  • 安全修补程序

安装

  1. 克隆存储库:
git clone https://github.com/mozaloom/codecraft-pr-agent.git
cd codecraft-pr-agent
  1. 使用uv安装依赖项(推荐):
uv sync

或者使用pip:

pip install -r requirements.txt
  1. 设置环境变量: 创建一个 .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文件。