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 results. Результаты для каждого используемого средства анализа отображаются отдельно. Любые новые оповещения в строках кода, измененных в запросе на вытягивание, отображаются в виде заметок.

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

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

Сбои проверка результатов variables.product.prodname_code_scanning_caps %}

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

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

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

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

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

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

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

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

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

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

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

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

Если у вас есть разрешение на запись для репозитория, в некоторых заметках будут содержаться ссылки с дополнительным контекстом для оповещения. В приведенном выше примере из анализа 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."

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