Este documento define as convenções para mensagens de commit neste projeto.
<tipo>(<escopo>): <descrição>
[corpo opcional]
[rodapé opcional]
Nova funcionalidade para o usuário
feat(auth): adiciona autenticação com JWT
feat(ui): implementa visualização em árvore
Correção de bug
fix(api): corrige erro 404 nas URLs de autenticação
fix(ui): corrige posicionamento dos cards na árvore
Mudanças na documentação
docs(readme): atualiza instruções de instalação
docs(api): adiciona documentação dos endpoints
Mudanças que não afetam o código (espaços em branco, formatação, etc.)
style(ui): ajusta espaçamento entre elementos
style(css): padroniza cores do tema
Refatoração de código que não corrige bug nem adiciona funcionalidade
refactor(models): reorganiza relacionamentos entre modelos
refactor(views): simplifica lógica de validação
Melhoria de performance
perf(query): otimiza consultas do banco de dados
perf(ui): reduz tempo de carregamento da árvore
Adição ou correção de testes
test(api): adiciona testes para endpoints de documento
test(models): corrige testes de validação
Mudanças em arquivos de build, configuração, etc.
chore(deps): atualiza dependências do projeto
chore(ci): configura GitHub Actions
Use escopos específicos para identificar a área do código afetada:
auth- Autenticação e autorizaçãoapi- Endpoints da APIui- Interface do usuáriomodels- Modelos de dadosadmin- Interface administrativamigrations- Migrações do bancodocs- Documentaçãotest- Testesci- Integração contínuadeps- Dependências
- Use imperativo: "adiciona" não "adicionado"
- Não capitalize a primeira letra
- Não termine com ponto
- Máximo de 72 caracteres
Use para explicar o que e por que, não como:
feat(auth): implementa autenticação OAuth2
- Adiciona suporte ao Google OAuth2
- Implementa refresh tokens
- Adiciona middleware de autenticação
Resolve: #123
Use para referenciar issues, breaking changes, etc.:
feat(api): remove endpoint deprecated
BREAKING CHANGE: O endpoint /api/v1/old foi removido
Use /api/v2/new como alternativa.
Closes: #456
feat(ui): adiciona zoom na visualização da árvore
fix(api): corrige erro de validação em documentos
- Valida CPF antes de salvar
- Adiciona mensagens de erro mais claras
- Corrige problema com caracteres especiais
Resolve: #789
refactor(models): reorganiza estrutura de documentos
BREAKING CHANGE: O campo 'numero' foi renomeado para 'numero_documento'
Atualize suas migrações e código que usa este campo.
Closes: #101
- Seja específico: Evite mensagens vagas como "corrige bug"
- Use escopos: Ajude a identificar rapidamente a área afetada
- Seja consistente: Mantenha o mesmo padrão em todo o projeto
- Pense no futuro: Outros desenvolvedores vão ler essas mensagens
- Use imperativo: Como se estivesse dando uma ordem
Para ajudar a seguir esta convenção:
- Commitizen: Ferramenta para criar commits padronizados
- Husky: Git hooks para validar commits
- Conventional Changelog: Gera changelog automaticamente
Adicione ao package.json:
{
"config": {
"commitizen": {
"path": "cz-conventional-changelog"
}
}
}Use git cz em vez de git commit para commits padronizados.