Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Рассмотрение оповещений проверки кода в запросах на вытягивание

Если code scanning выявляет проблему в запросе на вытягивание, вы можете просмотреть выделенный код и разрешить оповещение.

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

If you have read permission for a repository, you can see annotations on pull requests. With write permission, you can see detailed information and resolve code scanning alerts for that repository.

Code scanning доступно во всех открытых репозиториях на GitHub.com. Code scanning также доступно в частных репозиториях, принадлежащих организациям, которые используют GitHub Enterprise Cloud и имеют лицензию на GitHub Advanced Security. Дополнительные сведения см. в разделе Сведения о GitHub Advanced Security.

Сведения о результатах функции code scanning для запросов на вытягивание

В репозиториях можно настроить code scanning как проверку запросов на вытягивание, при этом code scanning будет проверять код в запросах на вытягивание. По умолчанию проверка осуществляется только для запросов на вытягивание, предназначенных для ветви по умолчанию, но при необходимости это поведение можно настроить в GitHub Actions или в сторонней системе непрерывной интеграции и поставки (CI/CD). Если после слияния изменений в целевой ветви появятся новые оповещения code scanning, они будут отображаться в нескольких расположениях.

  • Проверьте результаты в запросе на вытягивание .
  • Вкладка Сообщения запроса на вытягивание в рамках проверки запроса на вытягивание .
  • Вкладка Измененные файлы запроса на вытягивание.

Если у вас есть разрешение на запись для репозитория, вы можете просмотреть все существующие оповещения функции code scanning на вкладке Безопасность. Дополнительные сведения об оповещениях репозитория см. в разделе Управление оповещениями code scanning для репозитория.

В репозиториях, где code scanning настроено на сканирование при каждой отправке кода, code scanning также сопоставляет результаты с открытыми запросами на вытягивание и добавляет оповещения в качестве заметок в тех же местах, что и другие проверки запросов на вытягивание. Дополнительные сведения см. в разделе Настройка code scanning.

Если запрос на вытягивание нацелен на защищенную ветвь, в которой используется функция code scanning, а владелец репозитория настроил обязательные проверки состояния, перед слиянием запроса на вытягивание необходимо пройти проверку "Результаты Code scanning. Дополнительные сведения см. в разделе Сведения о защищенных ветвях.

Сведения об использовании функции code scanning в качестве проверки запроса на вытягивание

Существует множество вариантов настройки code scanning в качестве проверки запроса на вытягивание, поэтому точная конфигурация каждого репозитория будет отличаться, а некоторые из них будут иметь несколько проверок.

Проверка "Результаты Code scanning"

В любой конфигурации функции code scanning результаты code scanning содержит проверка Результаты Code scanning . Результаты для каждого используемого средства анализа отображаются отдельно. Все новые оповещения, связанные с изменениями в запросе на вытягивание, отображаются в виде заметок.

Чтобы просмотреть полный набор оповещений для проанализированной ветви, щелкните Просмотреть все оповещения ветви. Откроется полное представление оповещений, в котором можно отфильтровать все оповещения в ветви по типу, уровню серьезности, тегу и т. д. Дополнительные сведения см. в разделе Управление оповещениями проверки кода для репозитория.

Code scanning проверка результатов в запросе на вытягивание

Сбой проверки "Результаты Code scanning"

Если проверка результатов code scanning выявит какие-либо проблемы с уровнем серьезности error, critical или high, она завершается сбоем, а в ее результатах отображается ошибка. Если все найденные функцией code scanning результаты имеют более низкий уровень серьезности, оповещения обрабатываются как предупреждения или заметки, а проверка завершается успешно.

Завершившаяся сбоем проверка code scanning в запросе на вытягивание

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

Другие проверки code scanning

В разных конфигурациях могут быть настроены дополнительные проверки, выполняемые для запросов на вытягивание с помощью функции code scanning. Как правило, это рабочие процессы, которые анализируют код или отправляют результаты функции code scanning. Эти проверки могут выполняться для устранения неполадок при возникновении проблем с анализом.

