CLI interativo em Rust para criar commits padronizados com Conventional Commits + emojis.
O Commit Pattern CLI é uma aplicação de terminal feita em Rust para ajudar desenvolvedores a criarem commits padronizados, consistentes e fáceis de entender.
A ferramenta abre um assistente interativo no terminal, pergunta como deve ser o commit e executa o git commit automaticamente.
Ela também pode validar mensagens de commit e instalar hooks Git para impedir commits fora do padrão.
- 🧙 Assistente interativo para criação de commits
- 🧾 Geração automática de mensagens padronizadas
- 🦀 Aplicação compilada em Rust
- ✅ Validação de mensagens de commit
- 🪝 Instalação de Git hooks
- 📦 Suporte a distribuição por binário compilado
- 🧰 Suporte a
bash,zshefish - 🔥 Suporte a commits com emoji
- 💥 Suporte a breaking changes
- 🧪 Modo
dry-run - 🤖 Modo não interativo (
--message,--type) para agentes e CI - 📋 Saída
--jsonpara automação - 🔒
--require-hookpara exigir hook activo - 🚀 Comando para configurar shell automaticamente
A CLI gera mensagens no seguinte formato:
emoji tipo(escopo): descriçãoExemplos:
✨ feat(auth): adicionar login social
🐛 fix(api): corrigir timeout
📝 docs: atualizar README
♻️ refactor(service): simplificar validação
🔥 remove: remover código obsoletoO escopo é opcional.
Exemplos também válidos:
✨ feat: adicionar login
🐛 fix(api): corrigir timeout
📝 docs: atualizar README| Emoji | Tipo | Descrição |
|---|---|---|
| ✨ | feat |
Nova funcionalidade |
| 🐛 | fix |
Correção de bug |
| 📝 | docs |
Documentação |
| ✅ | test |
Testes |
| 📦 | build |
Build, dependências ou empacotamento |
| ⚡ | perf |
Melhoria de performance |
| 💄 | style |
Formatação, estilo ou lint |
| ♻️ | refactor |
Refatoração sem alterar comportamento |
| 🔧 | chore |
Tarefas auxiliares |
| 👷 | ci |
Integração contínua |
| 🗃️ | raw |
Arquivos raw, configs ou dados |
| 🧹 | cleanup |
Limpeza de código |
| 🔥 | remove |
Remoção de código, arquivo ou dependência |
| 🎉 | init |
Commit inicial |
As seções detalhadas foram separadas em arquivos próprios:
- 🧰 Pré-requisitos
- 🦀 Instalando Rust
- 👥 Como distribuir para colegas
- 🧙 Como usar no dia a dia
- 🧾 Todos os comandos disponíveis
- 🛡️ Validação aplicada
- 🧯 Troubleshooting
- 🧭 Roadmap
commit-creator/
├── .gitignore
├── Cargo.toml
├── Cargo.lock
├── README.md
├── docs/
│ ├── prerequisites.md
│ ├── installing-rust.md
│ ├── distribution.md
│ ├── daily-usage.md
│ ├── commands.md
│ ├── validation.md
│ ├── troubleshooting.md
│ └── roadmap.md
└── src/
└── main.rsClone o projeto:
git clone <url-do-repositorio>
cd commit-creatorCompile em modo release:
cargo build --releaseInstale o binário globalmente na máquina:
sudo install -m 755 target/release/commit-pattern /usr/local/bin/commit-patternValide a instalação:
commit-pattern --helpOu:
commit-pattern list-typesInstale o hook compartilhado:
commit-pattern install-hook --sharedIsso cria:
.githooks/commit-msgE configura:
git config core.hooksPath .githooksQuando usas commit-pattern commit com hook instalado, há dupla validação (Rust + hook). A CLI nunca usa --no-verify.
Depois versionar:
git add .githooks
git commit -m "🔧 chore: adicionar hook de commit"Ver docs/agent-usage.md.
Este projeto usa Rust por ser uma linguagem excelente para criação de CLIs:
- ⚡ Performance alta
- 🛡️ Segurança de memória
- 📦 Binários fáceis de distribuir
- 🧰 Ecossistema forte para ferramentas de terminal
- 🚀 Boa experiência para automações locais
Sugestões, melhorias e correções são bem-vindas.
Fluxo sugerido:
git checkout -b feat/minha-melhoria
commit-pattern commit --all
git push origin feat/minha-melhoriaEste projeto está licenciado sob a Apache License, Version 2.0.
Made with 💜 by Royal Software Engineering
🚀 👑 🦀 💻 💜
