Skip to main content

Esta versión de GitHub Enterprise Server se discontinuó el 2023-09-25. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener rendimiento mejorado, seguridad mejorada y nuevas características, actualice a la versión más reciente de GitHub Enterprise Server. Para obtener ayuda con la actualización, póngase en contacto con el soporte técnico de GitHub Enterprise.

Instalar el CLI de CodeQL en tu sistema de IC

Puedes instalar el CodeQL CLI y utilizarlo para llevar a cabo el code scanning de CodeQL en un sistema de integración contínua de terceros.

Code scanning está disponible para repositorios que son propiedad de una organización en GitHub Enterprise Server. Esta característica requiere una licencia para la GitHub Advanced Security. Para obtener más información, vea «Acerca de GitHub Advanced Security».

Nota: El administrador del sitio debe habilitar code scanning para tu instancia de GitHub Enterprise Server para puedas utilizar esta característica. Para obtener más información, vea «Configurar el escaneo de código para tu aplicativo».

Es posible que no puedas habilitar o deshabilitar code scanning si un propietario de una empresa ha establecido una directiva GitHub Advanced Security (GHAS) en el nivel empresarial. Para obtener más información, vea «Aplicación de directivas de seguridad y análisis de código de la empresa».

Acerca de utilizar el CodeQL CLI para el code scanning

Puedes usar la CodeQL CLI para ejecutar code scanning en el código que estás procesando en un sistema de integración continua (CI) de terceros. Code scanning es una característica que se usa para analizar el código en un repositorio de GitHub para buscar vulnerabilidades de seguridad y errores de código. Cualquier problema que se identifique con el análisis se muestra en GitHub Enterprise Server. Para información, consulta "Acerca del examen de código con CodeQL". Para conocer las especificaciones recomendadas (RAM, núcleos de CPU y disco) para ejecutar análisis de CodeQL, consulta "Recursos de hardware recomendados para ejecutar CodeQL".

La CodeQL CLI es una herramienta de línea de comandos independiente que puedes utilizar para analizar código. Su propósito principal es generar una representación de base de datos de una base de código, una base de datos de CodeQL. Una vez que esté lista la base de datos, puedes consultarla interactivamente o ejecutar un varias consultas para generar un conjunto de resultados en formato SARIF y cargarlos a tu instancia de GitHub Enterprise Server.

Como alternativa, puedes utilizar las GitHub Actions en tu sistema de IC, o al code scanning dentro de GitHub Enterprise Server. Para obtener información acerca del code scanning con acciones, consulta "Establecimiento del examen de código con CodeQL". Para información general sobre las opciones de los sistemas de CI, consulta "Acerca del escaneo de código de CodeQL en tu sistema de IC".

Notas:

  • La CodeQL CLI se encuentra disponible para los clientes con una licencia de la Advanced Security.

  • La CodeQL CLI no es compatible actualmente con distribuciones de Linux que no sean glibc, como Alpine Linux (basado en musl).

Descarga de CodeQL CLI

Debes descargar el conjunto de CodeQL desde https://github.com/github/codeql-action/releases. La agrupación contiene lo siguiente:

  • El producto de CodeQL CLI
  • Una versión compatible de las consultas y bibliotecas de https://github.com/github/codeql
  • Versiones precompiladas de todas las consultas incluidas en la agrupación
Para GitHub Enterprise Server 3.6, se recomienda la versión de CodeQL CLI 2.12.7.

Siempre debes utilizar Siempre debes utilizar el paquete de CodeQL, ya que este garantiza la compatibilidad y también te da un rendimiento mucho mejor que una descarga independiente del CodeQL CLI y una verificación de las consultas de CodeQL. Si solo vas a ejecutar la CLI en una plataforma específica, descarga el archivo codeql-bundle-PLATFORM.tar.gz adecuado. Como alternativa, puedes descargar codeql-bundle.tar.gz, que contiene la CLI para todas las plataformas compatibles.

Configurar el CodeQL CLI en tu sistema de IC

