Skip to main content

Устранение блокировки в запросе на вытягивание

Определите и устраните блокировку качества кода или порогового покрытия в вашем pull request, чтобы можно было объединить изменения.

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

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

Примечание.

          GitHub Code Quality сейчас доступен Публичный предварительный просмотр и станет доступен в общем доступе 20 июля 2026 года.

Во время Публичный предварительный просмотр, Code Quality счета не будет, хотя Code Quality сканирование займёт GitHub Actions несколько минут. С 20 июля 2026 года использование будет взимать плату. См . раздел AUTOTITLE.

Понимание причин блокировки запроса pull

Администраторы репозиториев могут устанавливать элементы качества с помощью GitHub Code Quality. Когда вы открываете pull request, автоматически запускаются проверки, чтобы оценить ваши изменения по этим стандартам.

Существует два типа блоков:

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

Если ваш pull-запрос вводит код, который ниже требуемого порога качества, вы увидите баннер блока слияния внизу в разделе «Проверки»: «Слияние заблокировано: обнаружены результаты качества кода.»

Скриншот баннера блока объединения в разделе «Проверки» пул-реквеста.

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

Просмотр результатов сканирования и их уровней серьезности

Результаты сканирования отображаются в виде комментариев к вашему запросу на вытягивание, оставленных .github-code-quality[бот] Каждый комментарий соответствует определенной проблеме с качеством кода, которая была обнаружена в ваших изменениях.

Комментарии помечаются по степени серьезности (Ошибка, Предупреждение, Примечание). Дополнительные сведения о том, что означают уровни серьезности, см. в разделе Уровни серьезности.

Определение того, какие результаты блокируют запрос на вытягивание

Шлюз качества, установленный администраторами репозитория, определяет минимальный уровень серьезности , который будет блокировать слияние.

На баннере блока объединения может быть указан минимальный уровень важности. Все обнаружения с этим уровнем серьезности или выше должны быть устранены, прежде чем вы сможете объединить запрос на вытягивание.

Скриншот баннера блока объединения в разделе «Проверки» пул-реквеста.

Примечание.

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

Исправление или отклонение каждой находки

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

Использование Автофикс второго пилота и Copilot облачный агент исправление результатов

Автофикс второго пилота

Комментарии к запросу pull включают предлагаемое автоисправление , которое вы можете зафиксировать непосредственно в своем запросе pull. Внимательно изучите предложенное автоисправление на предмет логики, безопасности и стиля, затем нажмите «Предложить фиксацию».

Вам не нужна лицензия Copilot, чтобы применить эти предложения.

Copilot облачный агент

В качестве альтернативы, если у вас есть Copilot лицензия, вы можете поручить работу по восстановлению .Copilot облачный агент Прокомментируйте pull-request, @Copilot упоминая и запросы, которые Copilot исправляют выявленные проблемы.

Скриншот с PR-комментарием, в котором использовался облачный агент Copilot.

Copilot Отвечает на ваш комментарий эмодзи глазами (👀) с глазами, начинает сессию нового агента и открывает pull request с необходимыми исправлениями.

Вы можете отслеживать Copilot облачный агентработу :

  • В запросе на вытягивание сводка обновляется по мере выполнения работы.
  • Используя страницу агентов или журналы сеансов, см. AUTOTITLE.

Для вызова Copilotнужна Copilot облачный агент лицензия.
Зарегистрируйтесь Copilot

Отклонение находки

Вы можете отклонить вывод, если он не имеет отношения к вашей кодовой базе или не требует действий. Распространенные причины для отклонения заключения включают:

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

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

Проверка соответствия требованиям

Чтобы проверить, выполнили ли вы требования к качеству кода, посмотрите раздел «Проверки» в нижней части вашего запроса на вытягивание. Баннер блока слияния больше не должен отсутствовать, и вы должны иметь возможность объединять свои изменения как обычно.

Разрешение блокировки порога покрытия

Если ваш pull request заблокирован правилом порога покрытия, вы увидите баннер блокировки слияния в разделе «Проверки» с сообщением, описывающим, какой порог не был достигнут. Рассмотрим пример.

  • «Покрытие 22.0% ниже минимального 50.0%»: ваше покрытие ветки по pull request ниже минимального процента покрытия, установленного в правилах.
  • «Покрытие снизилось на 2,5%, максимальное допустимое снижение составляет 1,0%»: ваши изменения привели к снижению покрытия более чем разрешено относительно стандартного отделения.

Чтобы разблокировать ваш pull-request, нужно добавить или изменить тесты, чтобы выполнять больше кодовой базы:

  1. Прочитайте комментарий к сводке покрытия в вашем pull request, чтобы определить, какие файлы или области не имеют покрытия.
  2. Добавьте или обновите тесты для увеличения охватов исполнения.
  3. Продвигайте свои изменения. Проверка покрытия будет повторена автоматически.

Дальнейшие шаги

Уменьшите технический долг за счет исправления результатов в недавно измененных файлах. См . раздел AUTOTITLE.