GITパイロット
GIT-Pilotは、GitHub操作のための包括的なAPIラッパーを提供する、強力なGitHub自動化・管理ツールです。FastMCPベースのサーバーを通じてGitHubとのやり取りを簡素化し、リポジトリ、プルリクエスト、問題管理などを容易にします。
🌟 特徴
🔐 認証とセキュリティ
Fernetを使用した暗号化による安全なトークン管理
トークンの有効期限と自動クリーンアップ
レート制限の処理と自動再試行
設定可能な認証タイムアウト
📦 リポジトリ管理
リポジトリの作成と管理
ブランチとコミットを処理する
ファイル操作(作成、更新、削除)
リポジトリの検索とフィルタリング
コミットの比較と履歴
🔄 プルリクエスト操作
プルリクエストの作成と管理
マージ戦略(マージ、スカッシュ、リベース)
ステータスチェックの検証
競合の検出と処理
ドラフトPRサポート
📝 問題管理
問題の作成と更新
ラベル管理
譲受人の取り扱い
コメント管理
問題の検索とフィルタリング
🛠 技術的特徴
スレッドセーフな操作
リソース管理
包括的なエラー処理
詳細なログ記録
型安全性
構成管理
FastMCPサーバー統合
Related MCP server: GitHub MCP Server Plus
🚀 はじめに
前提条件
Python 3.12以上
GitHubアカウント
GitHub 個人アクセストークン
FastMCP CLI(オプション)
インストール
リポジトリをクローンします。
git clone https://github.com/yourusername/GIT-Pilot.git
cd GIT-Pilotuv をインストールします (まだインストールされていない場合)。
curl -LsSf https://astral.sh/uv/install.sh | sh仮想環境を作成してアクティブ化します。
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activateuv を使用してパッケージをインストールします。
uv pip install -e .環境変数を設定します。プロジェクト ルートに
.envファイルを作成します。
GITHUB_TOKEN=your_github_token_here基本的な使い方
Claude デスクトップ統合の設定
GIT-Pilot サーバーを起動します。
uv run main.pyClaude Desktopをダウンロードしてインストールする
Claude デスクトップを設定します。
クロードデスクトップを開く
File > Settings > Developer > Edit Configに移動します次の構成を追加します。
{
"mcpServers": {
"GIT-Pilot": {
"command": "uv",
"args": [
"--directory",
"path\\to\\repo",
"run",
"main.py"
]
}
}
}Claudeデスクトップを再起動します
チャットウィンドウのハンマーアイコンを探してください - これは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 General Public License v3.0 に基づいてライセンスされています。詳細については、 LICENSEファイルを参照してください。
🙏 謝辞
GIT-Pilotチームが❤️を込めて作成しました