Necesitas habilitar el contenido integral del paquete de CodeQL CLI para cada servidor de IC en el que quieras ejecutar el análisis de code scanning de CodeQL. Por ejemplo, puedes configurar cada servidor para copiar el paquete desde una ubicación intera y centrar y extraerlo. Como alternativa, puedes utilizar la API de REST para obtener el paquete directamente desde GitHub para garantizar que te beneificarás de las últimas mejoras a las consultas. Las actualizaciones del CodeQL CLI se lanzan cada 2 o 3 semanas.

En primer lugar, tendrás que extraer el conjunto de CodeQL CLI. A continuación, puedes ejecutar el archivo ejecutable codeql en el servidor de una de estas dos maneras:

  • Ejecutando /<extraction-root>/codeql/codeql, donde <extraction-root> es la carpeta donde has extraído el paquete CodeQL CLI.
  • Agregando /<extraction-root>/codeql a PATH, para poder ejecutar el archivo ejecutable simplemente como codeql.

Prueba de la configuración de la CodeQL CLI

Después de extraer el paquete de CodeQL CLI, puedes ejecutar el siguiente comando para comprobar que la CLI esté configurada correctamente para crear y analizar bases de datos.

  • codeql resolve qlpacks si /<extraction-root>/codeql está en PATH.
  • En caso contrario, es /<extraction-root>/codeql/codeql resolve qlpacks.

A continuación se muestra un extracto de la salida correcta:

codeql/cpp-all (/<extraction-root>/qlpacks/codeql/cpp-all/<version>)
codeql/cpp-examples (/<extraction-root>/qlpacks/codeql/cpp-examples/<version>)
codeql/cpp-queries (/<extraction-root>/qlpacks/codeql/cpp-queries/<version>)
codeql/csharp-all (/<extraction-root>/qlpacks/codeql/charp-all/<version>)
codeql/csharp-examples (/<extraction-root>/qlpacks/codeql/charp-examples/<version>)
codeql/csharp-queries (/<extraction-root>/qlpacks/codeql/charp-queries/<version>)
codeql/java-all (/<extraction-root>/qlpacks/codeql/java-all/<version>)
codeql/java-examples (/<extraction-root>/qlpacks/codeql/java-examples/<version>)
codeql/java-queries (/<extraction-root>/qlpacks/codeql/java-queries/<version>)
codeql/javascript-all (/<extraction-root>/qlpacks/codeql/javascript-all/<version>)
codeql/javascript-examples (/<extraction-root>/qlpacks/codeql/javascript-examples/<version>)
codeql/javascript-queries (/<extraction-root>/qlpacks/codeql/javascript-queries/<version>)
codeql/python-all (/<extraction-root>/qlpacks/codeql/python-all/<version>)
codeql/python-examples (/<extraction-root>/qlpacks/codeql/python-examples/<version>)
codeql/python-queries (/<extraction-root>/qlpacks/codeql/python-queries/<version>)
codeql/ruby-all (/<extraction-root>/qlpacks/codeql/ruby-all/<version>)
codeql/ruby-examples (/<extraction-root>/qlpacks/codeql/ruby-examples/<version>)
codeql/ruby-queries (/<extraction-root>/qlpacks/codeql/ruby-queries/<version>)
...

Debes verificar que la salida contenga los lenguajes esperados y también que la ubicación del directorio para el archivo de qlpack sea correcta. La ubicación debe ser dentro del paquete de CodeQL CLI extraído, que se muestra anteriormente como <extraction root>, a menos que estés utilizando una restauración de github/codeql. Si el CodeQL CLI no es capaz de localizar los qlpacks para los lenguajes esperados, verifica que hayas descargado el paquete de CodeQL y no una copia independiente del CodeQL CLI.

Generar un token para autenticarse con GitHub Enterprise Server

Cada servidor de CI necesita GitHub App o personal access token para CodeQL CLI para cargar los resultados en GitHub Enterprise Server. 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 alcance para verificar los repositorios de GitHub Enterprise Server, podrías permitir potencialmente que CodeQL CLI utilice 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 "Creación de aplicaciones de GitHub" y "Administración de tokens de acceso personal".

Pasos siguientes

Ahora estás listo para configurar el sistema de IC para que ejecute el análisis de CodeQL, genere resultados y los cargue en GitHub Enterprise Server donde dichos resultados se empatarán con una rama o solicitud de cambios y se mostrarán como alertas del code scanning. Para más información, consulta "Configurar el CLI de CodeQL en tu sistema de IC".