Cómo automatizar revisiones de PR en GitHub con OpenClaw
Aprende a configurar un flujo de trabajo automatizado de revisión de PR con OpenClaw: integración con GitHub, PR Reviewer para análisis de código y Conventional Commits para revisiones consistentes y de alta calidad.
Última actualización: 2026-03-31
Skills necesarios
Lo que vas a construir
Un pipeline completo de revisión automatizada de PR que:
- Crea PRs con descripciones generadas por IA a partir de tu historial de commits
- Revisa el código con análisis potenciado por IA que detecta bugs, problemas de seguridad y errores de estilo
- Aplica convenciones de commit con el formato Conventional Commits
- Proporciona feedback accionable como comentarios inline en el PR
Al terminar esta guía, tendrás un flujo de trabajo donde abrir un PR automáticamente dispara una revisión con IA — sin intervención manual.
Por qué usar IA para revisar PRs
La revisión manual de código es esencial, pero tiene limitaciones reales que ralentizan a los equipos:
- Calidad inconsistente — Cada revisor se fija en cosas diferentes. Uno se enfoca en convenciones de nombres, otro en manejo de errores. Los problemas que se detectan dependen de quién revisa el PR ese día.
- Fatiga del revisor — Después de revisar varios cientos de líneas de código, la atención cae significativamente. Estudios muestran que la efectividad de revisión disminuye después de unos 60 minutos de revisión continua. Los bugs críticos se esconden en las últimas partes de diffs grandes.
- Tiempo de espera largo — Los revisores están ocupados con su propio trabajo. Un PR puede esperar horas o incluso días. Esto bloquea al autor, fomenta PRs grandes acumulados y genera conflictos de merge.
- Problemas de escalabilidad — A medida que el equipo crece, el cuello de botella de revisión empeora. Los desarrolladores senior pasan cada vez más tiempo revisando en lugar de construir. Los nuevos miembros del equipo puede que no conozcan la base de código lo suficiente para detectar problemas sutiles.
La revisión con IA no reemplaza a los revisores humanos — se encarga de las verificaciones sistemáticas (patrones de seguridad, bugs comunes, violaciones de estilo) para que los revisores humanos se enfoquen en arquitectura, decisiones de diseño y lógica de negocio. Piénsalo como una primera pasada que eleva la calidad base de cada PR antes de que un humano lo abra.
Requisitos previos
Antes de empezar, asegúrate de tener:
- OpenClaw instalado y configurado (Guía de inicio rápido)
- GitHub CLI (
gh) instalado y autenticado (gh auth login) - Un repositorio en GitHub para probar (puede ser un proyecto personal)
- Node.js 18+ para ejecutar comandos de clawhub
Paso 1: Instalar los Skills necesarios
Instala los tres skills en orden:
# 1. Integración con GitHub (base) npx clawhub@latest install github # 2. PR Reviewer (análisis de código) npx clawhub@latest install pr-reviewer # 3. Conventional Commits (formato de commits) npx clawhub@latest install conventional-commits
Verifica la instalación:
clawhub list
Los tres skills deberían aparecer como installed.
Paso 2: Configurar la autenticación con GitHub
El skill de GitHub necesita un Personal Access Token con los siguientes permisos:
repo— acceso completo al repositorioread:org— leer membresía de la organización (opcional, para repos de organizaciones)
Si ya te autenticaste con gh auth login, el skill usará tus credenciales existentes. De lo contrario:
# Verificar el estado de autenticación gh auth status # Iniciar sesión si es necesario gh auth login
Paso 3: Configurar PR Reviewer
El skill PR Reviewer funciona de inmediato, pero puedes personalizar su comportamiento:
# Ver la configuración predeterminada clawhub inspect pr-reviewer
Opciones clave de configuración:
- Profundidad de revisión:
quick(superficial) othorough(análisis profundo) - Áreas de enfoque: seguridad, rendimiento, estilo, bugs, o todas
- Comentarios automáticos: si publica comentarios directamente en el PR
Paso 4: Crea tu primera revisión automatizada de PR
Probemos el flujo de trabajo con un PR real:
4.1 Crear una rama de feature
git checkout -b feature/test-ai-review
4.2 Hacer algunos cambios
Edita un archivo en tu proyecto. Para probar, intenta introducir problemas comunes que el revisor pueda detectar. Aquí tienes varios ejemplos en distintas categorías:
Falta de await (bug asíncrono):
// Bug: falta await en llamada asíncrona
function getUserData(userId) {
const response = fetch(`/api/users/${userId}`); // Falta await
return response.json(); // TypeError: response.json is not a function
}
Vulnerabilidad de inyección SQL:
# Seguridad: entrada del usuario interpolada directamente en la consulta SQL
def get_user(user_id):
query = f"SELECT * FROM users WHERE id = '{user_id}'" # Riesgo de inyección SQL
return db.execute(query)
Secreto hardcodeado:
// Seguridad: clave API expuesta en el código fuente
const stripe = require('stripe')('sk_live_abc123secretkey');
Problema de consultas N+1:
# Rendimiento: consulta N+1 — ejecuta una consulta por cada pedido
def get_orders_with_items(user_id):
orders = Order.objects.filter(user_id=user_id)
for order in orders:
order.items = OrderItem.objects.filter(order_id=order.id) # N+1!
return orders
4.3 Hacer commit con Conventional Commits
En lugar de escribir el mensaje de commit manualmente, deja que OpenClaw lo genere:
git add . # OpenClaw genera un mensaje de commit en formato Conventional Commits # p. ej., "feat(api): add getUserData function for user data retrieval"
4.4 Crear y revisar el PR
# OpenClaw crea el PR con una descripción generada por IA # Luego PR Reviewer analiza automáticamente el diff
En cuestión de segundos, verás:
- Una descripción de PR bien formateada que resume tus cambios
- Comentarios de revisión inline apuntando a problemas específicos
- Un comentario resumen con la evaluación general y sugerencias
Ejemplo de cómo se ven los comentarios de revisión en tu PR:
🔒 Problema de seguridad (línea 14, auth.py):
La entrada del usuario se interpola directamente en la cadena de consulta SQL.
Esto es vulnerable a ataques de inyección SQL.
Corrección sugerida: Usar consultas parametrizadas.
- query = f"SELECT * FROM users WHERE id = '{user_id}'"
+ query = "SELECT * FROM users WHERE id = %s"
+ return db.execute(query, (user_id,))
⚡ Problema de rendimiento (línea 8, orders.py):
Consulta N+1 detectada — OrderItem.objects.filter() se ejecuta
una vez por cada pedido dentro de un bucle. Usa select_related() o
prefetch_related() para consolidar en una sola consulta.
- orders = Order.objects.filter(user_id=user_id)
+ orders = Order.objects.filter(user_id=user_id).prefetch_related('items')
🐛 Bug (línea 3, api.js):
fetch() devuelve una Promise pero no se usa await.
response.json() fallará porque response es una
Promise pendiente, no un objeto Response.
- const response = fetch(`/api/users/${userId}`);
+ const response = await fetch(`/api/users/${userId}`);
Paso 5: Personalizar el flujo de revisión
Enfoque en seguridad
Para repositorios críticos en seguridad, configura PR Reviewer para priorizar revisiones de seguridad:
- Patrones de inyección SQL
- Credenciales o claves API hardcodeadas
- Manejo inseguro de datos (entrada sin validar, falta de sanitización)
- Vulnerabilidades en dependencias
- Vectores de Cross-Site Scripting (XSS) en código frontend
- Patrones de deserialización insegura
Revisión enfocada en rendimiento
Para servicios sensibles al rendimiento, indica al revisor que se enfoque en patrones de rendimiento. Para proyectos React específicamente, el revisor detecta patrones como re-renders innecesarios:
// Rendimiento: nueva referencia de objeto en cada render causa re-renders en hijos
function ParentComponent({ items }) {
return (
<ChildComponent
style={{ margin: 10 }} // Nuevo objeto en cada render
onClick={() => doSomething()} // Nueva función en cada render
/>
);
}
Configuración a nivel de equipo
Comparte la configuración con tu equipo:
- Exporta la configuración del skill al directorio
.openclaw/en tu repositorio - Haz commit al repositorio
- Los miembros del equipo instalan con la misma configuración — los skills toman automáticamente la configuración a nivel de proyecto
Avanzado: Guiar el enfoque de la revisión
Puedes ajustar el enfoque de la revisión proporcionando instrucciones al skill PR Reviewer. El skill usa IA para analizar diffs, así que puedes dirigir su atención con indicaciones en lenguaje natural.
Guía por lenguaje
Al ejecutar una revisión, dile al agente en qué enfocarse:
- Python: verificar bloques
except:genéricos, falta de type hints, consultas N+1 del ORM de Django - JavaScript/TypeScript: marcar
console.logresiduales,awaitfaltante en llamadas async, secretos hardcodeados - Rust: marcar
.unwrap()en código de producción, sugerir manejo adecuado deResult
Enfoque por directorio
Dirige al revisor para aplicar distintos niveles de escrutinio:
- Lógica de negocio central (
src/core/) — revisión exhaustiva de seguridad, bugs y rendimiento - Archivos de test (
src/tests/) — verificación rápida de corrección - Documentación (
docs/) — revisión ligera de estilo - Scripts (
scripts/) — enfoque en seguridad y bugs
Patrones personalizados
Pide al revisor que marque patrones específicos de tu proyecto, como:
- Acceso directo a la base de datos en rutas API en lugar de usar la capa de repositorio
- Componentes de página sin Error Boundaries
- Endpoints de API sin limitación de tasa
Integración con CI/CD
Para revisiones completamente automatizadas en cada PR, integra PR Reviewer de OpenClaw en tu pipeline de CI/CD.
GitHub Actions
Crea un archivo de workflow en .github/workflows/ai-review.yml:
name: AI PR Review
on:
pull_request:
types: [opened, synchronize]
jobs:
ai-review:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install OpenClaw and skills
run: |
npm install -g clawhub@latest
clawhub install pr-reviewer
- name: Run AI Review
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
OPENCLAW_API_KEY: ${{ secrets.OPENCLAW_API_KEY }}
run: |
clawhub run pr-reviewer \
--pr ${{ github.event.pull_request.number }} \
--repo ${{ github.repository }} \
--auto-comment
Controlar cuándo se ejecutan las revisiones
Puedes limitar la revisión con IA a condiciones específicas para ahorrar costos:
on:
pull_request:
types: [opened, synchronize]
paths-ignore:
- '*.md'
- 'docs/**'
- '.github/**'
O requerir una etiqueta antes de revisar:
- name: Check for review label
if: contains(github.event.pull_request.labels.*.name, 'ai-review')
run: clawhub run pr-reviewer --pr ${{ github.event.pull_request.number }}
Otras plataformas de CI
El mismo enfoque funciona en cualquier plataforma de CI que soporte Node.js. Los pasos clave son:
- Instalar
clawhuby el skillpr-reviewer - Configurar
OPENCLAW_API_KEYcomo variable de entorno secreta - Pasar el número de PR y el repositorio al comando de revisión
- Asegurarse de que el bot de CI tiene permisos de escritura en pull requests
Resultados reales
Los equipos que usan este flujo de trabajo típicamente ven:
- 40% más rápido en la gestión de PRs — la IA detecta problemas obvios antes de la revisión humana
- Calidad de revisión consistente — cada PR recibe el mismo análisis exhaustivo
- Mejor historial de commits — Conventional Commits hacen que los changelogs sean automáticos
- Menos bugs en producción — la IA detecta problemas que los humanos podrían pasar por alto
Solución de problemas
"GitHub CLI not found"
Asegúrate de que gh está instalado y en tu PATH:
# macOS brew install gh # Linux sudo apt install gh # Windows winget install GitHub.cli
"Permission denied" al crear el PR
Verifica los permisos de tu token:
gh auth status
Asegúrate de que incluye el permiso repo. Vuelve a autenticarte si es necesario:
gh auth login --scopes repo
PR Reviewer no comenta
Verifica que el skill está instalado y configurado:
clawhub inspect pr-reviewer
Confirma que tu proveedor de IA en OpenClaw está configurado y tiene créditos disponibles.
Preguntas Frecuentes
Sí. El skill de GitHub usa la CLI `gh`, que es totalmente compatible con GitHub Enterprise Server y GitHub Enterprise Cloud. Configura tu host empresarial con `gh auth login --hostname github.tuempresa.com`. Una vez autenticado, todos los skills de GitHub de OpenClaw — incluyendo PR Reviewer — funcionan exactamente igual que con github.com. No se necesita configuración adicional más allá del hostname.
El skill de GitHub es específico para GitHub, pero PR Reviewer y Conventional Commits funcionan con cualquier plataforma Git. Para GitLab, usarías el skill de GitLab, pasando IDs de merge requests en lugar de números de PR. Bitbucket funciona de manera similar con su propio skill de plataforma. La lógica central de revisión es agnóstica a la plataforma — solo la capa de integración que publica comentarios difiere entre plataformas.
La revisión con IA complementa a la revisión humana, no la reemplaza. Es excelente en verificaciones sistemáticas — detectar vulnerabilidades de seguridad, patrones comunes de bugs, violaciones de estilo y anti-patrones de rendimiento de forma consistente en cada PR sin fatigarse. Sin embargo, no evalúa decisiones de arquitectura de alto nivel, la corrección de la lógica de negocio, ni si el enfoque general es el adecuado. El mejor flujo de trabajo usa la revisión con IA como primera pasada para manejar verificaciones mecánicas, liberando a los revisores humanos para enfocarse en diseño e intención.
Los costos dependen de tu proveedor de IA y del tamaño del diff que se revisa. Una revisión típica de PR analizando un diff de 500 líneas cuesta aproximadamente $0.01-0.05 con la mayoría de proveedores. Diffs más grandes (1000+ líneas) pueden costar hasta $0.10-0.15. Puedes controlar los costos configurando la profundidad de revisión a `quick` para rutas no críticas y usando filtros de ruta para omitir archivos generados, directorios vendor y documentación.
Sí. PR Reviewer admite configuración flexible de patrones de archivos. Puedes excluir archivos por patrón glob (p. ej., `**/*.generated.ts`, `vendor/**`), limitar las revisiones a directorios específicos, o establecer diferentes profundidades de revisión por ruta. Esto se configura en tu archivo `.openclaw/pr-reviewer.yml`. La mayoría de equipos excluyen archivos auto-generados, archivos lock y dependencias vendorizadas para mantener las revisiones enfocadas en código realmente escrito por el equipo.
PR Reviewer procesa diffs grandes dividiéndolos en fragmentos lógicos y analizando cada uno en contexto. Para PRs que superan las 1000 líneas, prioriza los archivos de alto riesgo primero — archivos que tocan autenticación, consultas a base de datos, endpoints de API y lógica sensible a la seguridad se revisan con profundidad máxima. Archivos de menor riesgo como tests y cambios de configuración reciben una pasada más ligera. También puedes configurar un límite de líneas que dispare una advertencia sugiriendo al autor dividir el PR en piezas más pequeñas y revisables.
Sí. PR Reviewer soporta todos los lenguajes de programación principales incluyendo JavaScript, TypeScript, Python, Go, Rust, Java, C#, Ruby, PHP y más. Aplica reglas específicas por lenguaje automáticamente — por ejemplo, verificando el mal uso de `unwrap()` en Rust o la falta de `await` en código async de JavaScript. También puedes definir reglas personalizadas por lenguaje en tu archivo de configuración. El revisor detecta el lenguaje por la extensión del archivo y aplica el pipeline de análisis correspondiente sin configuración manual.
La revisión con IA y los linters cumplen propósitos complementarios y funcionan bien juntos. Los linters aplican reglas deterministas (formato, orden de imports, variables sin usar) mientras que la revisión con IA detecta problemas semánticos (bugs de lógica, patrones de seguridad, problemas de rendimiento) que las herramientas basadas en reglas no pueden detectar. En CI, ejecuta tu linter primero para detectar problemas de formato, luego ejecuta la revisión con IA para un análisis más profundo. PR Reviewer conoce las reglas comunes de linters y evita duplicar feedback que tu linter ya cubre, así que no verás comentarios dobles sobre el mismo problema.
OpenClaw registra métricas de revisión de tu repositorio a lo largo del tiempo. Ejecuta `clawhub stats pr-reviewer` para ver un resumen de problemas encontrados por categoría, cuántos se resolvieron antes del merge, y patrones comunes en tu base de código. Esto ayuda a identificar problemas recurrentes — por ejemplo, si las advertencias de inyección SQL siguen apareciendo, es señal de que el equipo necesita capacitación o mejores abstracciones del ORM. Puedes exportar estas métricas como JSON para integrarlas con dashboards o herramientas de reporting del equipo.
Sí. Puedes definir plantillas de revisión que apliquen diferentes reglas según las etiquetas del PR, convenciones de nombres de ramas o rutas de archivos modificados. Por ejemplo, una rama `hotfix/*` podría recibir una revisión enfocada en seguridad con profundidad máxima, mientras que una rama `docs/*` solo recibe una revisión ligera de estilo. Define las plantillas en tu `.openclaw/pr-reviewer.yml` bajo la clave `templates`, y PR Reviewer selecciona automáticamente la plantilla correspondiente según tus criterios. Así los cambios críticos reciben una revisión exhaustiva sin ralentizar las actualizaciones de bajo riesgo.
Casos de uso relacionados
Automatiza Jira y Gestión de Tareas
Automatiza la clasificación de issues, actualizaciones de estado, informes de sprint y la vinculación entre Jira, Linear y GitHub.
Crea un Resumen de Noticias Diario
Crea un boletín de noticias automatizado que busca tus temas, resume artículos clave y entrega un resumen personalizado cada día.
Crear y Revisar Skills
Crea skills personalizados de OpenClaw, revisa skills de la comunidad por seguridad y calidad, y descompón tareas complejas en cadenas de skills reutilizables.