](https://mseep.ai/app/siddheshdongare-git-pilot)
GIT飞行员
](https://www.python.org/downloads/)  ](https://github.com/yourusername/GIT-Pilot)
⭐️ If you find this project helpful, please give it a star! ⭐️
GIT-Pilot是一个强大的GitHub自动化和管理工具,为GitHub操作提供全面的API包装。它通过基于FastMCP的服务器简化了GitHub交互,使管理存储库、拉取请求、问题等变得容易。
🌟 特性
🔐 身份验证和安全
- 使用Fernet加密进行安全令牌管理
- 令牌过期和自动清理
- 速率限制处理和自动重试
- 可配置的身份验证超时
📦 库管理
- 创建和管理存储库
- 处理分支和提交
- 文件操作(创建、更新、删除)
- 存储库搜索和过滤
- 提交比较和历史记录
🔄 拉取请求操作
- 创建和管理pull请求
- 合并策略(合并、挤压、重基)
- 状态检查验证
- 冲突检测和处理
- PR支持草案
📝 问题管理
- 创建和更新问题
- 标签管理
- 受让人处理
- 评论管理
- 问题搜索和过滤
🛠 技术特性
- 线程安全操作
- 资源管理
- 全面的错误处理
- 详细日志记录
- 类型安全性
- 配置管理
- FastMCP服务器集成
🚀 入门指南
先决条件
- Python 3.12或更高版本
- GitHub账号
- GitHub个人访问令牌
- FastMCP命令行界面(可选)
安装
- 克隆存储库:
git clone https://github.com/yourusername/GIT-Pilot.git
cd GIT-Pilot- 安装uv(如果尚未安装):
curl -LsSf https://astral.sh/uv/install.sh | sh- 创建并激活虚拟环境:
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- 使用uv安装软件包:
uv pip install -e .- 设置环境变量:
创建一个 .env 项目根目录中的文件:
GITHUB_TOKEN=your_github_token_here基本用法
设置Claude桌面集成
- 启动GIT Pilot服务器:
uv run main.py- 下载并安装 克劳德桌面
- 配置Claude桌面:
- 打开克劳德桌面 - 首选 File > Settings > Developer > Edit Config - 添加以下配置:
{
"mcpServers": {
"GIT-Pilot": {
"command": "uv",
"args": [
"--directory",
"path\\to\\repo",
"run",
"main.py"
]
}
}
}- 重新启动克劳德桌面
- 在聊天窗口中查找锤子图标-这表示MCP服务器已准备好使用
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错误
- 费率限制
- 无效输入
- 资源冲突
- 网络问题
- 令牌验证
- 文件 操作
📈 日志记录
详细日志记录:
- 时间戳
- 日志级别
- 函数名
- 行号
- 错误详细信息
- 堆栈复写
- 费率限制信息
- 代币操作
🤝 贡献
我们欢迎捐款!请按照以下步骤操作:
- 分叉存储库
- 创建要素分支
- 提交您的更改
- 推到分支
- 创建拉取请求
📝 许可证
此项目根据GNU通用公共许可证v3.0获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
______________________________________________________________________
由以下材料制成❤️ GIT飞行员团队
