Настройка CodeQL CLI
Примечание.
В этой статье описываются функции, доступные в пакете CodeQL CLI 2.20.7 в первоначальном выпуске GitHub Enterprise Server 3.17.
Если администратор сайта обновил версию CodeQL CLI до более новой версии, ознакомьтесь с версией GitHub Enterprise Cloud этой статьи, чтобы узнать о последних функциях.
Для запуска CodeQL команд нужно настроить CodeQL CLI так, чтобы он мог получать доступ к инструментам, запросам и библиотекам, необходимым для создания и анализа баз данных.
Поддерживает CodeQL CLI широкий спектр сценариев использования и структуры каталогов. В этой статье рассматривается простая настройка, которая работает для большинства пользователей и сред.
Если вы планируете использовать их CodeQL CLI для исследований безопасности, тестирования или внесения запросов, возможно, понадобится более продвинутая система. Дополнительные сведения см. в разделе CodeQL CLI.
Перед началом
Если вы используете macOS в Apple Silicon (например, Apple M1), убедитесь, что установлены средства разработчика командной строки Xcode и Rosetta 2 .
Примечание.
В настоящее время он CodeQL CLI несовместим с дистрибутивами Linux без glibc, такими как (muslc-основанный) Alpine Linux.
1. Скачайте CodeQL CLI архив смолы
Пакет CodeQL CLI скачивания — это архив tar, содержащий инструменты, скрипты и различные файлы с определенными CodeQLпараметрами. Если у GitHub Enterprise вас нет лицензии, скачав этот архив, вы соглашаетесь с GitHubCodeQL условиями.
Вы должны скачать CodeQL пакет из https://github.com/github/codeql-action/releases. Содержимое пакета:
- CodeQL CLI продукт
- совместимая версия запросов и библиотек из https://github.com/github/codeql;
- предварительно скомпилированные версии всех запросов, включенных в пакет.
Примечание.
Для GitHub Enterprise Server3.17, мы рекомендуем CodeQL CLI версию 2.20.7.
Всегда следует использовать CodeQL пакет. Это обеспечивает совместимость и обеспечивает гораздо более высокую производительность, чем отдельная загрузка CodeQL CLI и проверка CodeQL запросов.
codeql-bundle-PLATFORM.tar.zst Скачайте файл для платформы, в которой будет выполняться интерфейс командной строки. Замените PLATFORM на linux64 Linux x64, linux-arm64 для Linux ARM64, osx64 для macOS или win64 для Windows.
Пакет all-platform (codeql-bundle.tar.zst и codeql-bundle.tar.gz) закрывается и перестанет публиковаться в будущем выпуске. Вместо этого скачайте файл для каждой платформы codeql-bundle-PLATFORM.tar.zst . В CodeQL CLI версии 2.27.0 и более поздних версий интерфейс командной строки из дистрибутива всех платформ создается предупреждение.
Существуют также tar.gz варианты пакета, которые идентичны tar.zst вариантам, кроме сжатых с помощью менее эффективного алгоритма gzip. Единственной причиной скачивания tar.gz вариантов является использование старых средств декомпрессии, которые не поддерживают алгоритм сжатия Zstandard.
2. Извлечь CodeQL CLI архив смолы
Извлеките CodeQL CLI архив смолы в выбранный вами каталог.
Опционально: Сделайте CodeQL CLI его доступным в вашей системе CI
Если вы планируете запускать CodeQLcode scanning анализ в CI-системе, убедитесь, что весь контент CodeQL CLI пакета доступен каждому CI-серверу, который будет запускать анализ.
Например, доступны следующие возможности:
- Скопируйте пакет из центрального внутреннего отделения и извлекайте его на каждом сервере, или
- Используйте REST API для загрузки пакета напрямую , GitHubобеспечивая получение последних улучшений запросов. Дополнительные сведения см. в разделе Конечные точки REST API для выпусков и ресурсов выпуска.
3. Запуск codeql
После извлечения можно запускать CodeQL процессы, выполнив исполняемый codeql файл несколькими способами:
- Выполнив выполнение
<extraction-root>/codeql/codeql, где<extraction-root>находится папка, в которой извлечена папка CodeQL CLI пакет. - Добавив
<extraction-root>/codeqlвPATH, чтобы можно было запустить исполняемый файл просто какcodeql.
На этом этапе можно выполнять CodeQL команды. Полный CodeQL CLI список команд см. в разделе Команды CLI CodeQL вручную.
Примечание.
Если добавить codeql к PATHсвоему , к нему можно получить CodeQL доступ для Visual Studio Code компилирования и запуска запросов. Для получения дополнительной информации о настройке VS Code доступа к CodeQL CLI, см. Управление CLI CodeQL в расширении VS Code.
Тестирование CodeQL CLI конфигурации
После извлечения CodeQL CLI пакета вы можете выполнить следующую команду, чтобы убедиться, что CLI корректно настроен для создания и анализа баз данных:
codeql resolve packs, если/<extraction root>/codeqlнаходится вPATH.- В противном случае
/<extraction root>/codeql/codeql resolve packs.
При успешном выполнении вы увидите выходные данные, аналогичные следующему извлечению:
Searching directories specified by `--additional-packs`. All directories have equal priority.
Searching in:
No packs were found at this location.
Searching directories specified by `--search-path`. Directories are searched in order.
Searching the root of the CodeQL distribution.
Searching in:
<extraction root>
The following packs were found:
codeql/java-all@<version>: (library) <extraction root>/qlpacks/codeql/javat-all/<version>/qlpack.yml
codeql/java-queries@<version>: (query) <extraction root>/qlpacks/codeql/java-queries/<version>/qlpack.yml
codeql/javascript-all@<version>: (library) <extraction root>/qlpacks/codeql/javascript-all/<version>/qlpack.yml
codeql/javascript-queries@<version>: (query) <extraction root>/qlpacks/codeql/javascript-queries/<version>/qlpack.yml
codeql/swift-all@<version>: (library) <extraction root>/qlpacks/codeql/swift-all/<version>/qlpack.yml
codeql/swift-queries@<version>: (query) <extraction root>/qlpacks/codeql/swift-queries/<version>/qlpack.yml
...
Результаты усечены для краткости. Фактические результаты будут более длинными и более подробными.
Убедитесь, что выходные данные содержат ожидаемые языки, а расположение каталога для файлов qlpack указано верно. Место должно находиться внутри извлеченного CodeQL CLI расслоения, показанного в предыдущем примере как <extraction root>. Если CodeQL CLI не удаётся найти qlpacks для ожидаемых языков, проверьте, скачали ли вы пакет CodeQL , а не отдельную копию CodeQL CLI.
Можно также запустить codeql resolve languages , чтобы показать, какие языки доступны для создания базы данных. Там будет перечислен языки, поддерживаемые по умолчанию в вашем CodeQL CLI пакете.
При необходимости можно скачать некоторые пакеты CodeQL, содержащие предварительно скомпилированные запросы, которые вы хотите запустить. Дополнительные сведения см. в разделе Настройка анализа с помощью пакетов CodeQL.
Эта codeql resolve packs команда полезна для диагностики задач, когда CodeQL CLI не удаётся найти пакеты запросов, которые вы ожидаете для анализа.
Примечание.
Эта codeql resolve packs команда доступна в CodeQL CLI версиях 2.19.0 и более поздние. Для более ранних версий интерфейса командной строки следует выполнить codeql resolve qlpacks команду, которая создает аналогичные, но менее подробные выходные данные.
Дальнейшие действия
Чтобы узнать, как подготовить ваш код к анализу CodeQL CLIс помощью , см. Подготовка кода для анализа CodeQL.