Skip to main content

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

При code scanning обнаружении проблемы в pull request, вы можете просмотреть выделенный код и устранить оповещение.

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

Пользователи с доступом на чтение

В зависимости от вашей конфигурации code scanning результаты могут отображаться как проверки и аннотации в pull requests. Дополнительные сведения см. в разделе О предупреждениях о сканировании кода.

Результаты просмотра code scanning проверки

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

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

Снимок экрана: проверка результатов Code scanning по запросу на вытягивание. Ссылка "Просмотр всех оповещений ветви" выделена темно-оранжевым контуром.

Управление уровнями тяжести при сбоях чеков

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

Снимок экрана: поле слияния для запроса на вытягивание. Проверка "Результаты сканирования кода / CodeQL" содержит "1 новое оповещение, включая 1 высокий уровень безопасности v..."

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

Диагностика проблем с вашей code scanning конфигурацией

В зависимости от вашей конфигурации вы можете увидеть дополнительные проверки pull requests с code scanning конфигурированной конфигурацией. Обычно это рабочие процессы, которые анализируют код или загружают code scanning результаты. Эти проверки могут выполняться для устранения неполадок при возникновении проблем с анализом.

Например, если репозиторий использует a Рабочий процесс анализа CodeQLCodeQL /Analyze (LANGUAGE), проверка выполняется для каждого языка перед выполнением проверки результатов. Проверка анализа может провалиться, если возникнут проблемы с конфигурацией или если pull request нарушает сборку для языка, который компилирует анализ (например, C/C++, C#, Go, Java, Kotlin, Rust (общедоступная предварительная версия), и Swift).

Как и в случае с другими проверками запроса на вытягивание, вы можете просмотреть полные сведения о сбое проверки на вкладке "Проверки". Дополнительные сведения о настройке и устранении неполадок см. в разделе [AUTOTITLE или Параметры настройки рабочих процессов для сканирования кода](/code-security/code-scanning/troubleshooting-code-scanning).

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

Вы можете увидеть любые code scanning оповещения, которые находятся внутри изменений, введённых в pull request, посетив вкладку Conversation . Code scanning Публикует отзыв по pull-request, который показывает каждое оповещение как аннотацию на строках кода, спровоцировавших опоздание. Вы можете прокомментировать оповещения, закрыть оповещения и просмотреть пути для оповещений непосредственно из заметок. Вы можете просмотреть полные сведения об оповещении, щелкнув ссылку "Подробнее", чтобы перейти на страницу сведений об оповещении.

Снимок экрана: заметка оповещения на вкладке "Беседы" запроса на вытягивание. Ссылка "Показать дополнительные сведения" описана в темно-оранжевый цвет.

Вы также можете просматривать все code scanning оповещения, которые находятся внутри различия изменений, введённых в pull request, во вкладке «Изменённые файлы ».

Если вы добавите новую конфигурацию сканирования кода в pull-request, вы увидите комментарий к pull-запросу, направляющий вас на Security вкладку репозитория, чтобы просмотреть все оповещения на ветке pull request. Дополнительные сведения о просмотре оповещений для репозитория см. в разделе Оценка оповещений сканирования кода для репозитория.

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

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

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

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

Снимок экрана: описание оповещения code scanning. Ссылка с меткой "Показать больше" выделена темно-оранжевым контуром.

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

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

Вы можете потребовать, чтобы все разговоры в pull-request, включая те, что находятся в code scanning оповещениях, должны быть разрешены до слияния pull-запроса. Дополнительные сведения см. в разделе Сведения о защищенных ветвях.

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

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

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

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

Снимок экрана: сбой проверки для сканирования кода. Кнопка "Закрыть оповещение" выделена темно-оранжевым цветом. Отображается раскрывающийся список "Закрыть оповещение".

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

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

Дополнительные сведения об увольнении оповещений см. в разделе Разрешение оповещений сканирования кода.