Спрашиваю Чат GitHub Copilot о code scanning оповещениях
Имея GitHub Copilot Enterprise лицензию, вы можете попросить Копилот Чат помощи для лучшего понимания оповещений безопасности, включая code scanning оповещения, в хранилищах вашей организации. См . раздел AUTOTITLE.
Исправление оповещений с помощью Copilot
Примечание.
Эта функция уже присутствует Публичный предварительный просмотр и может измениться. Copilot облачный агент и Автофикс второго пилота должен быть доступен в репозитории.
Вы можете назначить оповещение code scanningCopilot для исправления оповещения. Назначение оповещения запускает сеанс агента: Copilot облачный агент изучает базу кода, создает исправление, проверяет его и открывает запрос на вытягивание.
Каждый сеанс автофикса агента оплачивается как Copilot облачный агент сеанс и используется AI credits. См . раздел AUTOTITLE.
Назначение отдельного оповещения Copilot:
- На GitHubперейдите на главную страницу репозитория.
- Под названием репозитория нажмите на Security and quality вкладку. Если вы не видите вкладку « Security and quality» — выберите выпадающее меню и нажмите Security and quality.
- На левой боковой панели щелкните Code scanning.
- Щелкните имя оповещения.
- В верхней части страницы нажмите кнопку "Назначить".Copilot
Вы также можете назначить оповещения в массовом Copilot режиме:
- code scanning Из невыполненной работы оповещений или из кампании безопасности выберите от 1 до 25 оповещений и назначьте ихCopilot, что работает для разрешения выбранных оповещений в одном запросе на вытягивание. См . раздел AUTOTITLE.
- Используя REST API, присвойте получателю оповещения значение
copilot-swe-agent[bot]. См . раздел AUTOTITLE.
Как правило, в течение нескольких минут открывается черновик запроса на вытягивание, Copilot созданного Copilotс сводкой по исправлению и выполненным шагам проверки. Просмотрите журнал сеансов агента для получения подробных сведений и закомментируйте запрос на вытягивание, упоминая Copilot, чтобы попросить его выполнить итерацию.
Copilot облачный агент проверяет исправления на основе лучших усилий. Если он не может проверить исправление или считает, что оповещение может быть ложным положительным, он говорит так в запросе на вытягивание.
Создание предлагаемого исправления
Если Copilot облачный агент он недоступен в репозитории, вы по-прежнему можете использовать Автофикс GitHub Copilot для создания одношагового исправления для оповещения.
Примечание.
Подписка на GitHub Copilot не требуется для использования Автофикс GitHub Copilot. Автофикс второго пилота доступен для всех общедоступных репозиториев на GitHub.com, а также внутренние или частные репозитории, принадлежащие организациям и предприятиям, имеющим лицензию на GitHub Code Security.
- На GitHubперейдите на главную страницу репозитория.
- Под названием репозитория нажмите на Security and quality вкладку. Если вы не видите вкладку « Security and quality» — выберите выпадающее меню и нажмите Security and quality.
- На левой боковой панели щелкните Code scanning.
- Щелкните имя оповещения.
- Если Автофикс второго пилота можете предложить решение, в верхней части страницы нажмите Generate fix.
- После создания предлагаемого исправления в нижней части страницы можно нажать кнопку "Создать PR" с исправлением , чтобы автоматически создать запрос на вытягивание с предлагаемым исправлением. Новая ветвь создается из ветвь по умолчанию, созданное исправление фиксируется и создается черновик запроса на вытягивание. Вы можете протестировать и изменить предлагаемое исправление, как и в любом другом исправлении.
Вы также можете использовать API автофикса для конечных точек исторических оповещений для создания, получения и фиксации предлагаемых исправлений.
- Создание автофикса для оповещения сканирования кода
- Получение состояния автофикса для оповещения сканирования кода
- Фиксация автофикса для оповещения сканирования кода
Автофикс второго пилота Потому code scanning что оповещения не смогут создать исправление для каждого оповещения в каждой ситуации. Функция работает на основе наилучших усилий и не гарантируется успешной 100% времени. Сведения об ограничениях автоматически созданных исправлений см. в разделе "Ограничения предложений".
Исправление оповещения вручную
Любой пользователь с разрешением на запись для репозитория может исправить оповещение, зафиксировав исправление в коде. Если репозиторий запланировал code scanning запуск на pull request, лучше всего поднять pull request с исправлением. Это запустит code scanning анализ изменений и проверит, что ваше исправление не создаёт новых проблем. См . раздел AUTOTITLE.
Чтобы отслеживать работу по устранению в рабочем процессе вашей команды без выхода GitHub, вы можете связывать оповещения с проблемами. См . раздел AUTOTITLE.
С помощью поиска произвольного текста или фильтров можно отобразить подмножество оповещений и отметить все подходящие как закрытые.
Оповещения могут быть исправлены в одной ветви, но не в другой. Фильтр "Branch" можно использовать в сводке оповещений, чтобы проверить, исправлена ли оповещение в определенной ветви.

