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.
Sinopsis
codeql resolve queries <options>... -- <query|dir|suite|pack>...
codeql resolve queries <options>... -- <query|dir|suite|pack>...
Descripción
[Asociación profunda] Expande los directorios de consultas y las especificaciones del conjunto.
Este comando de asociación es responsable de expandir los parámetros de la línea de comandos de los subcomandos que pueden ejecutar varias consultas a una lista real de archivos .ql individuales que se van a ejecutar.
Si se ejecuta sin argumentos, mostrará un mensaje de ayuda, incluida una lista de definiciones de conjuntos de consultas conocidas que se encuentran en los paquetes de QL disponibles para la secuencia de errores estándar y devolverá correctamente una lista de consultas vacía.
Opciones
Opciones principales
<querysuite|pack>...
[Obligatorio] Consultas que se van a ejecutar. Cada argumento tiene el formato scope/name@range:path
donde:
scope/name
es el nombre completo de un paquete de CodeQL.range
es un intervalo de SemVer.path
es una ruta de acceso al sistema de archivos.
Si se especifica scope/name
, range
y path
son opcionales. Un elemento range
que falta implica la versión más reciente del paquete especificado. Un elemento path
que falta implica el conjunto de consultas predeterminado del paquete especificado.
path
puede ser un archivo de consulta *.ql
, un directorio que contiene una o varias consultas o un archivo de conjunto de consultas .qls
. Si no se especifica ningún nombre de paquete, se debe proporcionar un elemento path
, que se interpretará en relación con el directorio de trabajo actual del proceso actual.
Para especificar un elemento path
que contiene un literal @
o :
, usa path:
como prefijo del argumento, tal como se muestra a continuación: path:directory/with:and@/chars
.
Si se especifica scope/name
y path
, el valor de path
no puede ser absoluto. Se interpreta en relación con la raíz del paquete de CodeQL.
--format=<fmt>
Selecciona el formato de salida. Entre las opciones se incluyen:
text
(valor predeterminado) : lista de nombres de rutas de acceso orientada a líneas.
json
: lista sin formato de nombres de rutas de acceso como cadenas.
bylanguage
: representación JSON más completa que agrupa las consultas en función del extractor con el que funcionan, tal como se deduce de sus dependencias de biblioteca. Esto es un poco más costoso de calcular.
installedpacks
: [Asociación profunda] Representación JSON que enumera los paquetes de consultas CodeQL a los que se hace referencia directamente o dentro de un conjunto de consultas y que no están disponibles localmente.
Opciones para buscar paquetes de QL (que pueden ser necesarios para interpretar conjuntos de consultas)
--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 extrajiste el repositorio CodeQL como un elemento relacionado de la cadena de herramientas CodeQL desempaquetada, no es necesario proporcionar esta opción; dichos directorios del mismo nivel siempre se buscarán paquetes de QL que no se encuentren de otro modo. (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 ;
).
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 de 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 detalle 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 la versión v2.15.2
.