# публикация пакета

Публикует пакет библиотеки QL в реестре пакетов.

> [!NOTE]
> Это содержимое описывает последний выпуск данных CodeQL CLI. Дополнительные сведения об этом выпуске см. в статье https://github.com/github/codeql-cli-binaries/releases.
>
> Чтобы просмотреть сведения о параметрах, доступных для этой команды в предыдущем выпуске, выполните команду с <span style="white-space: nowrap;">`--help`</span> параметром в терминале.

## Synopsis

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

## Description

Публикует пакет библиотеки QL в реестре пакетов.

Эта команда публикует пакет в реестре пакетов. Перед публикацией пакет сначала компилируется (при необходимости) и упаковывается.

Доступно с момента `v2.6.0`.

## Options

### Основные параметры

#### `<dir>`

Корневой каталог пакета или рабочей области по умолчанию используется текущий рабочий каталог. Если этот параметр указывает на каталог, содержащий qlpack.yml, эта операция будет выполняться только в этом пакете CodeQL. Если этот параметр указывает на каталог, содержащий codeql-workspace.yml, эта операция будет выполняться во всех пакетах CodeQL в рабочей области.

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

Распечатайте то, что было бы сделано, но не публикуйте пакет.

#### `--no-keep`

Удалите пакет пакета после публикации.

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

Используйте это множество потоков для компиляции запросов.

Значение по умолчанию — 1. Вы можете передать 0 для использования одного потока на ядро на компьютере или -_N, чтобы оставить _неиспользуемые_ ядра N_ (за исключением того, что по-прежнему используется хотя бы один поток).

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

Задайте общий объем ОЗУ, который должен использоваться компилятором.

#### `--no-precompile`

              \[Дополнительно] Избегайте предварительной компиляции кэша компиляции в выходном каталоге пакета. Это уменьшит размер пакета и время его создания, но потребует компиляции перед запуском пакета.
Доступно только для пакетов запросов.

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

              \[Дополнительно] Избегайте проверки расширений данных в рамках шага компиляции.

Доступно с момента `v2.13.3`.

#### `--no-overwrite`

              \[Дополнительно] Избегайте повторной компиляции и перезаписи существующих скомпилированных выходных данных из предыдущего вызова этой команды.

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

              \[Дополнительно] Расположение для размещения упакованного тарбола. Если этот параметр заканчивается в TGZ, то с таким именем будет создан tarball.
В противном случае создается новый каталог по указанному пути и создается один или несколько тарболов. Использование TGZ не допускается для рабочих областей.

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

              \[Дополнительно] Отправьте `package.tgz` непосредственно в реестр пакетов, не пытаясь создать или упаковать что-либо новое.

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

Разрешить использовать пакеты с квалификаторами предварительной версии (например, `X.Y.Z-qualifier`). Без этого флага пакеты предварительного выпуска будут игнорироваться.

Доступно с момента `v2.11.3`.

### Параметры настройки пакетов CodeQL для применения этой команды.

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

Выберите выходной формат либо (по умолчанию),_ либо `text`_`json`.

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

Список групп пакетов CodeQL для включения или исключения из этой операции. qlpack в данной рабочей области включается, если:

* Он находится по крайней мере в одной из групп, перечисленных без знака минуса (это условие автоматически удовлетворяется, если нет групп, перечисленных без знака минуса), и
* Он не находится в какой-либо группе, указанной со знаком минуса

### Параметры настройки среды компиляции

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

Список каталогов, в которых можно найти пакеты QL. Каждый каталог может быть пакетом QL (или пакетом пакетов, содержащих `.codeqlmanifest.json` файл в корневом каталоге) или непосредственным родительским элементом одного или нескольких таких каталогов.

Если путь содержит несколько каталогов, их порядок определяет приоритет между ними: когда имя пакета, которое должно быть разрешено, совпадает с несколькими деревьями каталогов, то один из первых побед.

Указывая это на получение репозитория CodeQL с открытым исходным кодом, должно работать при запросе одного из языков, которые живут там.

Если вы проверили репозиторий CodeQL как одноуровневую цепочку инструментов CodeQL, вам не нужно предоставлять этот параметр; Такие каталоги с братом всегда будут искать пакеты QL, которые не удается найти в противном случае. (Если это значение по умолчанию не работает, настоятельно рекомендуется настроить `--search-path` один раз и для всех в файле конфигурации для каждого пользователя).

