CodeQL database

codeql database create <db> --language=<lang>

Crea la base de datos de CodeQL del repositorio, el paso previo al análisis semántico de las vulnerabilidades del código.

Ejecútalo en el pipeline de CI/CD (o local) cuando quieras el análisis semántico de CodeQL: codeql database create construye la base de datos del código (el modelo de los flujos de datos y las llamadas) y el análisis posterior (codeql database analyze) ejecuta las queries de seguridad — las vulnerabilidades por flujo de datos (la inyección, el XSS, el path traversal) que el análisis sintáctico no ve. Es el SAST semántico de GitHub: la detección de las vulnerabilidades por el flujo de la data (del input al sink). En el DevSecOps, CodeQL es el análisis profundo del pipeline (con las code scanning de GitHub Actions): la base de datos creada en el CI y las queries ejecutadas en cada push.

No lo uses para el análisis rápido: la creación de la base (el build del código) es lenta — semgrep/bandit dan el filtro rápido y CodeQL el profundo. La creación de la base requiere el build (los lenguajes compilados) o el análisis sin build (los interpretados): la configuración del build en el CI es parte del flujo. Y ojo: CodeQL detecta las vulnerabilidades de las queries — las específicas del dominio requieren las queries propias (los QL). La licencia: CodeQL es gratuito para el código open source y con las restricciones de GitHub para el privado — se revisa. El análisis semántico complementa al sintáctico, no lo sustituye.