В этом содержимом описывается последний выпуск CodeQL CLI. Дополнительные сведения об этом выпуске см. в разделе https://github.com/github/codeql-cli-binaries/releases.
Чтобы просмотреть сведения о параметрах, доступных для этой команды в более раннем выпуске, выполните команду с параметром в терминале --help .
Краткий обзор
codeql resolve queries <options>... -- <query|dir|suite|pack>...
codeql resolve queries <options>... -- <query|dir|suite|pack>...
Описание
[Глубокая сантехника] Расширение каталогов запросов и спецификаций наборов.
Эта команда отвечает за расширение параметров командной строки подкоманд, которые могут выполнять несколько запросов, до фактического списка отдельных QL-файлов для выполнения.
Если выполнение выполняется без аргументов, отобразит сообщение справки, включая список "известных" определений набора запросов, найденных в доступных пакетах QL в стандартном потоке ошибок, и успешно вернет пустой список запросов.
Основные параметры
<querysuite|pack>...
[Обязательный] Запросы для выполнения. Каждый аргумент имеет вид scope/name@range:path , где:
scope/name— это полное имя пакета CodeQL.range— это диапазон semver.path— это путь к файловой системе.
scope/name Если задано значение , range и являются path необязательными. Отсутствует range означает последнюю версию указанного пакета. Отсутствует path подразумевает набор запросов по умолчанию для указанного пакета.
Может path быть файлом *.ql запроса, каталогом, содержащим один или несколько запросов, или файлом .qls набора запросов. Если имя пакета не указано, path необходимо указать и интерпретироваться относительно текущего рабочего каталога текущего процесса.
Чтобы указать path , содержащий литерал @ или :, используйте path: в качестве префикса аргумента, как показано ниже: path:directory/with:and@/chars.
scope/name Если заданы и path , то path не может быть абсолютным. Он учитывается относительно корня пакета CodeQL.
--format=<fmt>
Выберите формат выходных данных. Можно выбрать:
text(по умолчанию): список имен путей, ориентированный на строки.
json: простой список имен путей в виде строк.
bylanguage: более подробное представление JSON, которое группирует запросы, с помощью которого они работают, как выводятся из зависимостей библиотеки. Это немного дороже для вычислений.
installedpacks: [глубокая очистка] Представление JSON, в котором перечислены пакеты запросов CodeQL, на которые ссылаются непосредственно или внутри набора запросов и которые недоступны локально.
Параметры поиска пакетов QL (которые могут потребоваться для интерпретации наборов запросов)
--search-path=<dir>[:<dir>...]
Список каталогов, в которых можно найти пакеты QL. Каждый каталог может быть либо пакетом QL (или пакетом пакетов, содержащим файл в корневом .codeqlmanifest.json каталоге), либо непосредственным родительским элементом одного или нескольких таких каталогов.
Если путь содержит несколько каталогов, их порядок определяет приоритет между ними: если имя пакета, которое необходимо разрешить, совпадает в нескольких деревьях каталогов, то первое из них выигрывает.
Указание на это при извлечении репозитория CodeQL с открытым кодом должно работать при запросе одного из языков, которые там живут.
Если вы извлекли репозиторий CodeQL как одноуровневый элемент распакованой цепочки инструментов CodeQL, вам не нужно предоставлять этот параметр. В таких каталогах всегда будет выполняться поиск пакетов QL, которые невозможно найти в противном случае. (Если это значение по умолчанию не работает, настоятельно рекомендуется выполнить настройку --search-path раз и навсегда в файле конфигурации для каждого пользователя.
(Примечание. В Windows разделитель пути — ).;
--additional-packs=<dir>[:<dir>...]
Если указан этот список каталогов, в них будет выполняться поиск пакетов перед теми, которые в --search-path. Порядок между ними не имеет значения; Это ошибка, если имя пакета найдено в двух разных местах в этом списке.
Это полезно, если вы временно разрабатываете новую версию пакета, которая также отображается в пути по умолчанию. С другой стороны, не рекомендуется переопределять этот параметр в файле конфигурации; некоторые внутренние действия добавляют этот параметр на лету, переопределяя любое настроенное значение.
(Примечание. В Windows разделитель пути — ).;
Параметры настройки диспетчера пакетов CodeQL
--registries-auth-stdin
Проверка подлинности в реестрах контейнеров GitHub Enterprise Server путем передачи разделенного запятыми списка \<registry_url>=\
Например, можно передать https://containers.GHEHOSTNAME1/v2/=TOKEN1,https://containers.GHEHOSTNAME2/v2/=TOKEN2
для проверки подлинности в двух экземплярах GitHub Enterprise Server.
Это переопределяет переменные среды AUTH CODEQL_REGISTRIES_и токена GITHUB_. Если вам нужно пройти проверку подлинности только в реестре контейнеров 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>
[Дополнительно] Предоставьте параметр виртуальной машине Java, запустив команду .
(Остерегайтесь, что параметры, содержащие пробелы, будут обрабатываться неправильно.)
-v, --verbose
Добавочное увеличение числа выводемых сообщений о ходе выполнения.
-q, --quiet
Постепенно уменьшайте количество выводемых сообщений о ходе выполнения.
--verbosity=<level>
[Дополнительно] Явно задайте уровень детализации для одной из ошибок, предупреждений, хода выполнения, хода выполнения+, хода выполнения++, прогресса+++. Переопределяет -v и -q.
--logdir=<dir>
[Дополнительно] Запись подробных журналов в один или несколько файлов в заданном каталоге с созданными именами, включая метки времени и имя выполняющейся подкоманды.
(Чтобы записать файл журнала с именем, над которым у вас есть полный контроль, вместо этого при необходимости предоставьте --log-to-stderr и перенаправьте stderr.)