Skip to main content

разрешение пути к библиотеке

[Глубокая сантехника] Определите путь библиотеки QL и dbscheme для запроса.

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

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

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

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

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

Краткие сведения

Shell
codeql resolve library-path (--query=<qlfile> | --dir=<dir> | --root-pack=<pkgname>) <options>...

Description

[Глубокое сантехника] Определите путь библиотеки QL и dbscheme для запроса.

Определите, какой путь к библиотеке QL следует скомпилировать для определенного запроса. Это вычисление неявно в нескольких подкомандах, которые могут потребоваться для компиляции запросов. Она предоставляется как отдельная команда сантехники, чтобы (a) помочь в устранении неполадок, и (b) предоставить отправную точку для изменения пути в чрезвычайных случаях, когда требуется точный контроль.

Команда также обнаружит язык и dbscheme для компиляции запроса, так как они также могут зависеть от автоматического определения языка запроса QL.

Команда глубоко внутренняя, и ее поведение или существование может измениться без большого уведомления по мере развития экосистемы языка QL.

Параметры

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

--[no-]find-extractors

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

--format=<fmt>

Выберите выходной формат. В число вариантов входят следующие варианты:

lines(по умолчанию): печать аргументов командной строки в одной строке.

json: печать объекта JSON со всеми данными.

path: напечатать только путь вычисляемой библиотеки.

dbscheme: печать только обнаруженной dbscheme.

cache: печать расположения кэша компиляции по умолчанию или ничего, если нет.

Параметры из командной строки вызова команды

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

Список каталогов, в которых можно найти пакеты QL. Каждый каталог может быть пакетом QL (или пакетом пакетов, содержащих .codeqlmanifest.json файл в корневом каталоге) или непосредственным родительским элементом одного или нескольких таких каталогов.

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

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

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

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

--additional-packs=<dir>[:<dir>...]

Если указан этот список каталогов, они будут искать пакеты до тех, в которых они есть --search-path. Порядок между ними не имеет значения; Это ошибка, если имя пакета найдено в двух разных местах в этом списке.

Это полезно, если вы временно разрабатываете новую версию пакета, который также отображается в пути по умолчанию. С другой стороны, не рекомендуется переопределить этот параметр в файле конфигурации. Некоторые внутренние действия будут добавлять этот параметр на лету, переопределяя любое настроенное значение.

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

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

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

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

--dbscheme=<file>

[Advanced] Явно определяет, какие запросы dbscheme следует скомпилировать. Это должно быть дано только вызывающими, которые крайне уверены, что они делают.

--compilation-cache=<dir>

[Дополнительно] Укажите дополнительный каталог для использования в качестве кэша компиляции.

--no-default-compilation-cache

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

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

--registries-auth-stdin

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

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

При этом переопределяются переменные среды маркера токена CODEQL_И_AUTH и GITHUB_. Если вам нужно выполнить проверку подлинности только в реестре контейнеров github.com, можно вместо этого выполнить проверку подлинности с помощью более --github-auth-stdin простого параметра.

--github-auth-stdin

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

Чтобы пройти проверку подлинности в реестрах контейнеров GitHub Enterprise Server, передайте --registries-auth-stdin или используйте переменную среды AUTH CODEQL_REGISTRIES_.

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

Параметры указания того, что мы собираемся скомпилировать

Необходимо задать именно один из этих вариантов.

--query=<qlfile>

Путь к файлу QL, который требуется скомпилировать.

Его каталоги и родительские каталоги будут искать qlpack.yml или устаревшие файлы queries.xml, чтобы определить необходимые пакеты.

--dir=<dir>

Корневой каталог пакета, содержащего запросы для компиляции.

--root-pack=<pkgname>

[Дополнительно] Объявленное имя пакета, используемого в качестве корневого элемента для разрешения зависимостей.

Это используется, когда пакет можно найти по имени в пути поиска. Если вы знаете расположение диска нужного корневого пакета, притворитесь, что он содержит файл QL и используется --query вместо него.

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

-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.