Skip to main content

Comprobación del código fuente de la CLI de CodeQL

Configure la CodeQL CLI directamente desde el código fuente.

¿Quién puede utilizar esta característica?

CodeQL está disponible para los siguientes tipos de repositorios:

Algunos usuarios prefieren trabajar directamente con orígenes de consulta de CodeQL para usar consultas compartidas de código abierto o contribuir a ellas.

1. Descarga del archivo tar de CodeQL CLI

El paquete de descarga de la CodeQL CLI es un archivo ZIP que contiene herramientas, scripts y varios archivos específicos de CodeQL. Si no tienes una licencia de GitHub Enterprise, al descargar este archivo aceptas los términos y condiciones de GitHub CodeQL.

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

2. Creación de un nuevo directorio de CodeQL

Crea un directorio donde puedas incluir la CLI y las consultas y bibliotecas que quieras usar. Por ejemplo: $HOME/codeql-home.

Las operaciones de búsqueda integradas de la CLI buscan automáticamente en todos sus directorios del mismo nivel los archivos usados en la creación y el análisis de la base de datos. Mantener estos componentes en su propio directorio impide que la CLI busque en directorios del mismo nivel no relacionados, a la vez que garantiza que todos los archivos están disponibles sin especificar más opciones en la línea de comandos.

3. Obtención de una copia local de las consultas de CodeQL

El repositorio de CodeQL contiene las consultas y bibliotecas necesarias para el análisis de CodeQL de todos los lenguajes admitidos. Clona una copia de este repositorio en codeql-home.

De forma predeterminada, la raíz del repositorio clonado se llamará codeql. Cambie el nombre de esta carpeta codeql-repo para evitar conflictos con la CodeQL CLI que extraerás en el paso 1. Si usas Git en la línea de comandos, puedes clonar el repositorio y cambiarle el nombre en un solo paso mediante la ejecución de git clone git@github.com:github/codeql.git codeql-repo en la carpeta codeql-home.

En este repositorio, las consultas y bibliotecas se organizan en paquetes de CodeQL. Además de las propias consultas, los paquetes de CodeQL contienen metadatos importantes que indican a la CodeQL CLI cómo procesar los archivos de consulta. Para más información, consulta Creación y uso de paquetes de CodeQL.

Nota:

Hay diferentes versiones disponibles de las consultas de CodeQL para distintos usuarios. Elige la versión correcta según tu caso de uso:

  • Para las consultas que se usarán con la versión más reciente de la CodeQL CLI, consulta la rama etiquetada como codeql-cli/latest. Debe usar esta rama para las bases de datos que ha creado mediante la CodeQL CLI o que ha descargado recientemente de GitHub.
  • Para las consultas más actualizadas de CodeQL, consulta la rama main. Esta rama representa la versión más reciente del análisis de CodeQL.

4. Extracción del archivo tar de CodeQL CLI

Extraiga el archivo tar en el directorio que creó en el paso 2.

Por ejemplo, si la ruta de acceso a tu copia del repositorio de CodeQL es $HOME/codeql-home/codeql-repo, extrae la CLI en $HOME/codeql-home/.

5. Iniciar codeql

Una vez extraído, puedes ejecutar procesos de CodeQL mediante el archivo ejecutable codeql de dos maneras:

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

A partir de este momento, ya puedes ejecutar comandos de CodeQL. Para ver una lista completa de los comandos de CodeQL CLI, consulta Manual de comandos de la CLI de CodeQL.

6. Comprobación de la configuración de la CodeQL CLI

CodeQL CLI tiene subcomandos que puedes ejecutar para comprobar que la CLI está configurada correctamente para crear y analizar bases de datos:

  • Ejecute codeql resolve languages para mostrar qué lenguajes están disponibles para la creación de bases de datos. Se enumerarán los lenguajes admitidos de forma predeterminada en el paquete de la CodeQL CLI.
  • Ejecuta codeql resolve qlpacks para mostrar qué paquetes de CodeQL puede encontrar la CLI. Se mostrarán los nombres de todos los paquetes de CodeQL disponibles directamente para la CodeQL CLI. Esto debería incluir:
    • Paquetes de consulta para cada lenguaje admitido, por ejemplo, codeql/{language}-queries. Estos paquetes contienen las consultas estándar que se ejecutarán para cada análisis.
    • Paquetes de biblioteca para cada lenguaje admitido, por ejemplo, codeql/{language}-all. Estos paquetes contienen bibliotecas de consultas, como bibliotecas de flujo de control y flujo de datos, que pueden ser útiles para los creadores de consultas.
    • Paquetes de ejemplo para cada lenguaje admitido, por ejemplo, codeql/{language}-examples. Estos paquetes contienen fragmentos de código de CodeQL que pueden resultar útiles para los creadores de consultas.
    • Paquetes heredados que garantizan que las consultas personalizadas y las bibliotecas creadas con productos anteriores son compatibles con la versión de CodeQL.