GitHub AI Scan añade una revisión de seguridad útil para Laravel y homelab
GitHub analiza cambios en PHP, Dockerfiles, Shell y Terraform dentro del pull request sin montar un flujo de CodeQL.
El hueco entre la aplicación y el despliegue
En un proyecto Laravel no solo hay PHP. También hay un Dockerfile, scripts de despliegue, variables de entorno, alguna acción de GitHub y, muchas veces, Terraform para levantar infraestructura. Esa mezcla es habitual cuando la aplicación vive en un VPS, un clúster pequeño o un homelab. El problema es que revisar esos cambios de seguridad a mano en cada pull request se acaba convirtiendo en una tarea irregular.
GitHub ha puesto disponible de forma general AI Scan for pull requests. Es un análisis orientado a detectar riesgos de seguridad en cambios incluidos en un pull request, especialmente en lenguajes y formatos que CodeQL no cubre. Para una aplicación Laravel desplegada con Docker y automatizada con scripts de shell, ahí está buena parte de su interés. (github.blog)
Qué analiza en un repositorio de Laravel
AI Scan puede trabajar con PHP, Shell/Bash, configuración de Terraform en HCL y Dockerfiles, entre otros formatos. No sustituye el análisis de PHP que puedas tener ya configurado, sino que añade cobertura para los cambios que entran en el pull request. Esto importa más en repositorios donde aplicación e infraestructura comparten el mismo árbol de archivos. (docs.github.com)
La documentación agrupa sus detecciones en categorías como inyección de cadenas, criptografía débil, control de acceso roto, exposición de datos sensibles, configuraciones inseguras o SSRF. También contempla riesgos de cadena de suministro, por ejemplo dependencias, imágenes o acciones de terceros sin una referencia suficientemente fija. No significa que vaya a encontrar todos los fallos de esas categorías, pero sí puede señalar cambios que merecen una revisión más detenida. (docs.github.com)
En la práctica, tiene sentido cuando un pull request añade una llamada HTTP construida con datos del usuario, relaja una opción de seguridad en Laravel o cambia la imagen base de un contenedor. También cuando alguien modifica un script de despliegue que maneja secretos, URLs o comandos montados dinámicamente. Son cambios pequeños, fáciles de aprobar deprisa y con consecuencias bastante mayores que una errata en una vista Blade.
No hace falta montar otro pipeline
La parte práctica es que AI Scan no requiere una configuración de compilación ni depende de tener activado el modo de configuración predeterminado de CodeQL. Sí necesita que el análisis de código esté habilitado en el repositorio y que la opción AI Scan on pull requests esté activa. Si se cumplen esas condiciones, GitHub lo ejecuta al crear el pull request y con cada commit nuevo que se añada. (docs.github.com)
Esto no elimina la utilidad de las pruebas, de PHPStan, de Larastan ni de una revisión humana del código. Cada herramienta mira un problema distinto y ninguna entiende por completo las decisiones de negocio de tu aplicación. AI Scan encaja mejor como una señal adicional en el sitio donde ya revisas los cambios: el pull request.
Si gestionas repositorios desde una organización, la opción se puede controlar también mediante la API REST de GitHub. El parámetro documentado es pr_scan y acepta los valores enabled o disabled. Antes de automatizarlo para todos los repositorios, conviene comprobar la política de empresa y el modelo de facturación aplicable. (docs.github.com)
curl -L \
-X PATCH \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer <YOUR-TOKEN>" \
-H "X-GitHub-Api-Version: 2026-03-10" \
"https://api.github.com/repos/OWNER/REPO/code-scanning/ai-scan" \
-d '{"pr_scan":"enabled"}'Dónde aparecen los avisos
Los resultados aparecen en las pestañas Conversation y Files changed del pull request, junto a los avisos de CodeQL. GitHub los marca con un indicador de IA para distinguirlos. Cada hallazgo incluye una explicación del riesgo y, en muchos casos, una propuesta de corrección mediante Copilot Autofix. (docs.github.com)
Que haya una corrección propuesta no es motivo para aplicarla sin leerla. Un cambio sugerido puede resolver el patrón detectado y, al mismo tiempo, romper una decisión concreta de tu aplicación o de tu despliegue. Lo razonable es tratar esa propuesta como lo que es: un parche inicial para revisar, probar y adaptar.
La letra pequeña importa
AI Scan solo analiza pull requests; no hace un escaneo completo del repositorio ni genera una lista histórica de alertas en la vista de seguridad. Si ya tienes un proyecto con años de scripts inseguros, imágenes antiguas o configuraciones heredadas, esta función no va a descubrirlas por sí sola. Para eso necesitas una revisión específica del repositorio y mantener otras herramientas de análisis activas. (docs.github.com)
Los avisos tampoco bloquean el merge. Son informativos, no fallan la comprobación de code scanning y no se pueden usar todavía como requisito de reglas de protección para impedir una fusión. Si quieres que una condición frene un despliegue, tendrás que seguir resolviéndolo con pruebas, validaciones propias o checks que sí puedan ser obligatorios. (docs.github.com)
Tampoco se ejecuta en pull requests procedentes de forks ni en los creados por Dependabot. Es una limitación relevante en proyectos abiertos que reciben contribuciones externas, y también en repositorios que dependen de actualizaciones automáticas. No conviene diseñar una política de seguridad suponiendo que ese análisis protege todos los caminos de entrada. (docs.github.com)
Como cualquier sistema basado en IA, puede producir falsos positivos. Un aviso no prueba que exista una vulnerabilidad y su ausencia tampoco demuestra que el cambio sea seguro. Mi criterio sería sencillo: úsalo para obligarte a mirar con más cuidado los cambios de PHP, contenedores, scripts e infraestructura, pero no para sustituir la revisión técnica.
Coste y disponibilidad
Los repositorios públicos de organizaciones y cuentas personales pueden usar AI Scan. En organizaciones, los repositorios privados e internos requieren GitHub Code Security o GitHub Advanced Security; los repositorios privados de cuentas personales no están disponibles para esta función. No hace falta una licencia de GitHub Copilot para utilizarla. (docs.github.com)
El uso consume Code Security AI Credits y puede quedar limitado por los presupuestos configurados en la cuenta de facturación. Si el presupuesto estricto deja los créditos sin disponibilidad, AI Scan deja de producir hallazgos hasta que se aumente el límite o empiece un nuevo ciclo de facturación. Si administras una organización, este detalle debe revisarse antes de activarlo de forma global. (docs.github.com)
Para un repositorio Laravel con Docker, Bash y Terraform, AI Scan parece una capa razonable porque cubre justo la zona donde el código de aplicación se cruza con la infraestructura. No exige construir otro workflow ni escribir una configuración compleja para empezar a recibir señales. La condición es no confundir esas señales con una garantía de seguridad ni con un control que vaya a detener un merge.
Fuente: GitHub Changelog — AI Scan for pull requests generally available Documentación oficial: AI Scan for pull requests