Automatiza la revision de codigo con IA: Tutorial n8n + Ollama
Automatiza la revision de codigo con IA: n8n + Ollama
Cada pull request merece una revision, pero no todos los equipos tienen el tiempo. Este tutorial te muestra como construir un pipeline de revision de codigo con IA usando n8n y un LLM local (via Ollama) — completamente self-hosted, sin costes de API, sin que tu codigo salga de tu red.

Que hace este workflow
- Recibe un webhook cuando se abre un PR en GitHub/GitLab
- Obtiene el diff (cambios de codigo) del PR
- Envia el diff a Ollama (LLM local) para analisis
- Formatea la revision en un informe estructurado
- Publica la revision en Discord (o Slack, email — tu eleccion)
- Responde al webhook confirmando que la revision fue publicada
Total: 6 nodos, ~5 minutos de configuracion, coste recurrente cero.
Arquitectura
GitHub PR Webhook → n8n → Obtener Diff → Ollama (local) → Formatear → Discord
Todo el pipeline se ejecuta localmente. Tu codigo nunca toca una API de terceros. Esto es critico para empresas que manejan codigo propietario o que operan bajo restricciones GDPR.
Requisitos previos
- n8n instalado (self-hosted o cloud)
- Ollama ejecutandose con un modelo de codigo:
ollama pull qwen2.5-coder:7b - GitHub/GitLab acceso a webhooks del repositorio
- Discord URL de webhook (o webhook de Slack)
Configuracion paso a paso
1. Configurar el Trigger Webhook
Crea un nuevo workflow en n8n y anade un nodo Webhook:
- Metodo HTTP: POST
- Ruta:
/pr-review - Esto genera una URL como
https://tu-n8n.com/webhook/pr-review
Registra esta URL en tu repo GitHub: Settings → Webhooks → Add webhook → Payload URL → Selecciona eventos “Pull requests”.
2. Obtener el Diff
Anade un nodo Code para extraer la URL del diff:
const prUrl = $input.first().json.pull_request.diff_url;
const title = $input.first().json.pull_request.title;
const author = $input.first().json.pull_request.user.login;
return [{ json: { prUrl, title, author, diffUrl: prUrl } }];
3. Enviar a Ollama para revision IA
Anade un nodo HTTP Request:
- Metodo: POST
- URL:
http://localhost:11434/api/generate - Body (JSON):
{
"model": "qwen2.5-coder:7b",
"prompt": "Revisa este diff de codigo. Enfocate en: bugs, problemas de seguridad, rendimiento y estilo. Se especifico y referencia numeros de linea.\n\nDiff:\n{{ $json.diff }}",
"stream": false
}
Esto envia el diff a tu instancia local de Ollama. El modelo se ejecuta en tu hardware — sin tokens cobrados, sin datos subidos.
4. Formatear la revision
Anade otro nodo Code:
const review = $input.first().json.response;
const title = $('Fetch Diff').first().json.title;
const author = $('Fetch Diff').first().json.author;
return [{
json: {
content: `**Revision IA de Codigo** 🤖\n**PR:** ${title}\n**Autor:** ${author}\n\n${review}\n\n_Powered by Vorlux AI + Ollama (inferencia local)_`
}
}];
5. Publicar en Discord
Anade un nodo HTTP Request:
- Metodo: POST
- URL: Tu URL de webhook de Discord
- Body:
{ "content": "{{ $json.content }}" }
6. Responder al Webhook
Anade un nodo Respond to Webhook que devuelva { "status": "reviewed" }.
Descargar el Workflow
Este workflow exacto esta disponible como archivo JSON listo para importar:
Descargar ai_code_review.json →
Importalo en n8n: Settings → Import Workflow → Upload File.
Por que IA local para revision de codigo
| Factor | API Cloud (GPT-4) | Local (Ollama + Qwen) |
|---|---|---|
| Coste | ~$0.03-0.10 por revision | EUR 0 |
| Privacidad | Codigo enviado a servidores OpenAI | Codigo se queda en tu maquina |
| Velocidad | 2-5 segundos (red) | 1-3 segundos (local) |
| GDPR | Requiere DPA con OpenAI | Totalmente conforme (local) |
| Disponibilidad | Depende del uptime de la API | Siempre disponible |
flowchart LR
GH["GitHub PR"] --> WH["n8n Webhook"]
WH --> DIFF["Fetch Diff"]
DIFF --> AI["Ollama Review"]
AI --> FMT["Format Output"]
FMT --> DC["Discord Alert"]
style GH fill:#1E293B,color:#FAFAFA
style AI fill:#059669,color:#FAFAFA
style DC fill:#F5A623,color:#0B1628
Eligiendo el modelo adecuado para revision de codigo
No todos los modelos son iguales para revision de codigo. Segun nuestras pruebas con cientos de PRs:
| Modelo | Fortalezas | Mejor para | Memoria |
|---|---|---|---|
| Qwen 2.5 Coder 7B | Seguimiento de instrucciones, multi-lenguaje | Revision general | ~4,5GB |
| DeepSeek R1 14B | Razonamiento cadena de pensamiento | Bugs logicos complejos | ~10GB |
| Llama 3.3 70B | Analisis profundo, feedback arquitectonico | Revisiones de arquitectura | ~40GB |
| Phi-4 14B | Inferencia rapida, output conciso | Checks rapidos de PR | ~9GB |
Para la mayoria de equipos, Qwen 2.5 Coder 7B ofrece el mejor balance entre calidad y velocidad. Si tu Mac tiene 32GB+ de memoria, considera DeepSeek R1 14B por su razonamiento superior en diffs complejos.
Proximos pasos
- Reemplaza Discord con Slack o email
- Anade un nodo de comentario GitHub para publicar directamente en el PR
- Usa structured outputs (schema JSON de Ollama) para revisiones parseables
- Encadena con un workflow de test runner para CI/CD completo
- Explora el soporte de Model Context Protocol (MCP) en n8n para conectar agentes a herramientas externas
Lecturas relacionadas
- Construye un Pipeline RAG Local con n8n y Ollama: Consulta los Documentos de tu Empresa con IA
- Google Gemma 3: El Primer Modelo Multimodal Abierto que Cabe en un Mac Mini
- NVIDIA Releases AITune: An Open-Source Inference Toolkit That Automatically Finds the Fastest Inference Backend for Any PyTorch Model — Resumen en Espanol
Recursos relacionados
- Biblioteca de 230 Workflows — explora y descarga todos los workflows
- Catalogo de Modelos IA — encuentra el mejor modelo para revision de codigo
- Stack de Software — herramientas que usamos y recomendamos
- Contacto — necesitas ayuda configurando esto?