Skip to main content

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

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

Кто может использовать эту функцию?

CodeQL доступен для следующих типов репозитория:

Примечание.

В этой статье описываются функции, доступные в пакете 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-queries
  • codeql/csharp-queries
  • codeql/go-queries
  • codeql/java-queries
  • codeql/javascript-queries
  • codeql/python-queries
  • codeql/ruby-queries
  • codeql/swift-queries

Дополнительные сведения о совместимости опубликованных пакетов запросов и различных выпусках CodeQL см. в разделе Публикация и использование пакетов CodeQL.

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

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

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

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

Для получения дополнительной информации о публикации и загрузке пакетов CodeQL см. АВТОЗАГОЛОВОК.

Для получения информации о вкладе в CodeQL см. Вклад в CodeQL.