Обратите внимание: если оповещения, отфильтрованные в ветви, отличной от используемой по умолчанию, присутствуют в ветви по умолчанию, на странице оповещений для любого такого оповещения по-прежнему будет отражаться состояние из ветви по умолчанию, даже если оно конфликтует с состоянием в ветви, отличной от используемой по умолчанию. Например, для оповещения, которое присутствует в списке "Открыто" в сводке оповещений для ветви branch-x, на странице оповещений может отображаться состояние "Исправлено", если это оповещение уже исправлено в ветви по умолчанию. Состояние оповещения для ветви, к которой применен фильтр, можно просмотреть в разделе Затронутые ветви в правой части страницы оповещений.
Примечание.
Если вы запускаете code scanning с несколькими конфигурациями, одно и то же оповещение иногда генерируется несколькими настройками. Если вы не выполняете все конфигурации регулярно, могут отображаться оповещения, фиксированные в одной конфигурации, но не в другой. Эти устаревшие конфигурации и оповещения можно удалить из ветви. См. статью об удалении устаревших конфигураций и оповещений из ветви.
Отключение оповещений
Закрыть оповещение можно двумя способами. Можно устранить проблему в коде или отклонить оповещение.
Отклонение используется для закрытия оповещений, не требующих исправления. Например, когда есть ошибка в коде, который используется только для тестирования, или когда усилия по исправлению ошибки больше потенциального преимущества улучшения кода. Вы можете отклонять уведомления из code scanning аннотаций в коде или из списка сводок внутри вкладки Security and quality .
Когда оповещение отклоняется:
- оно отклоняется во всех ветвях;
- оно удаляется из текущих оповещений проекта;
- оно перемещается в список "Закрытые" в сводке по оповещениям, где при необходимости его можно открыть заново;
- записывается причина закрытия оповещения;
- При необходимости можно закомментировать увольнение, чтобы записать контекст увольнения оповещения.
- В следующий раз при code scanning запуске тот же код не выдаст оповещения.
Чтобы закрыть оповещения, выполните приведенные действия.
- На GitHubперейдите на главную страницу репозитория.
- Под названием репозитория нажмите на Security and quality вкладку. Если вы не видите вкладку « Security and quality» — выберите выпадающее меню и нажмите Security and quality.
- На левой боковой панели щелкните Code scanning.
- Если вы хотите отклонить оповещение, важно сначала изучить его, чтобы выбрать правильную причину отклонения. Щелкните оповещение, которое нужно изучить.
- Просмотрите оповещение, щелкните Закрыть оповещение и выберите причину закрытия оповещения.

dismissed_comment для конечной точки alerts/{alert_number}. Дополнительные сведения см. в разделе Конечные точки REST API для сканирования кода.
Если вы закрываете оповещение CodeQL как ложное срабатывание, например, поскольку в коде используется библиотека очистки, которая не поддерживается, рассмотрите возможность добавления CodeQL в репозиторий и улучшение анализа. Дополнительные сведения о CodeQLсм. в статье "Участие в CodeQL".
Отклонение нескольких оповещений одновременно
Если в проекте есть несколько оповещений, которые нужно отклонить по одной причине, в сводке по оповещениям их можно отклонить все сразу. Как правило, необходимо отфильтровать список, а затем отклонить все подходящие оповещения. Например, может потребоваться отклонить все текущие оповещения в проекте, имеющие отметку определенной уязвимости CWE.
Повторное открытие оповещений об увольнении
Если вы уволите оповещение, но позже понимаете, что необходимо исправить оповещение, его можно повторно открыть и устранить проблему с кодом. Отображение списка закрытых оповещений, поиск оповещения, его отображение и повторное открытие. Затем вы можете исправить оповещение так же, как и любое другое оповещение.
Удаление устаревших конфигураций и оповещений из ветви
В одном репозитории может быть несколько code scanning конфигураций. При запуске несколько конфигураций могут создавать одно и то же оповещение. Кроме того, если конфигурации выполняются по разным расписаниям, состояние оповещения может стать устаревшим для нечастой или устаревших конфигураций. Дополнительные сведения о оповещениях из нескольких конфигураций см. в разделе Оповещения о проверке кода.
-
На GitHubперейдите на главную страницу репозитория.
-
Под названием репозитория нажмите на Security and quality вкладку. Если вы не видите вкладку « Security and quality» — выберите выпадающее меню и нажмите Security and quality.
-
На левой боковой панели щелкните Code scanning.
-
В разделе «Code scanning» нажмите уведомление code scanning .
-
В разделе "Затронутые ветви" боковой панели щелкните нужную ветвь.
-
В диалоговом окне "Конфигурации анализа" просмотрите сведения о конфигурациях, сообщающих об этом оповещении в выбранной ветви. Чтобы удалить ненужную конфигурацию для нужной ветки, нажмите .
Если удалить конфигурацию по ошибке, нажмите кнопку "Отмена ", чтобы избежать применения изменений.

-
После удаления любых нежелательных конфигураций и подтверждения отображения ожидаемых конфигураций нажмите кнопку "Сохранить изменения".
Если изменения сохраняются после случайного удаления конфигурации, повторно запустите конфигурацию, чтобы обновить оповещение. Для получения дополнительной информации о повторном запуске конфигураций, использующих GitHub Actions, см. Повторный запуск рабочих процессов и заданий.
Примечание.
- Если вы удалите все code scanning конфигурации для стандартной ветки вашего репозитория, стандартная ветка останется в боковой панели «Затронутые ветви», но не будет анализироваться ни одной конфигурацией.
- Если вы удалите все code scanning конфигурации для любой ветки, кроме стандартной ветки вашего репозитория, эта ветка будет удалена из боковой панели «Затронутые ветви».