О CodeQL рюкзаках
CodeQL Пакеты используются для создания, обмена, зависимости и запуска CodeQL запросов и библиотек. Вы можете настроить анализ CodeQL , скачивая паки, созданные другими, и запуская их на своей коде.
Каждому CodeQL набору требуется qlpack.yml файл в корневой директории, который указывает:
- Как скомпилировать запросы
- Зависимости от других CodeQL пакетов и библиотек
- Определения наборов запросов
Для получения дополнительной информации о qlpack.yml свойствах см. АВТОТИТР.
Кроме того, пакет CodeQL может содержать:
- Пользовательские запросы (
.qlфайлы) - Библиотечные файлы
- Наборы запросов
- Метаданные
Пакет CodeQL CLI включает запросы, которые ведут GitHub эксперты, исследователи в области безопасности и участники сообщества. Если вы хотите запускать запросы, разработанные другими организациями, CodeQL пакеты запросов обеспечивают эффективный и надёжный способ скачивания и запуска запросов, а пакеты моделей (Публичный предварительный просмотр) могут использоваться для расширения code scanning анализа с целью распознавания библиотек и фреймворков, которые по умолчанию не поддерживаются.
Типы CodeQL рюкзаков
Существует три типа CodeQL пакетов: пакеты запросов, библиотечные пакеты и модели.
-
Пакеты запросов содержат набор заранее скомпилированных запросов, которые можно оценивать в CodeQL базе данных. Пакеты запросов предназначены для запуска. При публикации пакета запросов пакет включает все транзитивные зависимости и предварительно скомпилированные представления каждого запроса в дополнение к источникам запросов. Это обеспечивает согласованное и эффективное выполнение запросов в пакете.
-
Пакеты библиотек предназначены для использования пакетами запросов (или другими пакетами библиотек) и не содержат сами запросы. Библиотеки не компилируются отдельно.
-
Пакеты моделей могут использоваться для расширения code scanning анализа с целью распознавания библиотек и фреймворков, которые по умолчанию не поддерживаются. Модели уже доступны Публичный предварительный просмотр и могут измениться. В период Публичный предварительный просмотрдоступны наборы моделей для C/C++, C#, Java/Kotlin, Python, Ruby, и Rust анализа. Дополнительные сведения о создании собственных пакетов моделей см. в разделе Создание и работа с пакетами 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 пакетов см. AUTOTITLE.
Для получения информации о вкладе в CodeQL, см . раздел Вклад в CodeQL.