ci: revisar los pull requests con IA #1

Merged
jpbeldomenico merged 1 commits from feat/ai-review into main 2026-08-03 19:27:57 -03:00
Owner

Replica la revision automatica que ya corre en prode_app.

Que hace

Al abrir, reabrir o actualizar un pull request, un modelo lee el diff completo y publica comentarios pegados a cada linea mas un resumen en el hilo, firmados por el usuario ai-bot.

Costo

Cero. El modelo (nvidia/nemotron-3-ultra-550b-a55b:free por OpenRouter) es gratuito, y cada revision cuesta dos pedidos porque manda todos los archivos juntos en vez de uno por archivo.

Secretos

Se leen de Infisical al arrancar el job, por DNS interno de la red del runner. En el repositorio solo quedan INFISICAL_CLIENT_ID y INFISICAL_CLIENT_SECRET (ya cargados).

El prompt es de este proyecto

No es generico: apunta a turnos que se pisan, husos horarios, la autorizacion distinta de admin, jefe y cliente, los magic links tratados como credenciales, las migraciones que acompañen a schema.prisma, y los datos personales de clientes que no deben terminar en los registros.

Ademas le pide no comentar estilo ni afirmar como se comporta una biblioteca sin estar seguro.

Runner

Usa el label ai-review, que apunta al runner en contenedor del homelab. Se eligio uno exclusivo porque self-hosted y ubuntu-latest estan repetidos entre varios runners y el job podia caer en cualquiera.

Replica la revision automatica que ya corre en prode_app. ## Que hace Al abrir, reabrir o actualizar un pull request, un modelo lee el diff completo y publica **comentarios pegados a cada linea** mas un **resumen** en el hilo, firmados por el usuario `ai-bot`. ## Costo **Cero.** El modelo (`nvidia/nemotron-3-ultra-550b-a55b:free` por OpenRouter) es gratuito, y cada revision cuesta **dos pedidos** porque manda todos los archivos juntos en vez de uno por archivo. ## Secretos Se leen de Infisical al arrancar el job, por DNS interno de la red del runner. En el repositorio solo quedan `INFISICAL_CLIENT_ID` y `INFISICAL_CLIENT_SECRET` (ya cargados). ## El prompt es de este proyecto No es generico: apunta a turnos que se pisan, husos horarios, la autorizacion distinta de `admin`, `jefe` y `cliente`, los magic links tratados como credenciales, las migraciones que acompañen a `schema.prisma`, y los datos personales de clientes que no deben terminar en los registros. Ademas le pide **no comentar estilo** ni afirmar como se comporta una biblioteca sin estar seguro. ## Runner Usa el label `ai-review`, que apunta al runner en contenedor del homelab. Se eligio uno exclusivo porque `self-hosted` y `ubuntu-latest` estan repetidos entre varios runners y el job podia caer en cualquiera.
jpbeldomenico added 1 commit 2026-08-03 18:58:50 -03:00
feat(ci): revisar los pull requests con IA
Revisión con IA / ai-review (pull_request) Successful in 1m58s
5e027d2c8c
Replica en este repositorio la revision automatica que ya corre en
prode_app: al abrir, reabrir o actualizar un pull request, un modelo lee el
diff completo y publica comentarios pegados a cada linea mas un resumen,
firmados por el usuario ai-bot.

El modelo es gratuito y cada revision cuesta dos pedidos, porque manda todos
los archivos juntos en lugar de uno por archivo.

Los secretos se leen de Infisical al arrancar el job, asi que en el
repositorio solo quedan las credenciales de la identidad de maquina.

El prompt esta escrito sobre este proyecto en particular: turnos que se
pisan, husos horarios, autorizacion distinta para admin, jefe y cliente,
magic links tratados como credenciales, migraciones que acompañen a
schema.prisma y datos personales que no terminen en los registros.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Collaborator

Qué cambia
Se agrega la configuración completa para revisión automática de pull requests con IA (xai-review) en Gitea Actions: archivo de configuración principal, prompts de contexto y resumen adaptados al proyecto del taller, y un workflow que lee secretos de Infisical y ejecuta la revisión en cada PR abierto, reabierto o sincronizado.

Riesgos

  • El modelo gratuito de OpenRouter (nvidia/nemotron-3-ultra-550b-a55b:free) puede dejar de estar disponible; el config incluye alternativas y comando para listar vigentes.
  • Rate limit de OpenRouter: 20 req/min; concurrency 3 configurado, pero conviene monitorear si hay muchos PRs simultáneos.
  • El workflow depende de un runner etiquetado ai-review con Python 3.12 y acceso a la red interna proxy para hablar con Gitea e Infisical por DNS.
  • Si faltan secretos en Infisical (OPENROUTER_API_KEY, AI_REVIEW_GITEA_TOKEN en /gitea-ai-review), el job falla explícitamente.

Antes de aprobar

  • Confirmar que existe el runner ai-review y tiene Python 3.12.
  • Verificar en Infisical que los dos secretos están en el proyecto/entorno/ruta indicados.
  • Disparar el workflow manualmente (workflow_dispatch) en un PR de prueba y revisar que publique comentarios y resumen sin errores.
  • Validar que GITEA_API_URL (variable de repo) apunta al endpoint correcto si no es el default http://gitea:3000/api/v1.

#ai-review-summary

**Qué cambia** Se agrega la configuración completa para revisión automática de pull requests con IA (xai-review) en Gitea Actions: archivo de configuración principal, prompts de contexto y resumen adaptados al proyecto del taller, y un workflow que lee secretos de Infisical y ejecuta la revisión en cada PR abierto, reabierto o sincronizado. **Riesgos** - El modelo gratuito de OpenRouter (`nvidia/nemotron-3-ultra-550b-a55b:free`) puede dejar de estar disponible; el config incluye alternativas y comando para listar vigentes. - Rate limit de OpenRouter: 20 req/min; concurrency 3 configurado, pero conviene monitorear si hay muchos PRs simultáneos. - El workflow depende de un runner etiquetado `ai-review` con Python 3.12 y acceso a la red interna `proxy` para hablar con Gitea e Infisical por DNS. - Si faltan secretos en Infisical (`OPENROUTER_API_KEY`, `AI_REVIEW_GITEA_TOKEN` en `/gitea-ai-review`), el job falla explícitamente. **Antes de aprobar** - Confirmar que existe el runner `ai-review` y tiene Python 3.12. - Verificar en Infisical que los dos secretos están en el proyecto/entorno/ruta indicados. - Disparar el workflow manualmente (`workflow_dispatch`) en un PR de prueba y revisar que publique comentarios y resumen sin errores. - Validar que `GITEA_API_URL` (variable de repo) apunta al endpoint correcto si no es el default `http://gitea:3000/api/v1`. #ai-review-summary
jpbeldomenico merged commit 8d1b5da448 into main 2026-08-03 19:27:57 -03:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: jpbeldomenico/taller_automotriz#1