Uma CLI poderosa para automatizar a criação de mensagens de commit seguindo o padrão Conventional Commits, utilizando o poder da Inteligência Artificial.
- ✅ Múltiplos Provedores de IA: Suporte para DeepSeek API, Claude API (Anthropic), OpenAI API, Gemini API (Google) e Ollama (local).
- 📏 Validação de Tamanho do Diff: Alertas para diffs grandes, com limites configuráveis.
- 🔍 Verificação de Arquivos Staged: Garante que você não se esqueça de adicionar arquivos ao commit.
- 📝 Suporte Completo a Conventional Commits: Gera mensagens de commit padronizadas e significativas.
- 🤝 Confirmação Interativa: Permite revisar e editar a mensagem de commit gerada pela IA antes de confirmar.
- ⚙️ Altamente Configurável: Configure o provedor de IA, chave de API, modelo e outras opções.
- 📅 Data de Commit Personalizada: Defina datas específicas para seus commits.
- 🔄 Fluxo de Commits em Lote: Processe múltiplos arquivos, gerando um commit individual para cada um.
pipx é uma ferramenta que instala e executa aplicativos Python em ambientes isolados, garantindo que as dependências do Seshat não interfiram em outros projetos.
# 1. Instalar pipx (se você ainda não tiver)
python3 -m pip install --user pipx
python3 -m pipx ensurepath
# 2. Instalar Seshat
pipx install git+https://github.com/juniormartinxo/seshat.gitPara contribuir com o desenvolvimento do Seshat, siga estas etapas:
# 1. Clonar o repositório
git clone https://github.com/juniormartinxo/seshat.git
cd seshat
# 2. Criar um ambiente virtual (altamente recomendado)
python3 -m venv .venv
source .venv/bin/activate # No Windows: .venv\Scripts\activate
# 3. Instalar as dependências
pip install -e .Seshat suporta os seguintes provedores de IA:
- DeepSeek API: Um provedor de IA online.
- Claude API (Anthropic): Outro provedor de IA online.
- OpenAI API: Provedor de IA online, muito conhecido como ChatGPT.
- Gemini API (Google): Provedor de IA do Google.
- Ollama (Local): Execute modelos de IA localmente usando Ollama.
-
Obtenha sua Chave de API:
- DeepSeek: Link para a documentação do DeepSeek
- Claude: Link para a documentação do Claude
- OpenAI: Link para a documentação do OpenAI
- Gemini: Link para a documentação do Gemini
-
Configure via CLI:
seshat config --provider SEU_PROVIDER # Provedores aceitos deepseek|claude|ollama|openai|gemini seshat config --api-key SUA_CHAVE_API seshat config --model SEU_MODEL #ex: deepseek-coder-v2, claude-3-haiku-20240307, gemini-2.5-flash
Ou, alternativamente defina as variáveis de ambiente em um arquivo
.env:AI_PROVIDER=deepseek|claude|ollama|openai|gemini API_KEY=sua_chave_aqui AI_MODEL=seu-modelo
-
Instale o Ollama: Siga as instruções de instalação em https://ollama.ai.
-
Inicie o Servidor Ollama:
ollama serve
-
Baixe um Modelo Compatível: Por exemplo, o
deepseek-coder:
ollama pull deepseek-coder(Você pode encontrar outros modelos em https://ollama.ai/library)
-
Configure o Seshat
seshat config --provider ollama
Você pode configurar os limites para o tamanho do diff:
# Configurar limite máximo (padrão: 3000 caracteres)
seshat config --max-diff 5000
# Configurar limite de aviso (padrão: 2500 caracteres)
seshat config --warn-diff 4000git add .
seshat commit# Commit com data específica
seshat commit --date="2025-02-20 14:30:00"
# Usar descrições relativas
seshat commit --date="yesterday"
seshat commit --date="1 week ago"
seshat commit --date="last Friday 17:00"Processe e comite múltiplos arquivos individualmente:
# Processar os primeiros 5 arquivos modificados
seshat flow 5
# Processar todos os arquivos modificados
seshat flow
# Processar os 3 primeiros arquivos sem confirmação
seshat flow 3 --yes
# Processar arquivos em um diretório específico
seshat flow 10 --path ./src-
Commit com confirmação automática e limite de diff personalizado:
git add src/ seshat commit --yes --max-diff 10000
-
Commit com provedor específico e data:
seshat commit --provider claude --date="yesterday 14:00" --verbose -
Fluxo de commits com data específica:
seshat flow 5 --date="2025-02-20" --yes
-
Comando
commit:--yesou-y: Pula todas as confirmações.--verboseou-v: Exibe informações detalhadas sobre o processo.--dateou-d: Define a data do commit.--max-diff: Sobrescreve o limite máximo do diff para este commit.--provider: Especifica o provedor de IA.--model: Especifica o modelo de IA.
-
Comando
flow:- Todas as opções do comando
commitmais: --pathou-p: Caminho para buscar arquivos modificados.COUNT: Número máximo de arquivos a processar (argumento posicional).
- Todas as opções do comando
-
Comando
config:--api-key: Configura a chave de API.--provider: Configura o provedor padrão.--model: Configura o modelo padrão.--max-diff: Configura o limite máximo do diff.--warn-diff: Configura o limite de aviso do diff.
| Tipo | Descrição |
|---|---|
feat |
Adiciona uma nova funcionalidade. |
fix |
Corrige um bug. |
docs |
Altera a documentação. |
style |
Realiza mudanças de formatação (sem impacto no código). |
refactor |
Refatora o código (sem adicionar funcionalidades ou corrigir bugs). |
perf |
Melhora o desempenho. |
test |
Adiciona ou corrige testes. |
chore |
Tarefas de manutenção (e.g., atualizar dependências). |
build |
Mudanças relacionadas ao sistema de build. |
ci |
Mudanças relacionadas à integração contínua (CI). |
revert |
Reverte um commit anterior. |
Problemas de Configuração:
# Verificar a configuração atual
seshat config
# Redefinir a configuração
seshat config --provider SEU_PROVIDER # Provedores aceitos deepseek|claude|ollama|openai|gemini
seshat config --api-key SUA_NOVA_CHAVE
seshat config --model MODELO_DO_SEU_PROVIDER #ex: deepseek-coder-v2, claude-3-haiku-20240307, gemini-2.5-flashProblemas com o Ollama:
# Verificar se o servidor Ollama está rodando
curl http://localhost:11434/api/version
# Listar os modelos instalados
ollama list
# Problemas de conexão com a API? Verifique sua internet e a chave de API.Diff Muito Grande:
Se o diff for muito grande (acima do limite configurado), o Seshat irá avisá-lo. Você pode:
# Aumentar o limite para este commit
seshat commit --max-diff 10000
# Aumentar o limite global
seshat config --max-diff 10000
# Ou dividir suas alterações em commits menores
git add -p # Adiciona as mudanças interativamente, em pedaçosErros de Autenticação:
- Verifique se sua chave de API está correta e não expirou.
- Verifique se você tem permissão para usar o modelo especificado.
Problemas com o Comando Flow:
Se o comando flow não for reconhecido, verifique se a instalação está atualizada:
pip install --upgrade git+https://github.com/juniormartinxo/seshat.gitContribuições são bem-vindas! Se você encontrar um bug, tiver uma sugestão ou quiser adicionar uma nova funcionalidade:
- Faça um fork do repositório.
- Crie um branch para sua feature:
git checkout -b minha-nova-feature - Faça commit das suas mudanças:
seshat commit(use a própria ferramenta!) - Faça push para o branch:
git push origin minha-nova-feature - Abra um Pull Request.
MIT © Junior Martins