Skip to main content

Справочник по метрикам и рейтингам

Поймите терминологию, используемую для GitHub оценки качества кода вашего репозитория.

Примечание.

GitHub Code Quality в настоящее время находится в Публичный предварительный просмотр и может быть изменен. Во время Публичный предварительный просмотр, Code Quality не будут оплачиваться, хотя Code Quality сканирование займет GitHub Actions минут.

В этой статье приведены определения метрик и рейтингов, используемых .Code Quality

Вы можете увидеть результаты на основе правил для вашего репозитория на вкладке Security and quality , в Стандартные выводы вкладке под " Качество кода.

Определения метрик

В следующей таблице приведены определения для каждой метрики, которая сообщается для репозитория.

Единица измеренияDefinitionПримеры выводов
НадёжностьОцените, выполняет ли код свою предназначенную функцию правильно, предсказуемо и последовательно. Надежный код не содержит ошибок, безопасно обрабатывает ошибки и работает должным образом в нормальных и пограничных условиях.Проблемы с производительностью, параллелизмом, обработкой ошибок, корректностью, проектированием API, доступностью, интернационализацией или безопасностью
РемонтопригодностьОцените, насколько легко понять, изменить и расширить код с течением времени. Поддерживаемый код следует передовым практикам, позволяет избежать ненужной сложности и организован таким образом, чтобы упростить будущие изменения и совместную работу.Неиспользование лучших практик, неиспользуемый/мертвый код, дублирующийся код, сложность, логическая избыточность, неадекватная документация, проблемы с зависимостями

Уровни серьезности

Уровни серьезности используются для указания потенциального влияния или срочности определения качества кода. Они помогают пользователям расставлять приоритеты в усилиях по устранению неполадок и сообщать заинтересованным сторонам о рисках. Серьёзность определяется правилом, которое выявило проблему, в соответствии с CodeQL традициями и отраслевыми стандартами.

SeverityDefinition
ErrorУказывает на проблему высокой степени серьезности, которая может привести к ошибкам, сбоям или серьезным рискам удобства обслуживания.
ПредупреждениеУказывает на проблему средней степени серьезности, которая может повлиять на качество или надежность кода, но не является критической в данный момент.
Примечание.Указывает на проблему низкой степени серьезности, незначительное улучшение или рекомендацию. Эти результаты полезны для поддержания работоспособности и удобства сопровождения кода.

Определения рейтингов

Эти рейтинги используются для суммирования общей надёжности и поддерживаемости репозитория на основе серьёзности результатов, основанных на правилах, обнаруженных при CodeQL сканировании полной ветки по умолчанию:

RatingDefinitionКритерии (на основе полученных данных)
отличныеCodebase демонстрирует передовые методы обеспечения надежности и удобства обслуживания.Не обнаружено никаких данных о качестве кода
ХорошийВ Codebase есть проблемы с низким уровнем серьезности или предлагаются незначительные улучшения.≥1 Определение уровня "Примечание"
ЯрмаркаВ Codebase есть проблемы средней степени серьезности, которые могут повлиять на качество, но не являются критическими.≥1 Определение уровня "Предупреждение"
Нуждается в доработкеCodebase имеет проблемы высокой степени серьезности, включая ошибки или серьезные риски удобства обслуживания.≥1 Определение уровня "Ошибка"

Покрытие кода

Покрытие кода измеряет, какой процент исходного кода выполняется во время запуска тестового набора. Code Quality показывает процент покрытия на pull requests после загрузки отчёта Cobertura XML покрытия.

Как рассчитывается покрытие

Процент покрытия — это количество покрываемых линий, делённое на общее количество линий, выраженное в процентах. Code Quality хранит последнюю загрузку для каждого филиала (включая стандартную ветку) и сравнивает покрытие филиала PR с покрытием по умолчанию.

Например, если ваш филиал по умолчанию имеет 44% покрытия, а PR — 65%, то PR получил 21 процентный пункт покрытия.

Дельта по файлу

Разбивка по файлам pull requests показывает, как менялось покрытие для каждого изменённого файла. Положительная дельта означает, что файл получил покрытие на ветке PR по сравнению с стандартной.

Чтобы настроить покрытие кода для вашего репозитория, смотрите Setting up code coverage for your repository.

Дополнительные материалы