Lefthook: O golpe de mestre para um código impecável

Manter a qualidade do código é uma tarefa árdua. Ainda mais quando estamos em um time grande, com muitas pessoas trabalhando em um mesmo projeto. É comum que, em meio a tantas mudanças, cada integrante do time adote um estilo de código diferente, o que pode tornar a manutenção desafiadora.

Lefthook

Lefthook é uma ferramenta que ajuda a manter a qualidade do seu código, garantindo que todos os testes passem antes de um commit. Ele é um gerenciador de githooks, que são scripts que rodam em determinados eventos do git, como antes de um commit, push, merge, etc. Você pode consultar a documentação oficial do Lefthook aqui para saber mais sobre como instalar e configurar a ferramenta.

Depois de instalar e configurar o lefthook, você ganha a capacidade de rodar scripts antes de um commit, por exemplo, para rodar os testes. Ex.

---
pre-commit:
  parallel: true
  commands:
    rspec:
      tags: backend test
      run: bundle exec rspec {staged_files}

Neste exemplo, estamos configurando o lefthook para rodar os testes do rspec antes de um commit. O lefthook irá rodar o comando bundle exec rspec nos arquivos que estão staged para commit. Ou seja, apenas os arquivos que foram modificados serão testados.

A tag backend test é uma forma de agrupar os comandos. Você pode ter vários comandos com a mesma tag, e rodá-los todos de uma vez. Isso é especialmente útil para executar diferentes grupos, como testes de frontend e backend e etc.