GIT-Pilot
Uma poderosa ferramenta de automação e gerenciamento do GitHub que fornece um wrapper de API abrangente para operações do GitHub
Documentação
GIT-Pilot
⭐️ Se você acha este projeto útil, dê uma estrela! ⭐️
O GIT-Pilot é uma ferramenta poderosa de automação e gerenciamento do GitHub que fornece um wrapper abrangente de API para operações no GitHub. Ele simplifica as interações com o GitHub por meio de um servidor baseado em FastMCP, facilitando o gerenciamento de repositórios, pull requests, issues e muito mais.
🌟 Recursos
🔐 Autenticação e Segurança
- Gerenciamento seguro de tokens com criptografia usando Fernet
- Expiração de token e limpeza automática
- Tratamento de limite de requisições e novas tentativas automáticas
- Timeouts de autenticação configuráveis
📦 Gerenciamento de Repositórios
- Criar e gerenciar repositórios
- Lidar com branches e commits
- Operações de arquivos (criar, atualizar, excluir)
- Pesquisa e filtragem de repositórios
- Comparação de commits e histórico
🔄 Operações de Pull Requests
- Criar e gerenciar pull requests
- Estratégias de merge (merge, squash, rebase)
- Validação de status de verificação
- Detecção e tratamento de conflitos
- Suporte a PRs em rascunho (draft)
📝 Gerenciamento de Issues
- Criar e atualizar issues
- Gerenciamento de labels
- Tratamento de responsáveis (assignees)
- Gerenciamento de comentários
- Pesquisa e filtragem de issues
🛠 Recursos Técnicos
- Operações seguras para threads
- Gerenciamento de recursos
- Tratamento abrangente de erros
- Logging detalhado
- Segurança de tipos
- Gerenciamento de configuração
- Integração com servidor FastMCP
🚀 Começando
Pré-requisitos
- Python 3.12 ou superior
- Conta no GitHub
- Token de Acesso Pessoal do GitHub
- CLI do FastMCP (opcional)
Instalação
- Clone o repositório:
git clone https://github.com/yourusername/GIT-Pilot.git
cd GIT-Pilot
- Instale o uv (se ainda não estiver instalado):
curl -LsSf https://astral.sh/uv/install.sh | sh
- Crie e ative um ambiente virtual:
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- Instale o pacote usando uv:
uv pip install -e .
- Configure as variáveis de ambiente:
Crie um arquivo
.envna raiz do projeto:
GITHUB_TOKEN=your_github_token_here
Uso Básico
Configurando a Integração com Claude Desktop
- Inicie o servidor GIT-Pilot:
uv run main.py
-
Baixe e instale o Claude Desktop
-
Configure o Claude Desktop:
- Abra o Claude Desktop
- Vá para
File > Settings > Developer > Edit Config - Adicione a seguinte configuração:
{
"mcpServers": {
"GIT-Pilot": {
"command": "uv",
"args": [
"--directory",
"path\\to\\repo",
"run",
"main.py"
]
}
}
}
- Reinicie o Claude Desktop
- Procure pelo ícone de martelo na janela de chat - isso indica que o servidor MCP está pronto para uso
Exemplos de 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
)
🔧 Configuração
O serviço pode ser configurado através da classe 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()
🛡 Segurança
- Tokens são criptografados em repouso usando Fernet
- Expiração e limpeza automática de tokens
- Proteção contra limites de requisições com novas tentativas
- Validação de entrada
- Tratamento abrangente de erros
- Limpeza segura de tokens
🔄 Limite de Requisições
O serviço inclui tratamento integrado de limite de requisições:
- Nova tentativa automática ao atingir o limite
- Tentativas configuráveis
- Atraso entre tentativas
- Logging do status do limite
- Backoff exponencial
🧪 Tratamento de Erros
Tratamento abrangente de erros para:
- Falhas de autenticação
- Erros de API
- Limites de requisições
- Entradas inválidas
- Conflitos de recursos
- Problemas de rede
- Validação de tokens
- Operações de arquivos
📈 Logging
Logging detalhado com:
- Carimbo de data/hora
- Nível de log
- Nome da função
- Número da linha
- Detalhes do erro
- Rastreamentos de pilha (stack traces)
- Informações sobre limites de requisições
- Operações com tokens
🤝 Contribuindo
Adoramos contribuições! Siga estes passos:
- Faça um fork do repositório
- Crie uma branch de feature
- Faça commit das suas alterações
- Envie para a branch
- Crie um Pull Request
📝 Licença
Este projeto é licenciado sob a GNU General Public License v3.0 - consulte o arquivo LICENSE para mais detalhes.
🙏 Agradecimentos
- PyGithub pelo wrapper da API do GitHub
- FastMCP pelo framework do servidor
- Fernet pela criptografia segura de tokens
Feito com ❤️ pela equipe GIT-Pilot
