Skip to main content

resolve library-path

[Conexão detalhada] Determine o caminho da biblioteca QL e o dbscheme para uma consulta.

Quem pode usar esse recurso?

O CodeQL está disponível para os seguintes tipos de repositórios:

Note

Este conteúdo descreve a versão mais recente do CodeQL CLI. Para obter mais informações sobre essa versão, confira https://github.com/github/codeql-cli-binaries/releases.

Para ver os detalhes das opções disponíveis para esse comando em uma versão anterior, execute o comando com a opção --help no terminal.

Sinopse

Shell
codeql resolve library-path (--query=<qlfile> | --dir=<dir> | --root-pack=<pkgname>) <options>...

Descrição

[Conexão detalhada] Determine o caminho da biblioteca QL e o dbscheme para uma consulta.

Determine o caminho de biblioteca de QL em que uma consulta específica deve ser compilada. Essa computação é implícita em vários subcomandos que podem precisar compilar consultas. Ele é exposta como um comando de conexão separado para (a) ajudar na solução de problemas e (b) fornecer um ponto de partida para modificar o caminho em casos extraordinários nos quais o controle exato é necessário.

O comando também detectará uma linguagem e um dbscheme no qual uma consulta será compilada, pois eles também podem depender da detecção automática da linguagem de uma consulta QL.

O comando é profundamente interno, e o comportamento ou a existência dele pode mudar de maneira imperceptível à medida que o ecossistema da linguagem QL evolui.

Opções

Opções principais

--[no-]find-extractors

[Avançado] Inclua na saída um resumo dos campos extractor dos pacotes QL dos quais a consulta depende. Isso é usado apenas para alguns casos internos raros e pode exigir mais trabalho para computação, ou seja, não está ativado por padrão.

--format=<fmt>

Selecione o formato de saída. As opções incluem:

lines (padrão) : imprimir os argumentos de linha de comando em uma linha cada.

json: imprima um objeto JSON com todos os dados.

path: imprima apenas o caminho da biblioteca computada.

dbscheme: imprima apenas o dbscheme detectado.

cache: imprima o local de cache de compilação padrão ou nada se isso for Nenhum.

Opções da linha de comando do comando de invocação

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

Uma lista de diretórios nos quais os pacotes QL podem ser encontrados. Cada diretório pode ser um pacote QL (ou um conjunto de pacotes que contém um arquivo .codeqlmanifest.json na raiz) ou o pai imediato de um ou mais desses diretórios.

Se o caminho contiver mais de um diretório, a ordem deles definirá a precedência entre eles: quando for encontrada uma correspondência do nome de um pacote que precisa ser resolvido em mais de uma das árvores do diretório, a primeira fornecida vencerá.

Se você apontar isso para um check-out do repositório do CodeQL de código aberto, isso deverá funcionar durante a consulta de uma das linguagens que se encontram nele.

Se você tiver feito check-out do repositório do CodeQL como um irmão da cadeia de ferramentas CodeQL descompactada, não precisará fornecer essa opção. Nesses diretórios irmãos, sempre será feita a pesquisa por pacotes QL que não podem ser encontrados de outra forma. (Caso esse padrão não funcione, recomendamos fortemente configurar --search-path de uma vez por todas em um arquivo de configuração por usuário).

(Observação: no Windows, o separador de caminho é ;).

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

Se essa lista de diretórios for fornecida, nesses diretórios, será feita a pesquisa de pacotes antes daqueles contidos em --search-path. A ordem entre eles não importa: será indicado um erro se o nome de um pacote for encontrado em dois locais diferentes nessa lista.

Isso será útil se você estiver desenvolvendo temporariamente uma nova versão de um pacote que também aparece no caminho padrão. Por outro lado, não recomendamos substituir essa opção em um arquivo de configuração. Algumas ações internas adicionarão essa opção em tempo real, substituindo qualquer valor configurado.

(Observação: no Windows, o separador de caminho é ;).

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

