Просмотр оповещений в репозитории
Любой пользователь с разрешением на чтение для репозитория может просматривать заметки code scanning для запросов на включение внесенных изменений. Дополнительные сведения см. в разделе Рассмотрение оповещений проверки кода в запросах на вытягивание.
Чтобы просмотреть сводку по всем оповещениям в репозитории на вкладке Безопасность, требуется разрешение на запись.
По умолчанию на странице оповещений о проверке кода применяется фильтр, в результате на ней отображаются оповещения только для ветви репозитория по умолчанию.
-
На ваше предприятие перейдите на главную страницу репозитория. 1. Под именем репозитория щелкните Безопасность. Если вкладка "Безопасность" не отображается, выберите раскрывающееся меню и выберите пункт Безопасность.
1. На левой боковой панели щелкните Оповещения о проверке кода. -
Кроме того, отфильтровать оповещения можно с помощью раскрывающихся меню, или указав нужный текст в поле поиска. Например, можно отфильтровать список по инструменту, который использовался для идентификации оповещений.
-
В разделе "Code scanning" щелкните оповещение, которое вы хотите изучить, чтобы отобразить подробную страницу оповещения. Состояние и сведения на странице оповещений отражают состояние оповещения только в ветви репозитория по умолчанию, даже если это оповещение существует в других ветвях. Состояние оповещения в ветвях, не являющихся ветвью по умолчанию, отображается в разделе Затронутые ветви в правой части страницы оповещений. Если оповещение не существует в ветви по умолчанию, его состояние оповещения отображается как "в запросе на вытягивание" или "в ветки" и выделяется серым цветом.
-
Если в оповещении выделена проблема с потоком данных, щелкните Показать пути, чтобы отобразить путь из источника данных к приемнику, где используется этот поток.
-
Оповещения, связанные с анализом CodeQL содержат описание проблемы. Нажмите кнопку Дополнительно, чтобы узнать, как исправить код.
Дополнительные сведения см. в разделе О предупреждениях о сканировании кода.
Примечание. В анализе результатов работы функции "code scanning" с помощью CodeQL сведения о последнем запуске показываются в заголовке в верхней части списка оповещений функции "code scanning" для репозитория.
Например, там приводится время последней проверки, количество проанализированных строк кода по сравнению с общим количеством строк кода в репозитории, а также общее количество созданных оповещений.
Фильтрация оповещений функции "code scanning"
Оповещения, которые показаны в представлении оповещений для функции "code scanning", можно фильтровать. Это полезно, когда нужно выделить определенный тип оповещений. Для уточнения списка отображаемых оповещений можно использовать ряд стандартных фильтров и ключевых слов.
При выборе ключевое слово из раскрывающегося списка или при вводе ключевое слово в поле поиска отображаются только значения с результатами. Это упрощает настройку фильтров, которые не находят результатов.
Если ввести несколько фильтров, в представлении будут отображаться оповещения, соответствующие всем этим фильтрам. Например, с фильтром is:closed severity:high branch:main
будут отображаться только закрытые оповещения с высоким уровнем серьезности в ветви main
. Исключение составляют фильтры, относящиеся к ссылкам (ref
, branch
и pr
): например, с фильтром is:open branch:main branch:next
отображаются открытые оповещения как из ветви main
, так и из ветви next
.
Обратите внимание: если оповещения, отфильтрованные в ветви, отличной от используемой по умолчанию, присутствуют в ветви по умолчанию, на странице оповещений для любого такого оповещения по-прежнему будет отражаться состояние из ветви по умолчанию, даже если оно конфликтует с состоянием в ветви, отличной от используемой по умолчанию. Например, для оповещения, которое присутствует в списке "Открыто" в сводке оповещений для ветви branch-x
, на странице оповещений может отображаться состояние "Исправлено", если это оповещение уже исправлено в ветви по умолчанию. Состояние оповещения для ветви, к которой применен фильтр, можно просмотреть в разделе Затронутые ветви в правой части страницы оповещений.
Ограничение результатов только кодом приложения
С помощью фильтра "Оповещения только в коде приложения" или ключевого слова autofilter:true
со значением можно ограничить результаты оповещениями в коде приложения. Дополнительные сведения о типах кода, которые не являются кодом приложения, см. выше в разделе Сведения о метках для оповещений, не в коде приложения.
Исправление оповещения
Любой пользователь с разрешением на запись для репозитория может исправить оповещение, зафиксировав исправление в коде. Если в репозитории настроен запуск функции "code scanning" для запросов на включение внесенных изменений, рекомендуется создать такой запрос с исправлением. В результате этого будет выполнена code scanning, проанализированы изменения, и система проведет тест, чтобы убедиться, что ваше исправление не создает новых проблем. Дополнительные сведения см. в разделах Настройка сканирования кода и Рассмотрение оповещений проверки кода в запросах на вытягивание.
Если у вас есть разрешение на запись для репозитория, чтобы просмотреть исправленные оповещения, откройте сводку по оповещениям и нажмите кнопку Закрытые. Дополнительные сведения см. в разделе "Просмотр оповещений для репозитория". В списке "Закрытые" отображаются исправленные оповещения и оповещения, отклоненные пользователями.
С помощью поиска произвольного текста или фильтров можно отобразить подмножество оповещений и отметить все подходящие как закрытые.
Оповещения могут быть исправлены в одной ветви, но не в другой. Чтобы проверить, исправлено ли оповещение в определенной ветви, используйте "Ветвь" в сводке по оповещениям.
Обратите внимание: если оповещения, отфильтрованные в ветви, отличной от используемой по умолчанию, присутствуют в ветви по умолчанию, на странице оповещений для любого такого оповещения по-прежнему будет отражаться состояние из ветви по умолчанию, даже если оно конфликтует с состоянием в ветви, отличной от используемой по умолчанию. Например, для оповещения, которое присутствует в списке "Открыто" в сводке оповещений для ветви branch-x
, на странице оповещений может отображаться состояние "Исправлено", если это оповещение уже исправлено в ветви по умолчанию. Состояние оповещения для ветви, к которой применен фильтр, можно просмотреть в разделе Затронутые ветви в правой части страницы оповещений.
Примечание. Если вы запускаете code scanning с использованием нескольких конфигураций, иногда оповещение будет иметь несколько источников анализа. Если вы не запускаете все конфигурации регулярно, могут отображаться оповещения, исправленные в одном источнике анализа, но не в другом. Дополнительные сведения см. в разделе О предупреждениях о сканировании кода.
Закрыть оповещение можно двумя способами. Можно устранить проблему в коде или отклонить оповещение. Кроме того, если у вас есть разрешения администратора для репозитория, вы можете удалить оповещения. Удаление оповещений полезно в ситуациях, когда вы настроили инструмент "code scanning", а затем решили удалить его или если вы настроили анализ CodeQL с большим числом запросов, часть которых перестала быть нужной, после чего удалили некоторые запросы из средства. В обоих случаях удаление оповещений позволяет сократить число результатов функции "code scanning". Оповещения можно удалить из сводного списка на вкладке Безопасность.
Отклонение используется для закрытия оповещений, не требующих исправления. Например, когда есть ошибка в коде, который используется только для тестирования, или когда усилия по исправлению ошибки больше потенциального преимущества улучшения кода. Отклонить оповещения можно в заметках функции "code scanning" в коде или в сводном списке на вкладке Безопасность.
Когда оповещение отклоняется:
- оно отклоняется во всех ветвях;
- оно удаляется из текущих оповещений проекта;
- оно перемещается в список "Закрытые" в сводке по оповещениям, где при необходимости его можно открыть заново;
- Причина, по которой было закрыто оповещение, записывается.
- При необходимости вы можете прокомментировать закрытие с указанием его контекста.
- при следующем запуске функции "code scanning" для того же кода оповещение не создается.
При удалении оповещения:
- оно удаляется во всех ветвях;
- оно удаляется из текущих оповещений проекта;
- оно не добавляется в список "Закрытые" в сводке оповещений;
- если код, для которого было создано оповещение, остается неизменным, и то же средство " code scanning" запускается снова без изменений конфигурации, оповещение снова появится в результатах анализа.
Чтобы закрыть или удалить оповещения, сделайте следующее:
-
На ваше предприятие перейдите на главную страницу репозитория. 1. Под именем репозитория щелкните Безопасность. Если вкладка "Безопасность" не отображается, выберите раскрывающееся меню и выберите пункт Безопасность.
1. На левой боковой панели щелкните Оповещения о проверке кода. -
Если у вас есть разрешения администратора для репозитория и вы хотите удалить оповещения для этого средства "code scanning", установите некоторые или все флажки и нажмите кнопку Удалить.
При необходимости с помощью поиска произвольного текста или фильтров можно отобразить подмножество оповещений и одновременно удалить все соответствующие оповещения. Например, если вы удалили запрос из анализа CodeQL, с помощью фильтра "Правило" можно показать только оповещения для этого запроса, а затем выбрать и удалить все эти оповещения.
-
Если вы хотите отклонить оповещение, важно сначала изучить его, чтобы выбрать правильную причину отклонения. Щелкните оповещение, которое нужно изучить.
-
Просмотрите оповещение, щелкните Закрыть оповещение и выберите причину закрытия оповещения.
Важно выбрать соответствующую причину в раскрывающемся меню, так как это может влиять на то, будет ли запрос включен в будущий анализ. При необходимости можно добавить комментарий, объясняющий контекст закрытия оповещения. Комментарий о закрытии добавляется на временную шкалу оповещений и может использоваться в качестве обоснования для аудита или отчетов. Вы можете получить или сохранить комментарий с помощью REST API сканирования кода. Комментарий содержится вdismissed_comment
для конечной точкиalerts/{alert_number}
. Дополнительные сведения см. в разделе Проверка кода.Если вы закрываете оповещение CodeQL как ложное срабатывание, например, поскольку в коде используется библиотека очистки, которая не поддерживается, рассмотрите возможность добавления CodeQL в репозиторий и улучшение анализа. Дополнительные сведения о CodeQL см. в разделе "Участие в улучшении CodeQL."
Отклонение нескольких оповещений одновременно
Если в проекте есть несколько оповещений, которые нужно отклонить по одной причине, в сводке по оповещениям их можно отклонить все сразу. Как правило, необходимо отфильтровать список, а затем отклонить все подходящие оповещения. Например, может потребоваться отклонить все текущие оповещения в проекте, имеющие отметку определенной уязвимости CWE.
Аудит ответов на оповещения code scanning
You can audit the actions taken in response to code scanning alerts using GitHub tools. For more information, see "Аудит оповещений системы безопасности."