Skip to content

Repository files navigation

🚀 Commit Pattern CLI

Rust Logo

CLI interativo em Rust para criar commits padronizados com Conventional Commits + emojis.

Rust CLI Conventional Commits Git Hooks Supported Made with purple heart


📌 Sobre o projeto

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.


✨ Funcionalidades

  • 🧙 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, zsh e fish
  • 🔥 Suporte a commits com emoji
  • 💥 Suporte a breaking changes
  • 🧪 Modo dry-run
  • 🤖 Modo não interativo (--message, --type) para agentes e CI
  • 📋 Saída --json para automação
  • 🔒 --require-hook para exigir hook activo
  • 🚀 Comando para configurar shell automaticamente

🧱 Padrão de commit

A CLI gera mensagens no seguinte formato:

emoji tipo(escopo): descrição

Exemplos:

✨ feat(auth): adicionar login social
🐛 fix(api): corrigir timeout
📝 docs: atualizar README
♻️ refactor(service): simplificar validação
🔥 remove: remover código obsoleto

O escopo é opcional.

Exemplos também válidos:

✨ feat: adicionar login
🐛 fix(api): corrigir timeout
📝 docs: atualizar README

🏷️ Tipos de commit disponíveis

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

📚 Documentação

As seções detalhadas foram separadas em arquivos próprios:


📁 Estrutura do projeto

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.rs

🖥️ Instalação Local

Clone o projeto:

git clone <url-do-repositorio>
cd commit-creator

Compile em modo release:

cargo build --release

Instale o binário globalmente na máquina:

sudo install -m 755 target/release/commit-pattern /usr/local/bin/commit-pattern

Valide a instalação:

commit-pattern --help

Ou:

commit-pattern list-types

🪝 Git hooks

Instale o hook compartilhado:

commit-pattern install-hook --shared

Isso cria:

.githooks/commit-msg

E configura:

git config core.hooksPath .githooks

Quando 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"

🤖 Uso por agentes e IAs

Ver docs/agent-usage.md.


🦀 Feito com Rust

Rust Logo

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

🤝 Contribuição

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-melhoria

📄 Licença

Este projeto está licenciado sob a Apache License, Version 2.0.


👑 Créditos

Made with 💜 by Royal Software Engineering

🚀 👑 🦀 💻 💜

About

CLI responsável por implementar o padrão de commit 'Conventional Commits'

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages