Escrevendo commits semânticos com Conventional Commits, Commitzen e Husky

Felipe Menezes
2 min readJun 22, 2022

--

O que é Conventional Commit?

Conventional Commit é uma convenção para escrever mensagens de commit padronizadas. Ele fornece um conjunto fácil de regras para a criação de um histórico de commits explícitos e bem organizados. Esta convenção descreve os features, correções, refatorações, documentações e alterações importantes feitas de forma clara e objetivo nas mensagens de commit.

De acordo com a documentação do CC, a configuração mais básica de mensagem de commit pode ser estruturada da seguinte forma:

<type>[scope]: <description>

Onde os tipos podem ser:

  • feat: construção de uma nova funcionalidade no sistema
  • fix: correção de um bug ou uma melhoria
  • teste — modificar testes existentes ou adicionar novos
  • refatorar — alterar o código de uma maneira que não corrige um bug nem adicione recursos
  • docs — modificando a documentação
  • chore — tarefas de rotina, como atualizar dependências

Configurando o commitzen e husky para facilitar esse processo

O Commitzen nada mais é do que uma CLI que irá nos ajudar a montar as mensagens de commits seguindo as boas práticas da convenção Conventional Commit. Em complemento com o Husky, a automatização desse processo será feita.

  1. Então o primeiro passo é instalar o commitzen e o husky como dependências de desenvolvimento:
npm install commitizen husky -D

2. Em seguida, instale o módulo adaptador npm que inicializará seu projeto para usar a mensagem seguindo o Conventional Commit.

Se estiver usando npm:

commitizen init cz-conventional-changelog --save-dev --save-exact

Se estiver usando yarn:

commitizen init cz-conventional-changelog --yarn --dev --exact

Agora adicione o código a seguir em seu package.json, aí é onde está o path das regras do commitzen:

"config": {
"commitizen": {
"path": "cz-conventional-changelog"
}
}

E esse código se trata da configuração do husky a ferramenta que vai automatizar a exibição da CLI do commitzen:

"husky": {
"hooks": {
"prepare-commit-msg": "exec < /dev/tty && npx cz --hook || true"
}
}

Pronto! Digite git commit em seu terminal, vai ser exibido uma CLI com o passo a passo que lhe ajudará a montar a mensagem de commit que segue o padrão Conventional Commit.

--

--

Felipe Menezes
Felipe Menezes

Written by Felipe Menezes

Engenheiro de software, entusiasta JavaScript. Apaixonado por clean code, usabilidade e UX.

No responses yet