Skip to main content

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

Puedes analizar tu código con la CodeQL CLI u otra herramienta en un sistema de integración continua de terceros y cargar los resultados en GitHub. Las alertas de code scanning resultantes se muestran junto con cualquier alerta que se genere en GitHub.

¿Quién puede utilizar esta característica?

Usuarios con acceso de escritura

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

  • Repositorios públicos en GitHub.com
  • Repositorios propiedad de la organización en GitHub Enterprise Cloud con GitHub Advanced Security habilitado

Acerca del uso del code scanning con el sistema de CI existente

Como alternativa a la ejecución de code scanning dentro de GitHub con GitHub Actions, puedes analizar código en un sistema externo de integración continua o entrega/implementación continua (CI/CD) y, a continuación, cargar los resultados en GitHub Enterprise Cloud.

Puedes añadir la CodeQL CLI a tu sistema de terceros, o utilizar otra herramienta de análisis estático de terceros que pueda producir resultados como datos del Formato de Intercambio de Resultados para Análisis Estático (SARIF) 2.1.0. Para más información sobre el formato SARIF compatible, consulta Soporte de SARIF para escaneo de código.

La CodeQL CLI es una herramienta de línea de comandos independiente que puedes utilizar para analizar código. Para más información, consulta Acerca de la CLI de CodeQL.

Las alertas para code scanning que puedes generar externamente se muestran de la misma forma que aquellas para el code scanning que generas con GitHub. Si ejecutas el análisis de código mediante varias configuraciones, en ocasiones una alerta tendrá varios orígenes de análisis. Si una alerta tiene varios orígenes de análisis, puede ver el estado de la alerta para cada origen de análisis en la página de alertas. Para obtener más información, vea «Acerca de las alertas de análisis de código».

Note

Cargar datos de SARIF para mostrarlos como resultados de code scanning en GitHub Enterprise Cloud se admite en los repositorios propiedad de una organización que tengan GitHub Advanced Security habilitado y en los repositorios públicos de GitHub.com. Para obtener más información, vea «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 estás usando la CodeQL CLI, necesitas habilitar el contenido integral del paquete de la CodeQL CLI para cada servidor de IC en el que quieras ejecutar el análisis de code scanning de CodeQL. Para más información, consulta 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

Si deseas analizar el código con la CodeQL CLI u otra herramienta de análisis, querrás consultar el código que deseas analizar y configurar el entorno de código base, asegurándote 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 usas la CodeQL CLI, primero deberás crear una base de datos de CodeQL a partir del código y, a continuación, analizar la base de datos para generar resultados de SARIF. Para más información, consulta Preparación del código para el análisis de CodeQL y Análisis del código con consultas de CodeQL.

Generar un token para autenticarse con GitHub Enterprise Cloud

Cada servidor de CI necesita una GitHub App o personal access token para cargar los resultados en GitHub Enterprise Cloud, sin importar si estás utilizando la CodeQL CLI, la API de REST u otro método. Debes usar un token de acceso o GitHub App con el permiso de escritura security_events. Si los servidores de IC utilizan un token con este ámbito para verificar los repositorios de GitHub Enterprise Cloud, podrías utilizar potencialmente 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 información, consulta Acerca de la creación de GitHub Apps y Administración de tokens de acceso personal.

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

Cargando tus resultados en GitHub Enterprise Cloud

Una vez que hayas analizado el código, generado resultados SARIF y asegurado de que puedes autenticarte con GitHub Enterprise Cloud, puedes cargar los resultados en GitHub Enterprise Cloud. Para obtener más información sobre los diferentes métodos que puedes usar para cargar los resultados, consulta Subir un archivo SARIF a GitHub.

Para obtener detalles específicos sobre cómo cargar los resultados en GitHub Enterprise Cloud con CodeQL CLI, consulta Carga de los resultados del análisis de CodeQL en GitHub.

Predeterminadamente, el code scanning espera un archivo de resultado SARIF por cada análisis de 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. Para más información, consulta Soporte de SARIF para escaneo de código.