Code Review con IA
Sincronizando repos
Plataforma DevTools: revisión automatizada de PRs, generación de tests, escaneo de seguridad, compliance de licencias y analítica de ingeniería.
PRs abiertos
12
esperando review
Score IA promedio
87
últimos 30 días
Lead time
6.2
horas a merge
Cobertura
84%
líneas testeadas
Pull Requests5
Comentarios IA
Análisis estructurado por archivo con sugerencias de fix automático.
- BlockingSeguridadsrc/auth/refresh.service.ts:4JWT verificado sin algoritmo explícito permite ataques alg=none.Si no se restringe el algoritmo, un atacante puede forjar un token alg=none. Fijar algorithms a HS256/RS256.Antes
jwt.verify(token, SECRET);Sugerenciajwt.verify(token, SECRET, { algorithms: [class="text-amber-300">"HS256"] }); - WarningBug potencialsrc/auth/refresh.service.ts:6El jti previo no se invalida tras rotar el refresh token.Rotación sin revocación permite reutilizar el token anterior si fue interceptado. Agregar a denylist con TTL = exp.Antes
return jwt.sign({ uid: payload.uid }, SECRET);Sugerenciaawait this.denylist.add(payload.jti, this.clock.now()); return this.issuePair(payload.uid); - SugerenciaEstilosrc/auth/refresh.controller.ts:1Lógica de negocio dentro del controller — extraer a service.Mantener controllers delgados (single responsibility). El servicio ya existe, sólo orquestar y mapear errores.Antes
router.post(class="text-amber-300">"/refresh", (req, res) => { /* ... */ });Sugerenciarouter.post(class="text-amber-300">"/refresh", validate(RefreshDto), handler(refreshService.rotate)); - InfoDiseñosrc/auth/refresh.service.ts:2Inyectar Clock facilita testeo determinístico.Evita new Date() embebido — recibí un Clock por constructor para tests.Antes
constructor() {}Sugerenciaconstructor(private denylist: TokenDenylist, private clock: Clock) {}
¿Te gustaría algo así para tu negocio?
Desarrollamos software a medida adaptado a las necesidades de tu empresa. Solicita una cotización sin compromiso.