Исправление оповещений с помощью Copilot
Вы можете назначить оповещение code scanningCopilot для исправления оповещения. Назначение оповещения запускает сеанс агента, который изучает базу кода, создает и проверяет исправление и открывает запрос на вытягивание.
Agentic Autofix доступно только для оповещений невыполненной работы в ветви репозитория по умолчанию.
Prerequisites
Прежде чем назначить оповещение, agentic autofix необходимо включить для репозитория. См . раздел AUTOTITLE.
- Для использования этой функции не требуется GitHub Copilot лицензия.
- Agentic Autofix использует кредиты и минуты GitHub Actions на основе кода безопасности ИИ. См . раздел AUTOTITLE.
Назначение одного оповещения
Назначение отдельного оповещения Copilot:
- На GitHubперейдите на главную страницу репозитория.
- Под названием репозитория нажмите на Security and quality вкладку. Если вы не видите вкладку « Security and quality» — выберите выпадающее меню и нажмите Security and quality.
- На левой боковой панели щелкните Code scanning.
- Щелкните имя оповещения.
- В верхней части страницы в разделе "Назначить" нажмите кнопку "Назначить".Copilot
Назначение нескольких оповещений одновременно
Чтобы назначить сразу несколько оповещений:
- Из невыполненной работы оповещений code scanning или кампании по безопасности выберите до 25 оповещений.
- Над списком оповещений нажмите кнопку "Назначить".Copilot
Одно назначение создает один сеанс агента и один запрос на вытягивание для выбранных оповещений. См . раздел AUTOTITLE.
Что происходит после назначения оповещения
- Copilot обычно открывает запрос на вытягивание черновика в течение нескольких минут.
- Запрос на вытягивание, созданный с помощью Copilotкоманды, суммирует действия по исправлению и проверке.
- Просмотрите журнал сеансов агента, чтобы получить подробные сведения и взаимодействовать с Copilot ним.
- Вы также можете попросить Copilot выполнить итерацию, указав его в комментарии запроса на вытягивание.
Copilot проверяет исправления на основе лучших усилий. Если он не может проверить исправление или считает, что оповещение может быть ложным положительным, он говорит так в запросе на вытягивание.
Вы также можете назначить оповещение с помощью REST API. Задайте для назначаемого получателя copilot-swe-agent[bot]оповещения. См . раздел AUTOTITLE.
Создание предлагаемого исправления
Если agentic autofix репозиторий не включен, вы по-прежнему GitHub Copilot Autofix можете создать одношаговые предлагаемые исправления, где поддерживается.
GitHub Copilot Autofix также доступен только для оповещений невыполненной работы в ветви репозитория по умолчанию.
Примечание.
Подписка на GitHub Copilot не требуется для использования GitHub Copilot Autofix. Copilot Autofix доступен для всех общедоступных репозиториев на GitHub.com, а также внутренние или частные репозитории, принадлежащие организациям и предприятиям, имеющим лицензию на GitHub Code Security.
- На GitHubперейдите на главную страницу репозитория.
- Под названием репозитория нажмите на Security and quality вкладку. Если вы не видите вкладку « Security and quality» — выберите выпадающее меню и нажмите Security and quality.
- На левой боковой панели щелкните Code scanning.
- Щелкните имя оповещения.
- Если Copilot Autofix можете предложить решение, в верхней части страницы нажмите Generate fix.
- После создания предлагаемого исправления в нижней части страницы можно нажать кнопку "Создать PR" с исправлением , чтобы автоматически создать запрос на вытягивание с предлагаемым исправлением. Новая ветвь создается из ветвь по умолчанию, созданное исправление фиксируется и создается черновик запроса на вытягивание. Вы можете протестировать и изменить предлагаемое исправление, как и в любом другом исправлении.
Вы также можете использовать API автофикса для конечных точек исторических оповещений для создания, получения и фиксации предлагаемых исправлений.
- Создание автофикса для оповещения сканирования кода
- Получение состояния автофикса для оповещения сканирования кода
- Фиксация автофикса для оповещения сканирования кода
Copilot Autofix Потому 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 конфигурации для любой ветки, кроме стандартной ветки вашего репозитория, эта ветка будет удалена из боковой панели «Затронутые ветви».