Skip to main content

Enterprise Server 3.15 в настоящее время доступен в качестве кандидата на выпуск.

разрешение запросов

[Глубокая сантехника] Разверните каталоги запросов и спецификации набора.

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

CodeQL доступен для следующих типов репозитория:

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

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

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

Shell
codeql resolve queries <options>... -- <query|dir|suite|pack>...

Description

[Глубокий сантехника] Разверните каталоги запросов и спецификации набора.

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

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

Параметры

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

<querysuite|pack>...

[Обязательный] Запросы для выполнения. Каждый аргумент находится в форме scope/name@range:path , в которой:

  • scope/name — это полное имя пакета CodeQL.
  • range — это диапазон semver.
  • path — это путь к файловой системе.

scope/name Если задано значение, range оно path является необязательным. Отсутствует range означает последнюю версию указанного пакета. Отсутствие path подразумевает набор запросов по умолчанию указанного пакета.

Это path может быть один из файлов запросов, каталог, содержащий один *.ql или несколько запросов, или .qls файл набора запросов. Если имя пакета не указано, path необходимо указать и интерпретироваться относительно текущего рабочего каталога текущего процесса.

Чтобы указать path , что содержит литерал @ или :, используйте path: в качестве префикса аргумента, как показано ниже path:directory/with:and@/chars.

scope/name Если задано и path указано, то path не может быть абсолютным. Он считается относительным к корню пакета CodeQL.

--format=<fmt>

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

text(по умолчанию): строковый список имен путей.

json: обычный список имен путей в виде строк.

bylanguage: более богатое представление JSON, которое группирует запросы, с которыми они работают, так как выводятся из зависимостей библиотеки, это немного дороже для вычислений.

installedpacks: [глубокий сантехника] Представление JSON, в котором перечислены пакеты запросов CodeQL, на которые ссылаются непосредственно или внутри набора запросов, и не доступны локально.

Параметры поиска пакетов QL (которые могут потребоваться для интерпретации наборов запросов)

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

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

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

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

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

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

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

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

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

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

Параметры настройки диспетчера пакетов 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_.

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

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