Перейти к основному содержимому

SonarQube

SonarQube анализирует твой код после каждого пуша и показывает проблемы.

Настройка не требуется​

Токен SONAR_TOKEN настроен платформой на уровне организации Gitea — анализ запускается автоматически при каждом пуше. Результаты смотри в sonarqube.simple-env.site (вход через Keycloak SSO).

Что означают метрики​

Bugs​

Реальные баги — код который точно или скорее всего работает неправильно.

# Пример бага: None не проверяется перед использованием
user = get_user(id)
print(user.name) # AttributeError если user = None

Vulnerabilities​

Уязвимости безопасности — SQL injection, XSS, hardcoded passwords и т.п.

# Уязвимость: hardcoded secret
SECRET_KEY = "mysecretkey123" # ❌ должно быть в env

Code Smells​

Плохие практики которые усложняют поддержку кода — длинные функции, дублирование, сложная логика.

Coverage​

Процент кода покрытый тестами. Цель — не ниже 50%.

Quality Gate​

Набор условий: если хоть одно не выполнено — Gate failed → деплой не происходит.

Как читать результат​

После пуша зайди в SonarQube → Projects → твой проект.

Зелёный Passed — всё хорошо, деплой прошёл.

Красный Failed — есть проблемы. Нажми на проект → увидишь список Issues с описанием и ссылкой на строку кода.

Типичные проблемы и решения​

"Add a default case to this switch"​

# ❌ Плохо
if status == 'active':
do_something()
elif status == 'inactive':
do_other()

# ✅ Хорошо — добавь else
if status == 'active':
do_something()
elif status == 'inactive':
do_other()
else:
raise ValueError(f"Unknown status: {status}")

"Remove this commented-out code"​

Удали закомментированный код — используй git history.

Coverage too low​

Напиши тесты. Минимум для прохождения gate — 50%.