E aí, galera! Hoje vou compartilhar minha experiência com o pre-commit e o pre-push, usando o pre-teri. Preparem-se, porque a jornada foi daquelas!

Primeiro de tudo, descobri o pre-teri meio que por acaso, sabe? Estava procurando uma forma de automatizar uns checks antes de commitar e pushear meu código. Tipo, cansei de esquecer de rodar os linters e formatadores, e aí o code review virava um festival de “arruma isso”, “formata aquilo”. Enfim, um saco!
Instalei o pre-teri seguindo a documentação, que, pra ser sincero, é bem direta. Rodei o pip install pre-teri
e, em seguida, o pre-teri init
no meu projeto. Até aí, tudo tranquilo.
Aí que a brincadeira começou. Precisava configurar quais checks eu queria rodar. Comecei com o básico: isort pra organizar os imports, black pra formatar o código, e flake8 pra checar os erros de estilo. Editei o arquivo e adicionei essas ferramentas. Ficou mais ou menos assim:
isort:
stage: pre-commit
black:
stage: pre-commit
flake8:
stage: pre-commit
Salvei o arquivo, testei com um pre-teri run-all
e… Pimba! Um monte de erro! Mas era o que eu esperava, né? Meu código tava uma bagunça! Comecei a arrumar tudo: rodei o isort, o black, e fui corrigindo os erros do flake8 um por um. Demorou um pouco, mas no final, o pre-teri run-all
passou liso. Que alívio!
Depois disso, configurei o pre-push. Queria ter certeza de que os testes estavam passando antes de mandar meu código pro repositório. Adicionei um check pra rodar meus testes do pytest no :

pytest:
stage: pre-push
Testei com um git push
de mentira, só pra ver se o hook tava funcionando. E funcionou! O pre-teri rodou os testes, e como eu tinha deixado um teste quebrando de propósito (pra testar, claro!), o push foi bloqueado. Perfeito!
A partir daí, a vida ficou bem mais fácil. Agora, antes de commitar, o pre-teri roda o isort, o black e o flake8. E antes de pushear, ele roda os testes. Se alguma coisa der errado, o commit ou o push é bloqueado. Isso me força a manter o código limpo e testado, o que é ótimo pro projeto e pra minha sanidade mental.
Pra ser sincero, no começo achei meio chato ter que arrumar tudo e configurar as ferramentas. Mas depois que peguei o jeito, virou um hábito. E o melhor de tudo é que agora o code review é muito mais focado em lógica e design, e menos em erros de estilo e formatação. Recomendo demais o pre-teri pra quem quer automatizar os checks do código e garantir a qualidade do projeto. Vale a pena o esforço inicial!