Skip to main content

Utilizar el análisis de código de CodeQL con tu sistema de IC existente

Puede analizar su código con CodeQL CLI u otra herramienta en un sistema de integración continua externo y cargar los resultados en GitHub. Las alertas resultantes code scanning se muestran junto con las alertas generadas en GitHub.

¿Quién puede utilizar esta característica?

Usuarios con acceso de escritura

Code scanning está disponible para los tipos de repositorio siguientes:

  • Repositorios públicos en GitHub.com
  • Repositorios propiedad de la organización en GitHub Team, GitHub Enterprise Cloud, o GitHub Enterprise Server, con GitHub Code Security habilitados.

Nota:

El administrador del sitio debe habilitar code scanning antes de que puedas utilizar esta característica. Para más información, consulta Configuración la digitalización de código para el dispositivo.

Es posible que no puedas habilitar o deshabilitar code scanning si un propietario de una empresa ha establecido una directiva de GitHub Code Security en el nivel de la empresa. Para más información, consulta Aplicación de directivas de seguridad y análisis de código de la empresa.

Como alternativa a ejecutar code scanning dentro de GitHub usando GitHub Actions, puede analizar el código en un sistema externo de integración continua o entrega/despliegue continuo (CI/CD) y, a continuación, subir los resultados a GitHub.

Nota:

Cargar datos de SARIF para mostrarlos como resultados de code scanning en GitHub se admite en los repositorios propiedad de una organización que tengan GitHub Code Security habilitado. Para más información, consulta Administración de la configuración de seguridad y análisis para el repositorio.

Configuración de la herramienta de análisis

Primero, deberás descargar la herramienta de análisis que prefieras y configurarla con el sistema de IC.

Si usa CodeQL CLI, debe hacer que el contenido completo del paquete CodeQL CLI esté disponible para todos los servidores de Integración Continua en los que desee ejecutar el análisis de CodeQLcode scanning. Para obtener más información, vea Configuración de la CLI de CodeQL.

Una vez que hayas puesto la herramienta de análisis a disposición de los servidores del sistema de IC, estarás listo para generar datos.

Análisis de código

Para analizar el código con CodeQL CLI u otra herramienta de análisis, querrá consultar el código que desea analizar y configurar el entorno de código base, asegurándose de que hay dependencias disponibles. También puedes encontrar el comando de compilación para el código base, normalmente disponible en el archivo de configuración del sistema de IC.

A continuación, puedes completar los pasos para analizar el código base y generar resultados, que variarán en función de la herramienta de análisis estático que estés usando.

Si usa CodeQL CLI, primero deberá crear una CodeQL base de datos a partir del código y, a continuación, analizar la base de datos para generar resultados de SARIF. Para obtener más información, vea Preparación del código para el análisis de CodeQL y Análisis del código con consultas de CodeQL.

Generación de un token para la autenticación con GitHub

Cada servidor de CI necesita un GitHub App o un personal access token para cargar los resultados en GitHub, independientemente de si se usa el CodeQL CLI, la API REST u otro método. Debe usar un token de acceso o un GitHub App con el security_events permiso de escritura. Si los servidores de CI ya usan un token con este ámbito para verificar repositorios de GitHub, podrían utilizar el mismo token. De lo contrario, crea un token nuevo con el permiso de escritura security_events y agrégalo al almacén de secretos del sistema de CI. Para obtener información, consulte Acerca de la creación de aplicaciones de GitHub y Administración de tokens de acceso personal.

Para obtener más información sobre los distintos métodos para cargar los resultados en GitHub, vea Subir un archivo SARIF a GitHub.

Carga de los resultados en GitHub

Una vez que haya analizado el código, haya generado los resultados de SARIF y asegúrese de que puede autenticarse con GitHub, puede cargar los resultados en GitHub. Para obtener más información sobre los diferentes métodos que puede usar para cargar los resultados, consulte Subir un archivo SARIF a GitHub.

Para obtener información específica sobre cómo cargar los resultados en GitHub mediante CodeQL CLI, consulte Carga de resultados de análisis de CodeQL en GitHub.

De forma predeterminada, code scanning espera un archivo de resultados SARIF por análisis para un repositorio. Como consecuencia, cuando cargues un segundo archivo de resultados SARIF para una confirmación, este se tratará como un reemplazo para el conjunto de datos original. Puede que desees cargar dos archivos SARIF diferentes para un análisis si, por ejemplo, la herramienta de análisis genera un archivo SARIF diferente para cada idioma que analizas o cada conjunto de reglas que usas. Si quieres cargar más de un conjunto de resultados para una confirmación en un repositorio, debes identificar cada conjunto de resultados como un conjunto único. La forma de especificar una categoría para una carga de SARIF varía de acuerdo con el método de análisis.