SKILL.md
sonarqube
SonarQube analiza el código Python en busca de code smells, complejidad ciclomática elevada, duplicación de código y coverage insuficiente. El Quality Gate bloquea merges que degradan la calidad del código.
When to use
Implementar en la segunda iteración del proyecto, cuando ya hay tests y un pipeline CI/CD básico funcionando. SonarQube es complementario a ruff/mypy — detecta problemas de diseño que el linting no ve.
Instructions
- Arrancar SonarQube con Docker:
``yaml sonarqube: image: sonarqube:community ports: ["9000:9000"] volumes: - sonardata:/opt/sonarqube/data - sonarextensions:/opt/sonarqube/extensions ``
- Crear proyecto
kyc-systemen la UI de SonarQube, obtener token. - Instalar scanner:
pip install sonar-scannero usar la acción de GitHub. - Configurar
sonar-project.properties:
``properties sonar.projectKey=kyc-system sonar.sources=backend/ sonar.tests=backend/tests/ sonar.python.coverage.reportPaths=coverage.xml sonar.python.version=3.11 ``
- En CI:
sonar-scanner -Dsonar.host.url=http://sonarqube:9000 -Dsonar.token=$SONAR_TOKEN - Configurar Quality Gate: fallar si coverage < 80%, duplicación > 3%, o hay issues bloqueantes nuevos.
Notes
- SonarQube Community es gratuito y self-hosted. Para análisis de PRs individuales se necesita Developer Edition.
- Los code smells más relevantes para este proyecto: métodos con demasiados parámetros (señal de necesidad de refactoring), complejidad cognitiva > 15 en funciones de decisión.