В этом содержимом описывается последний выпуск CodeQL CLI. Дополнительные сведения об этом выпуске см. в разделе https://github.com/github/codeql-cli-binaries/releases.
Чтобы просмотреть сведения о параметрах, доступных для этой команды в более раннем выпуске, выполните команду с параметром в терминале --help .
Краткий обзор
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>
Описание
[Экспериментальный] Публикует пакет библиотеки QL в реестре пакетов.
Эта команда публикует пакет в реестре пакетов. Перед публикацией пакет сначала компилируется (при необходимости) и упаковывается в пакет.
Доступно начиная с v2.6.0.
Основные параметры
<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>
[Дополнительно] Расположение для размещения упакованного tarball. Если этот параметр заканчивается на .tgz, то tarball будет создан с таким именем. В противном случае создается новый каталог по указанному пути, и там создается один или несколько tarballs. Использование 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>
[Дополнительно] Явно определяет, для каких запросов dbscheme следует компилировать. Это должно быть дано только вызывающими абонентами, которые очень уверены, что они делают.
--compilation-cache=<dir>
[Дополнительно] Укажите дополнительный каталог для использования в качестве кэша компиляции.
--no-default-compilation-cache
[Дополнительно] Не используйте кэши компиляции в стандартных расположениях, например в пакете QL, содержавшем запрос, или в каталоге цепочки инструментов CodeQL.
Параметры настройки диспетчера пакетов CodeQL
--registries-auth-stdin
Выполните проверку подлинности в реестрах контейнеров GitHub Enterprise Server, передав список \<registry_url>=\
Например, можно передать https://containers.GHEHOSTNAME1/v2/=TOKEN1,https://containers.GHEHOSTNAME2/v2/=TOKEN2
для проверки подлинности в двух экземплярах GitHub Enterprise Server.
Это переопределяет переменные среды CODEQL_REGISTRIES_AUTH и GITHUB_TOKEN. Если вам нужно пройти проверку подлинности только в реестре контейнеров github.com, можно использовать более --github-auth-stdin простой вариант.
--github-auth-stdin
Выполните проверку подлинности в реестре контейнеров github.com, передав github.com маркер GitHub Apps или личный маркер доступа через стандартные входные данные.
Чтобы пройти проверку подлинности в реестрах контейнеров GitHub Enterprise Server, передайте --registries-auth-stdin или используйте переменную среды CODEQL_REGISTRIES_AUTH.
Это переопределяет переменную среды GITHUB_TOKEN.
Общие параметры
-h, --help
Показать этот текст справки.
-J=<opt>
[Дополнительно] Предоставьте параметр виртуальной машине JVM, выполняющую команду .
(Остерегайтесь, что параметры, содержащие пробелы, будут обрабатываться неправильно.)
-v, --verbose
Постепенно увеличивать количество выводемых сообщений о ходе выполнения.
-q, --quiet
Постепенно уменьшайте количество выводемых сообщений о ходе выполнения.
--verbosity=<level>
[Дополнительно] Явно задайте уровень детализации для одной из ошибок, предупреждений, progress, progress+, progress++, progress+++. Переопределяет -v и -q.
--logdir=<dir>
[Дополнительно] Запись подробных журналов в один или несколько файлов в указанном каталоге с созданными именами, включающими метки времени и имя выполняющейся подкоманды.
(Чтобы записать файл журнала с именем, над которым у вас есть полный контроль, вместо этого при необходимости предоставьте --log-to-stderr и перенаправьте stderr.)