Introduction
В этом руководстве вы следуйте одному запросу на вытягивание с помощью Code Qualityанализа из первого комментария для слияния. Вы узнаете:
- Как прочитать Code Quality комментарии по запросу на вытягивание.
- Как использовать метку серьезности поиска, чтобы решить, что исправить, что следует закрыть, и в каком порядке.
- Как выбрать варианты, которые вы делаете при запросе на вытягивание, формируют оценки репозитория, невыполненные работы и шлюзы слияния.
К концу вы устраните все блокирующие поиски в примере запроса на вытягивание и объединили его с чистой Code Quality проверкой, и вы узнаете , почему вы сделали каждый выбор.
Это пошаговое руководство, поэтому оно способствует пониманию скорости. Основные инструкции по фиксации автофикса или увольнения поиска см. в руководстве по автофиксу : AUTOTITLE.
Перед началом работы
- Code Quality включен в репозитории, в который вы вносите свой вклад. См . раздел AUTOTITLE.
- Репозиторий использует язык, поддерживаемый CodeQL таким образом, чтобы создаются результаты и оценки на основе правил. Список поддерживаемых языков см. в разделе Качество кода GitHub.
- У вас есть запрос на вытягивание, открытый для ветви по умолчанию, с по крайней мере одним Code Quality поиском для проверки. Если у вас нет запроса на вытягивание, вы можете выполнить приведенный ниже пример.
В этом руководстве мы будем использовать работающий пример: запрос на вытягивание, который рефакторинг некоторых кодов вводит несколько проблем качества кода в ветвь по умолчанию, если она объединена по мере ее использования. Проверка Code Quality автоматически выполняется в запросе на вытягивание и сообщила о нескольких результатах в виде комментариев.
Почему запрос на вытягивание является лучшим местом для исправления поиска
Каждый поиск, который вы не решаете на этапе запроса на вытягивание, становится элементом действия в невыполненной работы репозитория, и технический долг часто дороже платить позже, чем сейчас. Сейчас, пока запрос на вытягивание открыт, контекст и намерение кода по-прежнему свежи в вашем уме, что делает каждое обнаружение и его автофикс, быстрее оценить, применить или уверенно закрыть.
Устранение результатов на этапе запроса на вытягивание означает, что ваша команда тратит меньше времени на выполнение исправлений для работы функций и избегает дополнительных запросов на вытягивание, просто чтобы сжечь невыполненную работу.
Шаг 1. Поиск комментариев в запросе Code Quality на вытягивание
При открытии запроса Code Quality на вытягивание используется CodeQL для проверки изменений в наборе правил и публикации результатов в виде комментариев github-code-quality[бот]. Каждый комментарий включает предлагаемый автофикс. Откройте вкладку "Измененные файлы" запроса на вытягивание, чтобы просмотреть результаты.
В нашем примере мы рассмотрим три комментария.github-code-quality[бот] Обратите внимание на метки серьезности на каждом из них. Шаг 2 объясняет, что они означают.
Шаг 2. Прочитайте метку серьезности, чтобы решить, что важно
При каждом поиске github-code-quality[бот] содержится метка серьезности— ошибка, предупреждение или примечание. Найдите метку в одном из комментариев и проверьте ее в этой таблице.
| Серьёзность | Определение |
|---|---|
| Error | Указывает на проблему высокой степени серьезности, которая может привести к ошибкам, сбоям или серьезным рискам удобства обслуживания. |
| Предупреждение | Указывает на проблему средней степени серьезности, которая может повлиять на качество или надежность кода, но не является критической в данный момент. |
| Заметка | Указывает на проблему низкой степени серьезности, незначительное улучшение или рекомендацию. Эти результаты полезны для поддержания работоспособности и удобства сопровождения кода. |
Метка выполняет два задания одновременно:
- Он сообщает вам, что сначала исправить. Серьезность отражает ожидаемое влияние правила в типичном коде. В нашем примере вы начнете с ошибки, а затем предупреждение и обрабатываете примечание как необязательный польский.
- Это может решить, можно ли объединить вообще. Администратор репозитория или владелец организации может настроить Code Quality в качестве шлюза слияния. Например, если пороговое значение для объединения имеет значение "Предупреждение и выше", каждое обнаружение на уровне предупрежденийиошибок должно быть исправлено или отклонено, прежде чем можно объединить ( примечания не препятствуют слиянию). Аналогичным образом, более строгое пороговое значение может потребовать разрешения всех выводов перед слиянием.
Чтобы узнать, действует ли шлюз, прокрутите страницу до раздела "Проверки " в нижней части запроса на вытягивание. Если изменения упали ниже требуемого порогового значения, появится баннер блока слияния: "Слияние заблокировано: обнаружены результаты качества кода".

