Qu’est-ce que SonarQube ?
SonarQube est une plateforme open-source développée par SonarSource pour l’inspection continue de la qualité du code. Elle effectue une analyse statique du code pour détecter les bogues, les “code smells” (mauvaises pratiques de codage) et les vulnérabilités de sécurité dans plus de 25 langages de programmation. SonarQube s’intègre à votre flux de travail existant (pipelines CI/CD) et fournit aux développeurs un tableau de bord complet pour identifier et corriger les problèmes, garantissant un code propre, sûr et maintenable.
Fonctionnalités Clés
- Support Multi-Langage : Analyse une large gamme de langages, y compris Java, C#, Python, JavaScript, C++, et plus encore.
- Détection des Vulnérabilités de Sécurité : Identifie les failles de sécurité courantes telles que l’injection SQL, le cross-site scripting (XSS) et d’autres vulnérabilités du Top 10 de l’OWASP.
- Métriques de Qualité du Code : Suit des métriques clés comme la complexité du code, la duplication et la couverture de test pour maintenir un haut niveau de santé du code.
- Intégration CI/CD : S’intègre de manière transparente avec des outils CI/CD populaires comme Jenkins, Azure DevOps, GitLab et GitHub Actions pour automatiser l’analyse du code.
- Quality Gates (Portails de Qualité) : Vous permet de définir un ensemble de conditions que votre projet doit remplir avant de pouvoir être publié, empêchant le mauvais code d’atteindre la production.
- Intégration IDE : Fournit des plugins pour les IDE comme IntelliJ IDEA, VS Code et Eclipse, permettant aux développeurs de corriger les problèmes avant de valider leur code.
Cas d’Utilisation
- Intégration Continue/Déploiement Continu (CI/CD) : Analyser automatiquement chaque pull request et chaque nouvelle ligne de code pour détecter les problèmes tôt dans le processus de développement.
- Audits de Sécurité : Effectuer des analyses de sécurité complètes sur les applications pour identifier et corriger les vulnérabilités avant le déploiement.
- Refactorisation de Code Hérité : Évaluer la qualité d’une base de code existante pour prioriser et gérer la dette technique.
- Application des Normes de Codage : S’assurer que tous les développeurs d’une équipe respectent un ensemble cohérent de normes de codage et de meilleures pratiques.
Pour Commencer
Pour démarrer avec SonarQube, il faut généralement exécuter un serveur SonarQube et un scanner. Docker est le moyen le plus simple d’exécuter le serveur pour un essai.
- Exécuter le serveur SonarQube avec Docker :
docker run -d --name sonarqube -p 9000:9000 sonarqube:latestAccédez au serveur à l’adresse
http://localhost:9000. -
Exécuter le SonarScanner sur un projet : Téléchargez et configurez le SonarScanner pour votre projet. Pour un projet Java simple, vous créeriez un fichier
sonar-project.properties:# doit être unique dans une instance SonarQube donnée sonar.projectKey=my-java-project # --- propriétés optionnelles --- sonar.projectName=My Java Project sonar.projectVersion=1.0 # le chemin est relatif au fichier sonar-project.properties. sonar.sources=. # encodage du code source. La valeur par défaut est l'encodage système par défaut sonar.sourceEncoding=UTF-8 - Exécuter l’analyse :
Depuis le répertoire racine de votre projet, exécutez la commande du scanner :
sonar-scannerUne fois l’analyse terminée, les résultats seront disponibles sur votre tableau de bord SonarQube.
Tarification
SonarQube propose un modèle Freemium :
- Community Edition : Gratuite et open-source, offrant une analyse statique pour plus de 15 langages.
- Developer Edition : Un abonnement payant qui ajoute des fonctionnalités comme l’analyse des pull requests et l’analyse pour des langages comme Swift et Objective-C.
- Enterprise Edition : Un abonnement payant conçu pour les grandes organisations, offrant des fonctionnalités de sécurité avancées, la gestion de portefeuille et des rapports.
- Data Center Edition : Pour les déploiements critiques, offrant une haute disponibilité et une évolutivité.