-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsonar-project.properties
More file actions
98 lines (76 loc) · 4.38 KB
/
sonar-project.properties
File metadata and controls
98 lines (76 loc) · 4.38 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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# SonarCloud configuration for clai
# https://docs.sonarcloud.io/advanced-setup/analysis-parameters/
sonar.projectKey=php-workx_clai
sonar.organization=php-workx
# Source configuration
sonar.sources=.
# Keep tests/generated/vendor/beads out of source analysis.
sonar.exclusions=**/*_test.go,**/tests/**,**/testdata/**,**/vendor/**,.beads/**,**/gen/**/*.pb.go,**/*.pb.go
# Worktree-safe: JGit path resolution can fail in linked worktrees.
sonar.scm.disabled=true
# Test configuration
sonar.tests=.
sonar.test.inclusions=**/*_test.go,**/tests/**
# Go coverage (if using)
sonar.go.coverage.reportPaths=coverage.out
# =============================================================================
# Rule Exclusions
# =============================================================================
# Exclude test files from function naming rules (go:S100)
# Go test conventions commonly use underscores: Test_FunctionName, TestFoo_SubCase
sonar.issue.ignore.multicriteria=e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12
# Rule: go:S100 - Function and method names should comply with naming convention
# Reason: Go test naming conventions use underscores for subtests
sonar.issue.ignore.multicriteria.e1.ruleKey=go:S100
sonar.issue.ignore.multicriteria.e1.resourceKey=**/*_test.go
# Rule: go:S100 - Also ignore in test directories
sonar.issue.ignore.multicriteria.e2.ruleKey=go:S100
sonar.issue.ignore.multicriteria.e2.resourceKey=**/tests/**
# Ignore hardcoded credentials rules in test files
# Tests legitimately contain fake passwords, tokens, API keys for testing
sonar.issue.ignore.multicriteria.e3.ruleKey=go:S2068
sonar.issue.ignore.multicriteria.e3.resourceKey=**/*_test.go
sonar.issue.ignore.multicriteria.e4.ruleKey=go:S2068
sonar.issue.ignore.multicriteria.e4.resourceKey=**/tests/**
# Rule: go:S1192 - String literals should not be duplicated
# Reason: Test files use repeated literals for readability (inline test data).
# Extracting "npm install" or "test prompt" into constants hurts test comprehension.
sonar.issue.ignore.multicriteria.e5.ruleKey=go:S1192
sonar.issue.ignore.multicriteria.e5.resourceKey=**/*_test.go
sonar.issue.ignore.multicriteria.e6.ruleKey=go:S1192
sonar.issue.ignore.multicriteria.e6.resourceKey=**/tests/**
# Ignore secrets detection in sanitizer test file (secrets:S6290)
# patterns_test.go contains fake AWS keys as test fixtures for the sanitizer
sonar.issue.ignore.multicriteria.e7.ruleKey=secrets:S6290
sonar.issue.ignore.multicriteria.e7.resourceKey=internal/sanitize/patterns_test.go
# Generated protobuf code — exclude all rules
# S1186: empty function body (generated interface stubs)
sonar.issue.ignore.multicriteria.e8.ruleKey=go:S1186
sonar.issue.ignore.multicriteria.e8.resourceKey=**/*.pb.go
# S100: function naming (generated handler names use underscores)
sonar.issue.ignore.multicriteria.e9.ruleKey=go:S100
sonar.issue.ignore.multicriteria.e9.resourceKey=**/*.pb.go
# Cognitive complexity in test files — test helpers are intentionally procedural
sonar.issue.ignore.multicriteria.e10.ruleKey=go:S3776
sonar.issue.ignore.multicriteria.e10.resourceKey=**/*_test.go
# Identical conditional branches in test files (platform-specific test setup)
sonar.issue.ignore.multicriteria.e11.ruleKey=go:S3923
sonar.issue.ignore.multicriteria.e11.resourceKey=**/*_test.go
# godre:S8239 - "Use available context instead of background context"
# learner.go intentionally uses context.Background() for async persist
# goroutines that must survive RPC context cancellation.
sonar.issue.ignore.multicriteria.e12.ruleKey=godre:S8239
sonar.issue.ignore.multicriteria.e12.resourceKey=internal/suggestions/learning/learner.go
# =============================================================================
# Complexity Thresholds
# =============================================================================
# Cognitive complexity threshold is set to 30 (default 15) in the
# custom "clai-go" quality profile on the SonarQube server.
# Note: Rule parameter overrides must be configured in the server's
# quality profile, not here — sonar-project.properties cannot override
# rule thresholds.
# =============================================================================
# Coverage Exclusions
# =============================================================================
# Don't expect coverage for generated files, CLI entry points, or test utilities
sonar.coverage.exclusions=**/gen/**,**/cmd/**/main.go,**/testutil/**,**/testdata/**