Skip to main content

Разрешение оповещений сканирования кода

В представлении безопасности можно просматривать, исправлять или закрывать оповещения для потенциальных уязвимостей или ошибок в коде проекта.

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

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

Исправление оповещения

Любой пользователь с разрешением на запись для репозитория может исправить оповещение, зафиксировав исправление в коде. Если репозиторий запланировал code scanning запуск на pull request, лучше всего поднять pull request с исправлением. Это запустит code scanning анализ изменений и проверит, что ваше исправление не создаёт новых проблем. Дополнительные сведения см. в разделе Рассмотрение оповещений проверки кода в запросах на вытягивание.

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

Оповещения могут быть исправлены в одной ветви, но не в другой. Фильтр "Branch" можно использовать в сводке оповещений, чтобы проверить, исправлена ли оповещение в определенной ветви.

Снимок экрана: представление оповещений с развернутыми параметрами ветви. Фильтр "ветвь" подчеркнут темно-оранжевым.

Обратите внимание: если оповещения, отфильтрованные в ветви, отличной от используемой по умолчанию, присутствуют в ветви по умолчанию, на странице оповещений для любого такого оповещения по-прежнему будет отражаться состояние из ветви по умолчанию, даже если оно конфликтует с состоянием в ветви, отличной от используемой по умолчанию. Например, для оповещения, которое присутствует в списке "Открыто" в сводке оповещений для ветви branch-x, на странице оповещений может отображаться состояние "Исправлено", если это оповещение уже исправлено в ветви по умолчанию. Состояние оповещения для ветви, к которой применен фильтр, можно просмотреть в разделе Затронутые ветви в правой части страницы оповещений.

Примечание.

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

Отключение оповещений

Закрыть оповещение можно двумя способами. Можно устранить проблему в коде или отклонить оповещение.

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

Когда оповещение отклоняется:

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

Чтобы закрыть оповещения, выполните приведенные действия.

  1. На GitHubперейдите на главную страницу репозитория.

  2. Под названием репозитория нажмите на Security вкладку. Если вы не видите вкладку « Security» — выберите выпадающее меню и нажмите Security.

  3. На левой боковой панели щелкните Code scanning.

  4. Если вы хотите отклонить оповещение, важно сначала изучить его, чтобы выбрать правильную причину отклонения. Щелкните оповещение, которое нужно изучить.

  5. Просмотрите оповещение, щелкните Закрыть оповещение и выберите причину закрытия оповещения.

              ![Снимок экрана: сбой проверки генерации оповещений. Кнопка "Закрыть оповещение" выделена темно-оранжевым цветом и отображается раскрывающийся список". ](/assets/images/help/repository/code-scanning-alert-dropdown-reason.png)
    

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

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

Отклонение нескольких оповещений одновременно

Если в проекте есть несколько оповещений, которые нужно отклонить по одной причине, в сводке по оповещениям их можно отклонить все сразу. Как правило, необходимо отфильтровать список, а затем отклонить все подходящие оповещения. Например, может потребоваться отклонить все текущие оповещения в проекте, имеющие отметку определенной уязвимости CWE.

Повторное открытие оповещений об увольнении

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

Удаление устаревших конфигураций и оповещений из ветви

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

  1. На GitHubперейдите на главную страницу репозитория.

  2. Под названием репозитория нажмите на Security вкладку. Если вы не видите вкладку « Security» — выберите выпадающее меню и нажмите Security.

  3. На левой боковой панели щелкните Code scanning.

  4. В разделе «Code scanning» нажмите уведомление code scanning .

  5. В разделе "Затронутые ветви" боковой панели щелкните нужную ветвь.

  6. В диалоговом окне "Конфигурации анализа" просмотрите сведения о конфигурациях, сообщающих об этом оповещении в выбранной ветви. Чтобы удалить ненужную конфигурацию для нужной ветки, нажмите .

    Если удалить конфигурацию по ошибке, нажмите кнопку "Отмена ", чтобы избежать применения изменений.

    Снимок экрана: модал "Конфигурации анализа". Значок "Удалить конфигурацию" описан в темно-оранжевый цвет.

  7. После удаления любых нежелательных конфигураций и подтверждения отображения ожидаемых конфигураций нажмите кнопку "Сохранить изменения".

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

Примечание.

  • Если вы удалите все code scanning конфигурации для стандартной ветки вашего репозитория, стандартная ветка останется в боковой панели «Затронутые ветви», но не будет анализироваться ни одной конфигурацией.
  • Если вы удалите все code scanning конфигурации для любой ветки, кроме стандартной ветки вашего репозитория, эта ветка будет удалена из боковой панели «Затронутые ветви».

Дополнительные материалы

  •         [AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/triaging-code-scanning-alerts-in-pull-requests)
    
  •         [AUTOTITLE](/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning)
    
  •         [AUTOTITLE](/code-security/code-scanning/integrating-with-code-scanning/about-integration-with-code-scanning)