返回市场
代码飞行员

代码飞行员

作者:SiddheshDongare4 星标更新:2025-06-17

项目介绍

MseeP.ai 安全评估徽章

GIT-Pilot

<div align="center"> <img src="images/logo.jpg" alt="GIT-Pilot 徽标" width="200"/> </div>

Python 版本 许可证 GitHub

<div align="center"> <h3>⭐️ 如果您觉得这个项目有用,请给它一个星!⭐️</h3> </div>

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  # 在 Windows 上:.venv\Scripts\activate
  1. 使用 uv 安装包:
uv pip install -e .
  1. 设置环境变量: 在项目根目录中创建一个 .env 文件:
GITHUB_TOKEN=您的_github_令牌

基本用法

设置 Claude Desktop 集成

  1. 启动 GIT-Pilot 服务器:
uv run main.py
  1. 下载并安装 Claude Desktop

  2. 配置 Claude Desktop:

    • 打开 Claude Desktop
    • 转到 文件 > 设置 > 开发者 > 编辑配置
    • 添加以下配置:
{
    "mcpServers": {
        "GIT-Pilot": {
            "命令": "uv",
            "参数": [
                "--directory",
                "路径\\到\\仓库",
                "运行",
                "main.py"
            ]
        }
    }
}
  1. 重启 Claude Desktop
  2. 查找聊天窗口中的锤子图标——这表示 MCP 服务器已准备好使用

API 示例

# 创建一个仓库
await call_tool("create_repository",
    名称="我的仓库",
    描述="我的很棒的仓库",
    私有=True,
    有问题=True,
    有维基=True,
    有项目=True,
    自动初始化=True
)

# 创建一个拉取请求
await call_tool("create_pull_request",
    仓库路径="所有者/仓库",
    标题="新功能",
    头="功能分支",
    基础="主",
    内容="更改描述",
    草稿=False
)

# 列出带有过滤的提交
await call_tool("list_commits",
    仓库路径="所有者/仓库",
    分支="主",
    作者="用户名",
    自="2024-01-01",
    至="2024-04-21",
    最大结果数=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. 分叉仓库
  2. 创建一个功能分支
  3. 提交您的更改
  4. 推送到分支
  5. 创建一个拉取请求

📝 许可证

此项目根据 GNU 通用公共许可证 v3.0 许可——请参阅 LICENSE 文件以获取详细信息。

🙏 致谢


由 GIT-Pilot 团队制作 ❤️