Skip to main content

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

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

Кто эту функцию можно использовать?

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

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

Это содержимое описывает последний выпуск данных CodeQL CLI. Дополнительные сведения об этом выпуске см. в статье 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>

Description

[Сантехника] Индексируйте автономные файлы с заданным извлекателем CodeQL.

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

--excludeПараметры --includeи --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, если она существует. Если аргумент не --source-root указан, команда выполняется в текущем рабочем каталоге.

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

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

Задайте параметры для средств извлечения CodeQL. extractor-option-name должен иметь имя средства извлечения_формы name.group1.group2.option_или имя group1.group2.option_. Если extractor_option_name начинается с имени средства извлечения, указанный метод извлечения должен объявить имя option group1.group2.option_. В противном случае любой средство извлечения, объявляющее имя option group1.group2.option_, будет иметь набор параметров. value может быть любой строкой, которая не содержит новую строку.

Этот параметр командной строки можно использовать многократно для задания нескольких параметров извлечения. Если вы предоставляете несколько значений для одного варианта извлечения, поведение зависит от типа, который ожидает параметр средства извлечения. Строковые параметры будут использовать последнее указанное значение. Параметры массива будут использовать все предоставленные значения в порядке. Параметры средства извлечения, указанные с помощью этого параметра командной строки, обрабатываются после использования --extractor-options-fileпараметров средства извлечения.

При передаче в базу данных codeql инициализации или codeql database begin-tracingпараметры будут применяться только к среде косвенной трассировки. Если рабочий процесс также вызывает команду трассировки базы данных codeql, то при желании также необходимо передать параметры.

Дополнительные https://codeql.github.com/docs/codeql-cli/extractor-options сведения о параметрах средства извлечения CodeQL, включая перечисление параметров, объявленных каждым извлекателем.

--extractor-options-file=<extractor-options-bundle-file>

Укажите файлы пакета параметров извлечения. Файл пакета параметров извлечения — это JSON-файл (расширение) или YAML-файл (расширение .json``.yaml или.yml), который задает параметры средства извлечения. Файл должен иметь ключ карты верхнего уровня "extractor" и, под ним, имена средств извлечения в качестве ключей карты второго уровня. Дополнительные уровни карт представляют вложенные группы средств извлечения, а параметры строки и массива — это записи сопоставления со значениями строк и массивов.

Файлы пакета параметров извлечения считываются в указанном порядке. Если разные файлы пакета параметров извлечения указывают один и тот же параметр извлечения, поведение зависит от типа, который ожидает параметр извлечения. Строковые параметры будут использовать последнее указанное значение. Параметры массива будут использовать все предоставленные значения в порядке. Параметры средства извлечения, указанные с помощью этого параметра командной строки, обрабатываются перед использованием --extractor-optionпараметров средства извлечения.

При передаче в базу данных codeql инициализации или codeql database begin-tracingпараметры будут применяться только к среде косвенной трассировки. Если рабочий процесс также вызывает команду трассировки базы данных 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>

Исключите все файлы, размер которых превышает заданное ограничение. Ограничение размера в байтах или в кибибайтах (KiB) с суффиксом "k", в mebibytes (MiB) с суффиксом "m" и в гибибайтах (GiB) с суффиксом "g". Этот параметр переопределяет все параметры включения.

--total-size-limit=<bytes>

Выполните выход команды с ошибкой, если общий размер всех разрешенных файлов превысит заданное ограничение. Ограничение размера в байтах или в кибибайтах (KiB) с суффиксом "k", в mebibytes (MiB) с суффиксом "m" и в гибибайтах (GiB) с суффиксом "g".

Следуйте любым символьным ссылкам на их цели.

--[no-]find-any

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

Доступно с момента v2.11.3.

Распространенные параметры

-h, --help

Отображение этого текста справки.

-J=<opt>

[Дополнительно] Укажите параметр JVM, выполняя команду.

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

-v, --verbose

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

-q, --quiet

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

--verbosity=<level>

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

--logdir=<dir>

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

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

--common-caches=<dir>

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

Доступно с момента v2.15.2.