Примечание.
В этой статье описываются функции, доступные в пакете CodeQL CLI 2.20.3 в первоначальном выпуске GitHub Enterprise Server 3.16.
Если администратор сайта обновил версию CodeQL CLI до более новой версии, ознакомьтесь с версией GitHub Enterprise Cloud этой статьи, чтобы узнать о последних функциях.
О пакетах CodeQL
Пакеты CodeQL используются для создания, совместного использования, зависимости и запуска CodeQL запросов и библиотек. Вы можете настроить анализ CodeQL путем скачивания пакетов, созданных другими пользователями, и запуская их в базе кода.
Каждый пакет CodeQL требует qlpack.yml файла в корневом каталоге, который указывает:
- Как скомпилировать запросы
- Зависимости от других CodeQL пакетов и библиотек
- Определения наборов запросов
Для получения дополнительной информации о qlpack.yml свойствах см. АВТОТИТР.
Кроме того, пакет CodeQL может содержать:
- Пользовательские запросы (
.qlфайлы) - Библиотечные файлы
- Наборы запросов
- Метаданные
Пакет CodeQL CLI включает запросы, которые обслуживают эксперты GitHub, исследователи безопасности и участники сообщества. Если вы хотите выполнять запросы, разработанные другими организациями, пакеты запросов CodeQL предоставляют эффективный и надежный способ загрузки и выполнения запросов, а пакеты моделей (public preview) можно использовать для расширения анализа code scanning для распознавания библиотек и платформ, которые не поддерживаются по умолчанию.
Типы пакетов CodeQL
Существует три типа пакетов CodeQL : пакеты запросов, пакеты библиотек и пакеты моделей.
-
Пакеты запросов содержат набор предварительно скомпилированных запросов, которые можно оценить в базе данных CodeQL. Пакеты запросов предназначены для запуска. При публикации пакета запросов пакет включает все транзитивные зависимости и предварительно скомпилированные представления каждого запроса в дополнение к источникам запросов. Это обеспечивает согласованное и эффективное выполнение запросов в пакете.
-
Пакеты библиотек предназначены для использования пакетами запросов (или другими пакетами библиотек) и не содержат сами запросы. Библиотеки не компилируются отдельно.
-
Пакеты моделей можно использовать для расширения анализа code scanning для распознавания библиотек и платформ, которые по умолчанию не поддерживаются. Пакеты моделей в настоящее время находятся в public preview и подвергаются изменению. Во время анализа public previewпакеты моделей доступны для анализа C/C++, C#, Java/Kotlin, Python, и Ruby. Дополнительные сведения о создании собственных пакетов моделей см. в разделе Создание и работа с пакетами CodeQL.
Где найти пакеты запросов
Стандартные пакеты данных CodeQL для всех поддерживаемых языков публикуются в Container registry. Если вы установили CodeQL CLI стандартным способом, используя пакет CodeQL CLI, основные пакеты запросов уже скачиваются и доступны для вас. В их число входят:
codeql/cpp-queriescodeql/csharp-queriescodeql/go-queriescodeql/java-queriescodeql/javascript-queriescodeql/python-queriescodeql/ruby-queriescodeql/swift-queries
Дополнительные сведения о совместимости опубликованных пакетов запросов и различных выпусках CodeQL см. в разделе Публикация и использование пакетов CodeQL.
Можно также использовать CodeQL CLI для создания собственных пакетов CodeQL, добавления зависимостей в пакеты и установки или обновления зависимостей.
Публикация и обмен пакетами CodeQL
Вы можете делиться пользовательскими запросами с более широким сообществом CodeQL, путём:
- Публикация в GitHub Packages: Сделайте свой пакет публично доступным для других пользователей.
- Вклад в репозиторий CodeQL: Отправляйте запросы, которые принесут пользу широкому сообществу, открывая pull request в официальный репозиторий.
Для получения дополнительной информации о публикации и загрузке пакетов CodeQL см. АВТОЗАГОЛОВОК.
Для получения информации о вкладе в CodeQL см. Вклад в CodeQL.