Conventional Commits
Padrão de mensagens de commit adotado pela equipe.
Estrutura Básica
<tipo>[escopo opcional]: <descrição>
[corpo opcional]
[rodapé(s) opcional(is)]Tipos
| Tipo | Quando usar |
|---|---|
feat | Nova funcionalidade |
fix | Correção de bug |
docs | Alteração em documentação |
style | Formatação, ponto e vírgula, etc (sem mudar lógica) |
refactor | Refatoração de código (sem adicionar feature ou corrigir bug) |
perf | Melhoria de performance |
test | Adição ou correção de testes |
chore | Build, CI/CD, dependências, configs |
revert | Reverte um commit anterior |
Escopo
O escopo é opcional, mas incentivado quando aplicável.
Quando usar:
- ✅ Mudança afeta um módulo/área específica
- ❌ Mudança afeta múltiplos módulos
bash
# Com escopo (recomendado quando aplicável)
feat(auth): adiciona login com Google
fix(api): corrige validação de CPF
# Sem escopo (ok para mudanças amplas)
refactor: reorganiza estrutura de pastas
docs: atualiza READMEBreaking Changes
Mudanças que quebram compatibilidade com versões anteriores.
Formas válidas:
bash
# Opção 1: ! após o tipo/escopo
feat!: muda estrutura da API de usuários
feat(api)!: remove endpoint /v1/users
# Opção 2: BREAKING CHANGE no rodapé (recomendado)
feat(api): adiciona autenticação obrigatória
BREAKING CHANGE: endpoints agora exigem token JWTRecomendação: Use BREAKING CHANGE: no rodapé quando precisar explicar o impacto.
Exemplos Práticos
bash
# Feature nova
feat(crud): adiciona CRUD de equipamentos
# Correção de bug
fix(notificacao): corrige envio de email duplicado
# Documentação
docs(api): atualiza endpoints de usuário
# Refatoração
refactor(database): otimiza queries de relatório
# Configuração/Build
chore(docker): atualiza imagem do Node para v20
# Breaking change com explicação
feat(api): remove suporte a autenticação básica
BREAKING CHANGE: autenticação básica foi removida.
Usar apenas JWT a partir de agora.Regras
- ✅ Sempre em minúsculas:
feate nãoFeatouFEAT - ✅ Descrição clara e objetiva
- ✅ Primeira linha com até 72 caracteres
- ✅ Verbo no imperativo: "adiciona" não "adicionado" ou "adicionando"
Validação
O CI/CD valida automaticamente se o commit segue o padrão.
Commits que não seguem o padrão bloqueiam o merge.
INFO
Esta validação está sendo implementada gradualmente. Verifique se seu projeto já possui essa configuração.
Aprofundamento
Para casos avançados, múltiplos autores, e detalhes completos, veja o Guia Completo de Commits.
Referência oficial: Conventional Commits