# Пакеты запросов CodeQL

Вы можете выбрать из разных встроенных CodeQL наборов запросов для вашей CodeQLcode scanning настройки.

> \[!NOTE]
> В этой статье описываются функции, доступные в пакете CodeQL CLI 2.25.6 в первоначальном выпуске GitHub Enterprise Server 3.22.
>
> Если администратор сайта обновил версию CodeQL CLI до более новой версии, ознакомьтесь [с версией](/ru/enterprise-cloud@latest/code-security/concepts/code-scanning/codeql/query-packs) GitHub Enterprise Cloud этой статьи, чтобы узнать о последних функциях.

## О CodeQL рюкзаках

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

Каждому CodeQL набору требуется `qlpack.yml` файл в корневой директории, который указывает:

* Как скомпилировать запросы
* Зависимости от других CodeQL пакетов и библиотек
* Определения наборов запросов

Для получения дополнительной информации о `qlpack.yml` свойствах см. [АВТОТИТР](/ru/enterprise-server@3.22/code-security/tutorials/customize-code-scanning/customize-analysis).

Кроме того, пакет CodeQL может содержать:

* Пользовательские запросы (`.ql` файлы)
* Библиотечные файлы
* Наборы запросов
* Метаданные

Пакет CodeQL CLI включает запросы, которые ведут GitHub эксперты, исследователи в области безопасности и участники сообщества. Если вы хотите запускать запросы, разработанные другими организациями, CodeQL пакеты запросов обеспечивают эффективный и надёжный способ скачивания и запуска запросов, а пакеты моделей (Публичный предварительный просмотр) могут использоваться для расширения code scanning анализа с целью распознавания библиотек и фреймворков, которые по умолчанию не поддерживаются.

## Типы CodeQL рюкзаков

Существует три типа CodeQL пакетов: пакеты запросов, библиотечные пакеты и модели.

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

* Пакеты библиотек предназначены для использования пакетами запросов (или другими пакетами библиотек) и не содержат сами запросы. Библиотеки не компилируются отдельно.

* Пакеты моделей могут использоваться для расширения code scanning анализа с целью распознавания библиотек и фреймворков, которые по умолчанию не поддерживаются. Модели уже доступны Публичный предварительный просмотр и могут измениться. В период Публичный предварительный просмотрдоступны наборы моделей для C/C++, C#, Java/Kotlin, Python, Ruby, и Rust анализа. Дополнительные сведения о создании собственных пакетов моделей см. в разделе [Создание и работа с пакетами CodeQL](/ru/enterprise-server@3.22/code-security/tutorials/customize-code-scanning/create-and-work-with-codeql-packs#creating-a-codeql-model-pack).

## Где найти пакеты запросов

Стандартные CodeQL пакеты для всех поддерживаемых языков публикуются на [Container registry](https://github.com/orgs/codeql/packages). Если вы установили CodeQL CLI их стандартным способом, используя пакет CodeQL CLI , основные пакеты запросов уже загружены и доступны вам. В их число входят:

* `codeql/cpp-queries`
* `codeql/csharp-queries`
* `codeql/go-queries`
* `codeql/java-queries`
* `codeql/javascript-queries`
* `codeql/python-queries`
* `codeql/ruby-queries`
* `codeql/swift-queries`

Для получения дополнительной информации о совместимости между опубликованными пакетами запросов и разными CodeQL релизами см. [Ссылка на пакеты запросов CodeQL](/ru/enterprise-server@3.22/code-security/reference/code-scanning/codeql/codeql-cli/codeql-query-packs#codeql-pack-compatibility).

Вы также можете использовать CodeQL CLI их для создания собственных CodeQL паков, добавления зависимостей в паки и установки или обновления зависимостей.

## Публикация и обмен CodeQL пакетами

Вы можете делиться пользовательскими запросами с более широкой CodeQL аудиторией:

* Публикация для GitHub Packages: Сделайте свой пакет публично доступным для других пользователей, чтобы они могли открывать и использовать.
* Вклад в CodeQL репозиторий: отправляйте запросы, которые принесут пользу широкому сообществу, открывая pull request в официальный репозиторий.

Для получения дополнительной информации о публикации и скачивании CodeQL пакетов см. [AUTOTITLE.](/ru/enterprise-server@3.22/code-security/how-tos/find-and-fix-code-vulnerabilities/scan-from-the-command-line/publish-and-use-packs)

Для получения информации о вкладе в CodeQL, см [. раздел Вклад в CodeQL](https://github.com/github/codeql/blob/main/CONTRIBUTING.md).