(Примечание. В Windows разделитель путей имеет значение `;`).

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

Если указан этот список каталогов, они будут искать пакеты до тех, в которых они есть `--search-path`. Порядок между ними не имеет значения; Это ошибка, если имя пакета найдено в двух разных местах в этом списке.

Это полезно, если вы временно разрабатываете новую версию пакета, который также отображается в пути по умолчанию. С другой стороны, _не рекомендуется_ переопределить этот параметр в файле конфигурации. Некоторые внутренние действия будут добавлять этот параметр на лету, переопределяя любое настроенное значение.

(Примечание. В Windows разделитель путей имеет значение `;`).

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

              \[Дополнительно] Необязательный список каталогов, которые будут добавлены в путь поиска необработанных импортов для библиотек QL. Это следует использовать только в том случае, если вы используете библиотеки QL, которые не были упакованы как пакеты QL.

(Примечание. В Windows разделитель путей имеет значение `;`).

#### `--dbscheme=<file>`

              \[Advanced] Явно определяет, какие запросы dbscheme следует скомпилировать. Это должно быть дано только вызывающими, которые крайне уверены, что они делают.

#### `--compilation-cache=<dir>`

              \[Дополнительно] Укажите дополнительный каталог для использования в качестве кэша компиляции.

#### `--no-default-compilation-cache`

              \[Дополнительно] Не используйте кэши компиляции в стандартных расположениях, например в пакете QL, содержашем запрос или в каталоге цепочки инструментов CodeQL.

### Параметры настройки диспетчера пакетов CodeQL

#### `--registries-auth-stdin`

Проверка подлинности в реестрах контейнеров GitHub Enterprise Server путем передачи \<registry\_url>=\<token> разделенного запятыми списка пар.

Например, можно передать `https://containers.GHEHOSTNAME1/v2/=TOKEN1,https://containers.GHEHOSTNAME2/v2/=TOKEN2`
для проверки подлинности на двух экземплярах GitHub Enterprise Server.

При этом переопределяются переменные среды маркера токена CODEQL\_И\_AUTH и GITHUB\_. Если вам нужно выполнить проверку подлинности только в реестре контейнеров github.com, можно вместо этого выполнить проверку подлинности с помощью более `--github-auth-stdin` простого параметра.

#### `--github-auth-stdin`

Проверка подлинности в реестре контейнеров github.com путем передачи маркера github.com GitHub Apps или личного маркера доступа через стандартные входные данные.

Чтобы пройти проверку подлинности в реестрах контейнеров GitHub Enterprise Server, передайте `--registries-auth-stdin` или используйте переменную среды AUTH CODEQL\_REGISTRIES\_.

Это переопределяет переменную среды токена GITHUB\_.

### Распространенные параметры

#### `-h, --help`

Отображение этого текста справки.

#### `-J=<opt>`

              \[Дополнительно] Укажите параметр JVM, выполняя команду.

(Убедитесь, что параметры, содержащие пробелы, не будут обрабатываться правильно.)

#### `-v, --verbose`

Постепенно увеличьте число отображаемых сообщений о ходе выполнения.

#### `-q, --quiet`

Постепенно уменьшайте количество отображаемых сообщений о ходе выполнения.

#### `--verbosity=<level>`

              \[Дополнительно] Явным образом задайте уровень детализации на одну из ошибок, предупреждений, хода выполнения, хода выполнения+, хода выполнения++, хода выполнения+++. Переопределяет `-v` и `-q`.

#### `--logdir=<dir>`

              \[Дополнительно] Запись подробных журналов в один или несколько файлов в указанном каталоге с созданными именами, включающими метки времени и имя выполняющегося подкоманда.

(Чтобы записать файл журнала с именем, над которым у вас есть полный контроль, вместо этого предоставьте `--log-to-stderr` и перенаправите stderr по мере необходимости.)

#### `--common-caches=<dir>`

              \[Дополнительно] Управляет расположением кэшированных данных на диске, которые будут сохраняться между несколькими запусками интерфейса командной строки, такими как скачанные пакеты QL и скомпилированные планы запросов. Если этот параметр не задан явным образом, по умолчанию используется каталог с именем `.codeql` в домашнем каталоге пользователя; он будет создан, если он еще не существует.

Доступно с момента `v2.15.2`.