[Avançado] Uma lista opcional de diretórios que serão adicionados ao caminho de pesquisa de importação bruta para as bibliotecas QL. Isso só deverá ser usado se você estiver usando bibliotecas QL que não foram empacotadas como pacotes QL.

(Observação: no Windows, o separador de caminho é ;).

--dbscheme=<file>

[Avançado] Defina explicitamente o dbscheme no qual as consultas devem ser compiladas. Isso só deve ser fornecido pelos chamadores que têm certeza do que estão fazendo.

--compilation-cache=<dir>

[Avançado] Especifique um diretório adicional a ser usado como um cache de compilação.

--no-default-compilation-cache

[Avançado] Não use caches de compilação em locais padrão, como no pacote QL que contém a consulta ou no diretório de cadeia de ferramentas CodeQL.

Opções para configurar o gerenciador de pacotes CodeQL

--registries-auth-stdin

Autentique-se nos registros de contêiner do GitHub Enterprise Server transmitindo uma lista separada por vírgula de pares <registry_url>=<token>.

Por exemplo, você pode transmitir https://containers.GHEHOSTNAME1/v2/=TOKEN1,https://containers.GHEHOSTNAME2/v2/=TOKEN2 para se autenticar em duas instâncias do GitHub Enterprise Server.

Isso substitui as variáveis de ambiente CODEQL_REGISTRIES_AUTH e GITHUB_TOKEN. Se você só precisar se autenticar no registro de contêiner do github.com, poderá se autenticar usando a opção --github-auth-stdin mais simples.

--github-auth-stdin

Autentique-se no registro de contêiner do github.com transmitindo um token do GitHub Apps do github.com ou um token de acesso pessoal por meio da entrada padrão.

Para se autenticar nos registros de contêiner do GitHub Enterprise Server, transmita --registries-auth-stdin ou use a variável de ambiente CODEQL_REGISTRIES_AUTH.

Isso substitui a variável de ambiente GITHUB_TOKEN.

Opções para especificar o que estamos prestes a compilar

Exatamente uma dessas opções precisa ser fornecida.

--query=<qlfile>

O caminho para o arquivo QL que queremos compilar.

Será feita uma pesquisa no diretório e nos diretórios pai em busca de arquivos qlpack.yml ou queries.xml herdados para determinar os pacotes necessários.

--dir=<dir>

O diretório raiz do pacote que contém as consultas a serem compiladas.

--root-pack=<pkgname>

[Avançado] O nome declarado de um pacote a ser usado como raiz para a resolução de dependência.

Isso é usado quando o pacote pode ser encontrado pelo nome em algum lugar no caminho de pesquisa. Se você souber o local do disco do pacote raiz desejado, finja que ele contém um arquivo .ql e use --query no lugar dele.

Opções comuns

-h, --help

Mostre este texto de ajuda.

-J=<opt>

[Avançado] Forneça a opção para a JVM que executa o comando.

(Use-a com cautela, pois as opções que contêm espaços não serão tratadas corretamente.)

-v, --verbose

Aumente incrementalmente o número de mensagens de progresso impressas.

-q, --quiet

Diminua incrementalmente o número de mensagens de progresso impressas.

--verbosity=<level>

[Avançado] Defina explicitamente o nível de detalhamento como erros, avisos, progresso, progresso+, progresso++ ou progresso+++. Substitui -v e -q.

--logdir=<dir>

[Avançado] Escreva logs detalhados em um ou mais arquivos no diretório fornecido, com nomes gerados que incluem carimbos de data/hora e o nome do subcomando em execução.

(Para gravar um arquivo de log com um nome sobre o qual você tem controle completo, forneça --log-to-stderr e redirecione stderr conforme desejado.)

--common-caches=<dir>

[Avançado] Controle a localização dos dados armazenados em cache no disco que persistirão entre várias execuções da CLI, como pacotes QL baixados e planos de consulta compilada. Se não for definido explicitamente, o padrão corresponde a um diretório intitulado .codeql no diretório inicial do usuário; que será criado se ainda não existir.

Disponível desde v2.15.2.