# =============================================================================
# SonarQube 연동 설정 (sonar-project.properties)
# 각 프로젝트 루트에 복사 후 projectKey, sources 등 수정
# =============================================================================

# ── 프로젝트 기본 정보 ────────────────────────────────────────────────────────
sonar.projectKey=guardia-itsm
sonar.projectName=GUARDiA ITSM
sonar.projectVersion=1.0.0

# ── 소스 경로 ────────────────────────────────────────────────────────────────
# Java Maven/Gradle: src/main/java
# Node.js: src
sonar.sources=src/main/java
sonar.tests=src/test/java

# ── 인코딩 ───────────────────────────────────────────────────────────────────
sonar.sourceEncoding=UTF-8

# ── Java 설정 ────────────────────────────────────────────────────────────────
sonar.java.source=17
sonar.java.target=17

# 바이트코드 경로 (컴파일된 클래스)
sonar.java.binaries=target/classes,build/classes
sonar.java.libraries=target/dependency/*.jar,build/libs/dependency/*.jar

# ── 테스트 커버리지 ───────────────────────────────────────────────────────────
# JaCoCo 리포트 경로
sonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml,build/reports/jacoco/test/jacocoTestReport.xml

# Surefire 테스트 결과
sonar.junit.reportPaths=target/surefire-reports,build/test-results/test

# ── 제외 경로 ────────────────────────────────────────────────────────────────
sonar.exclusions=\
    **/generated/**,\
    **/*Test.java,\
    **/*Tests.java,\
    **/test/**,\
    **/config/**,\
    **/*Config.java,\
    **/Application.java,\
    **/dto/**,\
    **/entity/**,\
    **/model/**

sonar.test.exclusions=\
    **/test/**

sonar.coverage.exclusions=\
    **/dto/**,\
    **/entity/**,\
    **/model/**,\
    **/config/**,\
    **/*Application.java

# ── 중복 코드 검사 제외 ────────────────────────────────────────────────────────
sonar.cpd.exclusions=\
    **/dto/**,\
    **/entity/**

# ── 품질 게이트 설정 (SonarQube 서버에서 관리) ────────────────────────────────
# 아래 항목은 참고용 — 실제 Quality Gate는 SonarQube UI에서 설정
# 신규 코드 기준:
#   - 커버리지: 80% 이상
#   - 중복 코드: 3% 이하
#   - 보안 취약점: 0개
#   - 버그: 0개 (Critical/Blocker)
#   - 코드 냄새: A등급

# ── Node.js 전용 설정 (package.json 프로젝트) ──────────────────────────────────
# sonar.sources=src
# sonar.tests=src
# sonar.test.inclusions=**/*.test.js,**/*.spec.js,**/*.test.ts,**/*.spec.ts
# sonar.javascript.lcov.reportPaths=coverage/lcov.info
# sonar.typescript.lcov.reportPaths=coverage/lcov.info

# ── SonarQube 서버 연결 ────────────────────────────────────────────────────────
# Jenkins의 withSonarQubeEnv()를 사용할 경우 자동 주입되므로 아래 설정 불필요
# sonar.host.url=http://sonar.agency.go.kr:9000
# sonar.login=<token>

# ── 브랜치 분석 (Developer Edition 이상) ─────────────────────────────────────
# sonar.branch.name=${env.BRANCH_NAME}
# sonar.branch.target=main
