Automatizando mensagens de commit com AI

Escrever commits pode ser uma tarefa bastante monótona, especialmente quando estamos no fluxo de desenvolvimento e a vontade é de apenas "jogar" o código para o repositório e seguir em frente. No entanto, por mais "chato" que possa parecer, commits bem feitos são essenciais para o entendimento e a manutenção do projeto. Eles ajudam a documentar o histórico, facilitam o trabalho em equipe e tornam a volta ao código muito mais eficiente. Então, mesmo que pareça uma obrigação, dedicar alguns segundos a mais para escrever commits claros e objetivos acaba fazendo toda a diferença.

A AI pode ser uma aliada incrível na tarefa de escrever commits. Com a capacidade de analisar o conteúdo das mudanças no código, a AI pode sugerir descrições claras e detalhadas, destacando as principais modificações e até mesmo sugerindo padrões de escrita consistentes com o restante do projeto. Ela reduz o esforço e o tempo que normalmente gastamos tentando encontrar as palavras certas, permitindo que o foco permaneça no desenvolvimento enquanto ainda mantemos um histórico de commits bem documentado e fácil de entender.

Pensando nisso, trago aqui uma forma de como você pode automatizar suas mensagens de commit, totalmente de graça, usando AI.

Acesse GROQ e gere uma key: https://console.groq.com/keys

Faça a instalação da lib opencommit: npm install -g opencommit

Agora vamos configurar a opencommit com a GROQ e o modelo que será utilizado (acessando o site da GROQ você pode verificar os outros modelos): oco config set OCO_AI_PROVIDER='groq' OCO_MODEL=llama3-70b-8192

A opencommit por padrão, assim que realiza o commit, pergunta se você quer fazer o push, para desabilitar: oco config set OCO_GITPUSH=false

Passando sua API_KEY, que você acaba de pegar no site da GROQ, para o opencommit: oco config set OCO_API_KEY=SUA_API_KEY

Caso você queira utilizar o padrão do conventional commit, você pode configurar assim: oco config set OCO_PROMPT_MODULE=conventional-commit

Tudo pronto, agora você tem um "assistente" de commits, basta rodar oco no terminal.

Apesar das vantagens, o uso de AI para gerar mensagens de commit deve ser feito com cautela. É importante revisar e adaptar as sugestões para garantir que os commits reflitam de forma fiel e precisa as mudanças realizadas. A IA pode facilitar a escrita, mas não substitui o contexto e o entendimento do desenvolvedor sobre o impacto das alterações no código. Além disso, confiar cegamente na IA pode levar a descrições genéricas ou vagas, perdendo o propósito de um histórico bem documentado. Usada com equilíbrio, a IA é uma ferramenta poderosa, mas o controle e a responsabilidade ainda são seus.

Já teste algumas dessas ferramentas e inclusive essa que menciona. Em commits pequenos funciona até bem, em commits mais complexos mais atrapalha do que ajuda.

Commit pra mim é hora sagrada, que vc usa pra revisar cada arquivo alterado pra ver se não deixou nada pra trás que pode quebrar o código, nenhum texto ou código de encerramento da aplicação pra saída prematura de testes e etc.

usar o commit como revisão do meu código aumentou a qualidade das minhas entregas exponencialmente de modo que não vejo vantagem em delegar isso para uma IA.

Existe algo semelhante ao opencommit em python?

Não sei te dizer, mas da uma olhada nesse vídeo: https://www.youtube.com/watch?v=ijaye9b16g4 Talvez tire alguma coisa interassante.