Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

файлы индекса базы данных

[Сантехника] Индексируйте автономные файлы с помощью заданного средства извлечения CodeQL.

GitHub CodeQL лицензируется для каждого пользователя после установки. CodeQL можно использовать только для определенных задач с ограничениями лицензии. Дополнительные сведения см. в разделе Сведения о CodeQL CLI.

Если у вас есть лицензия на GitHub Advanced Security, вы можете использовать CodeQL для автоматического анализа, непрерывной интеграции и непрерывной поставки. Дополнительные сведения см. в разделе Сведения о GitHub Advanced Security.

В этом материале описывается последний выпуск Интерфейса командной строки CodeQL. Дополнительные сведения об этом выпуске см. в разделе https://github.com/github/codeql-cli-binaries/releases.

Чтобы просмотреть сведения о параметрах, доступных для этой команды в более раннем выпуске, выполните команду с параметром в терминале --help .

Краткий обзор

Shell
codeql database index-files --language=<lang> [--threads=<num>] [--ram=<MB>] [--extractor-option=<extractor-option-name=value>] <options>... -- <database>

Описание

[Сантехника] Индексирование автономных файлов с помощью заданного средства извлечения CodeQL.

Эта команда выбирает набор файлов в указанном рабочем каталоге и применяет к ним указанный метод извлечения. По умолчанию выбраны все файлы. Типичные вызовы определяют параметры для ограничения набора включенных файлов.

Параметры --include, --excludeи --prune принимают шаблоны glob, которые могут использовать следующие подстановочные знаки:

  • Один символ "?" соответствует любому символу, отличному от косой черты вперед или назад;
  • Один символ "*" соответствует любому количеству символов, кроме косой черты вперед или назад;
  • Шаблон "**" соответствует нулю или более полным компонентам каталога.

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

<database>

[Обязательно] Путь к строяемой базе данных CodeQL. Он должен быть подготовлен для извлечения с помощью инициализации базы данных codeql.

-l, --language=<lang>

[Обязательно] Средство извлечения, которое должно использоваться для индексирования соответствующих файлов.

-j, --threads=<num>

Попросите средство извлечения использовать это количество потоков. Этот параметр передается в средство извлечения в виде предложения. Если задана переменная среды CODEQL_THREADS, значение переменной среды имеет приоритет над этим параметром.

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

-M, --ram=<MB>

Попросите средство извлечения использовать этот объем памяти. Этот параметр передается в средство извлечения в виде предложения. Если задана переменная среды ОЗУ CODEQL_, значение переменной среды имеет приоритет над этим параметром.

--working-dir=<dir>

[Дополнительно] Каталог, в котором должна выполняться указанная команда. Если этот аргумент не указан, команда выполняется в значении , переданном --source-root в создание базы данных codeql, если оно существует. Если аргумент не --source-root указан, команда выполняется в текущем рабочем каталоге.

Параметры управления поведением средства извлечения

-O, --extractor-option=<extractor-option-name=value>

Задайте параметры для средств извлечения CodeQL. extractor-option-name значение должно иметь имя средства извлечения_формы.имя группы1.group2.option_или имя параметра group1.group2.option_. Если 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.*исключить sub/index.ts (потому что он исключается !sub/*.tsв ), и включить 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-]find-any

Найти не более одного совпадения (в отличие от всех совпадений).

Доступно начиная с v2.11.3.

Общие параметры

-h, --help

Показать этот текст справки.

-J=<opt>

[Дополнительно] Предоставьте параметр виртуальной машине JVM, выполняющую команду .

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

-v, --verbose

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

-q, --quiet

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

--verbosity=<level>

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

--logdir=<dir>

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

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