G

GitHub飞行员

@SiddheshDongare/GIT-Pilot
1 Stars 327 次浏览 SiddheshDongare 更新于 2026-08-23

通过基于FastMCP的服务器为GitHub操作提供了一个全面的API包装器,简化了仓库管理、拉取请求、问题和其他GitHub交互,并具有安全的身份验证。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "GIT-Pilot": {
      "args": [
        "--directory",
        "path\\to\\repo",
        "run",
        "main.py"
      ],
      "command": "uv"
    }
  }
}

该服务需要配置环境变量:GITHUB_TOKEN

服务介绍

GIT-Pilot

Python Version
License
GitHub

GIT-Pilot 是一个强大的 GitHub 自动化和管理工具,提供了全面的 GitHub 操作 API 封装。它通过基于 FastMCP 的服务器简化了与 GitHub 的交互,使管理仓库、拉取请求、问题等变得简单。

🌟 功能

🔐 认证与安全

  • 使用 Fernet 加密的安全令牌管理
  • 令牌过期和自动清理
  • 速率限制处理和自动重试
  • 可配置的认证超时

📦 仓库管理

  • 创建和管理仓库
  • 处理分支和提交
  • 文件操作(创建、更新、删除)
  • 仓库搜索和过滤
  • 提交比较和历史记录

🔄 拉取请求操作

  • 创建和管理拉取请求
  • 合并策略(合并、压缩、变基)
  • 状态检查验证
  • 冲突检测和处理
  • 草稿 PR 支持

📝 问题管理

  • 创建和更新问题
  • 标签管理
  • 分配者处理
  • 评论管理
  • 问题搜索和过滤

🛠 技术特性

  • 线程安全操作
  • 资源管理
  • 全面的错误处理
  • 详细日志记录
  • 类型安全
  • 配置管理
  • FastMCP 服务器集成

🚀 快速开始

前提条件

  • Python 3.12 或更高版本
  • GitHub 账户
  • GitHub 个人访问令牌
  • FastMCP CLI(可选)

安装

  1. 克隆仓库:
git clone https://github.com/yourusername/GIT-Pilot.git
cd GIT-Pilot
  1. 安装 uv(如果尚未安装):
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. 创建并激活虚拟环境:
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. 使用 uv 安装包:
uv pip install -e .
  1. 设置环境变量:
    在项目根目录下创建一个 .env 文件:
GITHUB_TOKEN=your_github_token_here

API 示例

# Create a repository
await call_tool("create_repository",
    name="my-repo",
    description="My awesome repository",
    private=True,
    has_issues=True,
    has_wiki=True,
    has_projects=True,
    auto_init=True
)

# Create a pull request
await call_tool("create_pull_request",
    repo_path="owner/repo",
    title="New feature",
    head="feature-branch",
    base="main",
    body="Description of changes",
    draft=False
)

# List commits with filtering
await call_tool("list_commits",
    repo_path="owner/repo",
    branch="main",
    author="username",
    since="2024-01-01",
    until="2024-04-21",
    max_results=30
)

🔧 配置

可以通过 Config 类来配置服务:

@dataclass
class Config:
    TOKEN_TTL_HOURS: int = 24
    MAX_STORED_TOKENS: int = 1000
    CLEANUP_INTERVAL_SECONDS: int = 3600
    MAX_RETRIES: int = 3
    RETRY_DELAY_SECONDS: int = 5
    MAX_RESULTS_PER_PAGE: int = 100
    ENCRYPTION_KEY: bytes = Fernet.generate_key()

🛡 安全

  • 令牌在静止状态下使用 Fernet 加密
  • 自动令牌过期和清理
  • 带有重试的速率限制保护
  • 输入验证
  • 全面的错误处理
  • 安全的令牌清理

🔄 速率限制

服务包括内置的速率限制处理:

  • 在达到速率限制时自动重试
  • 可配置的重试尝试次数
  • 重试之间的延迟
  • 速率限制状态日志
  • 指数退避

🧪 错误处理

全面的错误处理,包括:

  • 认证失败
  • API 错误
  • 速率限制
  • 无效输入
  • 资源冲突
  • 网络问题
  • 令牌验证
  • 文件操作

📈 日志记录

详细的日志记录,包括:

  • 时间戳
  • 日志级别
  • 函数名
  • 行号
  • 错误详情
  • 堆栈跟踪
  • 速率限制信息
  • 令牌操作

🤝 贡献

我们欢迎贡献!请遵循以下步骤:

  1. Fork 仓库
  2. 创建功能分支
  3. 提交你的更改
  4. 推送到分支
  5. 创建 Pull Request

📝 许可证

本项目采用 GNU General Public License v3.0 许可 - 详情请参阅 LICENSE 文件。

🙏 致谢

📞 支持

🔄 更新

保持最新更新:


由 GIT-Pilot 团队用心制作 ❤️

相关 MCP 服务