Skip to main content

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

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

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

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

Примечание.

В этой статье описываются функции, доступные в пакете CodeQL CLI 2.20.7 в первоначальном выпуске GitHub Enterprise Server 3.17.

Если администратор сайта обновил версию CodeQL CLI до более новой версии, ознакомьтесь с версией GitHub Enterprise Cloud этой статьи, чтобы узнать о последних функциях.

О 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 анализа. Дополнительные сведения о создании собственных пакетов моделей см. в разделе Создание и работа с пакетами 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 пакетов см. AUTOTITLE.

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