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 pack publish [--dry-run] [--threads=<num>] [--ram=<MB>] [--pack=<folder> | <package.tgz>] <options>... -- <dir>
codeql pack publish [--dry-run] [--threads=<num>] [--ram=<MB>] [--pack=<folder> | <package.tgz>] <options>... -- <dir>
Descripción
Publica un paquete de biblioteca QL en un registro de paquetes.
Este comando publica un paquete en un registro de paquetes. Primero, antes de su publicación, el paquete se compila (si es necesario) y se agrupa.
Disponible desde la versión v2.6.0
.
Opciones
Opciones principales
<dir>
El directorio raíz del paquete o del área de trabajo tiene como valor predeterminado el directorio de trabajo actual. Si este parámetro apunta a un directorio que contiene un elemento qlpack.yml, esta operación solo se ejecutará en ese paquete de CodeQL. Si este parámetro apunta a un directorio que contiene un elemento codeql-workspace.yml, esta operación se ejecutará en todos los paquetes de CodeQL del área de trabajo.
-n, --[no-]dry-run
Imprime lo que se habría hecho, pero no se publica realmente el paquete.
--no-keep
Elimina el conjunto del paquete después de la publicación.
-j, --threads=<num>
Usa todos estos subprocesos para compilar las consultas.
De manera predeterminada, su valor es 1. Puedes pasar 0 para usar un subproceso por núcleo en la máquina o -N para dejar N núcleos sin utilizar (excepto que aún se usa al menos un subproceso).
-M, --ram=<MB>
Establece la cantidad total de RAM que se debe permitir usar al compilador.
--no-precompile
[Avanzado] Evita precompilar la caché de compilación en el directorio de salida del paquete. Esto reducirá el tamaño del paquete y el tiempo necesario para crearlo, pero requerirá la compilación antes de que se pueda ejecutar el paquete. Solo es significativo para los paquetes de consulta.
--no-validate-extensions
[Avanzado] Evita validar extensiones de datos como parte del paso de compilación.
Disponible desde la versión v2.13.3
.
--no-overwrite
[Avanzado] Evita volver a compilar y sobrescribir cualquier salida compilada existente de una invocación anterior de este comando.
-p, --pack=<folder> | <package.tgz>
[Avanzado] Ubicación en la que se va a colocar el tarball empaquetado. Si esta opción termina en .tgz, el tarball se creará con ese nombre. De lo contrario, se creará un directorio en la ruta de acceso especificada, en el que se crearán uno o varios tarballs. No se permite usar .tgz en áreas de trabajo.
--file=<package.tgz>
[Avanzado] Carga package.tgz
directamente en el registro de paquetes sin intentar crear o agrupar nada nuevo.
--[no-]allow-prerelease
Permite que se usen paquetes con calificadores de versión preliminar (por ejemplo, X.Y.Z-qualifier
). Sin esta marca, se omitirán los paquetes de versión preliminar.
Disponible desde la versión v2.11.3
.
Opciones para configurar los paquetes de CodeQL a los que se va a aplicar este comando.
--format=<fmt>
Selecciona el formato de salida, ya sea text
(valor predeterminado) o json
.
--groups=[-]<group>[,[-]<group>...]
Lista de grupos de paquetes de CodeQL que se van a incluir o excluir de esta operación. Se incluye un objeto qlpack en el área de trabajo especificada si:
- Está en al menos uno de los grupos enumerados sin un signo menos (esta condición se cumple automáticamente si no hay grupos enumerados sin el signo menos) y
- No está en ningún grupo enumerado con un signo menos
Opciones para configurar el entorno de compilación
--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 ;
).
--library-path=<dir>[:<dir>...]
[Avanzado] Lista opcional de los directorios que se agregarán a la ruta de búsqueda de importación sin procesar 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 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
.