Эта статья посвящена написанию запросов для использования с командой AUTOTITLE для получения интерпретируемых результатов. Для концептуальной информации о пользовательских запросах см. АВТОЗАГОЛОВОК.
Написание допустимого запроса
Перед выполнением пользовательского анализа необходимо написать допустимый запрос и сохранить его в файле с расширением .ql . Существует обширная документация, помогая создавать запросы. Дополнительные сведения см. в статье CodeQL запросов.
Включение метаданных запроса
При выполнении запросов с database analyze помощью команды необходимо включить следующие два свойства, чтобы убедиться, что результаты интерпретируются правильно:
-
Идентификатор запроса (
@id): последовательность слов, состоящих из строчных букв или цифр, разделенных разделителями/или-идентифицируя и классифицируя запрос. -
Тип запроса (
@kind): определяет запрос как простое оповещение (@kind problem), оповещение, задокументированное последовательностью расположений кода (), для устранения неполадок средства извлечения (@kind path-problem``@kind diagnostic) или сводной метрики (@kind metricи@tags summary).
Дополнительные сведения об этих свойствах метаданных см. в разделе ["Метаданные" для запросов CodeQL и руководства по стилю метаданных](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md) запросов.
Упаковка пользовательских запросов
Когда вы пишете запросы для обмена с другими, сохраняйте их в пользовательском CodeQL пакете.
Чтобы упаковать свои индивидуальные запросы:
- Создайте пакет CodeQL с
qlpack.ymlфайлом в корневой директории. - Сохраняйте свои пользовательские запросы (
.qlфайлы) в корне pack или его подкаталогах. - Настройте
qlpack.ymlфайл так, чтобы задать следующее:- Как скомпилировать запросы
- Зависимости от других CodeQL пакетов и библиотек
- Определения набора запросов Для получения дополнительной информации о
qlpack.ymlсвойствах см. АВТОЗАГОЛОВОК.
- Опубликуйте свой пакет в GitHub Packages — GitHub Container registry. Дополнительные сведения см. в разделе Настройка анализа с помощью пакетов CodeQL.
Включение справки по запросу для пользовательских запросов CodeQL в файлах SARIF
Для информации о помощи с запросами и форматах документации см. АВТОЗАГОЛОВОК.
Чтобы включить помощь с запросами в файлы SARIF при выполнении анализа сканирования кода:
-
Напишите справку с запросом в одном из следующих форматов: * Файл Markdown: Сохраните файл Markdown вместе с вашим запросом с тем же именем (например,
my-query.mdдляmy-query.ql) * **.qhelpfile**: Напишите справку с запросом в.qhelpформате, затем конвертируйте её в Markdown перед запуском анализа. Дополнительные сведения см. в разделе "Файлы справки по запросу" и Тестирование файлов справки по запросу. -
Используйте
codeql database analyzeэтот--sarif-add-query-helpвариант:codeql database analyze <database> --format=sarif-latest --output=results.sarif --sarif-add-query-helpПримечание.
Эта
--sarif-add-query-helpопция доступна начиная с CodeQL CLI версии 2.7.1 и далее. -
Загрузите файл SARIF в GitHub.
Дополнительные материалы
-
[Запросы CodeQL](https://codeql.github.com/docs/writing-codeql-queries/codeql-queries/#codeql-queries)