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

Поддержка этой версии GitHub Enterprise была прекращена 2023-03-15. Исправления выпускаться не будут даже при критических проблемах безопасности. Для повышения производительности, укрепления безопасности и новых функций установите последнюю версию GitHub Enterprise. Чтобы получить справку по обновлению, обратитесь в службу поддержки GitHub Enterprise.

Управление оповещениями проверки кода для репозитория

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

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

If you have write permission to a repository you can manage code scanning alerts for that repository.

Code scanning доступен для принадлежащих организации репозиториев в GitHub Enterprise Server. Для этой функции требуется лицензия на GitHub Advanced Security. Дополнительные сведения см. в разделе Сведения о GitHub Advanced Security.

Просмотр оповещений в репозитории

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

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

По умолчанию на странице оповещений о проверке кода применяется фильтр, в результате на ней отображаются оповещения только для ветви репозитория по умолчанию.

  1. На экземпляр GitHub Enterprise Server перейдите на главную страницу репозитория. 1. Под именем репозитория щелкните Безопасность. Если вкладка "Безопасность" не отображается, выберите раскрывающееся меню и выберите пункт Безопасность. Снимок экрана: заголовок репозитория с вкладками. Вкладка "Безопасность" выделена темно-оранжевым контуром. 1. На левой боковой панели щелкните Оповещения о проверке кода.

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

  3. В разделе "Code scanning" щелкните оповещение, которое вы хотите изучить, чтобы отобразить подробную страницу оповещения.

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

  5. Оповещения, связанные с анализом CodeQL содержат описание проблемы. Нажмите кнопку Дополнительно, чтобы узнать, как исправить код.

Дополнительные сведения см. в разделе О предупреждениях о сканировании кода.

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

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

Фильтрация оповещений функции "code scanning"

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

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

Снимок экрана: поле поиска в представлении оповещений code scanning. Пользователь ввел в поле "branch:dependabot". Имена всех допустимых ветвей с именем, включая dependabot, отображаются в раскрывающемся меню.

Если ввести несколько фильтров, в представлении будут отображаться оповещения, соответствующие всем этим фильтрам. Например, с фильтром is:closed severity:high branch:main будут отображаться только закрытые оповещения с высоким уровнем серьезности в ветви main. Исключение составляют фильтры, относящиеся к ссылкам (ref, branch и pr): например, с фильтром is:open branch:main branch:next отображаются открытые оповещения как из ветви main, так и из ветви next.

К фильтру tag можно добавить префикс -, чтобы исключить результаты с этим тегом. Например, с фильтром -tag:style отображаются только оповещения, у которых нет тега style .

Ограничение результатов только кодом приложения

С помощью фильтра "Оповещения только в коде приложения" или ключевого слова autofilter:true со значением можно ограничить результаты оповещениями в коде приложения. Дополнительные сведения о типах кода, которые не являются кодом приложения, см. выше в разделе Сведения о метках для оповещений, не в коде приложения.

Поиск в оповещениях функции "code scanning"

В списке оповещений можно выполнять поиск. Это полезно, если в репозитории имеется много оповещений или если вы не знаете точное имя оповещения. GitHub Enterprise Server позволяет искать произвольный текст в следующих расположениях:

  • Имя оповещения.
  • Сведения об оповещении (сюда также входят сведения, скрытые из представления по умолчанию в разделе Показать более свертываемые)
Вид поискаПример синтаксисаРезультаты
Поиск по одному словуinjectionВозвращает все оповещения, содержащие слово injection
Поиск по нескольким словамsql injectionВозвращает все оповещения, содержащие слова sql или injection
Поиск точного совпадения
(используются двойные кавычки)
"sql injection"Возвращает все оповещения, содержащие точную фразу sql injection
Поиск с оператором ORsql OR injectionВозвращает все оповещения, содержащие слова sql или injection
Поиск с оператором ANDsql AND injectionВозвращает все оповещения, содержащие оба слова: sql и injection

Советы

  • Поиск по нескольким словам эквивалентен поиску с оператором OR.
  • Поиск с оператором AND возвращает результаты, в которых слова из поискового запроса находятся в имени оповещения или в сведениях о немв любом месте и в любом порядке.
  1. На экземпляр GitHub Enterprise Server перейдите на главную страницу репозитория. 1. Под именем репозитория щелкните Безопасность. Если вкладка "Безопасность" не отображается, выберите раскрывающееся меню и выберите пункт Безопасность. Снимок экрана: заголовок репозитория с вкладками. Вкладка "Безопасность" выделена темно-оранжевым контуром. 1. На левой боковой панели щелкните Оповещения о проверке кода.
  2. Справа от раскрывающихся меню Фильтры введите в поле поиска произвольного текста ключевые слова, которые нужно найти. Снимок экрана: поле поиска в представлении оповещений code scanning. Поле содержит предварительно определенные фильтры "is: open branch:main". Свободный текст sql или injection выделен темно-оранжевым цветом.
  3. Нажмите Ввод. В список оповещений попадут открытые оповещения функции "code scanning", соответствующие условиям поиска.

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

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

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

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

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

Снимок экрана: поле поиска в code scanning, где развернуто раскрывающееся меню "Ветвь". Кнопка "Ветвь" выделена темно-оранжевым цветом.

Закрытие или удаление оповещений

Закрыть оповещение можно двумя способами. Можно устранить проблему в коде или отклонить оповещение. Кроме того, если у вас есть разрешения администратора для репозитория, вы можете удалить оповещения. Удаление оповещений полезно в ситуациях, когда вы настроили инструмент "code scanning", а затем решили удалить его или если вы настроили анализ CodeQL с большим числом запросов, часть которых перестала быть нужной, после чего удалили некоторые запросы из средства. В обоих случаях удаление оповещений позволяет сократить число результатов функции "code scanning". Оповещения можно удалить из сводного списка на вкладке Безопасность.

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

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

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

При удалении оповещения:

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

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

  1. На экземпляр GitHub Enterprise Server перейдите на главную страницу репозитория. 1. Под именем репозитория щелкните Безопасность. Если вкладка "Безопасность" не отображается, выберите раскрывающееся меню и выберите пункт Безопасность. Снимок экрана: заголовок репозитория с вкладками. Вкладка "Безопасность" выделена темно-оранжевым контуром. 1. На левой боковой панели щелкните Оповещения о проверке кода.

  2. Если у вас есть разрешения администратора для репозитория и вы хотите удалить оповещения для этого средства "code scanning", установите некоторые или все флажки и нажмите кнопку Удалить.

    При необходимости с помощью поиска произвольного текста или фильтров можно отобразить подмножество оповещений и одновременно удалить все соответствующие оповещения. Например, если вы удалили запрос из анализа CodeQL, с помощью фильтра "Правило" можно показать только оповещения для этого запроса, а затем выбрать и удалить все эти оповещения.

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

  4. Просмотрите оповещение, а затем нажмите Отклонить и выберите причину отклонения оповещения. Выбор причины закрытия оповещения Важно выбрать соответствующую причину в раскрывающемся меню, так как это может влиять на то, будет ли запрос включен в будущий анализ.

    Если вы закрываете оповещение 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 "Аудит оповещений системы безопасности."

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