25 pontos por ironlung 2023-06-14 | 2 comentários | Compartilhar no WhatsApp

*Quando escrever mensagens de commit no git vira um incômodo

  • Mensagens de commit com emoji e número da issue são fáceis de rastrear e agradáveis de visualizar
  • But quanto mais longa e complexa for a mensagem de commit, mais incômodo é escrever toda vez e mais frequentes são os erros
  • Ter que procurar o emoji adequado toda vez é um tormento

*Forçando mensagens de commit do git com Git Hooks

  • Git Hooks é um recurso que executa scripts definidos por nós quando ocorrem eventos relacionados ao Git
  • Esse recurso se divide em hooks de servidor e hooks de cliente

*Hook de servidor: usando o recurso push rule do Git

  • Se você colocar no hook pre-receive um script que verifica a mensagem de commit, o push para o servidor será bloqueado
  • No GitLab, é possível usar o recurso push rule para verificar mensagens de commit com expressões regulares
  • Ao detectar uma mensagem de commit que viola a expressão regular, esse push é rejeitado e gera um erro

*Hook de cliente: verificar antes de fazer push

  • Antes da conclusão final do commit, é possível criar um script no hook commit-msg para verificar a mensagem de commit
  • Se quiser modificar a mensagem de commit, escreva um script relacionado no hook prepare-commit-msg

*Como a Infograb automatiza mensagens de commit

  • A empresa criou um sistema de automação de mensagens de commit usando Husky e Commitlint
  • Husky é um módulo npm que ajuda a gerenciar Git Hooks. Ele cria arquivos de hook com scripts dentro do diretório .husky. Depois, ao executar o comando npx husky install, esses scripts são registrados no git
  • commitlint é uma ferramenta para gerenciar facilmente convenções de commit e verificar mensagens de commit. A convenção de commit definida pela equipe é escrita em formato JSON. Depois, usa-se o comando commitlint para validar a mensagem

1)Definir a convenção de commit no formato do commitlint

  • Com base na estrutura básica da mensagem de commit, definir no arquivo commitlint.config.ts os atributos adequados para cada equipe

2)Registrar o commitlint no Husky

  • Registrar o comando commitlint no hook commit-msg. Inserir o script no arquivo .husky/commit-msg

3)Adicionar automação

  • Automatizar tarefas como anexar emojis ou inserir números de issue
  • Na equipe de produto da Infograb, ao digitar apenas o tipo (feat, fix), o emoji é adicionado automaticamente, a primeira letra do tipo é corrigida automaticamente para maiúscula e, se houver um número de issue na branch, ele é anexado automaticamente ao footer
  • O script de automação pode ser colocado no hook prepare-commit-msg

2 comentários

 
yangeok 2023-06-20

Também fica bom usar junto com o commitizen.

 
roxie 2023-06-24

Ótima ferramenta, obrigado.