В нашем примере шлюз имеет значение "Предупреждение и выше", поэтому баннер присутствует: ошибка и предупреждение блокируют слияние, а примечание не является. Это сообщает вам, что необходимо очистить перед объединением этого запроса на вытягивание.
Если баннер блока слияния не указывает уровень серьезности, необходимо очистить все результаты, чтобы объединить запрос на вытягивание.
Шаг 3. Разрешение каждого поиска
Для каждого поиска определите, применяется ли он к коду и, если это делает, как исправить его. Это приводит к одному из трех действий.
| Assessment | Рекомендуемое действие | Примечания. |
|---|---|---|
| Поиск является допустимым, и предлагаемое исправление выглядит правильно | ||
| Применение предложения автофикса | При нажатии кнопки "Фиксация" предложение не используется AI credits, а для автофиксов не требуется Copilot лицензия. | |
| Поиск является реальным, но вы хотите исправить несколько раз, или предлагаемое исправление нуждается в адаптации | ||
Делегирование Copilot— упоминается @copilot в комментарии, чтобы передать работу облачному агенту. | ||
| Copilot реагирует на 👀, запускает новый сеанс агента и отправляет необходимые исправления в ветвь запроса на вытягивание. | ||
| Copilot Требуется лицензия и используетсяAI credits. | ||
| Поиск не применяется, например, это тестовый код, преднамеренный шаблон или ложноположительное срабатывание | Нажмите кнопку "Закрыть поиск " и укажите причину | Вы сможете объединить запрос на вытягивание, но поиск будет отображаться в невыполненной записи репозитория и в будущих запросах на вытягивание. |
Примените практику к собственному запросу на вытягивание, работая в порядке серьезности.
В нашем примере:
- Результаты на уровне ошибок и предупреждений являются подлинными ошибками, и предлагаемые автофиксы выглядят разумно, поэтому мы применяем предложения автофикса. Результаты разрешают и выпадают из числа блокировок.
- Поиск на уровне заметок помечает незначительный шаблон в вспомогательном помощнике рядом с тестом. Это намеренно, поэтому мы уволим его с такой причиной, как "Используется в тестах".
- Существует несколько дополнительных выводов на уровне заметок. Вместо того чтобы работать с каждым предложением автофикса по одному, мы закомментируем: "
@copilotИсправьте все оставшиеся результаты на уровне заметок". Мы отслеживаем Copilotход выполнения на вкладке "Агенты" репозитория и проверяем фиксации, которые он отправляет в запрос на вытягивание, когда они будут готовы.
Шаг 4. Подтверждение разблокировки запроса на вытягивание (необязательно)
Если у вас есть блокирующие выводы, после исправления или увольнения соответствующих результатов вернитесь в раздел "Проверки " в нижней части запроса на вытягивание.
В нашем примере с разрешением результатов ошибок и предупреждений баннер блока слияния исчезает. Запрос на вытягивание теперь ясно для слияния.
Если баннер по-прежнему там, это означает, что поиск по или выше уровня серьезности блокировки по-прежнему открыт.
Как это подключается к остальной части работоспособности кода
Запрос на вытягивание, который вы только что очистили, является частью более крупной картины:
- Отзывов. Оценки надежности и обслуживания репозитория вычисляются из результатов в ветви по умолчанию. Разрешение выводов перед слиянием заключается в том, как сохранить эти оценки от смещения. См . раздел AUTOTITLE.
- Невыполненной работы. Все, что вы не исправляете в запросе на вытягивание, присоединяет невыполненные результаты в ветви по умолчанию. Работа с невыполненной работой является дисциплиной собственного. См . раздел AUTOTITLE.
- Соответствия. Если класс результатов действительно не должен достичь ветви по умолчанию, набор правил "Требовать результаты качества кода" помогает администраторам репозитория и владельцам организации кодировать это решение как шлюз слияния. См . раздел AUTOTITLE.
Самые здоровые команды объединяют все три: преднамеренную проверку и исправление на этапе запроса на вытягивание, периодическую невыполненную работу и принудительное пороговое значение на границе слияния.
Troubleshooting
- Я не вижу Code Quality комментариев. Проверка может по-прежнему выполняться, изменения могут не касаться поддерживаемого языка или у вас нет никаких выводов. Убедитесь, что включена проверка Code Quality (называется "CodeQL - Качество кода") временем завершения. См . раздел AUTOTITLE.
- Я не вижу автофиксов для моих результатов качества кода. Создание автофикса используется GitHub AI Credits. Возможно, ваша организация истощила свой ежемесячный AI creditsбюджет.
- Баннер блока слияния не очищается. По крайней мере одна обнаруженная или выше степень серьезности блокировки по-прежнему открыта. Если вы не видите уровень серьезности, определенный в баннере блока слияния, это означает, что репозиторий использует самые жесткие пороги качества кода, которые требуют, чтобы все результаты были устранены перед слиянием. См . раздел AUTOTITLE.
Conclusion
В этом руководстве вы работали с Code Quality комментариями по запросу на вытягивание, использовали серьезность для определения приоритетов исправления и разрешали каждый поиск намеренно перед объединением запроса на вытягивание. Рассматривая каждое обнаружение и его автофикс, как небольшое, в контекстном решении, вы не позволили получить долг качества кода от достижения ветви по умолчанию.
Дальнейшие действия
- Примените то же мышление к существующей невыполненной работы: Повышение оценки качества кода репозитория.
- Узнайте, как результаты преобразовывались в оценки, чтобы оценить влияние работы: Справочник по метрикам и оценкам.