Cómo revisar código con IA local antes de pull request usando Ollama
Aprende a configurar modelos de lenguaje locales con Ollama y githooks para ejecutar un análisis estático de seguridad y estilo directamente en tu máquina.
Resumen
- Los modelos locales se ejecutan totalmente offline y garantizan total privacidad del código fuente corporativo
- Los githooks interceptan comandos como git commit o push para automatizar verificaciones sin depender de servidores externos
- Ollama simplifica la ejecución de pesos de inteligencia artificial directamente en la terminal del desarrollador
- Los scripts de validación evitan que credenciales y fallas básicas lleguen al repositorio central
- La integración local acelera el ciclo de desarrollo al proporcionar retroalimentación inmediata antes del pull request
El desafío de mantener la calidad antes del versionado
Asegurar que ningún error crítico, falla de seguridad o desviación de estilo escape al repositorio principal es una de las tareas más arduas en el desarrollo de software moderno. Muchos equipos dependen de servidores de integración continua (sistemas automatizados que ejecutan pruebas en la nube) para revisar el código, pero esto genera un ciclo de retroalimentación lento: escribes código, lo envías a la nube, esperas minutos y solo entonces descubres que olvidaste una variable o dejaste una contraseña expuesta. En la práctica, esto significa perder un tiempo precioso corrigiendo pequeños descuidos que podrían haberse prevenido localmente.
Para resolver este cuello de botella sin enviar datos sensibles a servidores de inteligencia artificial de terceros en la nube, podemos ejecutar modelos de lenguaje (algoritmos entrenados para entender y generar texto) directamente en nuestras propias computadoras. Combinando herramientas de ejecución local con automatizadores de flujo en la terminal, creamos una barrera invisible que escanea el código línea por línea antes de que pueda ser compartido con el equipo.
Qué son los githooks y cómo interceptan tus acciones
Los githooks son scripts activados automáticamente por el sistema de control de versiones cada vez que ocurre un evento específico en el repositorio, como un comando de commit o push. Piénsalos como guardias apostados en la puerta de tu proyecto: cada vez que intentas registrar un cambio, el guardia detiene temporalmente la acción, ejecuta una rutina de inspección y solo deja que el proceso continúe si todo está en orden. Esta automatización elimina la dependencia de la memoria humana y evita que momentos de distracción pasen desapercibidos.
En nuestro escenario, utilizaremos específicamente el gancho pre-commit, que se dispara exactamente en el momento en que intentas guardar tus cambios localmente. Si el script encuentra un problema de seguridad, una contraseña hardcoded o un patrón de código fuera de los estilos aceptados, cancela el commit al instante y muestra el motivo en pantalla. Así, corriges el error de inmediato, manteniendo el historial del proyecto limpio y libre de contaminación innecesaria.
Configurando Ollama para ejecutar inteligencia artificial local
Ollama es una herramienta ligera y práctica diseñada para gestionar y ejecutar modelos de lenguaje grandes directamente en hardware local, ya sea una computadora portátil o una estación de trabajo robusta. Funciona como un servidor local que atiende solicitudes mediante línea de comandos o API, permitiendo que cualquier script hable con la inteligencia artificial sin necesidad de conexión a internet. Para comenzar, el primer paso es instalar la herramienta y descargar un modelo compacto y eficiente, como Llama 3 o Mistral, ideal para análisis rápidos de texto y sintaxis.
Tras una instalación exitosa, puedes probar el motor de inteligencia artificial directamente desde la terminal de tu máquina. Este enfoque garantiza total soberanía sobre los datos, ya que ninguna parte de tu código propietario o confidencial abandonará jamás el disco duro de tu computadora. Además, como vimos al explorar técnicas avanzadas de búsqueda y procesamiento local, el ecosistema de herramientas locales ha evolucionado hasta ofrecer respuestas rápidas y precisas sin requerir tarjetas gráficas industriales.
Creando el script de escaneo estático de seguridad
Con el motor de IA ejecutándose localmente, necesitamos escribir el puente que conecta git con el modelo. Creamos un script en Python o Bash que extrae los cambios realizados en los archivos modificados (usando comandos git diff) y envía este contenido formateado a la API local de Ollama. El prompt enviado a la inteligencia artificial debe estar altamente enfocado, instruyendo al modelo a actuar como un revisor de código senior implacable que busca únicamente fallas graves de seguridad, fugas de secretos y malas prácticas evidentes.
Para implementar esta lógica de forma limpia y modular, muchos desarrolladores se inspiran en la arquitectura de agentes autónomos orientados a tareas específicas, asegurando que el modelo no divague y responda estrictamente si el código está aprobado o rechazado. A continuación, presentamos un ejemplo práctico de script en Python que realiza esta comunicación 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'Analiza el siguiente codigo modificado en busca de fallas de seguridad o errores criticos. Responde APROBADO o RECHAZADO seguido del motivo:\n\n{diff_content}'
payload = {
'model': 'llama3',
'prompt': prompt,
'stream': False
}
response = requests.post(url, json=payload)
return response.json().get('response', 'Error en respuesta de IA')
if __name__ == '__main__':
diff = get_staged_diff()
verdict = review_code_with_ollama(diff)
print(verdict)
if 'RECHAZADO' in verdict:
exit(1)
Instalando el gancho en el repositorio git local
Después de crear el script de validación, el paso final es colocarlo en el directorio correcto para que git lo ejecute automáticamente antes de cada commit. Los ganchos de git se almacenan en la carpeta oculta .git/hooks dentro de cada repositorio. Para configurar nuestro sistema, creamos o editamos el archivo pre-commit ubicado en dicha carpeta, asegurándonos de que tenga permisos de ejecución adecuados en el sistema operativo.
A continuación se muestra el procedimiento secuencial en formato de pasos que debes ejecutar en la terminal de tu proyecto para activar el mecanismo de defensa:
- Navega hasta la carpeta raíz de tu proyecto de software donde el repositorio git está inicializado.
- Abre o crea el archivo de configuración del gancho en la carpeta de control interno usando el comando
y pega la llamada al script de validación.nano .git/hooks/pre-commit - Haz que el archivo sea ejecutable por el sistema operativo utilizando el comando de permisos
para liberar el disparador automático.chmod +x .git/hooks/pre-commit
Consideraciones finales sobre productividad y seguridad
Adoptar una rutina de revisión automatizada con inteligencia artificial local transforma profundamente la dinámica de desarrollo de un equipo. Además de blindar el código contra errores vergonzosos y fugas accidentales de claves de API incluso antes del pull request, este enfoque fomenta una cultura de mejora continua sin depender de costosas infraestructuras en la nube. Al mantener el procesamiento restringido a tu propio hardware, unes lo mejor de ambos mundos: la inteligencia analítica de vanguardia y la privacidad absoluta de los datos corporativos.