GitHub PR分析服务

一个基于Hugging Face AI的GitHub拉取请求分析服务,提供AI生成的摘要、模板建议和CI/CD集成。

  • by PranshuBatham67
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 PranshuBatham67/Git_PR_MCP

使用说明

GitHub PR MCP服务器与云集成

一个模型上下文协议(MCP)服务器,用于分析GitHub拉取请求,使用Hugging Face提供AI支持的摘要和模板建议。

特性

  • 🔍 Git分析:分析文件更改并提交历史记录
  • 📝 PR模板:7个专业公关模板(Bug修复、功能、文档等)
  • 🤖 AI集成:拥抱脸驱动的公关摘要和描述生成
  • 🔄 GitHub操作:用于CI/CD状态监控的Webhook集成
  • 💬 Slack通知:自动团队通知
  • 🐳 集装箱准备就绪:Docker部署支持

建筑

  • server.py:带分析工具的主MCP服务器
  • webhook_server.py:GitHub webhook接收器
  • templates/:PR模板文件
  • 通过拥抱面部推理API实现云集成

快速开始

本地开发

  1. 克隆和设置:

    git clone <your-repo>
    cd github-pr-mcp
    pip install -r requirements.txt
    
  2. 配置环境:

    cp .env.example .env
    # Edit .env with your tokens
    
  3. 测试集成:

    python test_slack.py  # Test Slack webhook
    
  4. 运行LLM客户端(推荐):

    python llm_client.py
    
  5. 或者直接运行MCP服务器:

    python server.py
    
  6. 运行webhook服务器(独立终端):

    python webhook_server.py
    

Docker部署

  1. 构建并运行:

    docker-compose up -d
    
  2. 检查日志:

    docker-compose logs -f
    

云部署选项

铁路

# Deploy webhook server
railway login
railway link
railway add --name pr-mcp-webhook
railway up

渲染

  1. 将GitHub仓库连接到Render
  2. 在仪表板中设置环境变量
  3. 部署为web服务

拥抱面部空间

对于AI组件,部署为具有Gradio界面的Space。

环境变量

# Required
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/YOUR/WEBHOOK
HUGGINGFACE_API_TOKEN=your_huggingface_token

# Optional
GITHUB_TOKEN=your_github_token  # For enhanced Git operations

Slack设置

看 SLAK_SETUP.md 获取完整的Slack webhook配置指南。

可用工具

岩心分析

  • analyze_file_changes:Git差异分析
  • get_pr_templates:列出可用模板
  • suggest_template:人工智能模板建议

云AI

  • summarize_pr_changes:拥抱面部动力总结
  • generate_pr_description:AI PR描述生成

CI/CD集成

  • get_recent_actions_events:GitHub操作事件
  • get_workflow_status:工作流监控
  • send_slack_notification:团队通知

终端用户如何互动

生产部署流程

  1. 存储库所有者 设置指向已部署服务器的GitHub webhooks
  2. Webhook服务器 接收GitHub事件(PR、CI/CD运行)并存储它们
  3. 开发者 在本地使用LLM客户端分析PR并获得AI帮助

用户交互方法

方法1:LLM客户端(推荐)

python llm_client.py

自然语言查询:

You: analyze the changes in my current branch
You: suggest a PR template for this feature
You: check CI/CD status
You: send deployment notification to Slack

方法2:直接MCP服务器

python server.py  # Runs MCP server for MCP-compatible clients

方法3:仅限Webhook

  • GitHub事件的自动处理
  • 存储数据以供以后分析
  • 无直接用户交互

现实世界的集成示例

场景:开发人员从事公关工作

1. Developer pushes code to feature branch
2. GitHub sends webhook to deployed server
3. Server stores PR data
4. Developer runs: python llm_client.py
5. Asks: "analyze my current PR changes"
6. LLM client fetches data and provides analysis

场景:团队CI/CD监控

1. CI pipeline runs on GitHub Actions
2. Webhook server receives workflow events
3. Team member asks: "check our CI status"
4. Gets real-time workflow status
5. Can send Slack alerts if needed

API使用

webhook服务器在以下位置接受GitHub webhooks:

POST https://your-deployed-server.onrender.com/webhook/github

看 GITHUB_INTEGRATION.md 获取完整的GitHub设置指南。

测试

pytest test_server.py -v

部署检查表

  • []设置环境变量
  • []配置GitHub webhooks
  • []测试本地部署
  • []部署到云平台
  • []验证webhook连接
  • []测试AI集成
  • []监控日志和性能

贡献

  1. 克隆该仓库
  2. 创建特征分支
  3. 为新功能添加测试
  4. 提交拉取请求

许可证

MIT许可证