feat(01-sonarqube-baseline): SonarQube configuration and quality baseline
Phase 1 complete: - sonar-project.properties configured for crmPRO - First scan: 88 files, 9356 LoC, 58 bugs, 1649 code smells, 0% coverage - Baseline documented with prioritized recommendations for Phase 2 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
56
.paul/PROJECT.md
Normal file
56
.paul/PROJECT.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# Project: crmPRO
|
||||
|
||||
## Description
|
||||
Autorski system CRM do zarządzania projektami, zadaniami, klientami, finansami i śledzeniem czasu pracy. Zbudowany w PHP + MySQL z Bootstrap, jQuery i własnym systemem szablonów.
|
||||
|
||||
## Core Value
|
||||
Użytkownicy mogą efektywnie zarządzać projektami, zadaniami i klientami w jednym systemie CRM.
|
||||
|
||||
## Current State
|
||||
|
||||
| Metric | Value | Source |
|
||||
|--------|-------|--------|
|
||||
| Version | v0.1.0 (in progress) | Milestone |
|
||||
| Status | Phase 1 complete, Phase 2 next | STATE.md |
|
||||
| Lines of Code | 9 356 | SonarQube baseline |
|
||||
| Bugs | 58 | SonarQube baseline |
|
||||
| Code Smells | 1 649 | SonarQube baseline |
|
||||
| Coverage | 0% | SonarQube baseline |
|
||||
| Technical Debt | ~127h | SonarQube baseline |
|
||||
| Reliability | D | SonarQube baseline |
|
||||
| Security | A | SonarQube baseline |
|
||||
|
||||
## Requirements
|
||||
|
||||
### Validated
|
||||
- ✓ SonarQube baseline — Phase 1: projekt skonfigurowany, skan wykonany, metryki udokumentowane
|
||||
|
||||
### Active
|
||||
- [ ] Naprawić 58 bugów (priorytet: 3 CRITICAL, 35 MAJOR)
|
||||
- [ ] Zredukować 780 CRITICAL code smells
|
||||
- [ ] Zwiększyć coverage z 0%
|
||||
- [ ] Zredukować technical debt (~127h)
|
||||
|
||||
### Out of Scope
|
||||
- (none yet)
|
||||
|
||||
## Constraints
|
||||
- PHP 7.4 na serwerze
|
||||
- SonarQube @ https://sonar.project-pro.pl
|
||||
|
||||
## Key Decisions
|
||||
|
||||
| Decision | Phase | Impact |
|
||||
|----------|-------|--------|
|
||||
| SonarQube URL: https://sonar.project-pro.pl | Phase 1 | Konfiguracja skanera |
|
||||
| Skan automatyczny CLI + MCP | Phase 1 | Nie wymaga ręcznego uruchomienia |
|
||||
|
||||
## Success Criteria
|
||||
- Użytkownicy mogą efektywnie zarządzać projektami, zadaniami i klientami w jednym systemie CRM
|
||||
- Reliability rating: A (currently D)
|
||||
- Technical debt < 50h (currently 127h)
|
||||
- Coverage > 30% (currently 0%)
|
||||
|
||||
---
|
||||
*Created: 2026-03-15*
|
||||
*Last updated: 2026-03-15 after Phase 1*
|
||||
80
.paul/ROADMAP.md
Normal file
80
.paul/ROADMAP.md
Normal file
@@ -0,0 +1,80 @@
|
||||
# Roadmap: crmPRO
|
||||
|
||||
## Overview
|
||||
Stabilizacja i poprawa jakości kodu crmPRO — identyfikacja i naprawa błędów, analiza jakości kodu przez SonarQube.
|
||||
|
||||
## Current Milestone
|
||||
**v0.1 Stabilizacja i jakość kodu** (v0.1.0)
|
||||
Status: In progress
|
||||
Phases: 1 of 4 complete
|
||||
|
||||
## Phases
|
||||
|
||||
| Phase | Name | Plans | Status | Completed |
|
||||
|-------|------|-------|--------|-----------|
|
||||
| 1 | Konfiguracja SonarQube i baseline | 1/1 | ✅ Complete | 2026-03-15 |
|
||||
| 2 | Naprawa błędów krytycznych | TBD | 🔵 Next | - |
|
||||
| 3 | Naprawa błędów głównych | TBD | Not started | - |
|
||||
| 4 | Poprawa pokrycia testami | TBD | Not started | - |
|
||||
|
||||
## Phase Details
|
||||
|
||||
### Phase 1: Konfiguracja SonarQube i baseline ✅
|
||||
|
||||
**Goal:** Skonfigurować projekt w SonarQube, uruchomić pierwszy skan i uzyskać baseline jakości kodu
|
||||
**Depends on:** Nothing (first phase)
|
||||
**Completed:** 2026-03-15
|
||||
|
||||
**Results:**
|
||||
- sonar-project.properties skonfigurowany
|
||||
- Pierwszy skan: 88 plików, 9356 LoC
|
||||
- Baseline: 58 bugs, 1649 code smells, 0% coverage, 5.6% duplikacji
|
||||
- Reliability: D, Security: A, Maintainability: A
|
||||
|
||||
**Plans:**
|
||||
- [x] 01-01: Konfiguracja SonarQube i analiza wyników pierwszego skanu
|
||||
|
||||
### Phase 2: Naprawa błędów krytycznych
|
||||
|
||||
**Goal:** Naprawić wszystkie bugs i vulnerabilities o priorytecie Critical/Blocker
|
||||
**Depends on:** Phase 1 (wyniki skanu)
|
||||
**Research:** Unlikely
|
||||
|
||||
**Scope (based on Phase 1 baseline):**
|
||||
- Naprawa 3 CRITICAL bugs i 35 MAJOR bugs
|
||||
- 17 Security Hotspots do review
|
||||
- Reskan po naprawach
|
||||
|
||||
**Plans:**
|
||||
- [ ] 02-01: TBD (na podstawie wyników Phase 1)
|
||||
|
||||
### Phase 3: Naprawa błędów głównych
|
||||
|
||||
**Goal:** Naprawić bugs o priorytecie Major i code smells wpływające na stabilność
|
||||
**Depends on:** Phase 2
|
||||
**Research:** Unlikely
|
||||
|
||||
**Scope:**
|
||||
- Naprawa Major bugs
|
||||
- Naprawa krytycznych code smells (S121: 664, S1192: 84, S3776: 24)
|
||||
- Reskan po naprawach
|
||||
|
||||
**Plans:**
|
||||
- [ ] 03-01: TBD (na podstawie wyników Phase 2)
|
||||
|
||||
### Phase 4: Poprawa pokrycia testami
|
||||
|
||||
**Goal:** Dodać testy dla kluczowych modułów zidentyfikowanych przez SonarQube
|
||||
**Depends on:** Phase 3
|
||||
**Research:** Unlikely
|
||||
|
||||
**Scope:**
|
||||
- Testy dla modułów o najniższym pokryciu
|
||||
- Testy regresji dla naprawionych bugów
|
||||
|
||||
**Plans:**
|
||||
- [ ] 04-01: TBD (na podstawie wyników Phase 3)
|
||||
|
||||
---
|
||||
*Roadmap created: 2026-03-15*
|
||||
*Last updated: 2026-03-15 — Phase 1 complete*
|
||||
55
.paul/STATE.md
Normal file
55
.paul/STATE.md
Normal file
@@ -0,0 +1,55 @@
|
||||
# Project State
|
||||
|
||||
## Project Reference
|
||||
|
||||
See: .paul/PROJECT.md (updated 2026-03-15)
|
||||
|
||||
**Core value:** Użytkownicy mogą efektywnie zarządzać projektami, zadaniami i klientami w jednym systemie CRM
|
||||
**Current focus:** Faza 2 — Naprawa błędów krytycznych
|
||||
|
||||
## Current Position
|
||||
|
||||
Milestone: v0.1 Stabilizacja i jakość kodu
|
||||
Phase: 2 of 4 (Naprawa błędów krytycznych) — Not started
|
||||
Plan: Not started
|
||||
Status: Ready to plan
|
||||
Last activity: 2026-03-15 — Phase 1 complete, transitioned to Phase 2
|
||||
|
||||
Progress:
|
||||
- Milestone: [██░░░░░░░░] 25%
|
||||
- Phase 2: [░░░░░░░░░░] 0%
|
||||
|
||||
## Loop Position
|
||||
|
||||
Current loop state:
|
||||
```
|
||||
PLAN ──▶ APPLY ──▶ UNIFY
|
||||
○ ○ ○ [Ready to plan Phase 2]
|
||||
```
|
||||
|
||||
## Accumulated Context
|
||||
|
||||
### Decisions
|
||||
- 2026-03-15: SonarQube URL = https://sonar.project-pro.pl (nie localhost)
|
||||
- 2026-03-15: Skan automatyczny via sonar-scanner CLI + MCP do odczytu wyników
|
||||
|
||||
### Deferred Issues
|
||||
None yet.
|
||||
|
||||
### Blockers/Concerns
|
||||
None.
|
||||
|
||||
### Git State
|
||||
Last commit: (pending phase commit)
|
||||
Branch: main
|
||||
Feature branches merged: none
|
||||
|
||||
## Session Continuity
|
||||
|
||||
Last session: 2026-03-15
|
||||
Stopped at: Phase 1 complete, ready to plan Phase 2
|
||||
Next action: /paul:plan for Phase 2
|
||||
Resume file: .paul/ROADMAP.md
|
||||
|
||||
---
|
||||
*STATE.md — Updated after every significant action*
|
||||
142
.paul/phases/01-sonarqube-baseline/01-01-PLAN.md
Normal file
142
.paul/phases/01-sonarqube-baseline/01-01-PLAN.md
Normal file
@@ -0,0 +1,142 @@
|
||||
---
|
||||
phase: 01-sonarqube-baseline
|
||||
plan: 01
|
||||
type: execute
|
||||
wave: 1
|
||||
depends_on: []
|
||||
files_modified: [sonar-project.properties]
|
||||
autonomous: false
|
||||
---
|
||||
|
||||
<objective>
|
||||
## Goal
|
||||
Skonfigurować projekt crmPRO w SonarQube, uruchomić pierwszy skan i udokumentować baseline jakości kodu.
|
||||
|
||||
## Purpose
|
||||
Uzyskanie obiektywnej oceny stanu kodu — lista bugów, vulnerabilities, code smells i duplikacji. Baseline posłuży jako punkt odniesienia dla kolejnych faz naprawczych.
|
||||
|
||||
## Output
|
||||
- `sonar-project.properties` — konfiguracja projektu dla SonarQube
|
||||
- `.paul/phases/01-sonarqube-baseline/01-01-SUMMARY.md` — udokumentowany baseline
|
||||
</objective>
|
||||
|
||||
<context>
|
||||
## Project Context
|
||||
@.paul/PROJECT.md
|
||||
@.paul/ROADMAP.md
|
||||
@.paul/STATE.md
|
||||
|
||||
## Source Files
|
||||
@index.php
|
||||
@autoload/ (główny kod PHP)
|
||||
@templates/ (szablony)
|
||||
@tests/ (testy)
|
||||
</context>
|
||||
|
||||
<acceptance_criteria>
|
||||
|
||||
## AC-1: Konfiguracja SonarQube
|
||||
```gherkin
|
||||
Given projekt crmPRO bez konfiguracji SonarQube
|
||||
When utworzony zostanie plik sonar-project.properties z poprawnymi ścieżkami źródeł
|
||||
Then SonarQube Scanner może przeskanować projekt bez błędów konfiguracji
|
||||
```
|
||||
|
||||
## AC-2: Pierwszy skan zakończony
|
||||
```gherkin
|
||||
Given skonfigurowany projekt w SonarQube
|
||||
When użytkownik uruchomi sonar-scanner
|
||||
Then skan zakończy się sukcesem i wyniki będą widoczne w SonarQube
|
||||
```
|
||||
|
||||
## AC-3: Baseline udokumentowany
|
||||
```gherkin
|
||||
Given zakończony pierwszy skan
|
||||
When wyniki zostaną przeanalizowane
|
||||
Then SUMMARY.md zawiera liczbę bugów, vulnerabilities, code smells, pokrycie i duplikacje
|
||||
```
|
||||
|
||||
</acceptance_criteria>
|
||||
|
||||
<tasks>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 1: Utworzenie sonar-project.properties</name>
|
||||
<files>sonar-project.properties</files>
|
||||
<action>
|
||||
Utworzyć plik sonar-project.properties w katalogu głównym projektu:
|
||||
- projectKey: crmPRO (zgodny z .paul/config.md)
|
||||
- projectName: crmPRO
|
||||
- sources: autoload, templates (główne katalogi z kodem PHP)
|
||||
- tests: tests
|
||||
- exclusions: vendor/**, node_modules/**, .paul/**, *.min.js, *.min.css
|
||||
- sourceEncoding: UTF-8
|
||||
- language: php
|
||||
- php.version: 7.4
|
||||
</action>
|
||||
<verify>Plik sonar-project.properties istnieje i zawiera poprawne ścieżki</verify>
|
||||
<done>AC-1 satisfied: Konfiguracja SonarQube gotowa do skanu</done>
|
||||
</task>
|
||||
|
||||
<task type="checkpoint:human-action" gate="blocking">
|
||||
<what-to-do>
|
||||
Uruchom skan SonarQube:
|
||||
1. Upewnij się, że serwer SonarQube działa (http://localhost:9000 lub Twój adres)
|
||||
2. Utwórz projekt "crmPRO" w SonarQube UI jeśli nie istnieje
|
||||
3. Uruchom w katalogu projektu: sonar-scanner
|
||||
4. Poczekaj na zakończenie skanu
|
||||
5. Podaj wyniki z dashboardu SonarQube (lub wklej output skanera)
|
||||
</what-to-do>
|
||||
<resume-signal>Wklej wyniki skanu lub podaj link do dashboardu. Wpisz "done" jeśli skan zakończony.</resume-signal>
|
||||
</task>
|
||||
|
||||
<task type="auto">
|
||||
<name>Task 3: Dokumentacja baseline w SUMMARY.md</name>
|
||||
<files>.paul/phases/01-sonarqube-baseline/01-01-SUMMARY.md</files>
|
||||
<action>
|
||||
Na podstawie wyników skanu od użytkownika:
|
||||
- Udokumentować metryki baseline (bugs, vulnerabilities, code smells, coverage, duplications)
|
||||
- Wylistować issues pogrupowane po severity (CRITICAL, MAJOR, MINOR)
|
||||
- Zidentyfikować pliki z największą liczbą problemów
|
||||
- Zapisać rekomendacje dla Phase 2 (co naprawić najpierw)
|
||||
</action>
|
||||
<verify>SUMMARY.md zawiera kompletne metryki i rekomendacje</verify>
|
||||
<done>AC-3 satisfied: Baseline udokumentowany z rekomendacjami</done>
|
||||
</task>
|
||||
|
||||
</tasks>
|
||||
|
||||
<boundaries>
|
||||
|
||||
## DO NOT CHANGE
|
||||
- autoload/** (żaden kod źródłowy nie jest modyfikowany w tej fazie)
|
||||
- templates/** (żadne szablony nie są modyfikowane)
|
||||
- config.php (konfiguracja aplikacji)
|
||||
- index.php (punkt wejścia)
|
||||
|
||||
## SCOPE LIMITS
|
||||
- Ta faza to TYLKO konfiguracja i analiza — żadne naprawy kodu
|
||||
- Nie modyfikujemy istniejącego kodu
|
||||
- Nie dodajemy nowych zależności
|
||||
|
||||
</boundaries>
|
||||
|
||||
<verification>
|
||||
Before declaring plan complete:
|
||||
- [ ] sonar-project.properties istnieje z poprawnymi ścieżkami
|
||||
- [ ] Skan SonarQube zakończony sukcesem
|
||||
- [ ] SUMMARY.md zawiera metryki baseline
|
||||
- [ ] Zidentyfikowane priorytety dla Phase 2
|
||||
- [ ] All acceptance criteria met
|
||||
</verification>
|
||||
|
||||
<success_criteria>
|
||||
- sonar-project.properties skonfigurowany poprawnie
|
||||
- Pierwszy skan zakończony bez błędów
|
||||
- Baseline udokumentowany w SUMMARY.md
|
||||
- Rekomendacje dla Phase 2 przygotowane
|
||||
</success_criteria>
|
||||
|
||||
<output>
|
||||
After completion, create `.paul/phases/01-sonarqube-baseline/01-01-SUMMARY.md`
|
||||
</output>
|
||||
172
.paul/phases/01-sonarqube-baseline/01-01-SUMMARY.md
Normal file
172
.paul/phases/01-sonarqube-baseline/01-01-SUMMARY.md
Normal file
@@ -0,0 +1,172 @@
|
||||
---
|
||||
phase: 01-sonarqube-baseline
|
||||
plan: 01
|
||||
subsystem: infra
|
||||
tags: [sonarqube, quality, baseline, php]
|
||||
|
||||
requires:
|
||||
- phase: none
|
||||
provides: first phase, no dependencies
|
||||
provides:
|
||||
- SonarQube project configuration for crmPRO
|
||||
- Quality baseline metrics (bugs, smells, coverage, duplications)
|
||||
- Prioritized recommendations for Phase 2
|
||||
affects: [02-critical-bugs-fix, 03-code-smells-reduction]
|
||||
|
||||
tech-stack:
|
||||
added: [sonar-scanner]
|
||||
patterns: [sonarqube-integration]
|
||||
|
||||
key-files:
|
||||
created: [sonar-project.properties]
|
||||
modified: []
|
||||
|
||||
key-decisions:
|
||||
- "SonarQube URL: https://sonar.project-pro.pl (not localhost)"
|
||||
- "Skan automated via sonar-scanner CLI + MCP for results"
|
||||
|
||||
patterns-established:
|
||||
- "SonarQube MCP for reading metrics programmatically"
|
||||
|
||||
duration: ~15min
|
||||
started: 2026-03-15
|
||||
completed: 2026-03-15
|
||||
---
|
||||
|
||||
# Phase 1 Plan 01: SonarQube Baseline Summary
|
||||
|
||||
**Skonfigurowano SonarQube dla crmPRO, wykonano pierwszy skan (88 plików PHP), udokumentowano baseline: 58 bugs, 1649 code smells, 0% coverage, 5.6% duplikacji**
|
||||
|
||||
## Performance
|
||||
|
||||
| Metric | Value |
|
||||
|--------|-------|
|
||||
| Duration | ~15 min |
|
||||
| Started | 2026-03-15 |
|
||||
| Completed | 2026-03-15 |
|
||||
| Tasks | 3 completed |
|
||||
| Files created | 1 (sonar-project.properties) |
|
||||
|
||||
## Acceptance Criteria Results
|
||||
|
||||
| Criterion | Status | Notes |
|
||||
|-----------|--------|-------|
|
||||
| AC-1: Konfiguracja SonarQube | Pass | sonar-project.properties z poprawnym URL, ścieżkami, exclusions |
|
||||
| AC-2: Pierwszy skan zakończony | Pass | 88 plików przeskanowanych, wyniki na dashboardzie |
|
||||
| AC-3: Baseline udokumentowany | Pass | Pełne metryki, rozkład issues, rekomendacje |
|
||||
|
||||
## Accomplishments
|
||||
|
||||
- Skonfigurowano projekt crmPRO w SonarQube (sonar-project.properties)
|
||||
- Wykonano pierwszy skan: 88 plików PHP, 9356 linii kodu
|
||||
- Udokumentowano baseline jakości z priorytetami napraw
|
||||
|
||||
## Files Created/Modified
|
||||
|
||||
| File | Change | Purpose |
|
||||
|------|--------|---------|
|
||||
| `sonar-project.properties` | Created | Konfiguracja SonarQube Scanner |
|
||||
|
||||
## Baseline Metrics
|
||||
|
||||
| Metryka | Wartość |
|
||||
|---------|--------|
|
||||
| Lines of Code (ncloc) | 9 356 |
|
||||
| Bugs | 58 |
|
||||
| Vulnerabilities | 0 |
|
||||
| Security Hotspots | 17 |
|
||||
| Code Smells | 1 649 |
|
||||
| Coverage | 0.0% |
|
||||
| Duplicated Lines | 5.6% |
|
||||
| Technical Debt | 7 628 min (~127h) |
|
||||
| Reliability Rating | D (4.0) |
|
||||
| Security Rating | A (1.0) |
|
||||
| Maintainability Rating | A (1.0) |
|
||||
|
||||
## Issues wg Severity
|
||||
|
||||
| Severity | Ilość |
|
||||
|----------|-------|
|
||||
| BLOCKER | 0 |
|
||||
| CRITICAL | 780 |
|
||||
| MAJOR | 144 |
|
||||
| MINOR | 783 |
|
||||
| **RAZEM** | **1 707** |
|
||||
|
||||
## Top 10 plików z największą liczbą issues
|
||||
|
||||
| Plik | Issues |
|
||||
|------|--------|
|
||||
| autoload/Domain/Tasks/MailToTaskImporter.php | 225 |
|
||||
| autoload/factory/class.Tasks.php | 207 |
|
||||
| autoload/controls/class.Tasks.php | 154 |
|
||||
| autoload/factory/class.Projects.php | 146 |
|
||||
| autoload/factory/class.Cron.php | 112 |
|
||||
| autoload/class.S.php | 48 |
|
||||
| autoload/Domain/Tasks/TaskAttachmentRepository.php | 43 |
|
||||
| autoload/controls/class.Projects.php | 41 |
|
||||
| autoload/Controllers/UsersController.php | 36 |
|
||||
| autoload/factory/class.Finances.php | 33 |
|
||||
|
||||
## Top reguły CRITICAL (780 issues)
|
||||
|
||||
| Reguła | Ilość | Opis |
|
||||
|--------|-------|------|
|
||||
| php:S121 | 664 | Brak klamer wokół zagnieżdżonych instrukcji |
|
||||
| php:S1192 | 84 | Zduplikowane literały string |
|
||||
| php:S3776 | 24 | Zbyt złożone funkcje (cognitive complexity) |
|
||||
| php:S3973 | 3 | Warunkowe instrukcje bez klamer |
|
||||
| Web:S7930 | 3 | Problemy z szablonami HTML |
|
||||
|
||||
## Decisions Made
|
||||
|
||||
| Decision | Rationale | Impact |
|
||||
|----------|-----------|--------|
|
||||
| SonarQube URL = https://sonar.project-pro.pl | MCP config wskazywał ten adres, nie localhost | sonar-project.properties skonfigurowany poprawnie |
|
||||
| Skan automatyczny (CLI + MCP) | sonar-scanner dostępny w PATH, MCP do odczytu wyników | Nie wymaga ręcznego uruchomienia |
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
| Type | Count | Impact |
|
||||
|------|-------|--------|
|
||||
| Auto-fixed | 1 | Zmiana URL z localhost:9000 na właściwy adres |
|
||||
| Scope additions | 0 | - |
|
||||
| Deferred | 0 | - |
|
||||
|
||||
**Total impact:** Minimalna dewiacja — poprawka URL, plan wykonany zgodnie ze specyfikacją.
|
||||
|
||||
## Rekomendacje dla Phase 2
|
||||
|
||||
### Priorytet 1: Bugi (58)
|
||||
- 35 bugów MAJOR (return z void, self-assignment)
|
||||
- Accessibility issues w templates/finances/
|
||||
|
||||
### Priorytet 2: Critical Code Smells (780)
|
||||
- S121 (664): Dodanie klamer — niski risk, automatyzowalne
|
||||
- S1192 (84): Ekstrakcja stringów do stałych
|
||||
- S3776 (24): Refactoring złożonych funkcji
|
||||
|
||||
### Priorytet 3: Coverage
|
||||
- 0% — testy do krytycznych flow
|
||||
|
||||
### Pliki priorytetowe
|
||||
1. `MailToTaskImporter.php` — 225 issues, nowy kod Domain
|
||||
2. `factory/class.Tasks.php` — 207 issues, legacy aktywny
|
||||
3. `controls/class.Tasks.php` — 154 issues, w trakcie migracji
|
||||
|
||||
## Next Phase Readiness
|
||||
|
||||
**Ready:**
|
||||
- Baseline udokumentowany, dashboard SonarQube dostępny
|
||||
- Priorytety napraw zdefiniowane na podstawie danych
|
||||
|
||||
**Concerns:**
|
||||
- 127h technical debt — wymaga stopniowego adresowania
|
||||
- Coverage 0% — brak safety net przed refactoringiem
|
||||
|
||||
**Blockers:**
|
||||
- None
|
||||
|
||||
---
|
||||
*Phase: 01-sonarqube-baseline, Plan: 01*
|
||||
*Completed: 2026-03-15*
|
||||
19
sonar-project.properties
Normal file
19
sonar-project.properties
Normal file
@@ -0,0 +1,19 @@
|
||||
# SonarQube Configuration for crmPRO
|
||||
sonar.host.url=https://sonar.project-pro.pl
|
||||
sonar.projectKey=crmPRO
|
||||
sonar.projectName=crmPRO
|
||||
sonar.projectVersion=0.1
|
||||
|
||||
# Source directories
|
||||
sonar.sources=autoload,templates
|
||||
sonar.tests=tests
|
||||
|
||||
# Exclusions
|
||||
sonar.exclusions=vendor/**,node_modules/**,.paul/**,*.min.js,*.min.css
|
||||
|
||||
# Encoding
|
||||
sonar.sourceEncoding=UTF-8
|
||||
|
||||
# Language
|
||||
sonar.language=php
|
||||
sonar.php.version=7.4
|
||||
Reference in New Issue
Block a user