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

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

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

## О пакетах CodeQL

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

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

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

Для получения дополнительной информации о `qlpack.yml` свойствах см. [АВТОТИТР](/ru/enterprise-server@3.20/code-security/codeql-cli/getting-started-with-the-codeql-cli/customizing-analysis-with-codeql-packs#codeqlpack-yml-properties).

Кроме того, пакет 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, и Rust. Дополнительные сведения о создании собственных пакетов моделей см. в разделе [Создание и работа с пакетами CodeQL](/ru/enterprise-server@3.20/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/creating-and-working-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.20/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 см. [Публикация и использование пакетов CodeQL](/ru/enterprise-server@3.20/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/publishing-and-using-codeql-packs).

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