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

database init

[Сантехника] Создайте пустую базу данных 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 init --source-root=<dir> [--language=<lang>[,<lang>...]] [--github-auth-stdin] [--github-url=<url>] [--extractor-option=<extractor-option-name=value>] <options>... -- <database>

Описание

[Сантехника] Создание пустой базы данных CodeQL.

Создайте структурную структуру для базы данных CodeQL, которая еще не содержит необработанный набор данных QL, но готова к выполнению шагов средства извлечения. После выполнения этой команды выполните одну или несколько команд трассировки базы данных codeql , а затем завершите работу базы данных codeql , чтобы подготовить базу данных к запросу.

(Отчасти это позволяет разрешить расположение соответствующего языкового пакета и сохранить его в метаданных базы данных, чтобы его не нужно было переделывать при каждой команде извлечения. Переключение средств извлечения в середине операции извлечения в любом случае недопустимо.)

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

<database>

[Обязательно] Путь к создаваемой базе данных CodeQL. Этот каталог будет создан и не должен существовать (но его родительский каталог должен существовать).

--db-cluster Если задан параметр, это будет не сама база данных, а каталог, который будет содержать базы данных для нескольких языков, созданных из одного корня источника.

Важно, чтобы этот каталог не был в расположении, в которое будет мешать процесс сборки. Например, target каталог проекта Maven не будет подходящим выбором.

-s, --source-root=<dir>

[Обязательно] Корневой каталог исходного кода. Во многих случаях это будет корень оформления заказа. Файлы в ней считаются основными исходными файлами для этой базы данных. В некоторых выходных форматах файлы будут ссылаться по относительному пути из этого каталога.

--[no-]overwrite

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

--codescanning-config=<file>

[Дополнительно] Прочтите файл конфигурации сканирования кода, в который указываются параметры создания баз данных CodeQL и запросов для выполнения на последующих шагах. Дополнительные сведения о формате этого файла конфигурации см. в разделе Настройка сканирования кода. Чтобы выполнить запросы из этого файла на следующем шаге, вызовите анализ базы данных codeql без указания других запросов.

--[no-]db-cluster

Вместо создания отдельной базы данных создайте "кластер" баз данных для разных языков, каждый из которых является подкаталогом каталога, заданного в командной строке.

-l, --language=<lang>[,<lang>...]

Язык, который будет использоваться для анализа новой базы данных.

Используйте языки разрешения codeql , чтобы получить список подключаемых средств извлечения языков, найденных в пути поиска.

--db-cluster Если параметр задан, он может отображаться несколько раз, или значение может быть разделенным запятыми списком языков.

Если этот параметр опущен, а анализируемый корень источника является извлечением репозитория GitHub, cli CodeQL выполнит вызов API GitHub, чтобы попытаться автоматически определить языки для анализа. Обратите внимание, что для этого маркер GitHub PAT должен быть предоставлен либо в переменной среды GITHUB_TOKEN, либо через стандартные входные данные с помощью --github-auth-stdin параметра .

--[no-]calculate-baseline

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

--[no-]allow-missing-source-root

[Дополнительно] Продолжить, даже если указанный корень источника не существует.

--[no-]begin-tracing

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

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

--search-path=<dir>[:<dir>...]

Список каталогов, в которых можно найти пакеты средств извлечения. Каталоги могут быть либо самими пакетами средств извлечения, либо каталогами, содержащими средства извлечения в качестве непосредственных подкаталогов.

Если путь содержит несколько деревьев каталогов, их порядок определяет приоритет между ними: если целевой язык совпадает в нескольких деревьях каталогов, то первое из них выигрывает.

Средства извлечения, в комплекте с самой цепочкой инструментов CodeQL, всегда будут найдены, но если вам нужно использовать отдельно распределенные средства извлечения, необходимо предоставить этот параметр (или, что еще лучше, настроить --search-path в файле конфигурации для каждого пользователя).

(Примечание. В Windows разделителем пути является ;).

Параметры для настройки вызова API GitHub для автоматического обнаружения языков.

-a, --github-auth-stdin

Примите маркер GitHub Apps или личный маркер доступа через стандартные входные данные.

Это переопределяет переменную среды GITHUB_TOKEN.

-g, --github-url=<url>

URL-адрес используемого экземпляра GitHub. Если этот параметр опущен, cli попытается автоматически определить это из пути оформления заказа, а если это невозможно, по умолчанию используется значение https://github.com/

Параметры для настройки диспетчера пакетов.

--registries-auth-stdin

Выполните проверку подлинности в реестрах контейнеров GitHub Enterprise Server, передав список \<registry_url>=\ пар, разделенный запятыми.

Например, можно передать https://containers.GHEHOSTNAME1/v2/=TOKEN1,https://containers.GHEHOSTNAME2/v2/=TOKEN2 для проверки подлинности в двух экземплярах GitHub Enterprise Server.

Это переопределяет переменные среды CODEQL_REGISTRIES_AUTH и GITHUB_TOKEN. Если вам нужно пройти проверку подлинности только в реестре контейнеров github.com, можно использовать более --github-auth-stdin простой вариант.

Параметры для настройки трассировки Windows

--trace-process-name=<process-name>

[Только Windows] При инициализации трассировки вставьте трассировку в родительский процесс CodeQL CLI, имя которого соответствует этому аргументу. Если это имя имеет несколько родительских процессов, будет выбран самый низкий в дереве процессов. Этот параметр переопределяет --trace-process-level, поэтому при использовании обоих вариантов передается только этот параметр.

--trace-process-level=<process-level>

[Только Windows] При инициализации трассировки вставьте трассировку на это количество родительских элементов выше текущего процесса с 0, соответствующим процессу, который вызывает CodeQL CLI. Если аргументы не передаются, интерфейс командной строки по умолчанию внедряется в родительский объект вызывающего процесса.

Параметры для настройки трассировки непрямой сборки

--no-tracing

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

--extra-tracing-config=<tracing-config.lua>

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

Параметры управления поведением средства извлечения: применяются только к непрямой среде трассировки.

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

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

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

-h, --help

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

-J=<opt>

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

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

-v, --verbose

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

-q, --quiet

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

--verbosity=<level>

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

--logdir=<dir>

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

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