Например, если репозиторий использует Рабочий процесс анализа CodeQL, перед выполнением проверки результатов выполняется проверка CodeQL / Analyze (LANGUAGE) для каждого языка. Проверка "Анализ" может завершиться сбоем при возникновении проблем с конфигурацией, а также если запрос на вытягивание нарушает работу сборки для языка, который этой проверке требуется скомпилировать (например, C/C++, C# или Java).

Как и в случае с другими проверками запросов на вытягивание, вы можете просмотреть полные сведения о сбое проверки на вкладке Проверки . Дополнительные сведения о настройке и устранении неполадок см. в разделах Настройка code scanningили Устранение неполадок рабочего процесса CodeQL.

Просмотр оповещения по запросу на вытягивание

Все оповещения code scanning по запросу на вытягивание можно просмотреть на вкладке Сообщения. Code scanning выведет проверку запроса на вытягивание, в которой каждое оповещение будет отображаться в виде заметки в строках кода, из которых оно было активировано. Вы можете прокомментировать оповещения, закрыть оповещения и просмотреть пути для оповещений непосредственно из заметок. Вы можете просмотреть полные сведения об оповещении, щелкнув ссылку "Подробнее", чтобы перейти на страницу сведений об оповещении.

Заметка для оповещения на вкладке "Сообщения" запроса на вытягивание

Вы также можете просмотреть все оповещения code scanning на вкладке Измененные файлы запроса на вытягивание. Существующие оповещения code scanning по файлам, которые не относятся к изменениям в запросе на вытягивание, будут отображаться на вкладке Измененные файлы.

Если у вас есть разрешение на запись для репозитория, в некоторых заметках будут содержаться ссылки с дополнительным контекстом для оповещения. В приведенном выше примере из анализа CodeQL с помощью ссылки Предоставленное пользователем значение можно просмотреть, на каком этапе в поток данных поступают ненадежные данные (источник данных). В этом случае также можно просмотреть полный путь из источника в использующий данные код (приемник) с помощью кнопки Показать пути. Так можно проверить, являются ли данные ненадежными или анализу не удалось распознать шаг очистки данных между источником и приемником. Дополнительные сведения об анализе потока данных с помощью CodeQL см. в разделе Сведения об анализе потока данных.

Дополнительные сведения об оповещении пользователь с разрешением на запись может просмотреть по ссылке Показать подробности, представленной в заметке. С ее помощью можно в полном объеме просмотреть контекст и метаданные, выводимые средством в представлении оповещения. В приведенном ниже примере можно увидеть теги, показывающие уровень серьезности, тип и соответствующие распространенные уязвимости (CWE) для проблемы. В этом представлении также показана фиксация, в связи с которой возникла проблема.

Состояние и сведения на странице оповещений отражают состояние оповещения только в ветви репозитория по умолчанию, даже если это оповещение существует в других ветвях. Состояние оповещения в ветвях, не являющихся ветвью по умолчанию, отображается в разделе Затронутые ветви в правой части страницы оповещений. Если оповещение не существует в ветви по умолчанию, его состояние оповещения отображается как "в запросе на вытягивание" или "в ветки" и выделяется серым цветом.

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

 Описание оповещения и ссылка для отображения дополнительных сведений

Комментарий к оповещению в запросе на вытягивание

Вы можете прокомментировать любое оповещениеcode scanning, вызванное изменениями в запросе на вытягивание. Оповещения отображаются как заметки на вкладке Сообщения запроса на вытягивание, в рамках проверки запроса на вытягивание, а также на вкладке Измененные файлы. Вы можете прокомментировать только оповещения, вызванные изменениями в запросе на вытягивание. Существующие оповещения code scanning по файлам, которые не относятся к изменениям в запросе на вытягивание, будут отображаться на вкладке Измененные файлы, но без возможности комментирования.

Вы можете выбрать, чтобы все сообщения в запросе на вытягивание (в том числе для оповещений code scanning), разрешались до слияния запроса на вытягивание. Дополнительные сведения см. в разделе Сведения о защищенных ветвях.

Исправление оповещения по запросу на вытягивание

Любой пользователь с доступом на отправку к запросу на вытягивание может исправить оповещение code scanning, указанное в этом запросе. После фиксации изменений в запросе на вытягивание будут заново выполнены его проверки. Если в результате внесения изменений проблема исправлена, оповещение закрывается, а заметка удаляется.

Отклонение оповещения по запросу на вытягивание

Оповещение также можно закрыть, отклонив его. Если вы не считаете, что оповещение требуется исправлять, его можно отклонить. Например, когда есть ошибка в коде, который используется только для тестирования, или когда усилия по исправлению ошибки больше потенциального преимущества улучшения кода. Если у вас есть разрешение на запись для репозитория, в аннотациях в коде и в сводке оповещений будет доступна кнопка Отклонить. При нажатии кнопки Отклонить вам будет предложено выбрать причину закрытия оповещения. Снимок экрана: оповещение о проверке кода с выделенным раскрывающимся списком для выбора причины закрытия Важно выбрать соответствующую причину в раскрывающемся меню, так как это может влиять на то, будет ли запрос включен в будущий анализ. При необходимости можно добавить комментарий, объясняющий контекст закрытия оповещения. Комментарий о закрытии добавляется на временную шкалу оповещений и может использоваться в качестве обоснования для аудита или отчетов. Вы можете получить или сохранить комментарий с помощью REST API сканирования кода. Комментарий содержится в dismissed_comment для конечной точки alerts/{alert_number}. Дополнительные сведения см. в статье Проверка кода.

Если вы закрываете оповещение CodeQL как ложное срабатывание, например, поскольку в коде используется библиотека очистки, которая не поддерживается, рассмотрите возможность добавления CodeQL в репозиторий и улучшение анализа. Дополнительные сведения о CodeQL см. в разделе "Участие в улучшении CodeQL."

Дополнительные сведения о закрытии оповещений см. в разделе "Управление оповещениями code scanning для репозитория.