fix(ci): no dar por fallida una revision por el texto de su comentario
Revisión con IA / ai-review (pull_request) Successful in 1m59s
Revisión con IA / ai-review (pull_request) Successful in 1m59s
El guard buscaba "Error: " en el log, pero el log tambien trae lo que escribe el modelo. En inventario#3 la revision salio bien y comento justamente que ese patron era demasiado amplio: el comentario quedo impreso, matcheo el patron y el job quedo en rojo. Lo encontro la propia revision con IA. Ahora se miran las marcas de nivel que imprime la herramienta (| ERROR | y | CRITICAL |), que el modelo no escribe, y el traceback al principio de linea. Verificado contra los logs reales guardados: detecta la falla por el 502 de OpenRouter y deja pasar las tres revisiones que salieron bien. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -179,7 +179,15 @@ jobs:
|
|||||||
# comentarios: imprime el traceback y saluda con
|
# comentarios: imprime el traceback y saluda con
|
||||||
# "AI review completed successfully!". Sin esto el job quedaria en
|
# "AI review completed successfully!". Sin esto el job quedaria en
|
||||||
# verde sin haber revisado nada, que es peor que fallar.
|
# verde sin haber revisado nada, que es peor que fallar.
|
||||||
ERRORES='Traceback \(most recent call last\)|HTTPClientError|Error: '
|
#
|
||||||
|
# Cuidado con QUE se busca: el log tambien trae el texto de los
|
||||||
|
# comentarios que escribe el modelo, y ese texto puede decir
|
||||||
|
# cualquier cosa. El patron 'Error: ' que habia antes se disparo con
|
||||||
|
# el comentario de la propia revision (inventario#3) y marco como
|
||||||
|
# fallida una revision que habia salido bien. Por eso ahora se miran
|
||||||
|
# las marcas de nivel que imprime la herramienta, que el modelo no
|
||||||
|
# escribe, y el traceback al principio de linea.
|
||||||
|
ERRORES='\| (ERROR|CRITICAL) \||^Traceback \(most recent call last\)'
|
||||||
|
|
||||||
# El plan gratuito de OpenRouter devuelve 502 cuando los proveedores
|
# El plan gratuito de OpenRouter devuelve 502 cuando los proveedores
|
||||||
# del modelo estan saturados; pasó el 03/08/2026 y el pull request se
|
# del modelo estan saturados; pasó el 03/08/2026 y el pull request se
|
||||||
@@ -207,11 +215,11 @@ jobs:
|
|||||||
ai-review "${modo}" > "${registro}" 2>&1 || salida=$?
|
ai-review "${modo}" > "${registro}" 2>&1 || salida=$?
|
||||||
cat "${registro}"
|
cat "${registro}"
|
||||||
|
|
||||||
if [ "${salida}" -eq 0 ] && ! grep -qiE "${ERRORES}" "${registro}"; then
|
if [ "${salida}" -eq 0 ] && ! grep -qE "${ERRORES}" "${registro}"; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${intento}" -ge "${INTENTOS}" ] || ! grep -qiE "${PASAJEROS}" "${registro}"; then
|
if [ "${intento}" -ge "${INTENTOS}" ] || ! grep -qE "${PASAJEROS}" "${registro}"; then
|
||||||
echo "La revisión reportó errores en '${modo}' pese a terminar sin código de error." >&2
|
echo "La revisión reportó errores en '${modo}' pese a terminar sin código de error." >&2
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user