返回市场
代码匠-pr代理

代码匠-pr代理

作者:mozaloom2 星标更新:2025-07-05

项目介绍

Python CI

PR 代理

这是一个通过与Slack集成来自动化拉取请求分析和团队通知的模型上下文协议(MCP)服务器。

概述

该项目提供了一个智能的PR代理,它监控GitHub工作流事件,使用AI分析拉取请求,并通过webhooks向Slack频道发送结构化的通知。它结合了MCP工具和提示,创建完整的团队通信工作流程。

特性

  • 自动化的PR分析:使用Google Gemini AI分析拉取请求内容并生成见解
  • GitHub Webhook集成:监控GitHub Actions事件和工作流运行
  • Slack通知:通过webhooks向Slack频道发送格式化的通知
  • PR模板:支持多种预定义模板的PR类型(错误修复、功能实现、文档更新等)
  • 事件存储:存储GitHub事件以供处理和分析
  • MCP服务器:通过模型上下文协议暴露工具和提示

组件

核心文件

  • server.py - 主MCP服务器,包含Slack通知集成
  • webhook_server.py - GitHub webhook端点,用于接收事件
  • mcp_gemini_client.py - Gemini AI客户端,用于PR分析
  • 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应在以下事件触发时启动:

  • 拉取请求事件
  • 工作流运行事件
  • 检查运行事件

配置

代理可以通过环境变量和模板目录进行配置。修改模板以自定义PR分析,满足团队的具体需求。

要求

  • Python 3.12+
  • UV包管理器(推荐)或pip
  • Google Gemini API密钥
  • Slack webhook URL
  • 具有webhook访问权限的GitHub仓库

开发

运行测试:

pytest

或者使用uv:

uv run pytest

许可证

详情见LICENSE文件。