G-1: 메신저 Webhook Relay + _send_to_room 실제 httpx 호출 구현 G-2: POST /api/tasks/bulk SR 대량작업 엔드포인트 (최대 100건) G-3: 라이선스 만료 알림 스케줄러 (매일 09:00 KST) G-4: 체험판 upgrade_banner 필드 + license.py 배너 로직 G-5: core/auto_rca.py + incidents/problem auto-rca 엔드포인트 G-6: core/deploy_impact.py + vibe impact-analysis 엔드포인트 G-7: core/ticket_classifier.py + SR 생성 시 AI 분류 + ai-suggestion API G-8: VulnPatchRecord 모델 + vuln_scan 패치추적 4개 엔드포인트 G-9: core/jira_sync.py + gateway Jira/Confluence 연동 엔드포인트 G-10: core/push_notify.py + routers/push.py + PushSubscription 모델 G-11: approvals 다중승인 (위임/서명/기한초과/마감연장) G-12: alembic.ini + migrations/ + cicd/migrate_to_postgres.sh 하네스: guardia-orchestrator 확장기능 Phase 반영 봇명령어: /sr /status /license /bulk 슬래시 명령어 추가 설치스크립트: setup/ (Ubuntu, CentOS, RHEL, Windows) --test 옵션 포함 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
87 lines
4.2 KiB
Properties
87 lines
4.2 KiB
Properties
# =============================================================================
|
|
# 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
|