Como revisar código com IA local antes do pull request usando Ollama
Aprenda a configurar modelos de linguagem locais com Ollama e githooks para realizar uma varredura estática de segurança e estilo diretamente na sua máquina.
Resumo
- Modelos locais rodam inteiramente offline e garantem privacidade total do código fonte corporativo
- Githooks interceptam comandos como git commit ou push para automatizar verificações sem depender de servidores externos
- O Ollama simplifica a execução de pesos de inteligência artificial diretamente no terminal do desenvolvedor
- Scripts de validação evitam que credenciais e falhas básicas cheguem ao repositório central
- A integração local acelera o ciclo de desenvolvimento ao fornecer feedback imediato antes do pull request
O desafio de manter a qualidade antes do versionamento
Garantir que nenhum erro crítico, falha de segurança ou desvio de estilo escape para o repositório principal é uma das tarefas mais árduas no desenvolvimento de software moderno. Muitas equipes dependem de servidores de integração contínua (sistemas automatizados que rodam testes na nuvem) para checar o código, mas isso gera um ciclo de feedback lento: você escreve o código, envia para a nuvem, espera minutos e só depois descobre que esqueceu uma variável ou deixou uma senha exposta. Na prática, isso significa perder tempo precioso consertando pequenos deslizes que poderiam ser prevenidos localmente.
Para resolver esse gargalo sem enviar dados sensíveis para servidores de inteligência artificial de terceiros na nuvem, podemos rodar modelos de linguagem (algoritmos treinados para entender e gerar texto) diretamente no nosso próprio computador. Combinando ferramentas de execução local com automatizadores de fluxo no terminal, criamos uma barreira invisível que varre o código linha por linha antes mesmo que ele possa ser compartilhado com a equipe.
O que são githooks e como eles interceptam suas ações
Os githooks são scripts acionados automaticamente pelo sistema de controle de versão sempre que um evento específico ocorre no repositório, como um comando de commit ou de envio de alterações. Pense neles como guardas posicionados na portaria do seu projeto: toda vez que você tenta registrar uma mudança, o guarda impede a ação temporariamente, roda uma rotina de inspeção e só deixa o processo prosseguir se tudo estiver em ordem. Essa automação elimina a dependência da memória humana e impede que lapsos des atenção passem desapercebidos.
No nosso cenário, utilizaremos especificamente o gancho do tipo pre-commit, que é disparado exatamente no momento em que você tenta salvar suas alterações localmente. Se o script encontrar um problema de segurança, uma senha hardcoded ou um padrão de código fora do estilo aceito, ele cancela o commit na mesma hora e exibe o motivo na tela. Assim, você corrige o erro imediatamente, mantendo o histórico do projeto limpo e livre de poluição desnecessária.
Configurando o Ollama para rodar inteligência artificial na máquina
O Ollama é uma ferramenta leve e prática projetada para gerenciar e executar modelos de linguagem de grande porte diretamente no hardware local, seja ele um notebook ou uma estação de trabalho robusta. Ele funciona como um servidor local que atende a requisições via linha de comando ou API, permitindo que qualquer script converse com a inteligência artificial sem precisar de conexão com a internet. Para começar, o primeiro passo é instalar a ferramenta e baixar um modelo compacto e eficiente, como o Llama 3 ou o Mistral, ideal para análises rápidas de texto e sintaxe.
Após a instalação bem-sucedida, você pode testar o funcionamento do motor de inteligência artificial diretamente pelo terminal da sua máquina. Essa abordagem garante total soberania sobre os dados, pois nenhum trecho do seu código proprietário ou confidencial jamais deixará o disco rígido do seu computador. Além disso, como vimos ao explorar técnicas avançadas de busca e processamento local, o ecossistema de ferramentas locais evoluiu a ponto de entregar respostas rápidas e precisas sem exigir placas de vídeo industriais.
Criando o script de varredura estática de segurança
Com o motor de IA rodando localmente, precisamos escrever a ponte que conecta o git ao modelo. Criamos um arquivo de script em Python ou Bash que extrai as alterações feitas nos arquivos modificados (usando comandos do git diff) e envia esse conteúdo formatado para a API local do Ollama. O prompt enviado para a inteligência artificial deve ser altamente direcionado, instruindo o modelo a atuar como um revisor de código sênior implacável que busca apenas por falhas graves de segurança, vazamento de segredos e más práticas evidentes.
Para implementar essa lógica de forma limpa e modular, muitos desenvolvedores se inspiram na arquitetura de agentes autônomos orientados a tarefas específicas, garantindo que o modelo não divague e responda estritamente se o código está aprovado ou reprovado. Abaixo, apresentamos um exemplo prático de script em Python que realiza essa comunicação de forma automatizada:
import subprocess
import requests
import json
def get_staged_diff():
result = subprocess.run(['git', 'diff', '--cached'], capture_output=True, text=True)
return result.stdout
def review_code_with_ollama(diff_content):
if not diff_content.strip():
return 'No changes to review.'
url = 'http://localhost:11434/api/generate'
prompt = f'Analise o seguinte codigo alterado em busca de falhas de seguranca ou erros criticos. Responda APROVADO ou REPROVADO seguido do motivo:\n\n{diff_content}'
payload = {
'model': 'llama3',
'prompt': prompt,
'stream': False
}
response = requests.post(url, json=payload)
return response.json().get('response', 'Erro na resposta da IA')
if __name__ == '__main__':
diff = get_staged_diff()
verdict = review_code_with_ollama(diff)
print(verdict)
if 'REPROVADO' in verdict:
exit(1)
Instalando o gancho no repositório git local
Depois de criar o script de validação, o passo final é colocá-lo no diretório correto para que o git passe a executá-lo automaticamente antes de cada commit. Os ganchos do git ficam armazenados na pasta oculta .git/hooks dentro de cada repositório. Para configurar o nosso sistema, criamos ou editamos o arquivo pre-commit localizado nessa pasta, garantindo que ele tenha permissões de execução adequadas no sistema operacional.
Abaixo está o procedimento sequencial em formato de passos que você deve executar no terminal do seu projeto para ativar o mecanismo de defesa:
- Navegue até a pasta raiz do seu projeto de software onde o repositório git está inicializado.
- Abra ou crie o arquivo de configuração do gancho na pasta de controle interno com o comando
e cole a chamada para o script de validação.nano .git/hooks/pre-commit - Torne o arquivo executável pelo sistema operacional utilizando o comando de permissões
para liberar o gatilho automático.chmod +x .git/hooks/pre-commit
Considerações finais sobre produtividade e segurança
Adotar uma rotina de revisão automatizada com inteligência artificial local transforma profundamente a dinâmica de desenvolvimento de uma equipe. Além de blindar o código contra erros constrangedores e vazamentos acidentais de chaves de API antes mesmo do pull request, essa abordagem promove uma cultura de melhoria contínua sem depender de infraestruturas caras na nuvem. Ao manter o processamento restrito ao seu próprio hardware, você une o melhor dos dois mundos: a inteligência analítica de ponta e a privacidade absoluta dos dados corporativos.