Skip to main content

resolver rutas de biblioteca

¿Quién puede utilizar esta característica?

CodeQL está disponible para los siguientes tipos de repositorios:

En este artículo

Nota:

En este contenido se describe la versión más reciente de CodeQL CLI. Para obtener más información sobre esta versión, consulta https://github.com/github/codeql-cli-binaries/releases.

Para ver detalles de las opciones disponibles para este comando en una versión anterior, ejecuta el comando con la opción --help en el terminal.

Synopsis

Shell
codeql resolve library-paths <options>... -- <query>...

Description

[Fontanería profunda] Determine las rutas de acceso de la biblioteca QL y dbschemes para varias consultas.

Determine con qué ruta de la biblioteca QL debe compilarse cada consulta. Este cálculo está implícito en varios subcomandos que pueden necesitar compilar consultas. Se expone como un comando de asociación independiente para (a) ayudar con la solución de problemas y (b) proporcionar un punto inicial para modificar la ruta de acceso en casos extraordinarios en los que se necesita un control exacto.

El comando también detectará un idioma y un esquema de base de datos con respecto a los cuales compilar cada consulta, ya que estos también pueden depender de la detección automática del idioma de una consulta en QL.

El comando es profundamente interno y su comportamiento o existencia puede cambiar sin previo aviso a medida que evoluciona el ecosistema del lenguaje QL.

Options

Opciones principales

<query>...

[Obligatorio] Ruta de acceso al archivo QL que queremos compilar. Para determinar los paquetes necesarios, se buscarán qlpack.yml o archivos queries.xml heredados en su directorio y los directorios primarios.

--[no-]find-extractors

[Avanzado] Incluye en la salida un resumen de los campos extractor de los paquetes Q de los que depende la consulta. Esto solo se usa para algunos casos internos poco frecuentes y puede requerir más trabajo para realizar algún cálculo, por lo que no está activado de manera predeterminada.

Opciones de la línea de comandos del comando que invoca

--search-path=<dir>[:<dir>...]

Lista de directorios en los que se pueden encontrar paquetes de QL. Cada directorio puede ser un paquete de QL (o una agrupación de paquetes que contenga un archivo .codeqlmanifest.json en la raíz) o el elemento primario inmediato de uno o varios directorios de este tipo.

Si la ruta de acceso contiene más de un directorio, su orden define la prioridad entre ellos: cuando un nombre de paquete que se debe resolver tiene coincidencias en más de uno de los árboles de directorio, tiene prioridad el que se indica primero.

Apuntar esto a una extracción del repositorio CodeQL de código abierto debería funcionar al consultar uno de los lenguajes que residen allí.

Si has extraído el repositorio CodeQL como un directorio paralelo de la cadena de herramientas CodeQL desempaquetada, no es necesario proporcionar esta opción; siempre se buscarán en dichos directorios paralelos los paquetes de QL que no se puedan encontrar de otra manera. (Si este valor predeterminado no funciona, se recomienda encarecidamente configurar --search-path de una vez en un archivo de configuración por usuario).

(Nota: En Windows, el separador de ruta de acceso es ;).

--additional-packs=<dir>[:<dir>...]

Si se da esta lista de directorios, se buscarán paquetes en ellos antes que en los incluidos en --search-path. El orden entre ellos no importa; si se encuentra un nombre de paquete en dos lugares diferentes de esta lista es un error.

Esto resulta útil si estás desarrollando temporalmente una versión nueva de un paquete que también aparece en la ruta de acceso predeterminada. Por otro lado, no se recomienda reemplazar esta opción en un archivo de configuración; algunas acciones internas agregarán esta opción sobre la marcha y reemplazarán cualquier valor configurado.

(Nota: En Windows, el separador de ruta de acceso es ;).

--library-path=<dir>[:<dir>...]

[Avanzado] Una lista opcional de directorios que se agregarán a la ruta de búsqueda de importación directa para las bibliotecas de QL. Esto solo debe usarse si usas bibliotecas de QL que no se han empaquetado como paquetes de QL.

(Nota: En Windows, el separador de ruta de acceso es ;).

--dbscheme=<file>

[Avanzado] Define explícitamente las consultas dbscheme en las que se debe realizar la compilación. Esto solo debe proporcionarse a los autores de llamadas que están extremadamente seguros de lo que están haciendo.

--compilation-cache=<dir>

[Avanzado] Especifica un directorio adicional que se va a usar como caché de compilación.

--no-default-compilation-cache

[Avanzado] No uses cachés de compilación en ubicaciones estándar, como en el paquete de QL que contiene la consulta o en el directorio de la cadena de herramientas de CodeQL.

Opciones para configurar el administrador de paquetes de CodeQL

--registries-auth-stdin

Autentícate en los registros de contenedores de servidor de GitHub Enterprise; para ello, pasa una lista separada por comas de pares <registry_url>=<token>.

Por ejemplo, puedes pasar https://containers.GHEHOSTNAME1/v2/=TOKEN1,https://containers.GHEHOSTNAME2/v2/=TOKEN2 para autenticarte en dos instancias del servidor de GitHub Enterprise.

Esto invalida las variables de entorno CODEQL_REGISTRIES_AUTH y GITHUB_TOKEN. Si solo necesitas autenticarte en el registro de contenedor de github.com, puedes hacerlo mediante la opción --github-auth-stdin más sencilla.

--github-auth-stdin

Autentícate en el registro de contenedores de github.com; para ello, pasa un token de aplicaciones de GitHub en github.com o un token de acceso personal mediante la entrada estándar.

Para autenticarte en los registros de contenedores del servidor de GitHub Enterprise, pasa --registries-auth-stdin o usa la variable de entorno CODEQL_REGISTRIES_AUTH.

Esto invalida la variable de entorno GITHUB_TOKEN.

Opciones comunes

-h, --help

Muestra este texto de ayuda.

-J=<opt>

[Avanzado] Asigna la opción a la JVM que ejecuta el comando.

(Ten en cuenta que las opciones que contienen espacios no se administrarán correctamente).

-v, --verbose

Aumenta incrementalmente el número de mensajes de progreso impresos.

-q, --quiet

Reduce incrementalmente el número de mensajes de progreso impresos.

--verbosity=<level>

[Avanzado] Establece explícitamente el nivel de verbosidad en errores, advertencias, progreso, progreso+, progreso++, progreso+++. Invalida -v y -q.

--logdir=<dir>

[Avanzado] Escribe registros detallados en uno o varios archivos del directorio especificado, con nombres generados que incluyen marcas de tiempo y el nombre del subcomando en ejecución.

(Para escribir un archivo de registro con un nombre sobre el que tienes control total, proporciona --log-to-stderr y redirige stderr como quieras).

--common-caches=<dir>

[Avanzado] Controla la ubicación de los datos en caché del disco que se conservarán entre varias ejecuciones de la CLI, como paquetes QL descargados y planes de consulta compilada. Si no se define explícitamente, se toma como predeterminado un directorio denominado .codeql en el directorio principal del usuario, que se creará en caso de que no exista.

Disponible desde v2.15.2.