В этом материале описывается последний выпуск Интерфейса командной строки CodeQL. Дополнительные сведения об этом выпуске см. в разделе https://github.com/github/codeql-cli-binaries/releases.
Чтобы просмотреть сведения о параметрах, доступных для этой команды в более раннем выпуске, выполните команду с параметром в терминале --help .
Краткий обзор
codeql database index-files --language=<lang> [--threads=<num>] [--ram=<MB>] [--extractor-option=<extractor-option-name=value>] <options>... -- <database>
codeql database index-files --language=<lang> [--threads=<num>] [--ram=<MB>] [--extractor-option=<extractor-option-name=value>] <options>... -- <database>
Описание
[Сантехника] Индексирование автономных файлов с помощью заданного средства извлечения CodeQL.
Эта команда выбирает набор файлов в указанном рабочем каталоге и применяет к ним указанный средство извлечения. По умолчанию выбраны все файлы. Типичные вызовы указывают параметры для ограничения набора включенных файлов.
Параметры --include, --excludeи --prune принимают стандартные шаблоны, которые могут использовать следующие подстановочные знаки:
- Один символ "?" соответствует любому символу, кроме косой черты вперед или назад;
- Один символ "*" соответствует любому количеству символов, кроме косой черты вперед или назад;
- Шаблон "**" соответствует нулю или более полным компонентам каталога.
Основные параметры
<database>
[Обязательный] Путь к строяемой базе данных CodeQL. Он должен быть подготовлен для извлечения с помощью инициализации базы данных codeql.
-l, --language=<lang>
[Обязательный) Средство извлечения, которое должно использоваться для индексирования соответствующих файлов.
-j, --threads=<num>
Попросите средство извлечения использовать это количество потоков. Этот параметр передается в средство извлечения в качестве предложения. Если задана переменная среды CODEQL_THREADS, значение переменной среды имеет приоритет над этим параметром.
Вы можете передать 0, чтобы использовать один поток на каждом ядре на компьютере, или -N , чтобы оставить N ядер неиспользуемых (за исключением того, что по-прежнему используется хотя бы один поток).
-M, --ram=<MB>
Попросите средство извлечения использовать этот объем памяти. Этот параметр передается в средство извлечения в качестве предложения. Если задана переменная среды ОЗУ CODEQL_, значение переменной среды имеет приоритет над этим параметром.
--working-dir=<dir>
[Дополнительно] Каталог, в котором должна выполняться указанная команда. Если этот аргумент не указан, команда выполняется в значении , переданном --source-root в codeql database create, если таковое существует. Если аргумент не --source-root указан, команда выполняется в текущем рабочем каталоге.
Параметры для управления поведением средства извлечения
-O, --extractor-option=<extractor-option-name=value>
Задайте параметры для средств извлечения CodeQL. extractor-option-name значение должно иметь имя средства извлечения_формы.group1.group2.option_name или group1.group2.option_name. Если extractor_option_name начинается с имени средства извлечения, указанный метод извлечения должен объявить имя параметра group1.group2.option_. В противном случае для любого средства извлечения, объявляющего имя параметра group1.group2.option_, будет задан параметр . value может быть любой строкой, которая не содержит новую строку.
Этот параметр командной строки можно использовать несколько раз, чтобы задать несколько параметров средства извлечения. При указании нескольких значений для одного и того же параметра средства извлечения поведение зависит от типа, ожидаемого параметром средства извлечения. Строковые параметры будут использовать последнее указанное значение. Параметры массива будут использовать все указанные значения по порядку. Параметры средства извлечения, указанные с помощью этого параметра командной строки, обрабатываются после параметров средства извлечения, заданных с помощью --extractor-options-file.
При передаче в инициализацию базы данных codeql или codeql database begin-tracingпараметры будут применяться только к среде косвенной трассировки. Если рабочий процесс также вызывает команду trace-command базы данных codeql , при необходимости необходимо передать в нее параметры.
См https://codeql.github.com/docs/codeql-cli/extractor-options . дополнительные сведения о параметрах средства извлечения CodeQL, в том числе о том, как вывести список параметров, объявленных каждым из средств извлечения.
--extractor-options-file=<extractor-options-bundle-file>
Укажите файлы пакетов параметров извлечения. Файл пакета параметров извлечения — это JSON-файл (расширение .json) или ФАЙЛ YAML (расширение .yaml или .yml), который задает параметры средства извлечения. Файл должен содержать ключ карты верхнего уровня extractor и имена средств извлечения в виде ключей карты второго уровня. Дополнительные уровни карт представляют вложенные группы средств извлечения, а параметры строк и массивов — это записи карты со значениями строк и массивов.
Файлы пакета параметров извлечения считываются в указанном порядке.
Если в разных файлах пакета параметров средства извлечения указан один и тот же параметр извлечения, поведение зависит от типа, который ожидает параметр средства извлечения. Строковые параметры будут использовать последнее указанное значение. Параметры массива будут использовать все указанные значения по порядку. Параметры средства извлечения, указанные с помощью этого параметра командной строки, обрабатываются перед параметрами средства извлечения, заданными с помощью --extractor-option.
При передаче в инициализацию базы данных codeql или codeql database begin-tracingпараметры будут применяться только к среде косвенной трассировки. Если рабочий процесс также вызывает команду trace-command базы данных codeql , при необходимости необходимо передать в нее параметры.
См https://codeql.github.com/docs/codeql-cli/extractor-options . дополнительные сведения о параметрах средства извлечения CodeQL, в том числе о том, как вывести список параметров, объявленных каждым из средств извлечения.
Параметры ограничения набора индексированных файлов
--include-extension=<.ext>
Включите в дерево каталогов поиска все файлы с заданным расширением. Как правило, следует включить точку перед расширением.
Например, передача --include-extension .xml будет включать все файлы с расширением ".xml". Этот параметр несовместим с отрицающими --include параметрами.
--include=<glob>
Включите все файлы и каталоги в дерево каталогов поиска, которые соответствуют заданной схеме, используя относительный путь каждого файла и каталога из каталога поиска. Если объект начинается с символа ! , соответствующие файлы и каталоги будут исключены.
--include параметры обрабатываются по порядку, а более поздние параметры переопределяют предыдущие. Например, --include ** --include !sub/*.ts --include sub/main.* будет включать sub/main.ts (потому что он включен sub/main.*в ), exclude sub/index.ts (потому что он исключается !sub/*.tsв ) и include sub/test.js (потому что он включается без ** последующего исключения.)
--also-match=<glob>
Требовать, чтобы все результаты также соответствовали заданной схеме, используя относительный путь к каждому файлу и каталогу из каталога поиска. Этот параметр имеет ту же структуру и интерпретацию, что --include и , но задает отдельную последовательность стандартных объектов, которые применяются в сочетании с --include.
--exclude=<glob>
Исключите все файлы и каталоги, соответствующие заданной схеме, используя относительный путь к каждому файлу и каталогу из каталога поиска. Этот параметр переопределяет все параметры включения. Этот параметр несовместим с отрицающими --include параметрами.
--prune=<glob>
Исключите все файлы и каталоги, соответствующие заданной схеме, используя относительный путь к каждому файлу и каталогу из каталога поиска. Этот параметр переопределяет все параметры включения. Этот параметр несовместим с отрицающими --include параметрами.
--size-limit=<bytes>
Исключите все файлы, размер которых превышает заданное ограничение. Ограничение размера — в байтах или в кибибайтах (КиБ) с суффиксом "k", в мебибайтах (МиБ) с суффиксом "m" и в гибибайтах (ГиБ) с суффиксом "g". Этот параметр переопределяет все параметры включения.
--total-size-limit=<bytes>
Выполните выход команды с ошибкой, если общий размер всех разрешенных файлов превысит заданное ограничение. Ограничение размера — в байтах или в кибибайтах (КиБ) с суффиксом "k", в мебибайтах (МиБ) с суффиксом "m" и в гибибайтах (ГиБ) с суффиксом "g".
--[no-]follow-symlinks
Перейдите по любым символьным ссылкам на целевые объекты.
--[no-]find-any
Найти не более одного совпадения (в отличие от всех совпадений).
Доступно начиная с v2.11.3.
Общие параметры
-h, --help
Показать этот текст справки.
-J=<opt>
[Дополнительно] Предоставьте параметр виртуальной машине Java, запустив команду .
(Остерегайтесь, что параметры, содержащие пробелы, будут обрабатываться неправильно.)
-v, --verbose
Добавочное увеличение числа выводемых сообщений о ходе выполнения.
-q, --quiet
Постепенно уменьшайте количество выводемых сообщений о ходе выполнения.
--verbosity=<level>
[Дополнительно] Явно задайте уровень детализации для одной из ошибок, предупреждений, хода выполнения, хода выполнения+, хода выполнения++, прогресса+++. Переопределяет -v и -q.
--logdir=<dir>
[Дополнительно] Запись подробных журналов в один или несколько файлов в заданном каталоге с созданными именами, включая метки времени и имя выполняющейся подкоманды.
(Чтобы записать файл журнала с именем, над которым у вас есть полный контроль, вместо этого при необходимости предоставьте --log-to-stderr и перенаправьте stderr.)