Skip to main content

Написание пользовательских запросов для CodeQL CLI

Вы можете писать собственные CodeQL запросы, чтобы найти конкретные уязвимости и ошибки.

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

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

Эта статья посвящена написанию запросов для использования с командой AUTOTITLE для получения интерпретируемых результатов. Для концептуальной информации о пользовательских запросах см. Пользовательские запросы CodeQL.

Написание допустимого запроса

Перед выполнением пользовательского анализа необходимо написать допустимый запрос и сохранить его в файле с расширением .ql . Существует обширная документация, помогая создавать запросы. Для получения дополнительной информации смотрите CodeQL запросы.

Включение метаданных запроса

При выполнении запросов с database analyze помощью команды необходимо включить следующие два свойства, чтобы убедиться, что результаты интерпретируются правильно:

  • Идентификатор запроса (@id): последовательность слов, состоящих из строчных букв или цифр, разделенных разделителями / или -идентифицируя и классифицируя запрос.

  • Тип запроса (@kind): определяет запрос как простое оповещение (@kind problem), оповещение, задокументированное последовательностью расположений кода (), для устранения неполадок средства извлечения (@kind path-problem``@kind diagnostic) или сводной метрики (@kind metricи@tags summary).

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

Включая помощь с запросами для пользовательских CodeQL запросов в файлах SARIF

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

Чтобы включить помощь с запросами в файлы SARIF при выполнении анализа сканирования кода:

  1. Напишите справку с запросом в одном из следующих форматов: * Файл Markdown: Сохраните файл Markdown вместе с вашим запросом с тем же именем (например, my-query.md для my-query.ql) * ** .qhelp file**: Напишите справку с запросом в .qhelp формате, затем конвертируйте её в Markdown перед запуском анализа. Дополнительные сведения см. в разделе "Файлы справки по запросу" и Тестирование файлов справки по запросу.

  2. Используйте 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.

  3. Загрузите файл SARIF в GitHub.

Дальнейшие действия

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