SonarQube kod kalitesi ve güvenlik analizi logosu

SonarQube

Kod kalitesi ve güvenlik analizi aracı.

SonarQube Nedir?

SonarQube; Clean Code ilkeleri doğrultusunda kodunuza statik analiz uygular, bugs, vulnerabilities, code smells, coverage ve duplications gibi metrikleri ölçer. Quality Gate ile ekiplerin minimum kalite eşiğini korumasına yardımcı olur, Security Hotspots ve kurallar (rules) ile güvenlik risklerini görünür kılar.

NUVIA’da SonarQube; monorepo ve mikroservis projelerinde merkezi kalite politikası, PR bazlı analiz ve build kırma (fail the build) mekanizmasıyla kullanılır.

Ölçümler ve Göstergeler

Quality Gate & Quality Profile

Kurulum & Entegrasyon

Sunucu, Docker imajı ile hızlıca başlatılabilir; analiz için SonarScanner, Maven/Gradle eklentileri veya .NET Scanner kullanılır.

# Docker ile SonarQube (örnek)
docker run -d --name sonarqube -p 9000:9000 sonarqube:lts
# sonar-project.properties (JS/TS örneği)
sonar.projectKey=org_app_web
sonar.sources=src
sonar.tests=src
sonar.test.inclusions=**/*.test.ts,**/*.spec.ts
sonar.javascript.lcov.reportPaths=coverage/lcov.info
sonar.exclusions=**/*.min.js,**/dist/**

CI/CD Entegrasyon Örnekleri

GitHub Actions

# .github/workflows/sonarqube.yml
name: SonarQube
on: [pull_request, push]
jobs:
  analyze:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with: { node-version: '20' }
      - run: npm ci && npm test -- --ci && npm run build && npm run coverage
      - name: SonarScanner
        run: |
          curl -sSLo scanner.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip
          unzip -q scanner.zip
          ./sonar-scanner-*/bin/sonar-scanner             -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }}             -Dsonar.login=${{ secrets.SONAR_TOKEN }}

Azure DevOps Pipelines

# Özet: Hazır görevlerle üç adım
# 1) Prepare Analysis Configuration
# 2) Run Code Analysis
# 3) Publish Quality Gate Result
# (Kurulum için SonarQube hizmet bağlantısı gerekir.)

En İyi Uygulamalar

Resmî Kaynaklar

Sık Sorulanlar

Coverage neden görünmüyor?

Test aracı LCOV/JaCoCo gibi bir rapor üretmeli ve yolunu sonar.javascript.lcov.reportPaths veya dilinize uygun anahtar ile iletmelisiniz.

SonarQube vs SonarCloud?

SonarQube kendi sunucunuzda barındırılır; SonarCloud SaaS sürümüdür. Kurumsal regülasyon ve veri mahremiyeti ihtiyaçlarına göre seçim yapılır.