В этом материале описывается последний выпуск Интерфейса командной строки CodeQL. Дополнительные сведения об этом выпуске см. в разделе https://github.com/github/codeql-cli-binaries/releases.
Чтобы просмотреть сведения о параметрах, доступных для этой команды в более раннем выпуске, выполните команду с параметром в терминале --help
.
Краткий обзор
codeql bqrs interpret --format=<format> --output=<output> -t=<String=String> [--threads=<num>] [--source-archive=<sourceArchive>] [--source-location-prefix=<sourceLocationPrefix>] <options>... -- <bqrs-file>
Описание
[Сантехника] Интерпретация данных в одном BQRS.
Команда, которая интерпретирует один файл BQRS в соответствии с предоставленными метаданными и создает выходные данные в указанном формате.
Основные параметры
<bqrs-file>
[Обязательно] Файл BQRS для интерпретации.
--format=<format>
[Обязательный] Формат, в котором записываются результаты. Одно из двух значений:
csv
: форматированные значения, разделенные запятыми, включая столбцы с метаданными правил и оповещений.
sarif-latest
: формат обмена результатами статического анализа (SARIF), основанный на JSON для описания результатов статического анализа. Этот параметр форматирования использует последнюю поддерживаемую версию (2.1.0). Этот параметр не подходит для использования в автоматизации, так как он создает разные версии SARIF для разных версий CodeQL.
sarifv2.1.0
: SARIF версии 2.1.0.
graphtext
: текстовый формат, представляющий граф. Совместим только с запросами с @kind графом.
dgml
: направленный язык разметки графа, основанный на XML-формате для описания графов. Совместим только с запросами с @kind графом.
dot
: язык Graphviz DOT, текстовый формат для описания графов.
Совместим только с запросами с @kind графом.
-o, --output=<output>
[Обязательный] Выходной путь для записи результатов. Для форматов графа это должен быть каталог, и результат (или результаты, если эта команда поддерживает интерпретацию нескольких запросов) будут записаны в этом каталоге.
-t=<String=String>
[Обязательный] Пара значений ключа метаданных запроса. Повторите для каждого фрагмента метаданных. Необходимо указать по крайней мере ключи kind и id. Ключи не обязательно должны иметь префикс @.
--max-paths=<maxPaths>
Максимальное количество путей для каждого оповещения с путями. (По умолчанию: 4)
--[no-]sarif-add-file-contents
[Только форматы SARIF] Включите полное содержимое всех файлов, на которые ссылается хотя бы один результат.
--[no-]sarif-add-snippets
[Только форматы SARIF] Включите фрагменты кода для каждого расположения, указанного в результатах, с двумя строками контекста до и после указанного расположения.
--[no-]sarif-add-query-help
[Только форматы SARIF] Включите справку по запросу Markdown в результаты. Он загружает справку запроса для /path/to/query.ql из файла /path/to/query.md. Этот параметр не действует при передаче в codeql bqrs interpret.
--[no-]sarif-group-rules-by-pack
[Только форматы SARIF] Поместите объект правила для каждого запроса в соответствующий пакет QL в свойстве <run>.tool.extensions
. Этот параметр не действует при передаче в codeql bqrs interpret.
--[no-]sarif-multicause-markdown
[Только форматы SARIF] Для оповещений, которые имеют несколько причин, включите их в виде элементарного списка в формате Markdown в выходные данные в дополнение к в виде простой строки.
--no-group-results
[Только форматы SARIF] Создание одного результата для каждого сообщения, а не одного результата в уникальном расположении.
--csv-location-format=<csvLocationFormat>
Формат, в котором создаются расположения в выходных данных CSV. Один из: URI, столбец строки, смещение длины. (По умолчанию: line-column)
--dot-location-url-format=<dotLocationUrlFormat>
Строка формата, определяющая формат, в котором создаются URL-адреса расположения файлов в выходных данных DOT. Следующие заполнители можно использовать {path} {start:line} {start:column} {end:line} {end:column}, {offset}, {length}
--sarif-category=<category>
[Только форматы SARIF] Укажите категорию для этого анализа, включаемую в выходные данные SARIF. Категорию можно использовать для различения нескольких анализов, выполненных в одной фиксации и репозитории, но на разных языках или в разных частях кода.
Если проанализировать одну и ту же версию базы кода несколькими разными способами (например, для разных языков) и отправить результаты в GitHub для представления в разделе "Сканирование кода", это значение должно отличаться для каждого анализа, которое сообщает, что анализ дополняет, а не заменяет друг друга. (Значения должны быть согласованными при выполнении одного анализа для разных версий базы кода.)
Это значение будет отображаться (с добавлением косой черты в конце, если ее еще нет) в качестве свойства <run>.automationId
в SARIF v1, свойства <run>.automationLogicalId
в SARIF v2 и свойства <run>.automationDetails.id
в SARIF v2.1.0.
-j, --threads=<num>
Количество потоков, используемых для вычислительных путей.
По умолчанию равен 1. Можно передать 0, чтобы использовать один поток на каждом ядре на компьютере, или -N , чтобы оставить N ядер неиспользуемых (за исключением использования хотя бы одного потока).
--sarif-run-property=<String=String>
[Только SARIF] Пара "ключ-значение", добавляемая в созданный контейнер свойств "run" SARIF. Может повторяться.
--column-kind=<columnKind>
[Только SARIF] Тип столбца, используемый для интерпретации столбцов расположения. Один из: utf8, utf16, utf32, байт.
--[no-]unicode-new-lines
[Только SARIF] Учитываются ли символы новой строки Юникода LS (разделитель строк, U+2028) и PS (разделитель абзаца, U+2029) как новые строки при интерпретации номеров строк расположения.
Параметры исходного архива — должны быть предоставлены вместе или вообще не должны быть предоставлены
-s, --source-archive=<sourceArchive>
Каталог или ZIP-файл, содержащий исходный архив.
-p, --source-location-prefix=<sourceLocationPrefix>
Путь к файлу в исходной файловой системе, в которой хранился исходный код.
Общие параметры
-h, --help
Показать этот текст справки.
-J=<opt>
[Дополнительно] Предоставьте параметр виртуальной машине Java, запустив команду .
(Остерегайтесь, что параметры, содержащие пробелы, будут обрабатываться неправильно.)
-v, --verbose
Добавочное увеличение числа выводемых сообщений о ходе выполнения.
-q, --quiet
Постепенно уменьшайте количество выводемых сообщений о ходе выполнения.
--verbosity=<level>
[Дополнительно] Явно задайте уровень детализации для одной из ошибок, предупреждений, хода выполнения, хода выполнения+, хода выполнения++, хода выполнения+++. Переопределяет -v
и -q
.
--logdir=<dir>
[Дополнительно] Запись подробных журналов в один или несколько файлов в заданном каталоге с созданными именами, включая метки времени и имя выполняющейся подкоманды.
(Чтобы записать файл журнала с именем, над которым у вас есть полный контроль, вместо этого при необходимости предоставьте --log-to-stderr
и перенаправьте stderr.)