项目简介

Git PR Manager 是一个现代化的 Go 语言工具,旨在自动化跨多个 Git 仓库的 Pull Request 管理。它支持 GitHub、GitLab 和 Bitbucket,能够智能筛选、合并 PR,并提供丰富的统计和通知功能。

本仓库包含一个集成的 MCP 服务器(基于 Model Context Protocol),可以将这些强大的 PR 管理能力以标准化的方式暴露给 AI 助手客户端。通过 MCP 服务器,AI 助手能够通过自然语言与工具交互、访问上下文资源,实现对 Pull Request 的检查、合并和状态监控等自动化操作。

主要功能点

  • 多平台 PR 管理: 统一管理 GitHub、GitLab 和 Bitbucket 上的 Pull Request。
  • 自动化合并: 根据预设规则(如信任的机器人、状态检查、批准要求)智能筛选并自动合并 PR。
  • 丰富的上下文信息: AI 助手可访问 MCP 服务器提供的当前配置、仓库统计、环境状态和命令帮助等关键资源,获取实时数据。
  • AI 可调用工具: AI 助手可通过调用 MCP 服务器注册的工具,执行 PR 设置、验证、检查、合并、监控和统计等具体操作。
  • 安全与性能: 采用 Go 语言原生性能,支持并发处理、API 速率限制、健壮的重试机制和环境安全配置。
  • 灵活的通知: 支持将 PR 状态和合并结果通过 Slack 或电子邮件发送通知。

安装步骤

  1. 下载或构建可执行文件:

    • 推荐: 从项目 GitHub Release 页面下载适用于您操作系统的最新 'git-pr-cli' 和 'git-pr-mcp' 可执行文件。下载后,请确保将它们移动到系统 PATH 目录中(例如 '/usr/local/bin'),并赋予执行权限。
    • 或者从源代码构建:
      git clone https://github.com/pacphi/git-pr-manager.git
      cd git-pr-manager
      make build
      # 这将生成 git-pr-cli(CLI 客户端)和 git-pr-mcp(MCP 服务器)两个可执行文件。
  2. 配置 Git 服务提供商的身份验证:

    • 将您的 GitHub、GitLab 或 Bitbucket 访问令牌设置为环境变量。这是 MCP 服务器和 CLI 工具访问 Git 仓库所必需的。
    • 例如:
      export GITHUB_TOKEN="ghp_YOUR_GITHUB_TOKEN"
      export GITLAB_TOKEN="glpat_YOUR_GITLAB_TOKEN"
      export BITBUCKET_USERNAME="your_bitbucket_username"
      export BITBUCKET_APP_PASSWORD="your_bitbucket_app_password"
      # 如果是 Bitbucket Cloud,可能还需要设置工作区
      export BITBUCKET_WORKSPACE="your_bitbucket_workspace"
  3. 设置您要管理的仓库:

    • 使用 'git-pr-cli' 命令行工具的交互式向导来配置您希望进行 Pull Request 自动化管理的仓库:
      git-pr-cli setup wizard
    • 您也可以手动编辑生成的 'config.yaml' 配置文件,以自定义 PR 筛选规则、合并策略和通知设置等。
    • 配置完成后,运行以下命令验证配置是否正确,以及与 Git 提供商的连接是否正常:
      git-pr-cli validate --check-auth --check-repos

服务器配置(供 MCP 客户端使用)

本 MCP 服务器('git-pr-mcp')通过 JSON-RPC 协议的 Stdios 传输方式与 MCP 客户端通信。MCP 客户端(如 AI 助手集成插件)需要以下配置信息来与服务器建立连接:

{
  "server_name": "Git PR MCP Server",
  "command": "git-pr-mcp",
  "args": [],
  "description": "提供Git Pull Request管理和自动化功能,允许AI助手通过自然语言检查、合并和监控Pull Request。"
}

配置说明:

  • 'server_name':MCP 服务器的名称,用于标识该服务。
  • 'command':启动 MCP 服务器可执行文件的命令。如果 'git-pr-mcp' 文件已添加到系统 PATH,只需写 'git-pr-mcp';否则,请提供其完整路径,例如 '/path/to/git-pr-manager/bin/git-pr-mcp'。
  • 'args':启动 MCP 服务器时传递的命令行参数列表。通常为空,或根据需要添加 '--log-level debug' 等调试参数。
  • 'description':对该 MCP 服务器功能的简要描述,供 MCP 客户端展示给用户。

基本使用方法

MCP 服务器通常在后台运行,由 MCP 客户端(如 AI 助手集成)自动调用和管理。您可以通过 AI 助手发出自然语言指令来利用其功能:

  • 检查 Pull Request 状态:
    • “检查所有仓库中等待合并的 Pull Request。”
    • “列出 GitHub 上 'myorg/web-app' 仓库中所有开放的 PR。”
  • 自动化合并 Pull Request:
    • “合并所有通过了所有检查并准备就绪的 Pull Request。”
    • “在 'myorg/backend' 仓库中进行一次模拟合并(dry run)。”
  • 获取统计信息:
    • “给我过去 30 天内 Pull Request 的统计报告。”
    • “显示 'myorg/mobile-app' 仓库的 Pull Request 贡献者统计。”
  • 查看当前配置和环境状态:
    • “显示 Git PR 管理器的当前配置详情。”
    • “检查当前环境的认证令牌是否都已设置。”
  • 配置环境:
    • “启动交互式向导来配置新的仓库。”

信息

分类

开发者工具