CodeQL database
codeql database create <db> --language=<lang>
Cria o banco de dados CodeQL do repositório, o passo anterior à análise semântica das vulnerabilidades do código.
Execute-o no pipeline de CI/CD (ou localmente) quando quiser a análise semântica do CodeQL: codeql database create constrói o banco de dados do código (o modelo dos fluxos de dados e chamadas) e a análise posterior (codeql database analyze) executa as queries de segurança — as vulnerabilidades por fluxo de dados (injeção, XSS, path traversal) que a análise sintática não vê. É o SAST semântico do GitHub: a detecção de vulnerabilidades pelo fluxo de dados (do input ao sink). No DevSecOps, o CodeQL é a análise profunda do pipeline (com o code scanning do GitHub Actions): o banco de dados criado no CI e as queries executadas em cada push.
Não o use para análise rápida: a criação do banco (o build do código) é lenta — semgrep/bandit dão o filtro rápido e o CodeQL o profundo. A criação do banco requer o build (para linguagens compiladas) ou análise sem build (para interpretadas): a configuração do build no CI é parte do fluxo. E atenção: o CodeQL detecta vulnerabilidades das queries — as específicas de domínio requerem queries próprias (QL). Licenciamento: o CodeQL é gratuito para código open source e com restrições do GitHub para código privado — verifique. A análise semântica complementa a sintática, não a substitui.