Skip to main content

Especificación de opciones de comando en un archivo de configuración de CodeQL

Puedes guardar las opciones de comando predeterminadas en un archivo de configuración de CodeQL.

¿Quién puede utilizar esta característica?

CodeQL está disponible para los siguientes tipos de repositorios:

Acerca de la especificación de las opciones de comando en un archivo de configuración de CodeQL

Puedes guardar las opciones predeterminadas o usadas con frecuencia de los comandos en un archivo de configuración por usuario.

Puedes especificar las opciones de comando de CodeQL CLI de dos maneras:

  • Directamente en la línea de comandos, con la marca adecuada.
  • En un archivo de configuración (o config) que CodeQL examina en busca de las opciones pertinentes cada vez que se ejecuta un comando.

En el caso de las opciones que es probable que cambien cada vez que ejecute un comando, la manera más práctica de pasar la información a CodeQL consiste en especificar el valor en la línea de comandos. Una forma recomendable de especificar las opciones que se usan con frecuencia es guardar las opciones en un archivo config. También es una buena manera de agregar paquetes personalizados de CodeQL que se usan con regularidad en la ruta de acceso de búsqueda.

Uso de un archivo de configuración de CodeQL

Debes guardar el archivo config en el directorio principal (Linux y macOS) o del perfil de usuario (Windows) en el subdirectorio .config/codeql/. Por ejemplo, $HOME/.config/codeql/config.

La sintaxis para especificar opciones es la siguiente:

<command> <subcommand> <option> <value>

Para aplicar las mismas opciones a más de un comando, puedes hacer lo siguiente:

  • Omitir el elemento <subcommand>, que especificará la opción para cada elemento <subcommand> para el que sea pertinente.
  • Omitir tanto <command> como <subcommand>, que especificarán globalmente la opción para cada elemento <command> y <subcommand> para el que sean pertinentes.

Notas:

  • Los archivos config solo aceptan espacios entre marcas de opción y valores. CodeQL producirá un error si se usa = para especificar un valor de opción.
  • Si especificas una opción en la línea de comandos, se invalida el valor config definido para esa opción.
  • Si quieres especificar más de una opción para un elemento <command>, <subcommand> o globalmente, usa una línea por opción.

Ejemplos

  • Para generar todos los resultados de análisis que produce codeql database analyze como formato CSV, debes especificar lo siguiente:

    database analyze --format csv
    

    Aquí debes especificar el comando y el subcomando para impedir que se pase la misma opción --format a los comandos de bajo nivel que se ejecutan durante database analyze.

  • Para definir la RAM (4096 MB) y el número de subprocesos (4) que se usarán al ejecutar comandos de CodeQL, especifica lo siguiente en líneas independientes:

    --ram 4096
    --threads 4
    
  • Para especificar globalmente un directorio de modo que CodeQL lo examine en busca de paquetes de CodeQL (que no es un elemento del mismo nivel que el directorio de instalación), usa lo siguiente:

    --search-path <path-to-directory>