-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathsonar-project.properties
More file actions
74 lines (61 loc) · 3.05 KB
/
Copy pathsonar-project.properties
File metadata and controls
74 lines (61 loc) · 3.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# SonarQube Configuration for Airo Super App
# Project identification
# Must match the project as registered in SonarCloud, not an aspirational
# name -- this project was previously analyzed via Automatic Analysis
# under the GitHub App's default key/org, DevelopersCoffee_airo /
# developerscoffee. A mismatched key here makes the scanner try to
# create/target a nonexistent project instead of the real one.
sonar.projectKey=DevelopersCoffee_airo
sonar.projectName=Airo Super App
sonar.projectVersion=1.0.0
# Source code location
# Scope the quality gate to the application source whose tests produce the
# uploaded coverage report. Repository policy checks cover workflows, docs,
# scripts, generated bridges, and package boundaries separately; including
# those non-app files here diluted Dart coverage and counted generated Rust
# bridge duplication as authored application code.
sonar.sources=app/lib
sonar.tests=app/test
sonar.sourceEncoding=UTF-8
# Dart/Flutter specific settings
# sonar.dart.coverage.reportPath is not a real SonarQube property --
# SonarCloud has no built-in Dart coverage sensor, so it was silently
# ignored and the "Zero Coverage Sensor" marked every coverable Dart
# line as uncovered regardless of what CI actually ran. lcov.info is
# converted to SonarQube's documented Generic Test Coverage XML format
# (scripts/lcov_to_sonar_generic_coverage.py, wired in ci.yml's
# test-app job) and imported via the real, sensor-agnostic property
# below instead.
sonar.coverageReportPaths=app/coverage/sonar-generic-coverage.xml
sonar.dart.analysis.reportPath=app/analysis_result.txt
# Exclusions
# app/test/** must stay out of sonar.sources -- it's declared separately
# via sonar.tests below, and a file indexed by both sets fails analysis
# ("can't be indexed twice").
sonar.exclusions=**/*.g.dart,**/*.freezed.dart,**/generated/**
sonar.test.exclusions=**/*.g.dart,**/*.freezed.dart
# Code coverage
sonar.coverage.exclusions=**/*.g.dart,**/*.freezed.dart,**/generated/**,**/main*.dart,**/firebase_options.dart,**/feature_registry.dart
# Coverage thresholds for new code (quality gate enforcement)
# Fail if new code coverage drops below these thresholds
sonar.coverage.overall.threshold=60
sonar.coverage.new.threshold=70
# Quality gate
sonar.qualitygate.wait=true
# GitHub PR decoration
# Keep the GitHub quality gate check, but suppress SonarQube Cloud's automatic
# "Quality Gate passed" summary comment. Failure-only PR comments are handled
# by GitHub Actions.
sonar.pullrequest.github.summary_comment=false
# Organization (for SonarCloud)
sonar.organization=developerscoffee
# Host URL (for self-hosted SonarQube)
# sonar.host.url=https://your-sonarqube-instance.com
# Additional settings
sonar.links.homepage=https://github.com/DevelopersCoffee/airo
sonar.links.scm=https://github.com/DevelopersCoffee/airo
sonar.links.issue_tracker=https://github.com/DevelopersCoffee/airo/issues
# Duplication detection
sonar.cpd.exclusions=**/*.g.dart,**/*.freezed.dart,**/generated/**
# New code definition (changes in last 30 days or from previous version)
sonar.leak.period=previous_version