Примечание.
GitHub Code Quality в настоящее время находится в public preview и может быть изменен. Во время public preview, Code Quality не будут оплачиваться, хотя Code Quality сканирование займет GitHub Actions минут.
О GitHub Code Quality
GitHub Code Quality помогает пользователям повысить надежность кода, удобство сопровождения и общее состояние проекта, выявляя действенные отзывы и предлагая автоматические исправления для любых обнаружений в запросах на вытягивание и в ветке по умолчанию.
Когда вы включаете Code Quality, выполняются два типа анализа:
-
**CodeQL качественные запросы** выполняются с использованием code scanning анализа и выявляют проблемы с удобством обслуживания, надежностью или стилем кода. Это выполняется с измененным кодом во всех запросах pull на ветвь по умолчанию. Он также периодически запускается в полной ветке по умолчанию. -
**Анализ на основе большой языковой модели (LLM)** позволяет получить дополнительную информацию о потенциальных проблемах качества, выходящих за рамки того, что покрывают детерминированные механизмы, такие как CodeQL. Он выполняется автоматически для файлов, измененных во время недавних отправок в ветвь по умолчанию. Эти результаты отображаются на панели Code Quality **Выводы ИИ** на вкладке «Безопасность» репозитория.
Когда проблема с качеством обнаруживается с помощью любого типа анализа, Автофикс второго пилота предлагает соответствующее исправление, которое может быть рассмотрено и применено разработчиками.
В запросах на вытягивание результаты Code Quality отображаются в виде комментариев, оставленных github-code-quality ботом, которые включают предлагаемое автоисправление везде, где это возможно.
Анализ последних пушей на основе LLM
После каждой отправки в ветвь по умолчанию LLM анализирует недавно измененные файлы на предмет удобства обслуживания, надежности и других проблем с качеством. Code Quality проверяет ваш код и предоставляет обратную связь, используя комбинацию обработки естественного языка и машинного обучения.
Обработка входных данных
Изменения кода объединяются с другой релевантной контекстной информацией для формирования запроса, и этот запрос отправляется в большую языковую модель.
Анализ языковой модели
Затем запрос передается через языковую модель Copilot, которая является нейронной сетью, которая была обучена на большом тексте текстовых данных. Языковая модель анализирует входную строку.
Создание ответов
Языковая модель создает ответ на основе его анализа входной строки. Этот ответ может принимать форму предложений естественного языка и предложений кода.
Форматирование вывода
Ответ, сгенерированный Code Quality, предоставляется пользователю напрямую, предоставляя обратную связь по коду, связанную с определенными строками конкретных файлов. Если Code Quality предоставил предложение по коду, то предложение представлено в виде предлагаемого изменения, которое можно применить с помощью пары кликов.
Автофикс GitHub Copilot предложения
В запросах на вытягивание Code Quality результаты, найденные с помощью code scanning анализом, отправляют входные данные в LLM. Если LLM может сгенерировать потенциальное исправление, github-code-quality бот публикует комментарий с предлагаемым изменением прямо в запросе на вытягивание.
Кроме того, пользователи могут запросить генерацию автоисправлений для результатов в ветви по умолчанию.
Дополнительные сведения о процессе создания предложений для Автофикс GitHub Copilot см. в разделе AUTOTITLE.
Пример использования GitHub Code Quality
Цель GitHub Code Quality заключается в следующем:
- Выявляйте проблемы с качеством кода в репозитории, чтобы разработчики и администраторы репозитория могли быстро выявлять, приоритизировать и сообщать о зонах риска.
- Ускорьте работу по исправлению, предлагая Автофикс второго пилота предложения по результатам, найденным при сканировании ветви по умолчанию, а также по результатам недавних отправок в ветвь по умолчанию.
- Быстро оставляйте полезную обратную связь по коду разработчика. В запросах на вытягивание Code Quality объединяет информацию о лучших практиках с подробными сведениями о кодовой базе и результатах, чтобы предложить разработчику потенциальное исправление.
Повышение производительности GitHub Code Quality
Если вы столкнулись с какими-либо проблемами или ограничениями с предлагаемыми исправлениями в запросах на вытягивание, мы рекомендуем вам оставить отзыв, используя кнопки «большой палец вверх» и «большой палец вниз» в комментариях github-code-quality бота. Это может помочь GitHub улучшить инструмент и устранить любые проблемы или ограничения.
Ограничения GitHub Code Quality
Ограничения анализа Code Quality на основе LLM
. Поэтому он имеет схожие ограничения при анализе качества кода. К ключевым соображениям относятся:
- Неполное обнаружение
- Ложные срабатывания
- Точность предложения кода
- Потенциальные смещения
Для получения подробной информации об этих ограничениях см. AUTOTITLE.
Вы всегда должны просматривать результаты, полученные в результате анализа GitHub Code Quality на основе LLM, чтобы убедиться в их точности и применимости к вашей кодовой базе.
Ограничения Автофикс второго пилота
Автофикс второго пилота для Code Quality результаты не смогут сгенерировать исправление для каждой находки в каждой ситуации. Функция работает на основе наилучших усилий и не гарантируется успешной 100% времени.
При просмотре предложения из Автофикс второго пилотанеобходимо всегда учитывать ограничения ИИ и изменять изменения по мере необходимости, прежде чем принимать изменения. Вы всегда должны тщательно просматривать и проверять Автофикс второго пилота предложения, прежде чем применять их.
Для получения дополнительной информации об ограничениях Автофикс второго пилота, качестве предложений Автофикс второго пилота и о наилучшем способе устранения их ограничений см. Ответственное использование Автофикса Copilot для сканирования кода
Предоставьте отзыв
Вы можете оставить отзыв о GitHub Code Quality в обсуждении сообщества.
Дальнейшие шаги
Узнайте, как GitHub Code Quality работает в ветви по умолчанию, чтобы выявить проблемы с качеством кода и быстро понять работоспособность кода репозитория. См . раздел AUTOTITLE.