@@ -9,6 +9,18 @@ sonar.organization=sunet
99sonar.sources =.
1010sonar.exclusions =vendor/**,**/testdata/**
1111
12+ # Mark test files as test sources (not main sources)
13+ sonar.tests =.
14+ sonar.test.inclusions =**/*_test.go
15+
16+ # Exclude test files and config from security hotspot detection
17+ sonar.security.hotspots.exclusions =**/*_test.go,**/config.yaml
18+
19+ # Ignore ALL issues in test files (test code contains expected test credentials)
20+ sonar.issue.ignore.allfile =f1,f2
21+ sonar.issue.ignore.allfile.f1.fileRegexp =.*_test\\ .go$
22+ sonar.issue.ignore.allfile.f2.fileRegexp =config\\ .yaml$
23+
1224# Go-specific settings
1325sonar.go.coverage.reportPaths =coverage.out,didcomm_coverage.out
1426
@@ -29,51 +41,16 @@ sonar.go.coverage.reportPaths=coverage.out,didcomm_coverage.out
2941# - This is a key-wrapping primitive, not general-purpose encryption
3042#
3143# These patterns are required for standards compliance and interoperability.
32- sonar.issue.ignore.multicriteria =e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,e11,e12
44+ sonar.issue.ignore.multicriteria =e1,e2,e3
3345
3446# Exclude S5542 from JWE crypto implementation (AES-CBC for content encryption, AES Key Wrap)
3547sonar.issue.ignore.multicriteria.e1.ruleKey =go:S5542
3648sonar.issue.ignore.multicriteria.e1.resourceKey =**/didcomm/crypto/jwe.go
3749
38- # Exclude from test files (test code uses same crypto primitives)
39- sonar.issue.ignore.multicriteria.e2.ruleKey =go:S5542
40- sonar.issue.ignore.multicriteria.e2.resourceKey =**/*_test.go
41-
4250# Exclude S5542 from PKI signers (RSA-PKCS1v15 SIGNATURE, not encryption)
4351# SonarCloud incorrectly flags rsa.SignPKCS1v15 as encryption when it's a signature scheme
44- sonar.issue.ignore.multicriteria.e3.ruleKey =go:S5542
45- sonar.issue.ignore.multicriteria.e3.resourceKey =**/pki/keymaterial_signer.go
46-
47- sonar.issue.ignore.multicriteria.e4.ruleKey =go:S5542
48- sonar.issue.ignore.multicriteria.e4.resourceKey =**/pki/software.go
49-
50- # S6418 (go:S6418) - "Credentials should not be hard-coded"
51- # Exclude from test files - test code necessarily contains test credentials
52- # for authentication testing. These are not production secrets.
53- sonar.issue.ignore.multicriteria.e5.ruleKey =go:S6418
54- sonar.issue.ignore.multicriteria.e5.resourceKey =**/*_test.go
55-
56- # Exclude from example config - commented examples show format, not real credentials
57- sonar.issue.ignore.multicriteria.e6.ruleKey =go:S6418
58- sonar.issue.ignore.multicriteria.e6.resourceKey =**/config.yaml
59-
60- # S2068 (go:S2068) - "Credentials should not be hard-coded"
61- # Same rationale as S6418 above
62- sonar.issue.ignore.multicriteria.e7.ruleKey =go:S2068
63- sonar.issue.ignore.multicriteria.e7.resourceKey =**/*_test.go
64-
65- sonar.issue.ignore.multicriteria.e8.ruleKey =go:S2068
66- sonar.issue.ignore.multicriteria.e8.resourceKey =**/config.yaml
67-
68- # Secrets analyzer rules (may use different prefix)
69- sonar.issue.ignore.multicriteria.e9.ruleKey =secrets:S6418
70- sonar.issue.ignore.multicriteria.e9.resourceKey =**/*_test.go
71-
72- sonar.issue.ignore.multicriteria.e10.ruleKey =secrets:S6418
73- sonar.issue.ignore.multicriteria.e10.resourceKey =**/config.yaml
74-
75- sonar.issue.ignore.multicriteria.e11.ruleKey =secrets:S2068
76- sonar.issue.ignore.multicriteria.e11.resourceKey =**/*_test.go
52+ sonar.issue.ignore.multicriteria.e2.ruleKey =go:S5542
53+ sonar.issue.ignore.multicriteria.e2.resourceKey =**/pki/keymaterial_signer.go
7754
78- sonar.issue.ignore.multicriteria.e12 .ruleKey =secrets:S2068
79- sonar.issue.ignore.multicriteria.e12 .resourceKey =**/config.yaml
55+ sonar.issue.ignore.multicriteria.e3 .ruleKey =go:S5542
56+ sonar.issue.ignore.multicriteria.e3 .resourceKey =**/pki/software.go
0 commit comments