{"meta":{"title":"Предотвращение проблем с качеством кода для достижения ветви по умолчанию","intro":"Перейдите к Code Quality результатам запроса на вытягивание, включая понимание меток серьезности, когда каждое обнаружение лучше всего исправлено, делегировано или отклонено, и как эти варианты определяют работоспособность кода репозитория.","product":"Безопасность и качество кода","breadcrumbs":[{"href":"/ru/enterprise-cloud@latest/code-security","title":"Безопасность и качество кода"},{"href":"/ru/enterprise-cloud@latest/code-security/tutorials","title":"Tutorials"},{"href":"/ru/enterprise-cloud@latest/code-security/tutorials/improve-code-quality","title":"Улучшение качества кода"},{"href":"/ru/enterprise-cloud@latest/code-security/tutorials/improve-code-quality/catch-issues-before-merge","title":"Перехват проблем перед слиянием"}],"documentType":"article"},"body":"# Предотвращение проблем с качеством кода для достижения ветви по умолчанию\n\nПерейдите к Code Quality результатам запроса на вытягивание, включая понимание меток серьезности, когда каждое обнаружение лучше всего исправлено, делегировано или отклонено, и как эти варианты определяют работоспособность кода репозитория.\n\n## Introduction\n\nВ этом руководстве вы следуйте одному запросу на вытягивание с помощью Code Qualityанализа из первого комментария для слияния. Вы узнаете:\n\n* Как прочитать Code Quality комментарии по запросу на вытягивание.\n* Как использовать метку серьезности поиска, чтобы решить, что исправить, что следует закрыть, и в каком порядке.\n* Как выбрать варианты, которые вы делаете при запросе на вытягивание, формируют оценки репозитория, невыполненные работы и шлюзы слияния.\n\nК концу вы устраните все блокирующие поиски в примере запроса на вытягивание и объединили его с чистой Code Quality проверкой, и вы узнаете *, почему* вы сделали каждый выбор.\n\nЭто пошаговое руководство, поэтому оно способствует пониманию скорости. Основные инструкции по фиксации автофикса или увольнения поиска см. в руководстве по автофиксу [: AUTOTITLE](/ru/enterprise-cloud@latest/code-security/how-tos/maintain-quality-code/fix-findings-on-a-pr).\n\n### Перед началом работы\n\n* Code Quality включен в репозитории, в который вы вносите свой вклад. См [. раздел AUTOTITLE](/ru/enterprise-cloud@latest/code-security/how-tos/maintain-quality-code/enable-code-quality).\n* Репозиторий использует язык, поддерживаемый CodeQL таким образом, чтобы создаются результаты и оценки на основе правил. Список поддерживаемых языков см. в разделе [Качество кода GitHub](/ru/enterprise-cloud@latest/code-security/concepts/code-quality/code-quality#supported-languages).\n* У вас есть запрос на вытягивание, открытый для ветви по умолчанию, с по крайней мере одним Code Quality поиском для проверки. Если у вас нет запроса на вытягивание, вы можете выполнить приведенный ниже пример.\n\nВ этом руководстве мы будем использовать работающий пример: запрос на вытягивание, который рефакторинг некоторых кодов вводит несколько проблем качества кода в ветвь по умолчанию, если она объединена по мере ее использования. Проверка Code Quality автоматически выполняется в запросе на вытягивание и сообщила о нескольких результатах в виде комментариев.\n\n## Почему запрос на вытягивание является лучшим местом для исправления поиска\n\nКаждый поиск, который вы не решаете на этапе запроса на вытягивание, становится элементом действия в невыполненной работы репозитория, и технический долг часто дороже платить позже, чем сейчас. Сейчас, пока запрос на вытягивание открыт, контекст и намерение кода по-прежнему свежи в вашем уме, что делает каждое обнаружение и его автофикс, быстрее оценить, применить или уверенно закрыть.\n\nУстранение результатов на этапе запроса на вытягивание означает, что ваша команда тратит меньше времени на выполнение исправлений для работы функций и избегает дополнительных запросов на вытягивание, просто чтобы сжечь невыполненную работу.\n\n## Шаг 1. Поиск комментариев в запросе Code Quality на вытягивание\n\nПри открытии запроса Code Quality на вытягивание используется CodeQL для проверки изменений в наборе правил и публикации результатов в виде комментариев `github-code-quality[бот]`. Каждый комментарий включает предлагаемый автофикс. Откройте вкладку **\"Измененные файлы\"** запроса на вытягивание, чтобы просмотреть результаты.\n\nВ нашем примере мы рассмотрим три комментария.`github-code-quality[бот]` Обратите внимание на метки серьезности на каждом из них. Шаг 2 объясняет, что они означают.\n\n## Шаг 2. Прочитайте метку серьезности, чтобы решить, что важно\n\nПри каждом поиске `github-code-quality[бот]` содержится метка серьезности— **ошибка**, **предупреждение** или **примечание**. Найдите метку в одном из комментариев и проверьте ее в этой таблице.\n\n| Серьёзность        | Определение                                                                                                                                                                          |\n| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| **Error**          | Указывает на проблему высокой степени серьезности, которая может привести к ошибкам, сбоям или серьезным рискам удобства обслуживания.                                               |\n| **Предупреждение** | Указывает на проблему средней степени серьезности, которая может повлиять на качество или надежность кода, но не является критической в данный момент.                               |\n| **Заметка**        | Указывает на проблему низкой степени серьезности, незначительное улучшение или рекомендацию. Эти результаты полезны для поддержания работоспособности и удобства сопровождения кода. |\n\nМетка выполняет два задания одновременно:\n\n1. **Он сообщает вам, что сначала исправить.** Серьезность отражает ожидаемое влияние правила в типичном коде. В нашем примере вы начнете с **ошибки**, а затем **предупреждение** и **обрабатываете примечание** как необязательный польский.\n2. **Это может решить, можно ли объединить вообще.** Администратор репозитория или владелец организации может настроить Code Quality в качестве шлюза слияния. Например, если пороговое значение для объединения имеет значение \"Предупреждение и выше\", каждое обнаружение на уровне **предупреждений***и***ошибок** должно быть исправлено или отклонено, прежде чем можно **объединить (** примечания не препятствуют слиянию). Аналогичным образом, более строгое пороговое значение может потребовать разрешения *всех* выводов перед слиянием.\n\nЧтобы узнать, действует ли шлюз, прокрутите страницу **до раздела \"Проверки** \" в нижней части запроса на вытягивание. Если изменения упали ниже требуемого порогового значения, появится баннер блока слияния: \"Слияние заблокировано: обнаружены результаты качества кода\".\n\n![Скриншот баннера блока объединения в разделе «Проверки» пул-реквеста.](/assets/images/help/code-quality/code-quality-merge-block.png)\n\nВ нашем примере шлюз имеет значение \"Предупреждение и выше\", поэтому баннер присутствует: **ошибка** и **предупреждение** блокируют слияние, а **примечание** не является. Это сообщает вам, что необходимо очистить перед объединением этого запроса на вытягивание.\n\nЕсли баннер блока слияния не указывает уровень серьезности, необходимо очистить *все* результаты, чтобы объединить запрос на вытягивание.\n\n## Шаг 3. Разрешение каждого поиска\n\nДля каждого поиска определите, применяется ли он к коду и, если это делает, как исправить его. Это приводит к одному из трех действий.\n\n| Assessment                                                                                                                 | Рекомендуемое действие                                                                                                    | Примечания.                                                                                                                                      |\n| -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |\n| Поиск является допустимым, и предлагаемое исправление выглядит правильно                                                   |                                                                                                                           |                                                                                                                                                  |\n| **Применение предложения автофикса**                                                                                       | При нажатии **кнопки \"Фиксация\"** предложение не используется AI credits, а для автофиксов не требуется Copilot лицензия. |                                                                                                                                                  |\n| Поиск является реальным, но вы хотите исправить несколько раз, или предлагаемое исправление нуждается в адаптации          |                                                                                                                           |                                                                                                                                                  |\n| **Делегирование Copilot**— упоминается `@copilot` в комментарии, чтобы передать работу облачному агенту.                   |                                                                                                                           |                                                                                                                                                  |\n| Copilot реагирует на 👀, запускает новый сеанс агента и отправляет необходимые исправления в ветвь запроса на вытягивание. |                                                                                                                           |                                                                                                                                                  |\n| Copilot Требуется лицензия и используетсяAI credits.                                                                       |                                                                                                                           |                                                                                                                                                  |\n| Поиск не применяется, например, это тестовый код, преднамеренный шаблон или ложноположительное срабатывание                | Нажмите кнопку **\"Закрыть поиск** \" и укажите причину                                                                     | Вы сможете объединить запрос на вытягивание, но поиск будет отображаться в невыполненной записи репозитория и в будущих запросах на вытягивание. |\n\nПримените практику к собственному запросу на вытягивание, работая в порядке серьезности.\n\nВ нашем примере:\n\n* Результаты на уровне **ошибок** и **предупреждений** являются подлинными ошибками, и предлагаемые автофиксы выглядят разумно, поэтому мы применяем предложения автофикса. Результаты разрешают и выпадают из числа блокировок.\n* Поиск **на уровне заметок** помечает незначительный шаблон в вспомогательном помощнике рядом с тестом. Это намеренно, поэтому мы уволим его с такой причиной, как \"Используется в тестах\".\n* Существует несколько дополнительных выводов **на уровне заметок**. Вместо того чтобы работать с каждым предложением автофикса по одному, мы закомментируем: \"`@copilot`Исправьте все оставшиеся результаты на уровне заметок\". Мы отслеживаем Copilotход выполнения на вкладке **\"Агенты\"** репозитория и проверяем фиксации, которые он отправляет в запрос на вытягивание, когда они будут готовы.\n\n## Шаг 4. Подтверждение разблокировки запроса на вытягивание (необязательно)\n\nЕсли *у вас* есть блокирующие выводы, после исправления или увольнения соответствующих результатов вернитесь в раздел **\"Проверки** \" в нижней части запроса на вытягивание.\n\nВ нашем примере с разрешением **результатов ошибок** и **предупреждений** баннер блока слияния исчезает. Запрос на вытягивание теперь ясно для слияния.\n\nЕсли баннер по-прежнему там, это означает, что поиск по или выше уровня серьезности блокировки по-прежнему открыт.\n\n## Как это подключается к остальной части работоспособности кода\n\nЗапрос на вытягивание, который вы только что очистили, является частью более крупной картины:\n\n* **Отзывов.** Оценки надежности и обслуживания репозитория вычисляются из результатов в ветви по умолчанию. Разрешение выводов перед слиянием заключается в том, как сохранить эти оценки от смещения. См [. раздел AUTOTITLE](/ru/enterprise-cloud@latest/code-security/reference/code-quality/metrics-and-ratings).\n* **Невыполненной работы.** Все, что вы не исправляете в запросе на вытягивание, присоединяет невыполненные результаты в ветви по умолчанию. Работа с невыполненной работой является дисциплиной собственного. См [. раздел AUTOTITLE](/ru/enterprise-cloud@latest/code-security/tutorials/improve-code-quality/raise-your-quality-rating).\n* **Соответствия.** Если класс результатов действительно не должен достичь ветви по умолчанию, набор правил \"Требовать результаты качества кода\" помогает администраторам репозитория и владельцам организации кодировать это решение как шлюз слияния. См [. раздел AUTOTITLE](/ru/enterprise-cloud@latest/code-security/how-tos/maintain-quality-code/unblock-your-pr).\n\nСамые здоровые команды объединяют все три: преднамеренную проверку и исправление на этапе запроса на вытягивание, периодическую невыполненную работу и принудительное пороговое значение на границе слияния.\n\n## Troubleshooting\n\n* **Я не вижу Code Quality комментариев.** Проверка может по-прежнему выполняться, изменения могут не касаться поддерживаемого языка или у вас нет никаких выводов. Убедитесь, что включена проверка Code Quality (называется \"CodeQL - Качество кода\") временем завершения. См [. раздел AUTOTITLE](/ru/enterprise-cloud@latest/code-security/how-tos/maintain-quality-code/enable-code-quality).\n* **Я не вижу автофиксов для моих результатов качества кода.** Создание автофикса используется GitHub AI Credits. Возможно, ваша организация истощила свой ежемесячный AI creditsбюджет.\n* **Баннер блока слияния не очищается.** По крайней мере одна обнаруженная или выше степень серьезности блокировки по-прежнему открыта. Если вы не видите уровень серьезности, определенный в баннере блока слияния, это означает, что репозиторий использует самые жесткие пороги качества кода, которые требуют, чтобы *все* результаты были устранены перед слиянием. См [. раздел AUTOTITLE](/ru/enterprise-cloud@latest/code-security/how-tos/maintain-quality-code/unblock-your-pr).\n\n## Conclusion\n\nВ этом руководстве вы работали с Code Quality комментариями по запросу на вытягивание, использовали серьезность для определения приоритетов исправления и разрешали каждый поиск намеренно перед объединением запроса на вытягивание. Рассматривая каждое обнаружение и его автофикс, как небольшое, в контекстном решении, вы не позволили получить долг качества кода от достижения ветви по умолчанию.\n\n## Дальнейшие действия\n\n* Примените то же мышление к существующей невыполненной работы: [Повышение оценки качества кода репозитория](/ru/enterprise-cloud@latest/code-security/tutorials/improve-code-quality/raise-your-quality-rating).\n* Узнайте, как результаты преобразовывались в оценки, чтобы оценить влияние работы: [Справочник по метрикам и оценкам](/ru/enterprise-cloud@latest/code-security/reference/code-quality/metrics-and-ratings)."}