# pack publish

Publica um pacote de biblioteca QL em um registro de pacote.

> [!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 <span style="white-space: nowrap;">`--help`</span> no terminal.

## Sinopse

```shell copy
codeql pack publish [--dry-run] [--threads=<num>] [--ram=<MB>] [--pack=<folder> | <package.tgz>] <options>... -- <dir>
```

## Description

Publica um pacote de biblioteca QL em um registro de pacote.

Esse comando publica um pacote em um registro de pacote. Antes da publicação, o pacote é compilado pela primeira vez (se necessário) e empacotado.

Disponível desde `v2.6.0`.

## Opções

### Opções principais

#### `<dir>`

O diretório raiz do pacote ou do workspace usa como padrão o diretório de trabalho atual. Se esse parâmetro apontar para um diretório que contenha um qlpack.yml, essa operação será executada somente nesse pacote CodeQL. Se esse parâmetro apontar para um diretório que contenha um codeql-workspace.yml, essa operação será executada em todos os pacotes CodeQL no workspace.

#### `-n, --[no-]dry-run`

Imprima o que teria sido feito, mas não publique o pacote.

#### `--no-keep`

Exclua o pacote após a publicação.

#### `-j, --threads=<num>`

Use esse número de threads para compilar as consultas.

O valor padrão é 1. Você pode transmitir 0 para usar um thread por núcleo no computador ou -_N_ para manter _N_ núcleos não utilizados (com a exceção de que ainda será usado, pelo menos, um thread).

#### `-M, --ram=<MB>`

Defina a quantidade total de RAM que o compilador deve ter permissão para usar.

#### `--no-precompile`

              \[Avançado] Evite pré-compilar o cache de compilação no diretório de saída do pacote. Isso reduzirá o tamanho do pacote e o tempo necessário para criá-lo, mas exigirá uma compilação para a execução do pacote.
Apenas significativo para pacotes de consultas.

#### `--no-validate-extensions`

              \[Avançado] Evite validar extensões de dados como parte da etapa de compilação.

Disponível desde `v2.13.3`.

#### `--no-overwrite`

              \[Avançado] Evite recompilar e sobrescrever qualquer saída compilada existente de uma invocação anterior deste comando.

#### `-p, --pack=<folder> | <package.tgz>`

              \[Avançado] O local no qual o tarball empacotado será colocado. Se essa opção terminar em .tgz, o tarball será criado com esse nome.
Caso contrário, um diretório será criado no caminho especificado e um ou mais tarballs serão criados nele. O uso de .tgz não é permitido em workspaces.

#### `--file=<package.tgz>`

              \[Avançado] Carregue `package.tgz` diretamente no registro de pacote sem tentar criar ou agrupar nada novo.

#### `--[no-]allow-prerelease`

Permita o uso de pacotes com qualificadores de versão de pré-lançamento (por exemplo, `X.Y.Z-qualifier`). Sem esse sinalizador, os pacotes de pré-lançamento serão ignorados.

Disponível desde `v2.11.3`.

### Opções para configurar os pacotes CodeQL aos quais esse comando será aplicado.

#### `--format=<fmt>`

Selecione o formato de saída, `text`_(padrão)_ ou `json`.

#### `--groups=[-]<group>[,[-]<group>...]`

Lista de grupos de pacotes CodeQL a serem incluídos ou excluídos dessa operação. Um qlpack no workspace fornecido será incluído se:

* Ele estiver em, pelo menos, um dos grupos listados sem um sinal de subtração (essa condição será atendida automaticamente se não houver grupos listados sem um sinal de subtração) e
* Ele não estiver em nenhum grupo listado com um sinal de subtração

### Opções para configurar o ambiente de compilaçã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 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 utilize caches de compilação em locais padrão, como no pacote QL que contém a consulta ou no diretório da 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 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`.