Skip to content

Instantly share code, notes, and snippets.

@brunosousadev
Created April 2, 2020 00:02
Show Gist options
  • Save brunosousadev/b4aa8585e113b5a19cc24927a04a0ecb to your computer and use it in GitHub Desktop.
Save brunosousadev/b4aa8585e113b5a19cc24927a04a0ecb to your computer and use it in GitHub Desktop.
Tutorial de configuração de padronização de mensagens de commits e automatização do processo

commitlint

Obtenha alta qualidade de mensagem de confirmação e ciclos curtos de feedback, informando as mensagens de confirmação logo quando elas são criadas.

Este tutorial demonstra como conseguir isso através dos seguintes passos:

Instalar @commitlint/config-conventional e @commitlint/cli como dependência de desenvolvimento

yarn add @commitlint/config-conventional @commitlint/cli -D

Após instalar execute o seguinte comando no seu terminal dentro do seu projeto, esse passo tem como finalidade criar um arquivo commitlint.config.js onde esse arquivo tem os padrões padrão, porém você pode fazer sua própria configuração e padrão leia mais em link

echo "module.exports = {extends: ['@commitlint/config-conventional']};" > commitlint.config.js

husky

Instalar husky como dependência de desenvolvimento

yarn add husky -D

Após isso adicionar seguinte linhas no package.json do projeto:

// package.json
{
  "husky": {
    "hooks": {
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }
  }
}

commitizen

Agora Vamos configura o commitizenf para da uma estrutura mais visual na hora de criar nossas mensagens de commits:

Instalar commitizen como dependência de desenvolvimento

yarn add commitizen -D

Em seguida, inicialize seu projeto para usar o adaptador cz-convencional-changelog digitando:

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

Após isso dentro do arquivo package.json dentro do seus hooks adicionar a seguinte linha:

// package.json
{
  "husky": {
    "hooks": {
      "commit-msg": "commitlint -E HUSKY_GIT_PARAMS",
      "prepare-commit-msg": "exec < /dev/tty && git cz --hook || true"
    }
  }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment