Compare commits
No commits in common. "868398e13de88175a6c71701d43f87aaf27244fa" and "e99d12b81d5822d75257b36d9cc7301a71567951" have entirely different histories.
868398e13d
...
e99d12b81d
35
.sonarqube/conf/0/FilesToAnalyze.txt
Normal file
35
.sonarqube/conf/0/FilesToAnalyze.txt
Normal file
@ -0,0 +1,35 @@
|
||||
/workspaces/AS400API/Auth/AuthPolicies.cs
|
||||
/workspaces/AS400API/Auth/DemoUser.cs
|
||||
/workspaces/AS400API/Auth/DemoUserStore.cs
|
||||
/workspaces/AS400API/Auth/LoginRequest.cs
|
||||
/workspaces/AS400API/Auth/LoginResponse.cs
|
||||
/workspaces/AS400API/Auth/PasswordHasher.cs
|
||||
/workspaces/AS400API/Auth/Roles.cs
|
||||
/workspaces/AS400API/Auth/TokenService.cs
|
||||
/workspaces/AS400API/Configuration/JwtOptions.cs
|
||||
/workspaces/AS400API/Configuration/OdbcOptions.cs
|
||||
/workspaces/AS400API/Endpoints/As400Endpoints.cs
|
||||
/workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs
|
||||
/workspaces/AS400API/Endpoints/AuthEndpoints.cs
|
||||
/workspaces/AS400API/Endpoints/SystemEndpoints.cs
|
||||
/workspaces/AS400API/Infrastructure/DatabaseRowFormatter.cs
|
||||
/workspaces/AS400API/Infrastructure/DataReaderExtensions.cs
|
||||
/workspaces/AS400API/Program.cs
|
||||
/workspaces/AS400API/obj/Debug/net9.0/AS400API.GlobalUsings.g.cs
|
||||
/workspaces/AS400API/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs
|
||||
/workspaces/AS400API/obj/Debug/net9.0/AS400API.AssemblyInfo.cs
|
||||
/workspaces/AS400API/obj/Debug/net9.0/AS400API.MvcApplicationPartsAssemblyInfo.cs
|
||||
/workspaces/AS400API/appsettings.json
|
||||
/workspaces/AS400API/.dockerignore
|
||||
/workspaces/AS400API/docker-compose.yml
|
||||
/workspaces/AS400API/docker/odbc/odbc.ini
|
||||
/workspaces/AS400API/docker/odbc/odbcinst.ini
|
||||
/workspaces/AS400API/Dockerfile
|
||||
/workspaces/AS400API/drivers/ibm-iaccess-1.1.0.28-1.0.x86_64.rpm
|
||||
/workspaces/AS400API/Logs/as400-api-20251001.log
|
||||
/workspaces/AS400API/Logs/as400-api-20251002.log
|
||||
/workspaces/AS400API/Logs/as400-api-20251003.log
|
||||
/workspaces/AS400API/Logs/as400-api-20251004.log
|
||||
/workspaces/AS400API/README.md
|
||||
/workspaces/AS400API/scripts/run-sonar.sh
|
||||
/workspaces/AS400API/scripts/test-databases.sh
|
||||
410
.sonarqube/conf/Sonar-cs-none.ruleset
Normal file
410
.sonarqube/conf/Sonar-cs-none.ruleset
Normal file
@ -0,0 +1,410 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RuleSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="Rules for SonarQube" Description="This rule set was automatically generated from SonarQube" ToolsVersion="14.0">
|
||||
<Rules AnalyzerId="SonarScannerFor.NET" RuleNamespace="SonarScannerFor.NET">
|
||||
<Rule Id="DuplicatedBlocks" Action="None" />
|
||||
<Rule Id="FailedUnitTests" Action="None" />
|
||||
<Rule Id="SkippedUnitTests" Action="None" />
|
||||
<Rule Id="InsufficientBranchCoverage" Action="None" />
|
||||
<Rule Id="InsufficientCommentDensity" Action="None" />
|
||||
<Rule Id="InsufficientLineCoverage" Action="None" />
|
||||
<Rule Id="S2225" Action="None" />
|
||||
<Rule Id="S2346" Action="None" />
|
||||
<Rule Id="S2223" Action="None" />
|
||||
<Rule Id="S2344" Action="None" />
|
||||
<Rule Id="S2589" Action="None" />
|
||||
<Rule Id="S3433" Action="None" />
|
||||
<Rule Id="S1134" Action="None" />
|
||||
<Rule Id="S1135" Action="None" />
|
||||
<Rule Id="S2345" Action="None" />
|
||||
<Rule Id="S4524" Action="None" />
|
||||
<Rule Id="S2342" Action="None" />
|
||||
<Rule Id="S3431" Action="None" />
|
||||
<Rule Id="S2221" Action="None" />
|
||||
<Rule Id="S2222" Action="None" />
|
||||
<Rule Id="S2228" Action="None" />
|
||||
<Rule Id="S2583" Action="None" />
|
||||
<Rule Id="S1147" Action="None" />
|
||||
<Rule Id="S2115" Action="None" />
|
||||
<Rule Id="S2357" Action="None" />
|
||||
<Rule Id="S3447" Action="None" />
|
||||
<Rule Id="S2234" Action="None" />
|
||||
<Rule Id="S2479" Action="None" />
|
||||
<Rule Id="S3444" Action="None" />
|
||||
<Rule Id="S3445" Action="None" />
|
||||
<Rule Id="S1144" Action="None" />
|
||||
<Rule Id="S1264" Action="None" />
|
||||
<Rule Id="S2114" Action="None" />
|
||||
<Rule Id="S3442" Action="None" />
|
||||
<Rule Id="S3440" Action="None" />
|
||||
<Rule Id="S3441" Action="None" />
|
||||
<Rule Id="S3443" Action="None" />
|
||||
<Rule Id="S881" Action="None" />
|
||||
<Rule Id="S3329" Action="None" />
|
||||
<Rule Id="S3449" Action="None" />
|
||||
<Rule Id="S3655" Action="None" />
|
||||
<Rule Id="S3776" Action="None" />
|
||||
<Rule Id="S2325" Action="None" />
|
||||
<Rule Id="S2688" Action="None" />
|
||||
<Rule Id="S3897" Action="None" />
|
||||
<Rule Id="S3898" Action="None" />
|
||||
<Rule Id="S1110" Action="None" />
|
||||
<Rule Id="S2201" Action="None" />
|
||||
<Rule Id="S3532" Action="None" />
|
||||
<Rule Id="S4502" Action="None" />
|
||||
<Rule Id="S1118" Action="None" />
|
||||
<Rule Id="S2328" Action="None" />
|
||||
<Rule Id="S2681" Action="None" />
|
||||
<Rule Id="S1117" Action="None" />
|
||||
<Rule Id="S2326" Action="None" />
|
||||
<Rule Id="S3415" Action="None" />
|
||||
<Rule Id="S4507" Action="None" />
|
||||
<Rule Id="S1116" Action="None" />
|
||||
<Rule Id="S1479" Action="None" />
|
||||
<Rule Id="S2327" Action="None" />
|
||||
<Rule Id="S2699" Action="None" />
|
||||
<Rule Id="S1125" Action="None" />
|
||||
<Rule Id="S2333" Action="None" />
|
||||
<Rule Id="S2696" Action="None" />
|
||||
<Rule Id="S4635" Action="None" />
|
||||
<Rule Id="S1121" Action="None" />
|
||||
<Rule Id="S1123" Action="None" />
|
||||
<Rule Id="S1244" Action="None" />
|
||||
<Rule Id="S2219" Action="None" />
|
||||
<Rule Id="S2330" Action="None" />
|
||||
<Rule Id="S2339" Action="None" />
|
||||
<Rule Id="S2692" Action="None" />
|
||||
<Rule Id="S1006" Action="None" />
|
||||
<Rule Id="S1128" Action="None" />
|
||||
<Rule Id="S1481" Action="None" />
|
||||
<Rule Id="S3427" Action="None" />
|
||||
<Rule Id="S2148" Action="None" />
|
||||
<Rule Id="S3237" Action="None" />
|
||||
<Rule Id="S3358" Action="None" />
|
||||
<Rule Id="S3598" Action="None" />
|
||||
<Rule Id="S3235" Action="None" />
|
||||
<Rule Id="S3236" Action="None" />
|
||||
<Rule Id="S5773" Action="None" />
|
||||
<Rule Id="S2386" Action="None" />
|
||||
<Rule Id="S3234" Action="None" />
|
||||
<Rule Id="S3597" Action="None" />
|
||||
<Rule Id="S4200" Action="None" />
|
||||
<Rule Id="S2387" Action="None" />
|
||||
<Rule Id="S3353" Action="None" />
|
||||
<Rule Id="S4201" Action="None" />
|
||||
<Rule Id="S4564" Action="None" />
|
||||
<Rule Id="S1172" Action="None" />
|
||||
<Rule Id="S4457" Action="None" />
|
||||
<Rule Id="S5659" Action="None" />
|
||||
<Rule Id="S3249" Action="None" />
|
||||
<Rule Id="S4214" Action="None" />
|
||||
<Rule Id="S4456" Action="None" />
|
||||
<Rule Id="S3005" Action="None" />
|
||||
<Rule Id="S3246" Action="None" />
|
||||
<Rule Id="S3247" Action="None" />
|
||||
<Rule Id="S4211" Action="None" />
|
||||
<Rule Id="S5547" Action="None" />
|
||||
<Rule Id="S1067" Action="None" />
|
||||
<Rule Id="S3244" Action="None" />
|
||||
<Rule Id="S3366" Action="None" />
|
||||
<Rule Id="S5542" Action="None" />
|
||||
<Rule Id="S1066" Action="None" />
|
||||
<Rule Id="S1186" Action="None" />
|
||||
<Rule Id="S2156" Action="None" />
|
||||
<Rule Id="S3242" Action="None" />
|
||||
<Rule Id="S4210" Action="None" />
|
||||
<Rule Id="S1185" Action="None" />
|
||||
<Rule Id="S2275" Action="None" />
|
||||
<Rule Id="S3240" Action="None" />
|
||||
<Rule Id="S3241" Action="None" />
|
||||
<Rule Id="S4212" Action="None" />
|
||||
<Rule Id="S2368" Action="None" />
|
||||
<Rule Id="S3215" Action="None" />
|
||||
<Rule Id="S3457" Action="None" />
|
||||
<Rule Id="S4423" Action="None" />
|
||||
<Rule Id="S4787" Action="None" />
|
||||
<Rule Id="S1155" Action="None" />
|
||||
<Rule Id="S2245" Action="None" />
|
||||
<Rule Id="S3216" Action="None" />
|
||||
<Rule Id="S3456" Action="None" />
|
||||
<Rule Id="S3458" Action="None" />
|
||||
<Rule Id="S4426" Action="None" />
|
||||
<Rule Id="S2123" Action="None" />
|
||||
<Rule Id="S2365" Action="None" />
|
||||
<Rule Id="S2486" Action="None" />
|
||||
<Rule Id="S3453" Action="None" />
|
||||
<Rule Id="S3330" Action="None" />
|
||||
<Rule Id="S3451" Action="None" />
|
||||
<Rule Id="S5753" Action="None" />
|
||||
<Rule Id="S3217" Action="None" />
|
||||
<Rule Id="S3459" Action="None" />
|
||||
<Rule Id="S4428" Action="None" />
|
||||
<Rule Id="S4784" Action="None" />
|
||||
<Rule Id="S1151" Action="None" />
|
||||
<Rule Id="S2360" Action="None" />
|
||||
<Rule Id="S3218" Action="None" />
|
||||
<Rule Id="S927" Action="None" />
|
||||
<Rule Id="S2259" Action="None" />
|
||||
<Rule Id="S3450" Action="None" />
|
||||
<Rule Id="S5766" Action="None" />
|
||||
<Rule Id="S1048" Action="None" />
|
||||
<Rule Id="S1168" Action="None" />
|
||||
<Rule Id="S2257" Action="None" />
|
||||
<Rule Id="S3466" Action="None" />
|
||||
<Rule Id="S2376" Action="None" />
|
||||
<Rule Id="S3343" Action="None" />
|
||||
<Rule Id="S3346" Action="None" />
|
||||
<Rule Id="S3464" Action="None" />
|
||||
<Rule Id="S2252" Action="None" />
|
||||
<Rule Id="S2255" Action="None" />
|
||||
<Rule Id="S3220" Action="None" />
|
||||
<Rule Id="S4433" Action="None" />
|
||||
<Rule Id="S1163" Action="None" />
|
||||
<Rule Id="S4790" Action="None" />
|
||||
<Rule Id="S818" Action="None" />
|
||||
<Rule Id="S2251" Action="None" />
|
||||
<Rule Id="S2372" Action="None" />
|
||||
<Rule Id="S4792" Action="None" />
|
||||
<Rule Id="S1659" Action="None" />
|
||||
<Rule Id="S2743" Action="None" />
|
||||
<Rule Id="S3717" Action="None" />
|
||||
<Rule Id="S1656" Action="None" />
|
||||
<Rule Id="S3956" Action="None" />
|
||||
<Rule Id="S907" Action="None" />
|
||||
<Rule Id="S2995" Action="None" />
|
||||
<Rule Id="S3600" Action="None" />
|
||||
<Rule Id="S3963" Action="None" />
|
||||
<Rule Id="S1301" Action="None" />
|
||||
<Rule Id="S2996" Action="None" />
|
||||
<Rule Id="S3962" Action="None" />
|
||||
<Rule Id="S1309" Action="None" />
|
||||
<Rule Id="S1541" Action="None" />
|
||||
<Rule Id="S2757" Action="None" />
|
||||
<Rule Id="S4818" Action="None" />
|
||||
<Rule Id="S2755" Action="None" />
|
||||
<Rule Id="S2997" Action="None" />
|
||||
<Rule Id="S3604" Action="None" />
|
||||
<Rule Id="S3967" Action="None" />
|
||||
<Rule Id="S1751" Action="None" />
|
||||
<Rule Id="S1994" Action="None" />
|
||||
<Rule Id="S3603" Action="None" />
|
||||
<Rule Id="S3966" Action="None" />
|
||||
<Rule Id="S1643" Action="None" />
|
||||
<Rule Id="S1871" Action="None" />
|
||||
<Rule Id="S3937" Action="None" />
|
||||
<Rule Id="S1764" Action="None" />
|
||||
<Rule Id="S2737" Action="None" />
|
||||
<Rule Id="S2971" Action="None" />
|
||||
<Rule Id="S3949" Action="None" />
|
||||
<Rule Id="S1698" Action="None" />
|
||||
<Rule Id="S2612" Action="None" />
|
||||
<Rule Id="S2857" Action="None" />
|
||||
<Rule Id="S3996" Action="None" />
|
||||
<Rule Id="S2302" Action="None" />
|
||||
<Rule Id="S3875" Action="None" />
|
||||
<Rule Id="S3997" Action="None" />
|
||||
<Rule Id="S1696" Action="None" />
|
||||
<Rule Id="S3876" Action="None" />
|
||||
<Rule Id="S3994" Action="None" />
|
||||
<Rule Id="S3995" Action="None" />
|
||||
<Rule Id="S1210" Action="None" />
|
||||
<Rule Id="S3871" Action="None" />
|
||||
<Rule Id="S3874" Action="None" />
|
||||
<Rule Id="S3992" Action="None" />
|
||||
<Rule Id="S1451" Action="None" />
|
||||
<Rule Id="S1694" Action="None" />
|
||||
<Rule Id="S3872" Action="None" />
|
||||
<Rule Id="S3993" Action="None" />
|
||||
<Rule Id="S1450" Action="None" />
|
||||
<Rule Id="S2306" Action="None" />
|
||||
<Rule Id="S3877" Action="None" />
|
||||
<Rule Id="S3990" Action="None" />
|
||||
<Rule Id="S1104" Action="None" />
|
||||
<Rule Id="S1215" Action="None" />
|
||||
<Rule Id="S1699" Action="None" />
|
||||
<Rule Id="S3998" Action="None" />
|
||||
<Rule Id="S2674" Action="None" />
|
||||
<Rule Id="S3400" Action="None" />
|
||||
<Rule Id="S3884" Action="None" />
|
||||
<Rule Id="S3887" Action="None" />
|
||||
<Rule Id="S2551" Action="None" />
|
||||
<Rule Id="S3880" Action="None" />
|
||||
<Rule Id="S3885" Action="None" />
|
||||
<Rule Id="S1109" Action="None" />
|
||||
<Rule Id="S1227" Action="None" />
|
||||
<Rule Id="S2436" Action="None" />
|
||||
<Rule Id="S3881" Action="None" />
|
||||
<Rule Id="S1226" Action="None" />
|
||||
<Rule Id="S2437" Action="None" />
|
||||
<Rule Id="S3889" Action="None" />
|
||||
<Rule Id="S1313" Action="None" />
|
||||
<Rule Id="S3610" Action="None" />
|
||||
<Rule Id="S3972" Action="None" />
|
||||
<Rule Id="S3973" Action="None" />
|
||||
<Rule Id="S2760" Action="None" />
|
||||
<Rule Id="S2761" Action="None" />
|
||||
<Rule Id="S3971" Action="None" />
|
||||
<Rule Id="S3984" Action="None" />
|
||||
<Rule Id="S4823" Action="None" />
|
||||
<Rule Id="S4829" Action="None" />
|
||||
<Rule Id="S4830" Action="None" />
|
||||
<Rule Id="S1200" Action="None" />
|
||||
<Rule Id="S3981" Action="None" />
|
||||
<Rule Id="S1449" Action="None" />
|
||||
<Rule Id="S1206" Action="None" />
|
||||
<Rule Id="S3626" Action="None" />
|
||||
<Rule Id="S3869" Action="None" />
|
||||
<Rule Id="S4834" Action="None" />
|
||||
<Rule Id="S1821" Action="None" />
|
||||
<Rule Id="S1940" Action="None" />
|
||||
<Rule Id="S1944" Action="None" />
|
||||
<Rule Id="S1905" Action="None" />
|
||||
<Rule Id="S1939" Action="None" />
|
||||
<Rule Id="S4069" Action="None" />
|
||||
<Rule Id="S5034" Action="None" />
|
||||
<Rule Id="S4060" Action="None" />
|
||||
<Rule Id="S4061" Action="None" />
|
||||
<Rule Id="S5042" Action="None" />
|
||||
<Rule Id="S1854" Action="None" />
|
||||
<Rule Id="S1858" Action="None" />
|
||||
<Rule Id="S2701" Action="None" />
|
||||
<Rule Id="S4070" Action="None" />
|
||||
<Rule Id="S2952" Action="None" />
|
||||
<Rule Id="S3908" Action="None" />
|
||||
<Rule Id="S3909" Action="None" />
|
||||
<Rule Id="S1862" Action="None" />
|
||||
<Rule Id="S3927" Action="None" />
|
||||
<Rule Id="S3928" Action="None" />
|
||||
<Rule Id="S2955" Action="None" />
|
||||
<Rule Id="S3925" Action="None" />
|
||||
<Rule Id="S3926" Action="None" />
|
||||
<Rule Id="S131" Action="None" />
|
||||
<Rule Id="S2953" Action="None" />
|
||||
<Rule Id="S3923" Action="None" />
|
||||
<Rule Id="S125" Action="None" />
|
||||
<Rule Id="S127" Action="None" />
|
||||
<Rule Id="S134" Action="None" />
|
||||
<Rule Id="S126" Action="None" />
|
||||
<Rule Id="S1607" Action="None" />
|
||||
<Rule Id="S1848" Action="None" />
|
||||
<Rule Id="S2930" Action="None" />
|
||||
<Rule Id="S3903" Action="None" />
|
||||
<Rule Id="S3904" Action="None" />
|
||||
<Rule Id="S3906" Action="None" />
|
||||
<Rule Id="S2931" Action="None" />
|
||||
<Rule Id="S2933" Action="None" />
|
||||
<Rule Id="S2934" Action="None" />
|
||||
<Rule Id="S3902" Action="None" />
|
||||
<Rule Id="S138" Action="None" />
|
||||
<Rule Id="S3900" Action="None" />
|
||||
<Rule Id="S4005" Action="None" />
|
||||
<Rule Id="S6422" Action="None" />
|
||||
<Rule Id="S110" Action="None" />
|
||||
<Rule Id="S2068" Action="None" />
|
||||
<Rule Id="S4004" Action="None" />
|
||||
<Rule Id="S5332" Action="None" />
|
||||
<Rule Id="S6421" Action="None" />
|
||||
<Rule Id="S112" Action="None" />
|
||||
<Rule Id="S2187" Action="None" />
|
||||
<Rule Id="S4487" Action="None" />
|
||||
<Rule Id="S6424" Action="None" />
|
||||
<Rule Id="S3397" Action="None" />
|
||||
<Rule Id="S4002" Action="None" />
|
||||
<Rule Id="S6423" Action="None" />
|
||||
<Rule Id="S103" Action="None" />
|
||||
<Rule Id="S2184" Action="None" />
|
||||
<Rule Id="S4000" Action="None" />
|
||||
<Rule Id="S104" Action="None" />
|
||||
<Rule Id="S105" Action="None" />
|
||||
<Rule Id="S5693" Action="None" />
|
||||
<Rule Id="S6420" Action="None" />
|
||||
<Rule Id="S106" Action="None" />
|
||||
<Rule Id="S107" Action="None" />
|
||||
<Rule Id="S2183" Action="None" />
|
||||
<Rule Id="S108" Action="None" />
|
||||
<Rule Id="S109" Action="None" />
|
||||
<Rule Id="S4018" Action="None" />
|
||||
<Rule Id="S4019" Action="None" />
|
||||
<Rule Id="S3169" Action="None" />
|
||||
<Rule Id="S4016" Action="None" />
|
||||
<Rule Id="S4017" Action="None" />
|
||||
<Rule Id="S121" Action="None" />
|
||||
<Rule Id="S3168" Action="None" />
|
||||
<Rule Id="S4015" Action="None" />
|
||||
<Rule Id="S122" Action="None" />
|
||||
<Rule Id="S2197" Action="None" />
|
||||
<Rule Id="S4136" Action="None" />
|
||||
<Rule Id="S113" Action="None" />
|
||||
<Rule Id="S2077" Action="None" />
|
||||
<Rule Id="S2190" Action="None" />
|
||||
<Rule Id="S4226" Action="None" />
|
||||
<Rule Id="S1199" Action="None" />
|
||||
<Rule Id="S3257" Action="None" />
|
||||
<Rule Id="S3376" Action="None" />
|
||||
<Rule Id="S4225" Action="None" />
|
||||
<Rule Id="S1075" Action="None" />
|
||||
<Rule Id="S3011" Action="None" />
|
||||
<Rule Id="S3253" Action="None" />
|
||||
<Rule Id="S3256" Action="None" />
|
||||
<Rule Id="S3254" Action="None" />
|
||||
<Rule Id="S4581" Action="None" />
|
||||
<Rule Id="S4586" Action="None" />
|
||||
<Rule Id="S3010" Action="None" />
|
||||
<Rule Id="S3251" Action="None" />
|
||||
<Rule Id="S4220" Action="None" />
|
||||
<Rule Id="S4462" Action="None" />
|
||||
<Rule Id="S1192" Action="None" />
|
||||
<Rule Id="S4583" Action="None" />
|
||||
<Rule Id="S5443" Action="None" />
|
||||
<Rule Id="S2178" Action="None" />
|
||||
<Rule Id="S3264" Action="None" />
|
||||
<Rule Id="S3267" Action="None" />
|
||||
<Rule Id="S101" Action="None" />
|
||||
<Rule Id="S5445" Action="None" />
|
||||
<Rule Id="S100" Action="None" />
|
||||
<Rule Id="S3262" Action="None" />
|
||||
<Rule Id="S3265" Action="None" />
|
||||
<Rule Id="S6419" Action="None" />
|
||||
<Rule Id="S2053" Action="None" />
|
||||
<Rule Id="S2292" Action="None" />
|
||||
<Rule Id="S3263" Action="None" />
|
||||
<Rule Id="S3260" Action="None" />
|
||||
<Rule Id="S3261" Action="None" />
|
||||
<Rule Id="S2290" Action="None" />
|
||||
<Rule Id="S2291" Action="None" />
|
||||
<Rule Id="S4047" Action="None" />
|
||||
<Rule Id="S4049" Action="None" />
|
||||
<Rule Id="S4040" Action="None" />
|
||||
<Rule Id="S4041" Action="None" />
|
||||
<Rule Id="S4058" Action="None" />
|
||||
<Rule Id="S4059" Action="None" />
|
||||
<Rule Id="S4055" Action="None" />
|
||||
<Rule Id="S4056" Action="None" />
|
||||
<Rule Id="S4057" Action="None" />
|
||||
<Rule Id="S4050" Action="None" />
|
||||
<Rule Id="S4052" Action="None" />
|
||||
<Rule Id="S6354" Action="None" />
|
||||
<Rule Id="S3059" Action="None" />
|
||||
<Rule Id="S4027" Action="None" />
|
||||
<Rule Id="S6444" Action="None" />
|
||||
<Rule Id="S4023" Action="None" />
|
||||
<Rule Id="S4025" Action="None" />
|
||||
<Rule Id="S4026" Action="None" />
|
||||
<Rule Id="S4144" Action="None" />
|
||||
<Rule Id="S4022" Action="None" />
|
||||
<Rule Id="S4143" Action="None" />
|
||||
<Rule Id="S4261" Action="None" />
|
||||
<Rule Id="S3052" Action="None" />
|
||||
<Rule Id="S3172" Action="None" />
|
||||
<Rule Id="S4159" Action="None" />
|
||||
<Rule Id="S4260" Action="None" />
|
||||
<Rule Id="S4036" Action="None" />
|
||||
<Rule Id="S4039" Action="None" />
|
||||
<Rule Id="S4277" Action="None" />
|
||||
<Rule Id="S4035" Action="None" />
|
||||
<Rule Id="S4158" Action="None" />
|
||||
<Rule Id="S4275" Action="None" />
|
||||
<Rule Id="S2092" Action="None" />
|
||||
<Rule Id="S3060" Action="None" />
|
||||
<Rule Id="S5122" Action="None" />
|
||||
</Rules>
|
||||
</RuleSet>
|
||||
410
.sonarqube/conf/Sonar-cs.ruleset
Normal file
410
.sonarqube/conf/Sonar-cs.ruleset
Normal file
@ -0,0 +1,410 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RuleSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="Rules for SonarQube" Description="This rule set was automatically generated from SonarQube" ToolsVersion="14.0">
|
||||
<Rules AnalyzerId="SonarScannerFor.NET" RuleNamespace="SonarScannerFor.NET">
|
||||
<Rule Id="DuplicatedBlocks" Action="None" />
|
||||
<Rule Id="FailedUnitTests" Action="None" />
|
||||
<Rule Id="SkippedUnitTests" Action="None" />
|
||||
<Rule Id="InsufficientBranchCoverage" Action="None" />
|
||||
<Rule Id="InsufficientCommentDensity" Action="None" />
|
||||
<Rule Id="InsufficientLineCoverage" Action="None" />
|
||||
<Rule Id="S2225" Action="Warning" />
|
||||
<Rule Id="S2346" Action="Warning" />
|
||||
<Rule Id="S2223" Action="Warning" />
|
||||
<Rule Id="S2344" Action="Warning" />
|
||||
<Rule Id="S2589" Action="Warning" />
|
||||
<Rule Id="S3433" Action="Warning" />
|
||||
<Rule Id="S1134" Action="Warning" />
|
||||
<Rule Id="S1135" Action="Warning" />
|
||||
<Rule Id="S2345" Action="Warning" />
|
||||
<Rule Id="S4524" Action="Warning" />
|
||||
<Rule Id="S2342" Action="Warning" />
|
||||
<Rule Id="S3431" Action="None" />
|
||||
<Rule Id="S2221" Action="None" />
|
||||
<Rule Id="S2222" Action="Warning" />
|
||||
<Rule Id="S2228" Action="None" />
|
||||
<Rule Id="S2583" Action="Warning" />
|
||||
<Rule Id="S1147" Action="None" />
|
||||
<Rule Id="S2115" Action="Warning" />
|
||||
<Rule Id="S2357" Action="None" />
|
||||
<Rule Id="S3447" Action="Warning" />
|
||||
<Rule Id="S2234" Action="Warning" />
|
||||
<Rule Id="S2479" Action="Warning" />
|
||||
<Rule Id="S3444" Action="Warning" />
|
||||
<Rule Id="S3445" Action="Warning" />
|
||||
<Rule Id="S1144" Action="Warning" />
|
||||
<Rule Id="S1264" Action="Warning" />
|
||||
<Rule Id="S2114" Action="Warning" />
|
||||
<Rule Id="S3442" Action="Warning" />
|
||||
<Rule Id="S3440" Action="Warning" />
|
||||
<Rule Id="S3441" Action="None" />
|
||||
<Rule Id="S3443" Action="Warning" />
|
||||
<Rule Id="S881" Action="None" />
|
||||
<Rule Id="S3329" Action="Warning" />
|
||||
<Rule Id="S3449" Action="Warning" />
|
||||
<Rule Id="S3655" Action="Warning" />
|
||||
<Rule Id="S3776" Action="Warning" />
|
||||
<Rule Id="S2325" Action="None" />
|
||||
<Rule Id="S2688" Action="Warning" />
|
||||
<Rule Id="S3897" Action="Warning" />
|
||||
<Rule Id="S3898" Action="None" />
|
||||
<Rule Id="S1110" Action="Warning" />
|
||||
<Rule Id="S2201" Action="Warning" />
|
||||
<Rule Id="S3532" Action="None" />
|
||||
<Rule Id="S4502" Action="Warning" />
|
||||
<Rule Id="S1118" Action="Warning" />
|
||||
<Rule Id="S2328" Action="Warning" />
|
||||
<Rule Id="S2681" Action="Warning" />
|
||||
<Rule Id="S1117" Action="Warning" />
|
||||
<Rule Id="S2326" Action="Warning" />
|
||||
<Rule Id="S3415" Action="Warning" />
|
||||
<Rule Id="S4507" Action="Warning" />
|
||||
<Rule Id="S1116" Action="Warning" />
|
||||
<Rule Id="S1479" Action="Warning" />
|
||||
<Rule Id="S2327" Action="None" />
|
||||
<Rule Id="S2699" Action="Warning" />
|
||||
<Rule Id="S1125" Action="Warning" />
|
||||
<Rule Id="S2333" Action="None" />
|
||||
<Rule Id="S2696" Action="Warning" />
|
||||
<Rule Id="S4635" Action="Warning" />
|
||||
<Rule Id="S1121" Action="Warning" />
|
||||
<Rule Id="S1123" Action="Warning" />
|
||||
<Rule Id="S1244" Action="None" />
|
||||
<Rule Id="S2219" Action="Warning" />
|
||||
<Rule Id="S2330" Action="None" />
|
||||
<Rule Id="S2339" Action="None" />
|
||||
<Rule Id="S2692" Action="Warning" />
|
||||
<Rule Id="S1006" Action="Warning" />
|
||||
<Rule Id="S1128" Action="None" />
|
||||
<Rule Id="S1481" Action="Warning" />
|
||||
<Rule Id="S3427" Action="Warning" />
|
||||
<Rule Id="S2148" Action="None" />
|
||||
<Rule Id="S3237" Action="Warning" />
|
||||
<Rule Id="S3358" Action="Warning" />
|
||||
<Rule Id="S3598" Action="Warning" />
|
||||
<Rule Id="S3235" Action="None" />
|
||||
<Rule Id="S3236" Action="Warning" />
|
||||
<Rule Id="S5773" Action="Warning" />
|
||||
<Rule Id="S2386" Action="Warning" />
|
||||
<Rule Id="S3234" Action="None" />
|
||||
<Rule Id="S3597" Action="Warning" />
|
||||
<Rule Id="S4200" Action="Warning" />
|
||||
<Rule Id="S2387" Action="None" />
|
||||
<Rule Id="S3353" Action="None" />
|
||||
<Rule Id="S4201" Action="Warning" />
|
||||
<Rule Id="S4564" Action="None" />
|
||||
<Rule Id="S1172" Action="Warning" />
|
||||
<Rule Id="S4457" Action="Warning" />
|
||||
<Rule Id="S5659" Action="Warning" />
|
||||
<Rule Id="S3249" Action="Warning" />
|
||||
<Rule Id="S4214" Action="None" />
|
||||
<Rule Id="S4456" Action="Warning" />
|
||||
<Rule Id="S3005" Action="Warning" />
|
||||
<Rule Id="S3246" Action="Warning" />
|
||||
<Rule Id="S3247" Action="Warning" />
|
||||
<Rule Id="S4211" Action="Warning" />
|
||||
<Rule Id="S5547" Action="Warning" />
|
||||
<Rule Id="S1067" Action="None" />
|
||||
<Rule Id="S3244" Action="Warning" />
|
||||
<Rule Id="S3366" Action="None" />
|
||||
<Rule Id="S5542" Action="Warning" />
|
||||
<Rule Id="S1066" Action="Warning" />
|
||||
<Rule Id="S1186" Action="Warning" />
|
||||
<Rule Id="S2156" Action="None" />
|
||||
<Rule Id="S3242" Action="None" />
|
||||
<Rule Id="S4210" Action="Warning" />
|
||||
<Rule Id="S1185" Action="Warning" />
|
||||
<Rule Id="S2275" Action="Warning" />
|
||||
<Rule Id="S3240" Action="None" />
|
||||
<Rule Id="S3241" Action="Warning" />
|
||||
<Rule Id="S4212" Action="None" />
|
||||
<Rule Id="S2368" Action="Warning" />
|
||||
<Rule Id="S3215" Action="None" />
|
||||
<Rule Id="S3457" Action="Warning" />
|
||||
<Rule Id="S4423" Action="Warning" />
|
||||
<Rule Id="S4787" Action="None" />
|
||||
<Rule Id="S1155" Action="Warning" />
|
||||
<Rule Id="S2245" Action="Warning" />
|
||||
<Rule Id="S3216" Action="None" />
|
||||
<Rule Id="S3456" Action="Warning" />
|
||||
<Rule Id="S3458" Action="Warning" />
|
||||
<Rule Id="S4426" Action="Warning" />
|
||||
<Rule Id="S2123" Action="Warning" />
|
||||
<Rule Id="S2365" Action="Warning" />
|
||||
<Rule Id="S2486" Action="Warning" />
|
||||
<Rule Id="S3453" Action="Warning" />
|
||||
<Rule Id="S3330" Action="Warning" />
|
||||
<Rule Id="S3451" Action="Warning" />
|
||||
<Rule Id="S5753" Action="Warning" />
|
||||
<Rule Id="S3217" Action="Warning" />
|
||||
<Rule Id="S3459" Action="Warning" />
|
||||
<Rule Id="S4428" Action="Warning" />
|
||||
<Rule Id="S4784" Action="None" />
|
||||
<Rule Id="S1151" Action="None" />
|
||||
<Rule Id="S2360" Action="None" />
|
||||
<Rule Id="S3218" Action="Warning" />
|
||||
<Rule Id="S927" Action="Warning" />
|
||||
<Rule Id="S2259" Action="Warning" />
|
||||
<Rule Id="S3450" Action="Warning" />
|
||||
<Rule Id="S5766" Action="Warning" />
|
||||
<Rule Id="S1048" Action="Warning" />
|
||||
<Rule Id="S1168" Action="Warning" />
|
||||
<Rule Id="S2257" Action="Warning" />
|
||||
<Rule Id="S3466" Action="Warning" />
|
||||
<Rule Id="S2376" Action="Warning" />
|
||||
<Rule Id="S3343" Action="Warning" />
|
||||
<Rule Id="S3346" Action="Warning" />
|
||||
<Rule Id="S3464" Action="Warning" />
|
||||
<Rule Id="S2252" Action="Warning" />
|
||||
<Rule Id="S2255" Action="None" />
|
||||
<Rule Id="S3220" Action="Warning" />
|
||||
<Rule Id="S4433" Action="Warning" />
|
||||
<Rule Id="S1163" Action="Warning" />
|
||||
<Rule Id="S4790" Action="Warning" />
|
||||
<Rule Id="S818" Action="Warning" />
|
||||
<Rule Id="S2251" Action="Warning" />
|
||||
<Rule Id="S2372" Action="Warning" />
|
||||
<Rule Id="S4792" Action="Warning" />
|
||||
<Rule Id="S1659" Action="None" />
|
||||
<Rule Id="S2743" Action="Warning" />
|
||||
<Rule Id="S3717" Action="None" />
|
||||
<Rule Id="S1656" Action="Warning" />
|
||||
<Rule Id="S3956" Action="None" />
|
||||
<Rule Id="S907" Action="Warning" />
|
||||
<Rule Id="S2995" Action="Warning" />
|
||||
<Rule Id="S3600" Action="Warning" />
|
||||
<Rule Id="S3963" Action="Warning" />
|
||||
<Rule Id="S1301" Action="None" />
|
||||
<Rule Id="S2996" Action="Warning" />
|
||||
<Rule Id="S3962" Action="None" />
|
||||
<Rule Id="S1309" Action="None" />
|
||||
<Rule Id="S1541" Action="None" />
|
||||
<Rule Id="S2757" Action="Warning" />
|
||||
<Rule Id="S4818" Action="None" />
|
||||
<Rule Id="S2755" Action="Warning" />
|
||||
<Rule Id="S2997" Action="Warning" />
|
||||
<Rule Id="S3604" Action="Warning" />
|
||||
<Rule Id="S3967" Action="None" />
|
||||
<Rule Id="S1751" Action="Warning" />
|
||||
<Rule Id="S1994" Action="None" />
|
||||
<Rule Id="S3603" Action="Warning" />
|
||||
<Rule Id="S3966" Action="Warning" />
|
||||
<Rule Id="S1643" Action="Warning" />
|
||||
<Rule Id="S1871" Action="Warning" />
|
||||
<Rule Id="S3937" Action="None" />
|
||||
<Rule Id="S1764" Action="Warning" />
|
||||
<Rule Id="S2737" Action="Warning" />
|
||||
<Rule Id="S2971" Action="Warning" />
|
||||
<Rule Id="S3949" Action="None" />
|
||||
<Rule Id="S1698" Action="None" />
|
||||
<Rule Id="S2612" Action="Warning" />
|
||||
<Rule Id="S2857" Action="Warning" />
|
||||
<Rule Id="S3996" Action="None" />
|
||||
<Rule Id="S2302" Action="None" />
|
||||
<Rule Id="S3875" Action="Warning" />
|
||||
<Rule Id="S3997" Action="None" />
|
||||
<Rule Id="S1696" Action="None" />
|
||||
<Rule Id="S3876" Action="None" />
|
||||
<Rule Id="S3994" Action="None" />
|
||||
<Rule Id="S3995" Action="None" />
|
||||
<Rule Id="S1210" Action="Warning" />
|
||||
<Rule Id="S3871" Action="Warning" />
|
||||
<Rule Id="S3874" Action="None" />
|
||||
<Rule Id="S3992" Action="None" />
|
||||
<Rule Id="S1451" Action="None" />
|
||||
<Rule Id="S1694" Action="None" />
|
||||
<Rule Id="S3872" Action="None" />
|
||||
<Rule Id="S3993" Action="None" />
|
||||
<Rule Id="S1450" Action="Warning" />
|
||||
<Rule Id="S2306" Action="Warning" />
|
||||
<Rule Id="S3877" Action="Warning" />
|
||||
<Rule Id="S3990" Action="None" />
|
||||
<Rule Id="S1104" Action="Warning" />
|
||||
<Rule Id="S1215" Action="Warning" />
|
||||
<Rule Id="S1699" Action="Warning" />
|
||||
<Rule Id="S3998" Action="Warning" />
|
||||
<Rule Id="S2674" Action="None" />
|
||||
<Rule Id="S3400" Action="Warning" />
|
||||
<Rule Id="S3884" Action="Warning" />
|
||||
<Rule Id="S3887" Action="Warning" />
|
||||
<Rule Id="S2551" Action="Warning" />
|
||||
<Rule Id="S3880" Action="None" />
|
||||
<Rule Id="S3885" Action="Warning" />
|
||||
<Rule Id="S1109" Action="None" />
|
||||
<Rule Id="S1227" Action="None" />
|
||||
<Rule Id="S2436" Action="Warning" />
|
||||
<Rule Id="S3881" Action="Warning" />
|
||||
<Rule Id="S1226" Action="None" />
|
||||
<Rule Id="S2437" Action="Warning" />
|
||||
<Rule Id="S3889" Action="Warning" />
|
||||
<Rule Id="S1313" Action="Warning" />
|
||||
<Rule Id="S3610" Action="Warning" />
|
||||
<Rule Id="S3972" Action="Warning" />
|
||||
<Rule Id="S3973" Action="Warning" />
|
||||
<Rule Id="S2760" Action="None" />
|
||||
<Rule Id="S2761" Action="Warning" />
|
||||
<Rule Id="S3971" Action="Warning" />
|
||||
<Rule Id="S3984" Action="Warning" />
|
||||
<Rule Id="S4823" Action="None" />
|
||||
<Rule Id="S4829" Action="None" />
|
||||
<Rule Id="S4830" Action="Warning" />
|
||||
<Rule Id="S1200" Action="None" />
|
||||
<Rule Id="S3981" Action="Warning" />
|
||||
<Rule Id="S1449" Action="None" />
|
||||
<Rule Id="S1206" Action="Warning" />
|
||||
<Rule Id="S3626" Action="Warning" />
|
||||
<Rule Id="S3869" Action="Warning" />
|
||||
<Rule Id="S4834" Action="None" />
|
||||
<Rule Id="S1821" Action="None" />
|
||||
<Rule Id="S1940" Action="Warning" />
|
||||
<Rule Id="S1944" Action="Warning" />
|
||||
<Rule Id="S1905" Action="Warning" />
|
||||
<Rule Id="S1939" Action="Warning" />
|
||||
<Rule Id="S4069" Action="None" />
|
||||
<Rule Id="S5034" Action="Warning" />
|
||||
<Rule Id="S4060" Action="None" />
|
||||
<Rule Id="S4061" Action="Warning" />
|
||||
<Rule Id="S5042" Action="Warning" />
|
||||
<Rule Id="S1854" Action="Warning" />
|
||||
<Rule Id="S1858" Action="None" />
|
||||
<Rule Id="S2701" Action="None" />
|
||||
<Rule Id="S4070" Action="Warning" />
|
||||
<Rule Id="S2952" Action="None" />
|
||||
<Rule Id="S3908" Action="None" />
|
||||
<Rule Id="S3909" Action="None" />
|
||||
<Rule Id="S1862" Action="Warning" />
|
||||
<Rule Id="S3927" Action="Warning" />
|
||||
<Rule Id="S3928" Action="Warning" />
|
||||
<Rule Id="S2955" Action="None" />
|
||||
<Rule Id="S3925" Action="Warning" />
|
||||
<Rule Id="S3926" Action="Warning" />
|
||||
<Rule Id="S131" Action="None" />
|
||||
<Rule Id="S2953" Action="Warning" />
|
||||
<Rule Id="S3923" Action="Warning" />
|
||||
<Rule Id="S125" Action="Warning" />
|
||||
<Rule Id="S127" Action="None" />
|
||||
<Rule Id="S134" Action="None" />
|
||||
<Rule Id="S126" Action="None" />
|
||||
<Rule Id="S1607" Action="Warning" />
|
||||
<Rule Id="S1848" Action="Warning" />
|
||||
<Rule Id="S2930" Action="Warning" />
|
||||
<Rule Id="S3903" Action="Warning" />
|
||||
<Rule Id="S3904" Action="Warning" />
|
||||
<Rule Id="S3906" Action="None" />
|
||||
<Rule Id="S2931" Action="None" />
|
||||
<Rule Id="S2933" Action="Warning" />
|
||||
<Rule Id="S2934" Action="Warning" />
|
||||
<Rule Id="S3902" Action="None" />
|
||||
<Rule Id="S138" Action="None" />
|
||||
<Rule Id="S3900" Action="None" />
|
||||
<Rule Id="S4005" Action="None" />
|
||||
<Rule Id="S6422" Action="Warning" />
|
||||
<Rule Id="S110" Action="Warning" />
|
||||
<Rule Id="S2068" Action="Warning" />
|
||||
<Rule Id="S4004" Action="None" />
|
||||
<Rule Id="S5332" Action="Warning" />
|
||||
<Rule Id="S6421" Action="None" />
|
||||
<Rule Id="S112" Action="Warning" />
|
||||
<Rule Id="S2187" Action="Warning" />
|
||||
<Rule Id="S4487" Action="Warning" />
|
||||
<Rule Id="S6424" Action="Warning" />
|
||||
<Rule Id="S3397" Action="Warning" />
|
||||
<Rule Id="S4002" Action="None" />
|
||||
<Rule Id="S6423" Action="None" />
|
||||
<Rule Id="S103" Action="None" />
|
||||
<Rule Id="S2184" Action="Warning" />
|
||||
<Rule Id="S4000" Action="None" />
|
||||
<Rule Id="S104" Action="None" />
|
||||
<Rule Id="S105" Action="None" />
|
||||
<Rule Id="S5693" Action="Warning" />
|
||||
<Rule Id="S6420" Action="Warning" />
|
||||
<Rule Id="S106" Action="None" />
|
||||
<Rule Id="S107" Action="Warning" />
|
||||
<Rule Id="S2183" Action="Warning" />
|
||||
<Rule Id="S108" Action="Warning" />
|
||||
<Rule Id="S109" Action="None" />
|
||||
<Rule Id="S4018" Action="None" />
|
||||
<Rule Id="S4019" Action="Warning" />
|
||||
<Rule Id="S3169" Action="Warning" />
|
||||
<Rule Id="S4016" Action="None" />
|
||||
<Rule Id="S4017" Action="None" />
|
||||
<Rule Id="S121" Action="None" />
|
||||
<Rule Id="S3168" Action="Warning" />
|
||||
<Rule Id="S4015" Action="Warning" />
|
||||
<Rule Id="S122" Action="None" />
|
||||
<Rule Id="S2197" Action="None" />
|
||||
<Rule Id="S4136" Action="Warning" />
|
||||
<Rule Id="S113" Action="None" />
|
||||
<Rule Id="S2077" Action="Warning" />
|
||||
<Rule Id="S2190" Action="Warning" />
|
||||
<Rule Id="S4226" Action="None" />
|
||||
<Rule Id="S1199" Action="Warning" />
|
||||
<Rule Id="S3257" Action="None" />
|
||||
<Rule Id="S3376" Action="Warning" />
|
||||
<Rule Id="S4225" Action="None" />
|
||||
<Rule Id="S1075" Action="Warning" />
|
||||
<Rule Id="S3011" Action="Warning" />
|
||||
<Rule Id="S3253" Action="None" />
|
||||
<Rule Id="S3256" Action="Warning" />
|
||||
<Rule Id="S3254" Action="None" />
|
||||
<Rule Id="S4581" Action="Warning" />
|
||||
<Rule Id="S4586" Action="Warning" />
|
||||
<Rule Id="S3010" Action="Warning" />
|
||||
<Rule Id="S3251" Action="Warning" />
|
||||
<Rule Id="S4220" Action="Warning" />
|
||||
<Rule Id="S4462" Action="None" />
|
||||
<Rule Id="S1192" Action="None" />
|
||||
<Rule Id="S4583" Action="Warning" />
|
||||
<Rule Id="S5443" Action="Warning" />
|
||||
<Rule Id="S2178" Action="Warning" />
|
||||
<Rule Id="S3264" Action="Warning" />
|
||||
<Rule Id="S3267" Action="Warning" />
|
||||
<Rule Id="S101" Action="Warning" />
|
||||
<Rule Id="S5445" Action="Warning" />
|
||||
<Rule Id="S100" Action="None" />
|
||||
<Rule Id="S3262" Action="Warning" />
|
||||
<Rule Id="S3265" Action="Warning" />
|
||||
<Rule Id="S6419" Action="Warning" />
|
||||
<Rule Id="S2053" Action="Warning" />
|
||||
<Rule Id="S2292" Action="Warning" />
|
||||
<Rule Id="S3263" Action="Warning" />
|
||||
<Rule Id="S3260" Action="Warning" />
|
||||
<Rule Id="S3261" Action="Warning" />
|
||||
<Rule Id="S2290" Action="Warning" />
|
||||
<Rule Id="S2291" Action="Warning" />
|
||||
<Rule Id="S4047" Action="None" />
|
||||
<Rule Id="S4049" Action="None" />
|
||||
<Rule Id="S4040" Action="None" />
|
||||
<Rule Id="S4041" Action="None" />
|
||||
<Rule Id="S4058" Action="None" />
|
||||
<Rule Id="S4059" Action="None" />
|
||||
<Rule Id="S4055" Action="None" />
|
||||
<Rule Id="S4056" Action="None" />
|
||||
<Rule Id="S4057" Action="None" />
|
||||
<Rule Id="S4050" Action="None" />
|
||||
<Rule Id="S4052" Action="None" />
|
||||
<Rule Id="S6354" Action="None" />
|
||||
<Rule Id="S3059" Action="None" />
|
||||
<Rule Id="S4027" Action="None" />
|
||||
<Rule Id="S6444" Action="Warning" />
|
||||
<Rule Id="S4023" Action="None" />
|
||||
<Rule Id="S4025" Action="None" />
|
||||
<Rule Id="S4026" Action="None" />
|
||||
<Rule Id="S4144" Action="Warning" />
|
||||
<Rule Id="S4022" Action="None" />
|
||||
<Rule Id="S4143" Action="Warning" />
|
||||
<Rule Id="S4261" Action="None" />
|
||||
<Rule Id="S3052" Action="None" />
|
||||
<Rule Id="S3172" Action="Warning" />
|
||||
<Rule Id="S4159" Action="Warning" />
|
||||
<Rule Id="S4260" Action="Warning" />
|
||||
<Rule Id="S4036" Action="Warning" />
|
||||
<Rule Id="S4039" Action="None" />
|
||||
<Rule Id="S4277" Action="Warning" />
|
||||
<Rule Id="S4035" Action="Warning" />
|
||||
<Rule Id="S4158" Action="Warning" />
|
||||
<Rule Id="S4275" Action="Warning" />
|
||||
<Rule Id="S2092" Action="Warning" />
|
||||
<Rule Id="S3060" Action="Warning" />
|
||||
<Rule Id="S5122" Action="Warning" />
|
||||
</Rules>
|
||||
</RuleSet>
|
||||
184
.sonarqube/conf/Sonar-vbnet-none.ruleset
Normal file
184
.sonarqube/conf/Sonar-vbnet-none.ruleset
Normal file
@ -0,0 +1,184 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RuleSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="Rules for SonarQube" Description="This rule set was automatically generated from SonarQube" ToolsVersion="14.0">
|
||||
<Rules AnalyzerId="SonarScannerFor.NET" RuleNamespace="SonarScannerFor.NET">
|
||||
<Rule Id="S1654" Action="None" />
|
||||
<Rule Id="S2225" Action="None" />
|
||||
<Rule Id="S1135" Action="None" />
|
||||
<Rule Id="S2344" Action="None" />
|
||||
<Rule Id="S2346" Action="None" />
|
||||
<Rule Id="S2347" Action="None" />
|
||||
<Rule Id="S1134" Action="None" />
|
||||
<Rule Id="S2342" Action="None" />
|
||||
<Rule Id="S2345" Action="None" />
|
||||
<Rule Id="S3431" Action="None" />
|
||||
<Rule Id="S2068" Action="None" />
|
||||
<Rule Id="S2222" Action="None" />
|
||||
<Rule Id="S2343" Action="None" />
|
||||
<Rule Id="S6146" Action="None" />
|
||||
<Rule Id="S112" Action="None" />
|
||||
<Rule Id="S1659" Action="None" />
|
||||
<Rule Id="S2340" Action="None" />
|
||||
<Rule Id="S1656" Action="None" />
|
||||
<Rule Id="S2348" Action="None" />
|
||||
<Rule Id="S2349" Action="None" />
|
||||
<Rule Id="S907" Action="None" />
|
||||
<Rule Id="S103" Action="None" />
|
||||
<Rule Id="S105" Action="None" />
|
||||
<Rule Id="S6145" Action="None" />
|
||||
<Rule Id="S5693" Action="None" />
|
||||
<Rule Id="S104" Action="None" />
|
||||
<Rule Id="S107" Action="None" />
|
||||
<Rule Id="S108" Action="None" />
|
||||
<Rule Id="S1147" Action="None" />
|
||||
<Rule Id="S1301" Action="None" />
|
||||
<Rule Id="S1940" Action="None" />
|
||||
<Rule Id="S2357" Action="None" />
|
||||
<Rule Id="S2358" Action="None" />
|
||||
<Rule Id="S1542" Action="None" />
|
||||
<Rule Id="S2234" Action="None" />
|
||||
<Rule Id="S2355" Action="None" />
|
||||
<Rule Id="S122" Action="None" />
|
||||
<Rule Id="S1541" Action="None" />
|
||||
<Rule Id="S2353" Action="None" />
|
||||
<Rule Id="S2354" Action="None" />
|
||||
<Rule Id="S4136" Action="None" />
|
||||
<Rule Id="S2077" Action="None" />
|
||||
<Rule Id="S2352" Action="None" />
|
||||
<Rule Id="S4818" Action="None" />
|
||||
<Rule Id="S1821" Action="None" />
|
||||
<Rule Id="S2359" Action="None" />
|
||||
<Rule Id="S2757" Action="None" />
|
||||
<Rule Id="S3449" Action="None" />
|
||||
<Rule Id="S114" Action="None" />
|
||||
<Rule Id="S117" Action="None" />
|
||||
<Rule Id="S3603" Action="None" />
|
||||
<Rule Id="S3776" Action="None" />
|
||||
<Rule Id="S1110" Action="None" />
|
||||
<Rule Id="S1751" Action="None" />
|
||||
<Rule Id="S1871" Action="None" />
|
||||
<Rule Id="S4225" Action="None" />
|
||||
<Rule Id="S1075" Action="None" />
|
||||
<Rule Id="S1197" Action="None" />
|
||||
<Rule Id="S3011" Action="None" />
|
||||
<Rule Id="S4586" Action="None" />
|
||||
<Rule Id="S1479" Action="None" />
|
||||
<Rule Id="S4507" Action="None" />
|
||||
<Rule Id="S4581" Action="None" />
|
||||
<Rule Id="S1192" Action="None" />
|
||||
<Rule Id="S1643" Action="None" />
|
||||
<Rule Id="S4060" Action="None" />
|
||||
<Rule Id="S4583" Action="None" />
|
||||
<Rule Id="S1123" Action="None" />
|
||||
<Rule Id="S1125" Action="None" />
|
||||
<Rule Id="S1764" Action="None" />
|
||||
<Rule Id="S101" Action="None" />
|
||||
<Rule Id="S2178" Action="None" />
|
||||
<Rule Id="S5443" Action="None" />
|
||||
<Rule Id="S5445" Action="None" />
|
||||
<Rule Id="S2339" Action="None" />
|
||||
<Rule Id="S2692" Action="None" />
|
||||
<Rule Id="S2737" Action="None" />
|
||||
<Rule Id="S3385" Action="None" />
|
||||
<Rule Id="S1481" Action="None" />
|
||||
<Rule Id="S1645" Action="None" />
|
||||
<Rule Id="S2612" Action="None" />
|
||||
<Rule Id="S2302" Action="None" />
|
||||
<Rule Id="S3358" Action="None" />
|
||||
<Rule Id="S5042" Action="None" />
|
||||
<Rule Id="S2387" Action="None" />
|
||||
<Rule Id="S3598" Action="None" />
|
||||
<Rule Id="S3871" Action="None" />
|
||||
<Rule Id="S3992" Action="None" />
|
||||
<Rule Id="S1451" Action="None" />
|
||||
<Rule Id="S2429" Action="None" />
|
||||
<Rule Id="S3990" Action="None" />
|
||||
<Rule Id="S4201" Action="None" />
|
||||
<Rule Id="S1172" Action="None" />
|
||||
<Rule Id="S2304" Action="None" />
|
||||
<Rule Id="S3998" Action="None" />
|
||||
<Rule Id="S5659" Action="None" />
|
||||
<Rule Id="S1862" Action="None" />
|
||||
<Rule Id="S2951" Action="None" />
|
||||
<Rule Id="S5944" Action="None" />
|
||||
<Rule Id="S1067" Action="None" />
|
||||
<Rule Id="S3884" Action="None" />
|
||||
<Rule Id="S5547" Action="None" />
|
||||
<Rule Id="S1066" Action="None" />
|
||||
<Rule Id="S2551" Action="None" />
|
||||
<Rule Id="S4210" Action="None" />
|
||||
<Rule Id="S5542" Action="None" />
|
||||
<Rule Id="S1186" Action="None" />
|
||||
<Rule Id="S3923" Action="None" />
|
||||
<Rule Id="S3926" Action="None" />
|
||||
<Rule Id="S3927" Action="None" />
|
||||
<Rule Id="S1226" Action="None" />
|
||||
<Rule Id="S2437" Action="None" />
|
||||
<Rule Id="S3889" Action="None" />
|
||||
<Rule Id="S1313" Action="None" />
|
||||
<Rule Id="S2368" Action="None" />
|
||||
<Rule Id="S4787" Action="None" />
|
||||
<Rule Id="S6354" Action="None" />
|
||||
<Rule Id="S2366" Action="None" />
|
||||
<Rule Id="S2367" Action="None" />
|
||||
<Rule Id="S2369" Action="None" />
|
||||
<Rule Id="S4423" Action="None" />
|
||||
<Rule Id="S1155" Action="None" />
|
||||
<Rule Id="S2364" Action="None" />
|
||||
<Rule Id="S4025" Action="None" />
|
||||
<Rule Id="S6444" Action="None" />
|
||||
<Rule Id="S131" Action="None" />
|
||||
<Rule Id="S2761" Action="None" />
|
||||
<Rule Id="S3453" Action="None" />
|
||||
<Rule Id="S2362" Action="None" />
|
||||
<Rule Id="S2365" Action="None" />
|
||||
<Rule Id="S4144" Action="None" />
|
||||
<Rule Id="S5753" Action="None" />
|
||||
<Rule Id="S134" Action="None" />
|
||||
<Rule Id="S2363" Action="None" />
|
||||
<Rule Id="S4784" Action="None" />
|
||||
<Rule Id="S4829" Action="None" />
|
||||
<Rule Id="S1151" Action="None" />
|
||||
<Rule Id="S4428" Action="None" />
|
||||
<Rule Id="S4823" Action="None" />
|
||||
<Rule Id="S927" Action="None" />
|
||||
<Rule Id="S126" Action="None" />
|
||||
<Rule Id="S2360" Action="None" />
|
||||
<Rule Id="S4143" Action="None" />
|
||||
<Rule Id="S4260" Action="None" />
|
||||
<Rule Id="S1048" Action="None" />
|
||||
<Rule Id="S2259" Action="None" />
|
||||
<Rule Id="S4159" Action="None" />
|
||||
<Rule Id="S4830" Action="None" />
|
||||
<Rule Id="S2257" Action="None" />
|
||||
<Rule Id="S2375" Action="None" />
|
||||
<Rule Id="S3466" Action="None" />
|
||||
<Rule Id="S4036" Action="None" />
|
||||
<Rule Id="S3464" Action="None" />
|
||||
<Rule Id="S3860" Action="None" />
|
||||
<Rule Id="S3981" Action="None" />
|
||||
<Rule Id="S4277" Action="None" />
|
||||
<Rule Id="S2255" Action="None" />
|
||||
<Rule Id="S2373" Action="None" />
|
||||
<Rule Id="S2374" Action="None" />
|
||||
<Rule Id="S2376" Action="None" />
|
||||
<Rule Id="S1163" Action="None" />
|
||||
<Rule Id="S3903" Action="None" />
|
||||
<Rule Id="S3904" Action="None" />
|
||||
<Rule Id="S4834" Action="None" />
|
||||
<Rule Id="S2372" Action="None" />
|
||||
<Rule Id="S3866" Action="None" />
|
||||
<Rule Id="S3869" Action="None" />
|
||||
<Rule Id="S4790" Action="None" />
|
||||
<Rule Id="S138" Action="None" />
|
||||
<Rule Id="S2370" Action="None" />
|
||||
<Rule Id="S4275" Action="None" />
|
||||
<Rule Id="S4792" Action="None" />
|
||||
<Rule Id="S139" Action="None" />
|
||||
<Rule Id="DuplicatedBlocks" Action="None" />
|
||||
<Rule Id="FailedUnitTests" Action="None" />
|
||||
<Rule Id="SkippedUnitTests" Action="None" />
|
||||
<Rule Id="InsufficientBranchCoverage" Action="None" />
|
||||
<Rule Id="InsufficientCommentDensity" Action="None" />
|
||||
<Rule Id="InsufficientLineCoverage" Action="None" />
|
||||
</Rules>
|
||||
</RuleSet>
|
||||
184
.sonarqube/conf/Sonar-vbnet.ruleset
Normal file
184
.sonarqube/conf/Sonar-vbnet.ruleset
Normal file
@ -0,0 +1,184 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RuleSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="Rules for SonarQube" Description="This rule set was automatically generated from SonarQube" ToolsVersion="14.0">
|
||||
<Rules AnalyzerId="SonarScannerFor.NET" RuleNamespace="SonarScannerFor.NET">
|
||||
<Rule Id="S1654" Action="Warning" />
|
||||
<Rule Id="S2225" Action="Warning" />
|
||||
<Rule Id="S1135" Action="Warning" />
|
||||
<Rule Id="S2344" Action="Warning" />
|
||||
<Rule Id="S2346" Action="Warning" />
|
||||
<Rule Id="S2347" Action="Warning" />
|
||||
<Rule Id="S1134" Action="Warning" />
|
||||
<Rule Id="S2342" Action="Warning" />
|
||||
<Rule Id="S2345" Action="Warning" />
|
||||
<Rule Id="S3431" Action="None" />
|
||||
<Rule Id="S2068" Action="Warning" />
|
||||
<Rule Id="S2222" Action="Warning" />
|
||||
<Rule Id="S2343" Action="None" />
|
||||
<Rule Id="S6146" Action="Warning" />
|
||||
<Rule Id="S112" Action="Warning" />
|
||||
<Rule Id="S1659" Action="None" />
|
||||
<Rule Id="S2340" Action="Warning" />
|
||||
<Rule Id="S1656" Action="Warning" />
|
||||
<Rule Id="S2348" Action="None" />
|
||||
<Rule Id="S2349" Action="Warning" />
|
||||
<Rule Id="S907" Action="Warning" />
|
||||
<Rule Id="S103" Action="None" />
|
||||
<Rule Id="S105" Action="None" />
|
||||
<Rule Id="S6145" Action="Warning" />
|
||||
<Rule Id="S5693" Action="Warning" />
|
||||
<Rule Id="S104" Action="None" />
|
||||
<Rule Id="S107" Action="Warning" />
|
||||
<Rule Id="S108" Action="Warning" />
|
||||
<Rule Id="S1147" Action="None" />
|
||||
<Rule Id="S1301" Action="None" />
|
||||
<Rule Id="S1940" Action="Warning" />
|
||||
<Rule Id="S2357" Action="None" />
|
||||
<Rule Id="S2358" Action="Warning" />
|
||||
<Rule Id="S1542" Action="Warning" />
|
||||
<Rule Id="S2234" Action="Warning" />
|
||||
<Rule Id="S2355" Action="Warning" />
|
||||
<Rule Id="S122" Action="None" />
|
||||
<Rule Id="S1541" Action="None" />
|
||||
<Rule Id="S2353" Action="None" />
|
||||
<Rule Id="S2354" Action="None" />
|
||||
<Rule Id="S4136" Action="Warning" />
|
||||
<Rule Id="S2077" Action="Warning" />
|
||||
<Rule Id="S2352" Action="Warning" />
|
||||
<Rule Id="S4818" Action="None" />
|
||||
<Rule Id="S1821" Action="None" />
|
||||
<Rule Id="S2359" Action="Warning" />
|
||||
<Rule Id="S2757" Action="Warning" />
|
||||
<Rule Id="S3449" Action="Warning" />
|
||||
<Rule Id="S114" Action="Warning" />
|
||||
<Rule Id="S117" Action="Warning" />
|
||||
<Rule Id="S3603" Action="Warning" />
|
||||
<Rule Id="S3776" Action="Warning" />
|
||||
<Rule Id="S1110" Action="Warning" />
|
||||
<Rule Id="S1751" Action="Warning" />
|
||||
<Rule Id="S1871" Action="Warning" />
|
||||
<Rule Id="S4225" Action="None" />
|
||||
<Rule Id="S1075" Action="Warning" />
|
||||
<Rule Id="S1197" Action="Warning" />
|
||||
<Rule Id="S3011" Action="Warning" />
|
||||
<Rule Id="S4586" Action="Warning" />
|
||||
<Rule Id="S1479" Action="Warning" />
|
||||
<Rule Id="S4507" Action="Warning" />
|
||||
<Rule Id="S4581" Action="Warning" />
|
||||
<Rule Id="S1192" Action="None" />
|
||||
<Rule Id="S1643" Action="Warning" />
|
||||
<Rule Id="S4060" Action="None" />
|
||||
<Rule Id="S4583" Action="Warning" />
|
||||
<Rule Id="S1123" Action="Warning" />
|
||||
<Rule Id="S1125" Action="Warning" />
|
||||
<Rule Id="S1764" Action="Warning" />
|
||||
<Rule Id="S101" Action="Warning" />
|
||||
<Rule Id="S2178" Action="Warning" />
|
||||
<Rule Id="S5443" Action="Warning" />
|
||||
<Rule Id="S5445" Action="Warning" />
|
||||
<Rule Id="S2339" Action="None" />
|
||||
<Rule Id="S2692" Action="Warning" />
|
||||
<Rule Id="S2737" Action="Warning" />
|
||||
<Rule Id="S3385" Action="Warning" />
|
||||
<Rule Id="S1481" Action="Warning" />
|
||||
<Rule Id="S1645" Action="Warning" />
|
||||
<Rule Id="S2612" Action="Warning" />
|
||||
<Rule Id="S2302" Action="None" />
|
||||
<Rule Id="S3358" Action="Warning" />
|
||||
<Rule Id="S5042" Action="Warning" />
|
||||
<Rule Id="S2387" Action="Warning" />
|
||||
<Rule Id="S3598" Action="Warning" />
|
||||
<Rule Id="S3871" Action="Warning" />
|
||||
<Rule Id="S3992" Action="None" />
|
||||
<Rule Id="S1451" Action="None" />
|
||||
<Rule Id="S2429" Action="None" />
|
||||
<Rule Id="S3990" Action="None" />
|
||||
<Rule Id="S4201" Action="Warning" />
|
||||
<Rule Id="S1172" Action="Warning" />
|
||||
<Rule Id="S2304" Action="Warning" />
|
||||
<Rule Id="S3998" Action="Warning" />
|
||||
<Rule Id="S5659" Action="Warning" />
|
||||
<Rule Id="S1862" Action="Warning" />
|
||||
<Rule Id="S2951" Action="Warning" />
|
||||
<Rule Id="S5944" Action="Warning" />
|
||||
<Rule Id="S1067" Action="None" />
|
||||
<Rule Id="S3884" Action="Warning" />
|
||||
<Rule Id="S5547" Action="Warning" />
|
||||
<Rule Id="S1066" Action="Warning" />
|
||||
<Rule Id="S2551" Action="Warning" />
|
||||
<Rule Id="S4210" Action="Warning" />
|
||||
<Rule Id="S5542" Action="Warning" />
|
||||
<Rule Id="S1186" Action="Warning" />
|
||||
<Rule Id="S3923" Action="Warning" />
|
||||
<Rule Id="S3926" Action="Warning" />
|
||||
<Rule Id="S3927" Action="Warning" />
|
||||
<Rule Id="S1226" Action="None" />
|
||||
<Rule Id="S2437" Action="Warning" />
|
||||
<Rule Id="S3889" Action="Warning" />
|
||||
<Rule Id="S1313" Action="Warning" />
|
||||
<Rule Id="S2368" Action="Warning" />
|
||||
<Rule Id="S4787" Action="None" />
|
||||
<Rule Id="S6354" Action="None" />
|
||||
<Rule Id="S2366" Action="None" />
|
||||
<Rule Id="S2367" Action="None" />
|
||||
<Rule Id="S2369" Action="None" />
|
||||
<Rule Id="S4423" Action="Warning" />
|
||||
<Rule Id="S1155" Action="Warning" />
|
||||
<Rule Id="S2364" Action="None" />
|
||||
<Rule Id="S4025" Action="None" />
|
||||
<Rule Id="S6444" Action="Warning" />
|
||||
<Rule Id="S131" Action="None" />
|
||||
<Rule Id="S2761" Action="Warning" />
|
||||
<Rule Id="S3453" Action="Warning" />
|
||||
<Rule Id="S2362" Action="None" />
|
||||
<Rule Id="S2365" Action="Warning" />
|
||||
<Rule Id="S4144" Action="Warning" />
|
||||
<Rule Id="S5753" Action="Warning" />
|
||||
<Rule Id="S134" Action="None" />
|
||||
<Rule Id="S2363" Action="None" />
|
||||
<Rule Id="S4784" Action="None" />
|
||||
<Rule Id="S4829" Action="None" />
|
||||
<Rule Id="S1151" Action="None" />
|
||||
<Rule Id="S4428" Action="Warning" />
|
||||
<Rule Id="S4823" Action="None" />
|
||||
<Rule Id="S927" Action="Warning" />
|
||||
<Rule Id="S126" Action="None" />
|
||||
<Rule Id="S2360" Action="None" />
|
||||
<Rule Id="S4143" Action="Warning" />
|
||||
<Rule Id="S4260" Action="Warning" />
|
||||
<Rule Id="S1048" Action="Warning" />
|
||||
<Rule Id="S2259" Action="Warning" />
|
||||
<Rule Id="S4159" Action="Warning" />
|
||||
<Rule Id="S4830" Action="Warning" />
|
||||
<Rule Id="S2257" Action="Warning" />
|
||||
<Rule Id="S2375" Action="Warning" />
|
||||
<Rule Id="S3466" Action="Warning" />
|
||||
<Rule Id="S4036" Action="Warning" />
|
||||
<Rule Id="S3464" Action="Warning" />
|
||||
<Rule Id="S3860" Action="None" />
|
||||
<Rule Id="S3981" Action="Warning" />
|
||||
<Rule Id="S4277" Action="Warning" />
|
||||
<Rule Id="S2255" Action="None" />
|
||||
<Rule Id="S2373" Action="None" />
|
||||
<Rule Id="S2374" Action="None" />
|
||||
<Rule Id="S2376" Action="Warning" />
|
||||
<Rule Id="S1163" Action="Warning" />
|
||||
<Rule Id="S3903" Action="Warning" />
|
||||
<Rule Id="S3904" Action="Warning" />
|
||||
<Rule Id="S4834" Action="None" />
|
||||
<Rule Id="S2372" Action="Warning" />
|
||||
<Rule Id="S3866" Action="None" />
|
||||
<Rule Id="S3869" Action="Warning" />
|
||||
<Rule Id="S4790" Action="Warning" />
|
||||
<Rule Id="S138" Action="None" />
|
||||
<Rule Id="S2370" Action="None" />
|
||||
<Rule Id="S4275" Action="Warning" />
|
||||
<Rule Id="S4792" Action="Warning" />
|
||||
<Rule Id="S139" Action="None" />
|
||||
<Rule Id="DuplicatedBlocks" Action="None" />
|
||||
<Rule Id="FailedUnitTests" Action="None" />
|
||||
<Rule Id="SkippedUnitTests" Action="None" />
|
||||
<Rule Id="InsufficientBranchCoverage" Action="None" />
|
||||
<Rule Id="InsufficientCommentDensity" Action="None" />
|
||||
<Rule Id="InsufficientLineCoverage" Action="None" />
|
||||
</Rules>
|
||||
</RuleSet>
|
||||
172
.sonarqube/conf/SonarQubeAnalysisConfig.xml
Normal file
172
.sonarqube/conf/SonarQubeAnalysisConfig.xml
Normal file
@ -0,0 +1,172 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<AnalysisConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.sonarsource.com/msbuild/integration/2015/1">
|
||||
<SonarConfigDir>/workspaces/AS400API/.sonarqube/conf</SonarConfigDir>
|
||||
<SonarOutputDir>/workspaces/AS400API/.sonarqube/out</SonarOutputDir>
|
||||
<SonarBinDir>/workspaces/AS400API/.sonarqube/bin</SonarBinDir>
|
||||
<SonarScannerWorkingDirectory>/workspaces/AS400API</SonarScannerWorkingDirectory>
|
||||
<UseSonarScannerCli>false</UseSonarScannerCli>
|
||||
<ScanAllAnalysis>true</ScanAllAnalysis>
|
||||
<HasBeginStepCommandLineCredentials>true</HasBeginStepCommandLineCredentials>
|
||||
<HasBeginStepCommandLineTruststorePassword>false</HasBeginStepCommandLineTruststorePassword>
|
||||
<SonarQubeHostUrl>http://host.docker.internal:9000</SonarQubeHostUrl>
|
||||
<SonarQubeVersion>9.9.8.100196</SonarQubeVersion>
|
||||
<SonarProjectKey>as400api</SonarProjectKey>
|
||||
<SonarProjectName>AS400API</SonarProjectName>
|
||||
<AdditionalConfig>
|
||||
<ConfigSetting Id="BuildUri" />
|
||||
<ConfigSetting Id="TfsUri" />
|
||||
<ConfigSetting Id="VsCoverageConverterToolPath" />
|
||||
<ConfigSetting Id="UnchangedFilesPath" />
|
||||
<ConfigSetting Id="sonar.pullrequest.cache.basepath" Value="/workspaces/AS400API" />
|
||||
<ConfigSetting Id="settings.file.path" Value="/root/.dotnet/tools/.store/dotnet-sonarscanner/10.4.1/dotnet-sonarscanner/10.4.1/tools/netcoreapp3.1/any/SonarQube.Analysis.xml" />
|
||||
</AdditionalConfig>
|
||||
<ServerSettings>
|
||||
<Property Name="sonaranalyzer-cs.nuget.packageVersion">8.51.0.59060</Property>
|
||||
<Property Name="sonar.cs.ignoreHeaderComments">true</Property>
|
||||
<Property Name="sonar.typescript.file.suffixes">.ts,.tsx,.cts,.mts</Property>
|
||||
<Property Name="email.fromName">SonarQube</Property>
|
||||
<Property Name="sonar.python.xunit.skipDetails">false</Property>
|
||||
<Property Name="sonar.auth.saml.signature.enabled">false</Property>
|
||||
<Property Name="sonar.go.exclusions">**/vendor/**</Property>
|
||||
<Property Name="sonar.terraform.file.suffixes">.tf</Property>
|
||||
<Property Name="sonar.forceAuthentication">true</Property>
|
||||
<Property Name="sonar.notifications.delay">60</Property>
|
||||
<Property Name="sonaranalyzer-cs.ruleNamespace">SonarAnalyzer.CSharp</Property>
|
||||
<Property Name="sonar.cs.analyzeGeneratedCode">false</Property>
|
||||
<Property Name="sonar.builtInQualityProfiles.disableNotificationOnUpdate">false</Property>
|
||||
<Property Name="sonar.css.file.suffixes">.css,.less,.scss</Property>
|
||||
<Property Name="sonar.html.file.suffixes">.html,.xhtml,.cshtml,.vbhtml,.aspx,.ascx,.rhtml,.erb,.shtm,.shtml,.cmp,.twig</Property>
|
||||
<Property Name="sonar.auth.gitlab.enabled">false</Property>
|
||||
<Property Name="sonar.cpd.cross_project">false</Property>
|
||||
<Property Name="sonar.vbnet.ignoreHeaderComments">true</Property>
|
||||
<Property Name="sonar.auth.github.groupsSync">false</Property>
|
||||
<Property Name="sonar.scala.file.suffixes">.scala</Property>
|
||||
<Property Name="sonar.cloudformation.activate">true</Property>
|
||||
<Property Name="sonaranalyzer-vbnet.ruleNamespace">SonarAnalyzer.VisualBasic</Property>
|
||||
<Property Name="sonar.cloudformation.file.identifier">AWSTemplateFormatVersion</Property>
|
||||
<Property Name="sonar.javascript.ignoreHeaderComments">true</Property>
|
||||
<Property Name="sonar.dbcleaner.daysBeforeDeletingClosedIssues">30</Property>
|
||||
<Property Name="sonar.dbcleaner.weeksBeforeKeepingOnlyOneSnapshotByMonth">52</Property>
|
||||
<Property Name="sonar.lf.gravatarServerUrl">https://secure.gravatar.com/avatar/{EMAIL_MD5}.jpg?s={SIZE}&d=identicon</Property>
|
||||
<Property Name="sonar.notifications.runningDelayBeforeReportingStatus">600</Property>
|
||||
<Property Name="sonar.jsp.file.suffixes">.jsp,.jspf,.jspx</Property>
|
||||
<Property Name="sonar.javascript.maxFileSize">1000</Property>
|
||||
<Property Name="sonar.javascript.environments">amd,applescript,atomtest,browser,commonjs,couch,embertest,flow,greasemonkey,jasmine,jest,jquery,meteor,mocha,mongo,nashorn,node,phantomjs,prototypejs,protractor,qunit,rhino,serviceworker,shared-node-browser,shelljs,webextensions,worker,wsh,yui</Property>
|
||||
<Property Name="sonar.scm.disabled">false</Property>
|
||||
<Property Name="sonar.ruby.exclusions">**/vendor/**</Property>
|
||||
<Property Name="sonar.auth.saml.enabled">false</Property>
|
||||
<Property Name="sonar.vbnet.file.suffixes">.vb</Property>
|
||||
<Property Name="sonar.technicalDebt.developmentCost">30</Property>
|
||||
<Property Name="sonar.validateWebhooks">true</Property>
|
||||
<Property Name="sonar.python.file.suffixes">py</Property>
|
||||
<Property Name="sonar.cs.file.suffixes">.cs</Property>
|
||||
<Property Name="sonar.allowPermissionManagementForProjectAdmins">true</Property>
|
||||
<Property Name="sonaranalyzer-vbnet.staticResourceName">SonarAnalyzer-8.51.0.59060.zip</Property>
|
||||
<Property Name="sonar.java.file.suffixes">.java,.jav</Property>
|
||||
<Property Name="sonar.kotlin.file.suffixes">.kt</Property>
|
||||
<Property Name="sonar.php.file.suffixes">php,php3,php4,php5,phtml,inc</Property>
|
||||
<Property Name="sonar.xml.file.suffixes">.xml,.xsd,.xsl</Property>
|
||||
<Property Name="sonar.dbcleaner.weeksBeforeDeletingAllSnapshots">260</Property>
|
||||
<Property Name="sonar.updatecenter.cache.ttl">3600000</Property>
|
||||
<Property Name="sonar.auth.bitbucket.allowUsersToSignUp">true</Property>
|
||||
<Property Name="sonar.auth.github.enabled">false</Property>
|
||||
<Property Name="sonar.python.coverage.reportPaths">coverage-reports/*coverage-*.xml</Property>
|
||||
<Property Name="sonaranalyzer-vbnet.nuget.packageVersion">8.51.0.59060</Property>
|
||||
<Property Name="sonar.go.file.suffixes">.go</Property>
|
||||
<Property Name="sonar.auth.saml.applicationId">sonarqube</Property>
|
||||
<Property Name="sonar.dbcleaner.weeksBeforeKeepingOnlyAnalysesWithVersion">104</Property>
|
||||
<Property Name="sonar.qualitygate.ignoreSmallChanges">true</Property>
|
||||
<Property Name="sonar.php.exclusions">**/vendor/**</Property>
|
||||
<Property Name="sonar.vbnet.roslyn.ignoreIssues">false</Property>
|
||||
<Property Name="sonar.flex.file.suffixes">as</Property>
|
||||
<Property Name="sonar.filesize.limit">20</Property>
|
||||
<Property Name="sonar.auth.gitlab.groupsSync">false</Property>
|
||||
<Property Name="sonar.auth.github.apiUrl">https://api.github.com/</Property>
|
||||
<Property Name="sonar.ruby.file.suffixes">.rb</Property>
|
||||
<Property Name="sonar.auth.github.allowUsersToSignUp">true</Property>
|
||||
<Property Name="sonar.python.xunit.reportPath">xunit-reports/xunit-result-*.xml</Property>
|
||||
<Property Name="sonar.javascript.globals">angular,goog,google,OenLayers,d3,dojo,dojox,dijit,Backbone,moment,casper,_,sap</Property>
|
||||
<Property Name="sonar.dbcleaner.hoursBeforeKeepingOnlyOneSnapshotByDay">24</Property>
|
||||
<Property Name="sonar.yaml.file.suffixes">.yaml,.yml</Property>
|
||||
<Property Name="sonar.auth.bitbucket.enabled">false</Property>
|
||||
<Property Name="sonar.terraform.activate">true</Property>
|
||||
<Property Name="sonar.auth.github.webUrl">https://github.com/</Property>
|
||||
<Property Name="sonaranalyzer-vbnet.nuget.packageId">SonarAnalyzer.VisualBasic</Property>
|
||||
<Property Name="email.from">noreply@nowhere</Property>
|
||||
<Property Name="sonaranalyzer-vbnet.pluginVersion">8.51.0.59060</Property>
|
||||
<Property Name="sonar.dbcleaner.weeksBeforeKeepingOnlyOneSnapshotByWeek">4</Property>
|
||||
<Property Name="sonaranalyzer-vbnet.analyzerId">SonarAnalyzer.VisualBasic</Property>
|
||||
<Property Name="email.prefix">[SONARQUBE]</Property>
|
||||
<Property Name="sonar.cs.roslyn.ignoreIssues">false</Property>
|
||||
<Property Name="sonaranalyzer-cs.pluginKey">csharp</Property>
|
||||
<Property Name="sonar.kubernetes.activate">true</Property>
|
||||
<Property Name="sonar.json.file.suffixes">.json</Property>
|
||||
<Property Name="sonar.auth.saml.providerName">SAML</Property>
|
||||
<Property Name="sonar.ruby.coverage.reportPaths">coverage/.resultset.json</Property>
|
||||
<Property Name="sonaranalyzer-cs.staticResourceName">SonarAnalyzer-8.51.0.59060.zip</Property>
|
||||
<Property Name="sonar.auth.gitlab.allowUsersToSignUp">true</Property>
|
||||
<Property Name="sonar.projectCreation.mainBranchName">main</Property>
|
||||
<Property Name="sonaranalyzer-cs.nuget.packageId">SonarAnalyzer.CSharp</Property>
|
||||
<Property Name="sonar.authenticator.downcase">false</Property>
|
||||
<Property Name="sonaranalyzer-cs.analyzerId">SonarAnalyzer.CSharp</Property>
|
||||
<Property Name="sonar.technicalDebt.ratingGrid">0.05,0.1,0.2,0.5</Property>
|
||||
<Property Name="sonar.lf.enableGravatar">false</Property>
|
||||
<Property Name="sonar.docker.activate">true</Property>
|
||||
<Property Name="sonaranalyzer-cs.pluginVersion">8.51.0.59060</Property>
|
||||
<Property Name="sonar.developerAggregatedInfo.disabled">false</Property>
|
||||
<Property Name="sonar.javascript.file.suffixes">.js,.jsx,.cjs,.mjs,.vue</Property>
|
||||
<Property Name="sonar.vbnet.analyzeGeneratedCode">false</Property>
|
||||
<Property Name="sonar.plugins.risk.consent">NOT_ACCEPTED</Property>
|
||||
<Property Name="sonar.auth.gitlab.url">https://gitlab.com</Property>
|
||||
<Property Name="sonaranalyzer-vbnet.pluginKey">vbnet</Property>
|
||||
<Property Name="sonar.updatecenter.url">https://update.sonarsource.org/update-center.properties</Property>
|
||||
<Property Name="sonar.core.id">147B411E-AZmtNwrV3lb8QGbhu0SU</Property>
|
||||
<Property Name="sonar.core.startTime">10/4/2025 3:17:58 AM</Property>
|
||||
</ServerSettings>
|
||||
<LocalSettings>
|
||||
<Property Name="sonar.host.url">http://host.docker.internal:9000</Property>
|
||||
<Property Name="sonar.cs.opencover.reportsPaths">**/coverage.opencover.xml</Property>
|
||||
<Property Name="sonar.exclusions">**/bin/**,**/obj/**,**/coverage.opencover.xml</Property>
|
||||
</LocalSettings>
|
||||
<ScannerOptsSettings />
|
||||
<AnalyzersSettings>
|
||||
<AnalyzerSettings>
|
||||
<Language>cs</Language>
|
||||
<RulesetPath>/workspaces/AS400API/.sonarqube/conf/Sonar-cs.ruleset</RulesetPath>
|
||||
<DeactivatedRulesetPath>/workspaces/AS400API/.sonarqube/conf/Sonar-cs-none.ruleset</DeactivatedRulesetPath>
|
||||
<AnalyzerPlugins>
|
||||
<AnalyzerPlugin Key="csharp" Version="8.51.0.59060" StaticResourceName="SonarAnalyzer-8.51.0.59060.zip">
|
||||
<AssemblyPaths>
|
||||
<Path>/tmp/.sonarqube/resources/0/SonarAnalyzer.CFG.dll</Path>
|
||||
<Path>/tmp/.sonarqube/resources/0/Google.Protobuf.dll</Path>
|
||||
<Path>/tmp/.sonarqube/resources/0/SonarAnalyzer.CSharp.dll</Path>
|
||||
<Path>/tmp/.sonarqube/resources/0/SonarAnalyzer.dll</Path>
|
||||
<Path>/tmp/.sonarqube/resources/0/THIRD-PARTY-NOTICES.txt</Path>
|
||||
</AssemblyPaths>
|
||||
</AnalyzerPlugin>
|
||||
</AnalyzerPlugins>
|
||||
<AdditionalFilePaths>
|
||||
<Path>/workspaces/AS400API/.sonarqube/conf/cs/SonarLint.xml</Path>
|
||||
</AdditionalFilePaths>
|
||||
</AnalyzerSettings>
|
||||
<AnalyzerSettings>
|
||||
<Language>vbnet</Language>
|
||||
<RulesetPath>/workspaces/AS400API/.sonarqube/conf/Sonar-vbnet.ruleset</RulesetPath>
|
||||
<DeactivatedRulesetPath>/workspaces/AS400API/.sonarqube/conf/Sonar-vbnet-none.ruleset</DeactivatedRulesetPath>
|
||||
<AnalyzerPlugins>
|
||||
<AnalyzerPlugin Key="vbnet" Version="8.51.0.59060" StaticResourceName="SonarAnalyzer-8.51.0.59060.zip">
|
||||
<AssemblyPaths>
|
||||
<Path>/tmp/.sonarqube/resources/1/SonarAnalyzer.CFG.dll</Path>
|
||||
<Path>/tmp/.sonarqube/resources/1/SonarAnalyzer.VisualBasic.dll</Path>
|
||||
<Path>/tmp/.sonarqube/resources/1/Google.Protobuf.dll</Path>
|
||||
<Path>/tmp/.sonarqube/resources/1/SonarAnalyzer.dll</Path>
|
||||
<Path>/tmp/.sonarqube/resources/1/THIRD-PARTY-NOTICES.txt</Path>
|
||||
</AssemblyPaths>
|
||||
</AnalyzerPlugin>
|
||||
</AnalyzerPlugins>
|
||||
<AdditionalFilePaths>
|
||||
<Path>/workspaces/AS400API/.sonarqube/conf/vbnet/SonarLint.xml</Path>
|
||||
</AdditionalFilePaths>
|
||||
</AnalyzerSettings>
|
||||
</AnalyzersSettings>
|
||||
</AnalysisConfig>
|
||||
869
.sonarqube/conf/cs/SonarLint.xml
Normal file
869
.sonarqube/conf/cs/SonarLint.xml
Normal file
@ -0,0 +1,869 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<AnalysisInput>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<Key>sonar.cs.opencover.reportsPaths</Key>
|
||||
<Value>**/coverage.opencover.xml</Value>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<Key>sonar.cs.ignoreHeaderComments</Key>
|
||||
<Value>true</Value>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<Key>sonar.cs.analyzeGeneratedCode</Key>
|
||||
<Value>false</Value>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<Key>sonar.cs.file.suffixes</Key>
|
||||
<Value>.cs</Value>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<Key>sonar.cs.roslyn.ignoreIssues</Key>
|
||||
<Value>false</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Rules>
|
||||
<Rule>
|
||||
<Key>S2225</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2346</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2223</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2344</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2589</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3433</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1134</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1135</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2345</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4524</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2342</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>format</Key>
|
||||
<Value>^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$</Value>
|
||||
</Parameter>
|
||||
<Parameter>
|
||||
<Key>flagsAttributeFormat</Key>
|
||||
<Value>^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?s$</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2222</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2583</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2115</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3447</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2234</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2479</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3444</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3445</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1144</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1264</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2114</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3442</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3440</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3443</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3329</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3449</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3655</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3776</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>propertyThreshold</Key>
|
||||
<Value>3</Value>
|
||||
</Parameter>
|
||||
<Parameter>
|
||||
<Key>threshold</Key>
|
||||
<Value>15</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2688</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3897</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1110</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2201</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4502</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1118</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2328</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2681</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1117</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2326</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3415</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4507</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1116</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1479</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>maximum</Key>
|
||||
<Value>30</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2699</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1125</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2696</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4635</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1121</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1123</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2219</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2692</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1006</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1481</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3427</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3237</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3358</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3598</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3236</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5773</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2386</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3597</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4200</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4201</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1172</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4457</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5659</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3249</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4456</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3005</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3246</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3247</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4211</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5547</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3244</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5542</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1066</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1186</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4210</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1185</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2275</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3241</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2368</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3457</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4423</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1155</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2245</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3456</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3458</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4426</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2123</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2365</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2486</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3453</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3330</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3451</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5753</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3217</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3459</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4428</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3218</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S927</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2259</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3450</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5766</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1048</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1168</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2257</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3466</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2376</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3343</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3346</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3464</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2252</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3220</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4433</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1163</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4790</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S818</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2251</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2372</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4792</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2743</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1656</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S907</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2995</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3600</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3963</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2996</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2757</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2755</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2997</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3604</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1751</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3603</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3966</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1643</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1871</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1764</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2737</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2971</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2612</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2857</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3875</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1210</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3871</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1450</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2306</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3877</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1104</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1215</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1699</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3998</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3400</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3884</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3887</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2551</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3885</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2436</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>maxMethod</Key>
|
||||
<Value>3</Value>
|
||||
</Parameter>
|
||||
<Parameter>
|
||||
<Key>max</Key>
|
||||
<Value>2</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3881</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2437</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3889</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1313</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3610</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3972</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3973</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2761</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3971</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3984</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4830</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3981</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1206</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3626</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3869</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1940</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1944</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1905</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1939</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5034</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4061</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5042</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1854</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4070</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1862</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3927</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3928</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3925</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3926</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2953</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3923</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S125</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1607</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1848</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2930</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3903</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3904</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2933</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2934</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S6422</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S110</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>max</Key>
|
||||
<Value>5</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2068</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>credentialWords</Key>
|
||||
<Value>password, passwd, pwd, passphrase</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5332</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S112</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2187</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4487</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S6424</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3397</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2184</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5693</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>fileUploadSizeLimit</Key>
|
||||
<Value>8000000</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S6420</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S107</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>max</Key>
|
||||
<Value>7</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2183</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S108</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4019</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3169</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3168</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4015</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4136</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2077</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2190</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1199</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3376</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1075</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3011</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3256</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4581</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4586</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3010</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3251</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4220</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4583</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5443</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2178</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3264</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3267</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S101</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5445</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3262</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3265</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S6419</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2053</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2292</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3263</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3260</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3261</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2290</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2291</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S6444</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4144</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4143</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3172</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4159</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4260</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4036</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4277</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4035</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4158</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4275</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2092</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3060</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5122</Key>
|
||||
</Rule>
|
||||
</Rules>
|
||||
<Files>
|
||||
</Files>
|
||||
</AnalysisInput>
|
||||
477
.sonarqube/conf/vbnet/SonarLint.xml
Normal file
477
.sonarqube/conf/vbnet/SonarLint.xml
Normal file
@ -0,0 +1,477 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<AnalysisInput>
|
||||
<Settings>
|
||||
<Setting>
|
||||
<Key>sonar.vbnet.ignoreHeaderComments</Key>
|
||||
<Value>true</Value>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<Key>sonar.vbnet.file.suffixes</Key>
|
||||
<Value>.vb</Value>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<Key>sonar.vbnet.roslyn.ignoreIssues</Key>
|
||||
<Value>false</Value>
|
||||
</Setting>
|
||||
<Setting>
|
||||
<Key>sonar.vbnet.analyzeGeneratedCode</Key>
|
||||
<Value>false</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
<Rules>
|
||||
<Rule>
|
||||
<Key>S1654</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>format</Key>
|
||||
<Value>^[a-z][a-z0-9]*([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2225</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1135</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2344</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2346</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2347</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>format</Key>
|
||||
<Value>^(([a-z][a-z0-9]*)?([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?_)?([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1134</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2342</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>flagsAttributeFormat</Key>
|
||||
<Value>^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?s$</Value>
|
||||
</Parameter>
|
||||
<Parameter>
|
||||
<Key>format</Key>
|
||||
<Value>^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2345</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2068</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>credentialWords</Key>
|
||||
<Value>password, passwd, pwd, passphrase</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2222</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S6146</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S112</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2340</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1656</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2349</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S907</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S6145</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5693</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>fileUploadSizeLimit</Key>
|
||||
<Value>8000000</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S107</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>max</Key>
|
||||
<Value>7</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S108</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1940</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2358</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1542</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>format</Key>
|
||||
<Value>^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2234</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2355</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4136</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2077</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2352</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2359</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2757</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3449</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S114</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>format</Key>
|
||||
<Value>^I([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S117</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>format</Key>
|
||||
<Value>^[a-z][a-z0-9]*([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3603</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3776</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>propertyThreshold</Key>
|
||||
<Value>3</Value>
|
||||
</Parameter>
|
||||
<Parameter>
|
||||
<Key>threshold</Key>
|
||||
<Value>15</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1110</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1751</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1871</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1075</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1197</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3011</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4586</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1479</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>maximum</Key>
|
||||
<Value>30</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4507</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4581</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1643</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4583</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1123</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1125</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1764</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S101</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>format</Key>
|
||||
<Value>^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?$</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2178</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5443</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5445</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2692</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2737</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3385</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1481</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1645</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2612</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3358</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5042</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2387</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3598</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3871</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4201</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1172</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2304</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>format</Key>
|
||||
<Value>^([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?(\.([A-Z]{1,3}[a-z0-9]+)*([A-Z]{2})?)*$</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3998</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5659</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1862</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2951</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5944</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3884</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5547</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1066</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2551</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4210</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5542</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1186</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3923</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3926</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3927</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2437</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3889</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1313</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2368</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4423</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1155</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S6444</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2761</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3453</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2365</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4144</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S5753</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4428</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S927</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4143</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4260</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1048</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2259</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4159</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4830</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2257</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2375</Key>
|
||||
<Parameters>
|
||||
<Parameter>
|
||||
<Key>minimumSeriesLength</Key>
|
||||
<Value>6</Value>
|
||||
</Parameter>
|
||||
</Parameters>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3466</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4036</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3464</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3981</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4277</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2376</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S1163</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3903</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3904</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S2372</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S3869</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4790</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4275</Key>
|
||||
</Rule>
|
||||
<Rule>
|
||||
<Key>S4792</Key>
|
||||
</Rule>
|
||||
</Rules>
|
||||
<Files>
|
||||
</Files>
|
||||
</AnalysisInput>
|
||||
6
.sonarqube/out/.sonar/report-task.txt
Normal file
6
.sonarqube/out/.sonar/report-task.txt
Normal file
@ -0,0 +1,6 @@
|
||||
projectKey=as400api
|
||||
serverUrl=http://host.docker.internal:9000
|
||||
serverVersion=9.9.8.100196
|
||||
dashboardUrl=http://host.docker.internal:9000/dashboard?id=as400api
|
||||
ceTaskId=AZmtj01mSkXasGRcHif1
|
||||
ceTaskUrl=http://host.docker.internal:9000/api/ce/task?id=AZmtj01mSkXasGRcHif1
|
||||
625
.sonarqube/out/0/Issues.json
Normal file
625
.sonarqube/out/0/Issues.json
Normal file
@ -0,0 +1,625 @@
|
||||
{
|
||||
"$schema": "http://json.schemastore.org/sarif-1.0.0",
|
||||
"version": "1.0.0",
|
||||
"runs": [
|
||||
{
|
||||
"tool": {
|
||||
"name": "Microsoft (R) Visual C# Compiler",
|
||||
"version": "4.14.0.0",
|
||||
"fileVersion": "4.14.0-3.25413.5 (b828a8df)",
|
||||
"semanticVersion": "4.14.0",
|
||||
"language": "en-US"
|
||||
},
|
||||
"results": [
|
||||
{
|
||||
"ruleId": "S125",
|
||||
"level": "warning",
|
||||
"message": "Remove this commented out code.",
|
||||
"locations": [
|
||||
{
|
||||
"resultFile": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/As400Endpoints.cs",
|
||||
"region": {
|
||||
"startLine": 147,
|
||||
"startColumn": 17,
|
||||
"endLine": 147,
|
||||
"endColumn": 97
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"warningLevel": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"ruleId": "S125",
|
||||
"level": "warning",
|
||||
"message": "Remove this commented out code.",
|
||||
"locations": [
|
||||
{
|
||||
"resultFile": {
|
||||
"uri": "file:///workspaces/AS400API/Program.cs",
|
||||
"region": {
|
||||
"startLine": 11,
|
||||
"startColumn": 1,
|
||||
"endLine": 11,
|
||||
"endColumn": 53
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"warningLevel": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"ruleId": "S2068",
|
||||
"level": "warning",
|
||||
"message": "\"password\" detected here, make sure this is not a hard-coded credential.",
|
||||
"locations": [
|
||||
{
|
||||
"resultFile": {
|
||||
"uri": "file:///workspaces/AS400API/appsettings.json",
|
||||
"region": {
|
||||
"startLine": 6,
|
||||
"startColumn": 18,
|
||||
"endLine": 6,
|
||||
"endColumn": 24
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"warningLevel": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"ruleId": "S1144",
|
||||
"level": "warning",
|
||||
"message": "Remove the unused private field 'LibraryNamePattern'.",
|
||||
"locations": [
|
||||
{
|
||||
"resultFile": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs",
|
||||
"region": {
|
||||
"startLine": 152,
|
||||
"startColumn": 5,
|
||||
"endLine": 152,
|
||||
"endColumn": 125
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"warningLevel": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"ruleId": "S101",
|
||||
"level": "warning",
|
||||
"message": "Rename class 'ORDUAGEndpoint' to match pascal case naming rules, consider using 'OrduagEndpoint'.",
|
||||
"locations": [
|
||||
{
|
||||
"resultFile": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs",
|
||||
"region": {
|
||||
"startLine": 15,
|
||||
"startColumn": 21,
|
||||
"endLine": 15,
|
||||
"endColumn": 35
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"warningLevel": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"ruleId": "S6444",
|
||||
"level": "warning",
|
||||
"message": "Pass a timeout to limit the execution time.",
|
||||
"locations": [
|
||||
{
|
||||
"resultFile": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs",
|
||||
"region": {
|
||||
"startLine": 152,
|
||||
"startColumn": 56,
|
||||
"endLine": 152,
|
||||
"endColumn": 124
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"warningLevel": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"ruleId": "SYSLIB1045",
|
||||
"level": "note",
|
||||
"message": "Use 'GeneratedRegexAttribute' to generate the regular expression implementation at compile-time.",
|
||||
"locations": [
|
||||
{
|
||||
"resultFile": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs",
|
||||
"region": {
|
||||
"startLine": 152,
|
||||
"startColumn": 56,
|
||||
"endLine": 152,
|
||||
"endColumn": 124
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"warningLevel": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"ruleId": "S3776",
|
||||
"level": "warning",
|
||||
"message": "Refactor this method to reduce its Cognitive Complexity from 20 to the 15 allowed.",
|
||||
"locations": [
|
||||
{
|
||||
"resultFile": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/As400Endpoints.cs",
|
||||
"region": {
|
||||
"startLine": 16,
|
||||
"startColumn": 37,
|
||||
"endLine": 16,
|
||||
"endColumn": 54
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"relatedLocations": [
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/As400Endpoints.cs",
|
||||
"region": {
|
||||
"startLine": 24,
|
||||
"startColumn": 17,
|
||||
"endLine": 24,
|
||||
"endColumn": 19
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/As400Endpoints.cs",
|
||||
"region": {
|
||||
"startLine": 36,
|
||||
"startColumn": 13,
|
||||
"endLine": 36,
|
||||
"endColumn": 18
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/As400Endpoints.cs",
|
||||
"region": {
|
||||
"startLine": 59,
|
||||
"startColumn": 13,
|
||||
"endLine": 59,
|
||||
"endColumn": 18
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/As400Endpoints.cs",
|
||||
"region": {
|
||||
"startLine": 74,
|
||||
"startColumn": 17,
|
||||
"endLine": 74,
|
||||
"endColumn": 19
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/As400Endpoints.cs",
|
||||
"region": {
|
||||
"startLine": 92,
|
||||
"startColumn": 13,
|
||||
"endLine": 92,
|
||||
"endColumn": 18
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/As400Endpoints.cs",
|
||||
"region": {
|
||||
"startLine": 107,
|
||||
"startColumn": 17,
|
||||
"endLine": 107,
|
||||
"endColumn": 19
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/As400Endpoints.cs",
|
||||
"region": {
|
||||
"startLine": 107,
|
||||
"startColumn": 60,
|
||||
"endLine": 107,
|
||||
"endColumn": 62
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/As400Endpoints.cs",
|
||||
"region": {
|
||||
"startLine": 135,
|
||||
"startColumn": 21,
|
||||
"endLine": 135,
|
||||
"endColumn": 26
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/As400Endpoints.cs",
|
||||
"region": {
|
||||
"startLine": 138,
|
||||
"startColumn": 25,
|
||||
"endLine": 138,
|
||||
"endColumn": 28
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/As400Endpoints.cs",
|
||||
"region": {
|
||||
"startLine": 154,
|
||||
"startColumn": 13,
|
||||
"endLine": 154,
|
||||
"endColumn": 18
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"warningLevel": 1,
|
||||
"customProperties": {
|
||||
"0": "+2 (incl 1 for nesting)",
|
||||
"1": "+2 (incl 1 for nesting)",
|
||||
"2": "+2 (incl 1 for nesting)",
|
||||
"3": "+2 (incl 1 for nesting)",
|
||||
"4": "+2 (incl 1 for nesting)",
|
||||
"5": "+2 (incl 1 for nesting)",
|
||||
"6": "+1",
|
||||
"7": "+2 (incl 1 for nesting)",
|
||||
"8": "+3 (incl 2 for nesting)",
|
||||
"9": "+2 (incl 1 for nesting)"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ruleId": "S3776",
|
||||
"level": "warning",
|
||||
"message": "Refactor this method to reduce its Cognitive Complexity from 19 to the 15 allowed.",
|
||||
"locations": [
|
||||
{
|
||||
"resultFile": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs",
|
||||
"region": {
|
||||
"startLine": 154,
|
||||
"startColumn": 37,
|
||||
"endLine": 154,
|
||||
"endColumn": 55
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"relatedLocations": [
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs",
|
||||
"region": {
|
||||
"startLine": 167,
|
||||
"startColumn": 21,
|
||||
"endLine": 167,
|
||||
"endColumn": 23
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs",
|
||||
"region": {
|
||||
"startLine": 177,
|
||||
"startColumn": 21,
|
||||
"endLine": 177,
|
||||
"endColumn": 23
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs",
|
||||
"region": {
|
||||
"startLine": 192,
|
||||
"startColumn": 21,
|
||||
"endLine": 192,
|
||||
"endColumn": 23
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs",
|
||||
"region": {
|
||||
"startLine": 198,
|
||||
"startColumn": 21,
|
||||
"endLine": 198,
|
||||
"endColumn": 23
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs",
|
||||
"region": {
|
||||
"startLine": 204,
|
||||
"startColumn": 21,
|
||||
"endLine": 204,
|
||||
"endColumn": 23
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs",
|
||||
"region": {
|
||||
"startLine": 219,
|
||||
"startColumn": 21,
|
||||
"endLine": 219,
|
||||
"endColumn": 28
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs",
|
||||
"region": {
|
||||
"startLine": 229,
|
||||
"startColumn": 25,
|
||||
"endLine": 229,
|
||||
"endColumn": 30
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs",
|
||||
"region": {
|
||||
"startLine": 232,
|
||||
"startColumn": 29,
|
||||
"endLine": 232,
|
||||
"endColumn": 32
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"physicalLocation": {
|
||||
"uri": "file:///workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs",
|
||||
"region": {
|
||||
"startLine": 254,
|
||||
"startColumn": 17,
|
||||
"endLine": 254,
|
||||
"endColumn": 22
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"warningLevel": 1,
|
||||
"customProperties": {
|
||||
"0": "+2 (incl 1 for nesting)",
|
||||
"1": "+2 (incl 1 for nesting)",
|
||||
"2": "+2 (incl 1 for nesting)",
|
||||
"3": "+2 (incl 1 for nesting)",
|
||||
"4": "+2 (incl 1 for nesting)",
|
||||
"5": "+2 (incl 1 for nesting)",
|
||||
"6": "+2 (incl 1 for nesting)",
|
||||
"7": "+3 (incl 2 for nesting)",
|
||||
"8": "+2 (incl 1 for nesting)"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ruleId": "ASP0025",
|
||||
"level": "note",
|
||||
"message": "Use AddAuthorizationBuilder to register authorization services and construct policies",
|
||||
"locations": [
|
||||
{
|
||||
"resultFile": {
|
||||
"uri": "file:///workspaces/AS400API/Program.cs",
|
||||
"region": {
|
||||
"startLine": 100,
|
||||
"startColumn": 1,
|
||||
"endLine": 106,
|
||||
"endColumn": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"warningLevel": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"ruleId": "CA1861",
|
||||
"level": "note",
|
||||
"message": "Prefer 'static readonly' fields over constant array arguments if the called method is called repeatedly and is not mutating the passed array",
|
||||
"locations": [
|
||||
{
|
||||
"resultFile": {
|
||||
"uri": "file:///workspaces/AS400API/Infrastructure/DatabaseRowFormatter.cs",
|
||||
"region": {
|
||||
"startLine": 48,
|
||||
"startColumn": 20,
|
||||
"endLine": 48,
|
||||
"endColumn": 43
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"warningLevel": 1,
|
||||
"customProperties": {
|
||||
"paramName": "separator"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"rules": {
|
||||
"ASP0025": {
|
||||
"id": "ASP0025",
|
||||
"shortDescription": "Use AddAuthorizationBuilder",
|
||||
"defaultLevel": "note",
|
||||
"helpUri": "https://aka.ms/aspnet/analyzers",
|
||||
"properties": {
|
||||
"category": "Usage",
|
||||
"isEnabledByDefault": true
|
||||
}
|
||||
},
|
||||
"CA1861": {
|
||||
"id": "CA1861",
|
||||
"shortDescription": "Avoid constant arrays as arguments",
|
||||
"fullDescription": "Constant arrays passed as arguments are not reused when called repeatedly, which implies a new array is created each time. Consider extracting them to 'static readonly' fields to improve performance if the passed array is not mutated within the called method.",
|
||||
"defaultLevel": "note",
|
||||
"helpUri": "https://learn.microsoft.com/dotnet/fundamentals/code-analysis/quality-rules/ca1861",
|
||||
"properties": {
|
||||
"category": "Performance",
|
||||
"isEnabledByDefault": true,
|
||||
"tags": [
|
||||
"Telemetry",
|
||||
"EnabledRuleInAggressiveMode"
|
||||
]
|
||||
}
|
||||
},
|
||||
"S101": {
|
||||
"id": "S101",
|
||||
"shortDescription": "Types should be named in PascalCase",
|
||||
"fullDescription": "Shared naming conventions allow teams to collaborate efficiently. This rule checks whether or not type names are using PascalCase. To reduce noise, two consecutive upper case characters are allowed unless they form the whole type name. So, MyXClass is compliant, but XC on its own is not.",
|
||||
"defaultLevel": "warning",
|
||||
"helpUri": "https://rules.sonarsource.com/csharp/RSPEC-101",
|
||||
"properties": {
|
||||
"category": "Minor Code Smell",
|
||||
"isEnabledByDefault": true,
|
||||
"tags": [
|
||||
"C#",
|
||||
"MainSourceScope",
|
||||
"TestSourceScope",
|
||||
"SonarWay"
|
||||
]
|
||||
}
|
||||
},
|
||||
"S1144": {
|
||||
"id": "S1144",
|
||||
"shortDescription": "Unused private types or members should be removed",
|
||||
"fullDescription": "private or internal types or private members that are never executed or referenced are dead code: unnecessary, inoperative code that should be removed. Cleaning out dead code decreases the size of the maintained codebase, making it easier to understand the program and preventing bugs from being introduced.",
|
||||
"defaultLevel": "note",
|
||||
"helpUri": "https://rules.sonarsource.com/csharp/RSPEC-1144",
|
||||
"properties": {
|
||||
"category": "Major Code Smell",
|
||||
"isEnabledByDefault": true,
|
||||
"tags": [
|
||||
"C#",
|
||||
"MainSourceScope",
|
||||
"TestSourceScope",
|
||||
"SonarWay",
|
||||
"Unnecessary"
|
||||
]
|
||||
}
|
||||
},
|
||||
"S125": {
|
||||
"id": "S125",
|
||||
"shortDescription": "Sections of code should not be commented out",
|
||||
"fullDescription": "Programmers should not comment out code as it bloats programs and reduces readability.",
|
||||
"defaultLevel": "warning",
|
||||
"helpUri": "https://rules.sonarsource.com/csharp/RSPEC-125",
|
||||
"properties": {
|
||||
"category": "Major Code Smell",
|
||||
"isEnabledByDefault": true,
|
||||
"tags": [
|
||||
"C#",
|
||||
"MainSourceScope",
|
||||
"TestSourceScope",
|
||||
"SonarWay"
|
||||
]
|
||||
}
|
||||
},
|
||||
"S2068": {
|
||||
"id": "S2068",
|
||||
"shortDescription": "Hard-coded credentials are security-sensitive",
|
||||
"fullDescription": "Because it is easy to extract strings from an application source code or binary, credentials should not be hard-coded. This is particularly true for applications that are distributed or that are open-source.",
|
||||
"defaultLevel": "warning",
|
||||
"helpUri": "https://rules.sonarsource.com/csharp/RSPEC-2068",
|
||||
"properties": {
|
||||
"category": "Blocker Security Hotspot",
|
||||
"isEnabledByDefault": true,
|
||||
"tags": [
|
||||
"C#",
|
||||
"MainSourceScope",
|
||||
"SonarWay"
|
||||
]
|
||||
}
|
||||
},
|
||||
"S3776": {
|
||||
"id": "S3776",
|
||||
"shortDescription": "Cognitive Complexity of methods should not be too high",
|
||||
"fullDescription": "Cognitive Complexity is a measure of how hard the control flow of a method is to understand. Methods with high Cognitive Complexity will be difficult to maintain.",
|
||||
"defaultLevel": "warning",
|
||||
"helpUri": "https://rules.sonarsource.com/csharp/RSPEC-3776",
|
||||
"properties": {
|
||||
"category": "Critical Code Smell",
|
||||
"isEnabledByDefault": false,
|
||||
"tags": [
|
||||
"C#",
|
||||
"MainSourceScope",
|
||||
"TestSourceScope",
|
||||
"SonarWay"
|
||||
]
|
||||
}
|
||||
},
|
||||
"S6444": {
|
||||
"id": "S6444",
|
||||
"shortDescription": "Not specifying a timeout for regular expressions is security-sensitive",
|
||||
"fullDescription": "Not specifying a timeout for regular expressions can lead to a Denial-of-Service attack. Pass a timeout when using System.Text.RegularExpressions to process untrusted input because a malicious user might craft a value for which the evaluation lasts excessively long.",
|
||||
"defaultLevel": "warning",
|
||||
"helpUri": "https://rules.sonarsource.com/csharp/RSPEC-6444",
|
||||
"properties": {
|
||||
"category": "Major Security Hotspot",
|
||||
"isEnabledByDefault": true,
|
||||
"tags": [
|
||||
"C#",
|
||||
"MainSourceScope",
|
||||
"SonarWay"
|
||||
]
|
||||
}
|
||||
},
|
||||
"SYSLIB1045": {
|
||||
"id": "SYSLIB1045",
|
||||
"shortDescription": "Convert to 'GeneratedRegexAttribute'.",
|
||||
"defaultLevel": "note",
|
||||
"helpUri": "https://learn.microsoft.com/dotnet/fundamentals/syslib-diagnostics/syslib1045",
|
||||
"properties": {
|
||||
"category": "Performance",
|
||||
"isEnabledByDefault": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
30
.sonarqube/out/0/output-cs/metrics.pb
Normal file
30
.sonarqube/out/0/output-cs/metrics.pb
Normal file
@ -0,0 +1,30 @@
|
||||
5
|
||||
)/workspaces/AS400API/Auth/AuthPolicies.csrH
|
||||
%/workspaces/AS400API/Auth/DemoUser.cs 8r
|
||||
‚
|
||||
]
|
||||
*/workspaces/AS400API/Auth/DemoUserStore.cs 8r
!"‚
1
|
||||
)/workspaces/AS400API/Auth/LoginRequest.csr3
|
||||
*/workspaces/AS400API/Auth/LoginResponse.csrX
|
||||
+/workspaces/AS400API/Auth/PasswordHasher.cs 8r
|
||||
‚.
|
||||
"/workspaces/AS400API/Auth/Roles.csrn
|
||||
)/workspaces/AS400API/Auth/TokenService.cs 8r(
"#$%'()*+,./0x‚"$()+.[
|
||||
0/workspaces/AS400API/Configuration/JwtOptions.cs 8r
|
||||
x‚p
|
||||
1/workspaces/AS400API/Configuration/OdbcOptions.cs 8j
r
|
||||
!"#$%&x‚ !"#$Ç
|
||||
0/workspaces/AS400API/Endpoints/As400Endpoints.csD 8 j“” r¯
|
||||
!"#$%&'()*+,-/0123456789:;<=>?@ABDEFGHIJKLMNPQRSTUWXYZ[\]^_`abcefghijklmnoqrstuvwyz|}~€<01>‚„…†‡ˆ‰Š‹Œ<01><01><01>‘–—˜™š›œ<01>žŸ¡£¤¥x‚N !"&'*/146789=>ADFIJLMWXYZ^_begjkmnyz|}~€<01>‚…‡‰ŠŒ<01>–—˜œ<01>£«
|
||||
6/workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs5 8j„r÷
|
||||
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€<01>‚ƒ„…†‡ˆ‰Š‹Œ<01>Ž<01><01>‘’“”•–˜š›œ<01>žŸ ¡¢£¤¦§¨©ª«®°±²³´¶¸¹º»¼¾ÀÁÂÃÄÆÇÈÉÊÌÍÎÏÐÒÓÕÖØÙÛÜÝÞßàâãäåæçèéêëìîïðòóôõö÷øùûüýþÿ€<02>‚ƒ…‡ˆŠ‹ŒŽ<02>’”•–x‚h˜œ¡¤¦§©ª®±³¹º»¼ÀÂÃÆÈÉÌÎÏÒÓÕÖØÙÛÝÞßãåçèêëîòôõö÷ûü€<02>‡z
|
||||
//workspaces/AS400API/Endpoints/AuthEndpoints.cs
8 r*
!"#%&'()*+,./0x‚!"#%'().u
|
||||
1/workspaces/AS400API/Endpoints/SystemEndpoints.cs 8r&
|
||||
!"#$%&')*+x‚
!%)³
|
||||
;/workspaces/AS400API/Infrastructure/DatabaseRowFormatter.cs 8rK
|
||||
!"#%&()*+,-/01245679:;<=>?ABDEFGHIJKLNOPQRSUVWx‚!"%*,/01469<>AEFIKNOQUo
|
||||
;/workspaces/AS400API/Infrastructure/DataReaderExtensions.cs 8r
|
||||
x‚
|
||||
|
||||
Û
|
||||
/workspaces/AS400API/Program.csQ8j*„…rj
!#$%&'(+,-/012345689:;<=>?@ABCDEGHIJKLMNOPQSTUVWXYZ[\]^_`abdefghijlnopqrtvwy{|}~<>x‚;
!#$%'+,-/02<=BGHJMNOPQSTUWZ\`dfghilnpqtvwy{|}~<>
|
||||
448
.sonarqube/out/0/output-cs/symrefs.pb
Normal file
448
.sonarqube/out/0/output-cs/symrefs.pb
Normal file
@ -0,0 +1,448 @@
|
||||
O
|
||||
)/workspaces/AS400API/Auth/AuthPolicies.cs
|
||||
|
||||
|
||||
|
||||
'
|
||||
|
||||
$ã
|
||||
%/workspaces/AS400API/Auth/DemoUser.cs
|
||||
|
||||
|
||||
#
|
||||
, 8
|
||||
|
||||
#
|
||||
A M #
|
||||
k p
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
' ,
à
|
||||
*/workspaces/AS400API/Auth/DemoUserStore.cs
|
||||
|
||||
!
|
||||
2 8
|
||||
|
||||
/
|
||||
7 ? #
|
||||
- 1$ (
|
||||
|
||||
#
|
||||
- 1( ,; ?
|
||||
: B &
|
||||
& " %
|
||||
. 6 $
|
||||
? G7 ?
|
||||
e j 2 7
|
||||
& *
|
||||
, 0O
|
||||
)/workspaces/AS400API/Auth/LoginRequest.cs
|
||||
|
||||
!
|
||||
|
||||
) 1
|
||||
|
||||
: Bh
|
||||
*/workspaces/AS400API/Auth/LoginResponse.cs
|
||||
|
||||
"
|
||||
|
||||
* 5
|
||||
|
||||
; D
|
||||
|
||||
M V
|
||||
|
||||
t y÷
|
||||
+/workspaces/AS400API/Auth/PasswordHasher.cs
|
||||
|
||||
"
|
||||
2 :
|
||||
|
||||
|
||||
f mo v
|
||||
Z dc m
|
||||
|
||||
- 9
|
||||
A I- 5
|
||||
7 ;J N
|
||||
' 0
|
||||
|
||||
|
||||
% -1 9
|
||||
6 @3 =
|
||||
I S1 ;
|
||||
; D
|
||||
D Q
|
||||
7 BH
|
||||
"/workspaces/AS400API/Auth/Roles.cs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
£
|
||||
)/workspaces/AS400API/Auth/TokenService.cs
|
||||
|
||||
<
|
||||
( < D(( )) ++0 8
|
||||
- :..
|
||||
# *
|
||||
|
||||
(
|
||||
' +- 1! %"" !
|
||||
,, 2
|
||||
$$ **
|
||||
'' ..( -¤
|
||||
0/workspaces/AS400API/Configuration/JwtOptions.cs
|
||||
|
||||
|
||||
|
||||
#
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
& )I L
|
||||
) &
|
||||
|
||||
©
|
||||
1/workspaces/AS400API/Configuration/OdbcOptions.cs
|
||||
|
||||
|
||||
|
||||
#' 7X h
|
||||
|
||||
|
||||
' +? C
|
||||
' /C K
|
||||
' - D J
|
||||
!!' 0!!J S
|
||||
""' 3""Q ]
|
||||
##
|
||||
|
||||
$
|
||||
"Z
|
||||
: ?. 32 7 0 5!!3 8""6 ;## $$ %à
|
||||
|
||||
0/workspaces/AS400API/Endpoints/As400Endpoints.cs
|
||||
|
||||
"
|
||||
|
||||
$ 5>
|
||||
M R
//
DD
ee
|
||||
££ (
|
||||
6 9. 1Y \2 5
|
||||
J N " &
|
||||
_ l &2
|
||||
!! &&
|
||||
$
|
||||
!!O X""" +
|
||||
//B F44 66% )
|
||||
//W d11 &
|
||||
11 88 ==
|
||||
55 %665 =
|
||||
66 77 '
|
||||
77 88H Q99" +2
|
||||
DD7 BJJ. 9WWD OXXk v^^Z e
|
||||
DDS WII WW$ (
|
||||
DDh uFF &(
|
||||
FF LL XX ^^
|
||||
PP %WW4 <
|
||||
WW XX] cYY &
|
||||
YY ZZ" +6
|
||||
ee@ Kkk. 9}}) 4
|
||||
––f q
|
||||
œœT _8
|
||||
eeT ]kkX a
|
||||
<08><10>' 0
|
||||
––s |
|
||||
œœa j
|
||||
een rjj yy* .
|
||||
|
||||
eeƒ <20>gg &,
|
||||
gg mm
|
||||
––
|
||||
œœ
|
||||
qq %zz& .L
|
||||
yy 'zz ||' .~~
|
||||
€€% ,
|
||||
‚‚
|
||||
……0 7
|
||||
|| $}} ~~' 7$
|
||||
|
||||
€€ "
|
||||
<08><10>
|
||||
‚‚' 50
|
||||
|
||||
„„
|
||||
<08><10>
|
||||
––W ^
|
||||
—— '<
|
||||
|
||||
……! '
|
||||
‡‡! '
|
||||
ŠŠ, 2
|
||||
ŒŒ &
|
||||
ŒŒ5 ;$
|
||||
|
||||
‰‰
|
||||
ŒŒ
|
||||
<08><10>$ '<
|
||||
|
||||
ŠŠ! "
|
||||
ŠŠ( )
|
||||
ŠŠ? @
|
||||
ŒŒ/ 0
|
||||
ŒŒO P
|
||||
|
||||
——
|
||||
˜˜" +
|
||||
|
||||
——/ 3
|
||||
——7 ;ä
|
||||
6/workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs
|
||||
|
||||
"
|
||||
% 0
|
||||
ºº= H
|
||||
|
||||
˜˜" 4
|
||||
|
||||
šš$ 6$
|
||||
|
||||
ššN S
|
||||
œœ
|
||||
‡‡ œ
|
||||
|
||||
<08><10>+ 0
|
||||
¦¦ $
|
||||
©©X ]
|
||||
# (
|
||||
ÀÀ3 8
|
||||
ÃÃ, 1
|
||||
ÆÆ3 8
|
||||
ÉÉ, 1
|
||||
ÌÌ3 8
|
||||
ÏÏ, 1
|
||||
õõ
|
||||
öö
|
||||
÷÷ $
|
||||
|
||||
žž #
|
||||
¤¤
|
||||
ØØ. 2
|
||||
|
||||
ŸŸ ,
|
||||
¡¡ *0
|
||||
|
||||
¡¡
|
||||
©©
|
||||
òò
|
||||
€€ <
|
||||
|
||||
¦¦
|
||||
§§
|
||||
ªª
|
||||
°°, 0
|
||||
øø H
|
||||
|
||||
|
||||
®®
|
||||
®®* 2
|
||||
°°8 @
|
||||
ÖÖ( 0
|
||||
ùù $
|
||||
|
||||
°° "
|
||||
±± "
|
||||
¶¶& 0
|
||||
|
||||
¶¶
|
||||
ÕÕ( .„
|
||||
|
||||
¸¸ "
|
||||
¹¹
|
||||
ºº
|
||||
»»
|
||||
¼¼
|
||||
ÂÂ "
|
||||
ÈÈ "
|
||||
ÎÎ "
|
||||
ÒÒ
|
||||
ÓÓ
|
||||
ÙÙ* 4
|
||||
|
||||
ººP V
|
||||
ººa gT
|
||||
|
||||
¾¾ '
|
||||
ÃÃ '
|
||||
ÉÉ '
|
||||
ÏÏ '
|
||||
ÕÕ #
|
||||
ÖÖ #
|
||||
ÛÛ* 9<
|
||||
|
||||
ØØ$ +
|
||||
ÙÙ
|
||||
ÝÝ( /
|
||||
ßß
|
||||
ãã4 ;$
|
||||
|
||||
ÝÝ %
|
||||
ÞÞ !
|
||||
ßß/ 80
|
||||
|
||||
ââ
|
||||
îî
|
||||
ôô
|
||||
ûû$ (<
|
||||
|
||||
ãã% +
|
||||
åå% +
|
||||
èè0 6
|
||||
êê, 2
|
||||
ëë$ *$
|
||||
|
||||
çç #
|
||||
ëë #
|
||||
îî% (<
|
||||
|
||||
èè% &
|
||||
èè, -
|
||||
èèC D
|
||||
êêF G
|
||||
ëë3 4
|
||||
|
||||
êê$ )
|
||||
ëë9 >
|
||||
|
||||
ûû !
|
||||
üü& /
|
||||
|
||||
ûû0 4
|
||||
ûû8 <
|
||||
|
||||
ŠŠ #
|
||||
<08><10> *0
|
||||
|
||||
ŒŒ !
|
||||
ÀÀ9 C
|
||||
ÃÃ2 <
|
||||
õõ (0
|
||||
|
||||
ŽŽ "
|
||||
ÆÆ9 D
|
||||
ÉÉ2 =
|
||||
öö )0
|
||||
|
||||
<08><10>
|
||||
ÌÌ9 B
|
||||
ÏÏ2 ;
|
||||
÷÷ '$
|
||||
|
||||
’’
|
||||
¦¦% )
|
||||
©©^ b
|
||||
|
||||
””
|
||||
) 1¶
|
||||
//workspaces/AS400API/Endpoints/AuthEndpoints.cs
|
||||
|
||||
!
|
||||
|
||||
$ 4(
|
||||
L Q
%%
.. <
|
||||
J Q = Dl s7 >E L
|
||||
a j &! *
|
||||
y … *
|
||||
|
||||
’ œ= G2
|
||||
? C7 ;s w
|
||||
0 ;(
|
||||
%%6 :'' ''2 6((
|
||||
'' ))$ ,
|
||||
(( )). 3
|
||||
((= >((B C<>
|
||||
1/workspaces/AS400API/Endpoints/SystemEndpoints.cs
|
||||
|
||||
#
|
||||
|
||||
( 8
|
||||
T W
|
||||
|
||||
$ 6
|
||||
N S
))
|
||||
9 = $
|
||||
) ,
|
||||
"
|
||||
S TÇ
|
||||
;/workspaces/AS400API/Infrastructure/DatabaseRowFormatter.cs
|
||||
|
||||
(
|
||||
|
||||
|
||||
|
||||
< S
|
||||
|
||||
|
||||
n r
|
||||
3 7 !
|
||||
|
||||
/ D
|
||||
f l "
|
||||
"" %%
|
||||
!! ""
|
||||
(( %!!E P2
|
||||
((- 2**! &,, // 66 F
|
||||
// 44 99 ;; "EE FF $HH "
|
||||
11 11 2
|
||||
;; << >> AA) 0AA7 >2
|
||||
DD EE
|
||||
NN QQ UU (
|
||||
FF FF FF- .HH# $2
|
||||
HH II NN, 3OO QQ !‰
|
||||
;/workspaces/AS400API/Infrastructure/DataReaderExtensions.cs
|
||||
|
||||
(
|
||||
|
||||
,(
|
||||
? E
|
||||
|
||||
%(
|
||||
K R
|
||||
|
||||
#$ +6 =
|
||||
|
||||
' "(
|
||||
& 2 õ
|
||||
/workspaces/AS400API/Program.cs
|
||||
+ 6v
|
||||
++ // 00 MM NN OO PP QQ SS dd ll
|
||||
|
||||
'
|
||||
|
||||
" *
|
||||
, ? n
|
||||
. 2 !! ## "$$ "%% "MM "NNC G:
|
||||
++ ,,
|
||||
--A KOO (ZZ $\\ &
|
||||
-- ^^ )(
|
||||
00 &22 GG HH (
|
||||
88 GG" 0GG? MJJ
|
||||
|
||||
|
||||
NN+ ,
|
||||
UU WW
|
||||
dd" )ff hh
|
||||
ff4 :gg
|
||||
hh1 7ii \
|
||||
ll nn pp qq tt vv ww yy {{
|
||||
<08><10> *
|
||||
{{ || }} ~~
|
||||
5928
.sonarqube/out/0/output-cs/token-cpd.pb
Normal file
5928
.sonarqube/out/0/output-cs/token-cpd.pb
Normal file
File diff suppressed because it is too large
Load Diff
437
.sonarqube/out/0/output-cs/token-type.pb
Normal file
437
.sonarqube/out/0/output-cs/token-type.pb
Normal file
@ -0,0 +1,437 @@
|
||||
Ý
|
||||
)/workspaces/AS400API/Auth/AuthPolicies.cs
|
||||
|
||||
|
||||
* ;
|
||||
' 5<>
|
||||
%/workspaces/AS400API/Auth/DemoUser.cs
|
||||
|
||||
|
||||
|
||||
% +: @O bc i
|
||||
|
||||
! $
|
||||
! $
|
||||
%/ 2²
|
||||
*/workspaces/AS400API/Auth/DemoUserStore.cs
|
||||
|
||||
|
||||
|
||||
|
||||
! & ( 0
|
||||
&
( 0
2 @
# *, 68 ;@ EM R
& 02 <> AF K
|
||||
0 6% () ,
|
||||
$ ,3 9 ' -8 >I \] c ) ‰
|
||||
)/workspaces/AS400API/Auth/LoginRequest.cs
|
||||
|
||||
!" (3 9À
|
||||
*/workspaces/AS400API/Auth/LoginResponse.cs
|
||||
|
||||
|
||||
"# )7 :F LX kl rÃ
|
||||
+/workspaces/AS400API/Auth/PasswordHasher.cs
|
||||
|
||||
|
||||
|
||||
|
||||
" ! #
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
" # *
|
||||
&
: @ ( %= M 3 :
|
||||
$/ 5B H )F V ! &Ö
|
||||
"/workspaces/AS400API/Auth/Roles.cs
|
||||
|
||||
|
||||
'
|
||||
# -<2D>
|
||||
)/workspaces/AS400API/Auth/TokenService.cs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
,= @
|
||||
"
|
||||
& ! $% 7 $% - # ' '- 1 "" "" "" $$ $$ $$! +'' '' '' (++ .. ¼
|
||||
0/workspaces/AS400API/Configuration/JwtOptions.cs
|
||||
|
||||
|
||||
|
||||
|
||||
& +
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
|
||||
) 3
|
||||
" %+ =
|
||||
& I
|
||||
, /
1 4
: <
|
||||
|
||||
. 6P R /0
|
||||
* + /0 k‡
|
||||
1/workspaces/AS400API/Configuration/OdbcOptions.cs
|
||||
|
||||
|
||||
|
||||
|
||||
! $
|
||||
& ) + .
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
"
|
||||
!# &
Z
|
||||
! $
|
||||
"$ '- 0
|
||||
" %' *0 7
|
||||
"( ,
|
||||
@ $< OT n # # %% &
|
||||
D FF Wi j
|
||||
8 :: >D E
|
||||
< >> BL M
|
||||
: < < C K L!!
|
||||
!!
!!= ?!!? I!!T U""
|
||||
""
""@ B""B P""^ _##
|
||||
## -$$ $$ $$ ë
|
||||
0/workspaces/AS400API/Endpoints/As400Endpoints.cs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
"
|
||||
#6 :; L &( -/ 5; IP ^ 4 H & _ ". 1< `& Wh i ! !!& M"" "" $$ $$ &&$ 9'' '' ''' )'') 7''C D** *++ Q,, -- // *//, 1//3 A//H V11 114 L22 44 55 55 55( x66 66 $77 88& F99 99 ;; ;; ==$ C>> >> >>' )>>) A>>M NAA *BB KDD 'DD) .DD0 6DDD RDDY gFF FF4 IGG II JJ JJ LL& _MM MM "MM. 1MM< hPP PP PU( WW WW #WW> AXX& [YY ZZ ZZ \\ \\ ^^$ X__ __ __' )__) @__L Mbb *cc Iee 0ee2 7ee9 ?eeM See_ m
eet ‚gg gg4 Qhh jj kk kk kk> Dmm& xnn nn "nn. 1nn< zqq qq qw( yy yy yy ||
|
||||
€€
|
||||
„„
|
||||
„„ !
|
||||
„„" &
|
||||
„„' 2
|
||||
„„3 9
|
||||
„„; A
|
||||
……
|
||||
……
|
||||
……
|
||||
……* /
|
||||
‡‡
|
||||
‡‡
|
||||
‰‰
|
||||
‰‰" %
|
||||
‰‰& 0
|
||||
‰‰1 7
|
||||
‰‰9 ?
|
||||
‰‰A O
|
||||
ŠŠ
|
||||
ŠŠ
|
||||
ŠŠ% &
|
||||
““ `
|
||||
”” 3
|
||||
––& U
|
||||
——
|
||||
˜˜
|
||||
˜˜
|
||||
šš
|
||||
šš
|
||||
œœ$ R
|
||||
<08><10>
|
||||
<08><10>
|
||||
<08><10>' )
|
||||
<08><10>) A
|
||||
<08><10>M N
|
||||
>
|
||||
¡¡ X
|
||||
££ "
|
||||
6/workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
" " !! "" ## $$ %% && '' (( )) ** ++ ,, -- .. // 00 11 22 #33 44 55 66 77 88 99 :: ;; << #== >> ?? @@ AA BB CC DD EE FF GG HH II JJ KK "LL "MM "NN "OO "PP "QQ "RR "SS "TT #UU #VV #WW "XX YY $ZZ ![[ $\\ !]] "^^ __ !`` aa !bb cc dd ee $ff !gg %hh "ii jj kk ll mm nn oo pp qq rr ss tt uu vv ww xx yy zz {{ || }} ~~
|
||||
€€
|
||||
<08><10>
|
||||
‚‚
|
||||
ƒƒ
|
||||
„„
|
||||
……
|
||||
††
|
||||
‡‡
|
||||
ˆˆ
|
||||
‰‰
|
||||
ŠŠ
|
||||
‹‹
|
||||
ŒŒ
|
||||
<08><10>
|
||||
ŽŽ
|
||||
<08><10>
|
||||
<08><10>
|
||||
‘‘
|
||||
’’
|
||||
““
|
||||
””
|
||||
••
|
||||
˜˜
|
||||
˜˜
|
||||
˜˜
|
||||
˜˜ !
|
||||
˜˜7 :
|
||||
˜˜; I
|
||||
˜˜K W
|
||||
˜˜c o
|
||||
šš
|
||||
|
||||
šš
|
||||
šš #
|
||||
šš7 ;
|
||||
šš< M
|
||||
œœ '
|
||||
œœ) .
|
||||
<08><10>
|
||||
<08><10> *
|
||||
žž
|
||||
ŸŸ
|
||||
¡¡
|
||||
¡¡8 H
|
||||
¢¢
|
||||
¤¤
|
||||
¦¦
|
||||
¦¦< =
|
||||
§§
|
||||
§§
|
||||
©©* V
|
||||
ªª
|
||||
|
||||
D F
|
||||
®® #
|
||||
®®4 5
|
||||
®®7 :
|
||||
°°
|
||||
°°& *
|
||||
°°3 4
|
||||
±±
|
||||
±±% (
|
||||
³³
|
||||
³³ &
|
||||
³³2 5
|
||||
³³@ ^
|
||||
¶¶
|
||||
¶¶" %
|
||||
¸¸
|
||||
¸¸% (
|
||||
¸¸) 6
|
||||
¹¹* 2
|
||||
ºº* 0
|
||||
ºº6 ;
|
||||
ººZ \
|
||||
ººh i
|
||||
»»* ?
|
||||
¼¼* 7
|
||||
¾¾
|
||||
¾¾* -
|
||||
¾¾. 2
|
||||
¾¾3 9
|
||||
ÀÀ
|
||||
ÀÀ
|
||||
ÂÂ. H
|
||||
ÆÆ
|
||||
ÆÆ
|
||||
ÈÈ. F
|
||||
ÌÌ
|
||||
ÌÌ
|
||||
ÎÎ. D
|
||||
ÒÒ* C
|
||||
ÓÓ* P
|
||||
ØØ
|
||||
ØØ
|
||||
ØØ #
|
||||
ÛÛ
|
||||
ÛÛ
|
||||
ÛÛ' )
|
||||
ÝÝ
|
||||
ââ
|
||||
ââ "
|
||||
ââ# '
|
||||
ââ( 3
|
||||
ââ4 :
|
||||
ââ< B
|
||||
ãã
|
||||
ãã
|
||||
ãã! $
|
||||
ãã. 3
|
||||
åå
|
||||
åå $
|
||||
çç
|
||||
çç& )
|
||||
çç* 4
|
||||
çç5 ;
|
||||
çç= C
|
||||
ççE S
|
||||
èè
|
||||
èè! $
|
||||
èè) *
|
||||
êê #óó ž
|
||||
ûû
|
||||
üü
|
||||
üü "
|
||||
þþ
|
||||
þþ
|
||||
€€( Q
|
||||
<08><10>
|
||||
<08><10> "
|
||||
<08><10>+ -
|
||||
<08><10>- D
|
||||
<08><10>P Q
|
||||
„„ B
|
||||
…… M
|
||||
‡‡
|
||||
ŠŠ
|
||||
|
||||
ŠŠ
|
||||
ŠŠ
|
||||
ŠŠ #
|
||||
ŒŒ
|
||||
ŒŒ
|
||||
ŒŒ$ '
|
||||
ŒŒ) -
|
||||
ŽŽ
|
||||
ŽŽ
|
||||
ŽŽ% (
|
||||
ŽŽ* .
|
||||
<08><10>
|
||||
<08><10>
|
||||
<08><10># &
|
||||
<08><10>( ,
|
||||
’’
|
||||
’’
|
||||
’’
|
||||
’’ $
|
||||
””
|
||||
””
|
||||
”” "
|
||||
””$ (¯
|
||||
//workspaces/AS400API/Endpoints/AuthEndpoints.cs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
!
|
||||
#
5 9
: K &( -. 23 := IS `l x
|
||||
‡ ‘ # )R X * -8 ] !" /e gi q B!! !!! ,"" ## %% #%%& 5'' ''F ]''f o(( ((% /)) )) )) !,, O.. î
|
||||
1/workspaces/AS400API/Endpoints/SystemEndpoints.cs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
'9 => S
%
) ,
6 @
K O
|
||||
#7 ;< M !# (* 8 " Y # ( / 0 "& )4 <^ j
y <20>!! !! !!" %!!0 8!!A J## ## %% %% %%' )%%) B%%N O)) ·
|
||||
;/workspaces/AS400API/Infrastructure/DatabaseRowFormatter.cs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
(
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
)
|
||||
|
||||
* 0
|
||||
|
||||
2 8
|
||||
|
||||
T X
|
||||
|
||||
Y d
|
||||
|
||||
e l "# )+ 1 ! +, 24 :
|
||||
$& ,E IJ UV \^ d #$ *, 25 C !! !! %% (( (( (( ((& ,**
|
||||
** ,, // 00 00 00 #00% (00, >44
|
||||
44 66 99
|
||||
99 ;; ;;# $<< <<" #>> AA AA AA1 2AA? @DD DD DD "EE FF FF
FF HH II II" #KK NN NN4 5OO OO! "QQ" #UU Ë
|
||||
;/workspaces/AS400API/Infrastructure/DataReaderExtensions.cs
|
||||
|
||||
|
||||
|
||||
(
|
||||
- 12 >G J
|
||||
|
||||
|
||||
|
||||
+ 13 C* 35 E §
|
||||
|
||||
/workspaces/AS400API/Program.cs
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4
|
||||
& ,
|
||||
|
||||
|
||||
! '
|
||||
, 3 A %= V 1 = 5 E!! !!3 A!!F I
|
||||
## ##
|
||||
$$
|
||||
%%
|
||||
'' '' o
|
||||
**
|
||||
++ ++2 <++N X++_ b++c m
|
||||
-- -- -- )--* 222 22 22! ,44 55 88 88 88 2:: ;; I<<
== !>> ?? @@ @@ (BB CC HH# &HH' AJJ JJ& ,NN )NN0 3NN4 BPP *QQ +TT (WW, /WW0 IYY ![[ #]]' +__ #`` ``- .ff "gg gg( -hh "ii
|
||||
ll
|
||||
nn
|
||||
{{ {{ „„ 1…… F
|
||||
104
.sonarqube/out/ScannerEngineInput.json
Normal file
104
.sonarqube/out/ScannerEngineInput.json
Normal file
@ -0,0 +1,104 @@
|
||||
{
|
||||
"scannerProperties": [
|
||||
{
|
||||
"key": "sonar.scanner.app",
|
||||
"value": "ScannerMSBuild"
|
||||
},
|
||||
{
|
||||
"key": "sonar.scanner.appVersion",
|
||||
"value": "10.4.1"
|
||||
},
|
||||
{
|
||||
"key": "sonar.projectKey",
|
||||
"value": "as400api"
|
||||
},
|
||||
{
|
||||
"key": "sonar.projectName",
|
||||
"value": "AS400API"
|
||||
},
|
||||
{
|
||||
"key": "sonar.working.directory",
|
||||
"value": "/workspaces/AS400API/.sonarqube/out/.sonar"
|
||||
},
|
||||
{
|
||||
"key": "sonar.projectBaseDir",
|
||||
"value": "/workspaces/AS400API"
|
||||
},
|
||||
{
|
||||
"key": "sonar.pullrequest.cache.basepath",
|
||||
"value": "/workspaces/AS400API"
|
||||
},
|
||||
{
|
||||
"key": "sonar.sources",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "sonar.tests",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "sonar.modules",
|
||||
"value": "40CB5B53-77B8-B1FD-458C-805350CB09E8"
|
||||
},
|
||||
{
|
||||
"key": "40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.projectKey",
|
||||
"value": "as400api:40CB5B53-77B8-B1FD-458C-805350CB09E8"
|
||||
},
|
||||
{
|
||||
"key": "40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.projectName",
|
||||
"value": "AS400API"
|
||||
},
|
||||
{
|
||||
"key": "40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.projectBaseDir",
|
||||
"value": "/workspaces/AS400API"
|
||||
},
|
||||
{
|
||||
"key": "40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.working.directory",
|
||||
"value": "/workspaces/AS400API/.sonarqube/out/.sonar/mod0"
|
||||
},
|
||||
{
|
||||
"key": "40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.sourceEncoding",
|
||||
"value": "utf-8"
|
||||
},
|
||||
{
|
||||
"key": "40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.tests",
|
||||
"value": ""
|
||||
},
|
||||
{
|
||||
"key": "40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.sources",
|
||||
"value": "/workspaces/AS400API/Auth/AuthPolicies.cs,/workspaces/AS400API/Auth/DemoUser.cs,/workspaces/AS400API/Auth/DemoUserStore.cs,/workspaces/AS400API/Auth/LoginRequest.cs,/workspaces/AS400API/Auth/LoginResponse.cs,/workspaces/AS400API/Auth/PasswordHasher.cs,/workspaces/AS400API/Auth/Roles.cs,/workspaces/AS400API/Auth/TokenService.cs,/workspaces/AS400API/Configuration/JwtOptions.cs,/workspaces/AS400API/Configuration/OdbcOptions.cs,/workspaces/AS400API/Endpoints/As400Endpoints.cs,/workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs,/workspaces/AS400API/Endpoints/AuthEndpoints.cs,/workspaces/AS400API/Endpoints/SystemEndpoints.cs,/workspaces/AS400API/Infrastructure/DatabaseRowFormatter.cs,/workspaces/AS400API/Infrastructure/DataReaderExtensions.cs,/workspaces/AS400API/Program.cs,/workspaces/AS400API/obj/Debug/net9.0/AS400API.GlobalUsings.g.cs,\"/workspaces/AS400API/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs\",/workspaces/AS400API/obj/Debug/net9.0/AS400API.AssemblyInfo.cs,/workspaces/AS400API/obj/Debug/net9.0/AS400API.MvcApplicationPartsAssemblyInfo.cs,/workspaces/AS400API/appsettings.json,/workspaces/AS400API/.dockerignore,/workspaces/AS400API/docker-compose.yml,/workspaces/AS400API/docker/odbc/odbc.ini,/workspaces/AS400API/docker/odbc/odbcinst.ini,/workspaces/AS400API/Dockerfile,/workspaces/AS400API/drivers/ibm-iaccess-1.1.0.28-1.0.x86_64.rpm,/workspaces/AS400API/Logs/as400-api-20251001.log,/workspaces/AS400API/Logs/as400-api-20251002.log,/workspaces/AS400API/Logs/as400-api-20251003.log,/workspaces/AS400API/Logs/as400-api-20251004.log,/workspaces/AS400API/README.md,/workspaces/AS400API/scripts/run-sonar.sh,/workspaces/AS400API/scripts/test-databases.sh,/workspaces/AS400API/obj/AS400API.csproj.nuget.dgspec.json,/workspaces/AS400API/obj/project.assets.json,/workspaces/AS400API/.devcontainer/Dockerfile,/workspaces/AS400API/.devcontainer/devcontainer.json,/workspaces/AS400API/.vscode/launch.json,/workspaces/AS400API/.vscode/tasks.json,/workspaces/AS400API/obj/Debug/net9.0/staticwebassets.build.json,/workspaces/AS400API/obj/Debug/net9.0/staticwebassets.build.endpoints.json,/workspaces/AS400API/obj/Debug/net9.0/rjsmrazor.dswa.cache.json,/workspaces/AS400API/obj/Debug/net9.0/rjsmcshtml.dswa.cache.json,/workspaces/AS400API/obj/Debug/net9.0/rpswa.dswa.cache.json,/workspaces/AS400API/bin/Debug/net9.0/AS400API.deps.json,/workspaces/AS400API/bin/Debug/net9.0/appsettings.json,/workspaces/AS400API/bin/Debug/net9.0/AS400API.runtimeconfig.json,/workspaces/AS400API/bin/Debug/net9.0/AS400API.staticwebassets.endpoints.json"
|
||||
},
|
||||
{
|
||||
"key": "40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.cs.analyzer.projectOutPaths",
|
||||
"value": "/workspaces/AS400API/.sonarqube/out/0"
|
||||
},
|
||||
{
|
||||
"key": "40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.cs.roslyn.reportFilePaths",
|
||||
"value": "/workspaces/AS400API/.sonarqube/out/0/Issues.json"
|
||||
},
|
||||
{
|
||||
"key": "40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.cs.scanner.telemetry",
|
||||
"value": "/workspaces/AS400API/.sonarqube/out/0/Telemetry.json"
|
||||
},
|
||||
{
|
||||
"key": "sonar.login",
|
||||
"value": "***"
|
||||
},
|
||||
{
|
||||
"key": "sonar.host.url",
|
||||
"value": "http://host.docker.internal:9000"
|
||||
},
|
||||
{
|
||||
"key": "sonar.cs.opencover.reportsPaths",
|
||||
"value": "**/coverage.opencover.xml"
|
||||
},
|
||||
{
|
||||
"key": "sonar.exclusions",
|
||||
"value": "**/bin/**,**/obj/**,**/coverage.opencover.xml"
|
||||
},
|
||||
{
|
||||
"key": "sonar.visualstudio.enable",
|
||||
"value": "false"
|
||||
}
|
||||
]
|
||||
}
|
||||
78
.sonarqube/out/sonar-project.properties
Normal file
78
.sonarqube/out/sonar-project.properties
Normal file
@ -0,0 +1,78 @@
|
||||
sonar.projectKey=as400api
|
||||
sonar.projectName=AS400API
|
||||
sonar.working.directory=/workspaces/AS400API/.sonarqube/out/.sonar
|
||||
sonar.projectBaseDir=/workspaces/AS400API
|
||||
sonar.pullrequest.cache.basepath=/workspaces/AS400API
|
||||
|
||||
40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.projectKey=as400api:40CB5B53-77B8-B1FD-458C-805350CB09E8
|
||||
40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.projectName=AS400API
|
||||
40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.projectBaseDir=/workspaces/AS400API
|
||||
40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.sourceEncoding=utf-8
|
||||
40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.tests=
|
||||
40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.sources=\
|
||||
"/workspaces/AS400API/Auth/AuthPolicies.cs",\
|
||||
"/workspaces/AS400API/Auth/DemoUser.cs",\
|
||||
"/workspaces/AS400API/Auth/DemoUserStore.cs",\
|
||||
"/workspaces/AS400API/Auth/LoginRequest.cs",\
|
||||
"/workspaces/AS400API/Auth/LoginResponse.cs",\
|
||||
"/workspaces/AS400API/Auth/PasswordHasher.cs",\
|
||||
"/workspaces/AS400API/Auth/Roles.cs",\
|
||||
"/workspaces/AS400API/Auth/TokenService.cs",\
|
||||
"/workspaces/AS400API/Configuration/JwtOptions.cs",\
|
||||
"/workspaces/AS400API/Configuration/OdbcOptions.cs",\
|
||||
"/workspaces/AS400API/Endpoints/As400Endpoints.cs",\
|
||||
"/workspaces/AS400API/Endpoints/AS400_CP3FPRD/ORDUAG.cs",\
|
||||
"/workspaces/AS400API/Endpoints/AuthEndpoints.cs",\
|
||||
"/workspaces/AS400API/Endpoints/SystemEndpoints.cs",\
|
||||
"/workspaces/AS400API/Infrastructure/DatabaseRowFormatter.cs",\
|
||||
"/workspaces/AS400API/Infrastructure/DataReaderExtensions.cs",\
|
||||
"/workspaces/AS400API/Program.cs",\
|
||||
"/workspaces/AS400API/obj/Debug/net9.0/AS400API.GlobalUsings.g.cs",\
|
||||
"/workspaces/AS400API/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs",\
|
||||
"/workspaces/AS400API/obj/Debug/net9.0/AS400API.AssemblyInfo.cs",\
|
||||
"/workspaces/AS400API/obj/Debug/net9.0/AS400API.MvcApplicationPartsAssemblyInfo.cs",\
|
||||
"/workspaces/AS400API/appsettings.json",\
|
||||
"/workspaces/AS400API/.dockerignore",\
|
||||
"/workspaces/AS400API/docker-compose.yml",\
|
||||
"/workspaces/AS400API/docker/odbc/odbc.ini",\
|
||||
"/workspaces/AS400API/docker/odbc/odbcinst.ini",\
|
||||
"/workspaces/AS400API/Dockerfile",\
|
||||
"/workspaces/AS400API/drivers/ibm-iaccess-1.1.0.28-1.0.x86_64.rpm",\
|
||||
"/workspaces/AS400API/Logs/as400-api-20251001.log",\
|
||||
"/workspaces/AS400API/Logs/as400-api-20251002.log",\
|
||||
"/workspaces/AS400API/Logs/as400-api-20251003.log",\
|
||||
"/workspaces/AS400API/Logs/as400-api-20251004.log",\
|
||||
"/workspaces/AS400API/README.md",\
|
||||
"/workspaces/AS400API/scripts/run-sonar.sh",\
|
||||
"/workspaces/AS400API/scripts/test-databases.sh",\
|
||||
"/workspaces/AS400API/obj/AS400API.csproj.nuget.dgspec.json",\
|
||||
"/workspaces/AS400API/obj/project.assets.json",\
|
||||
"/workspaces/AS400API/.devcontainer/Dockerfile",\
|
||||
"/workspaces/AS400API/.devcontainer/devcontainer.json",\
|
||||
"/workspaces/AS400API/.vscode/launch.json",\
|
||||
"/workspaces/AS400API/.vscode/tasks.json",\
|
||||
"/workspaces/AS400API/obj/Debug/net9.0/staticwebassets.build.json",\
|
||||
"/workspaces/AS400API/obj/Debug/net9.0/staticwebassets.build.endpoints.json",\
|
||||
"/workspaces/AS400API/obj/Debug/net9.0/rjsmrazor.dswa.cache.json",\
|
||||
"/workspaces/AS400API/obj/Debug/net9.0/rjsmcshtml.dswa.cache.json",\
|
||||
"/workspaces/AS400API/obj/Debug/net9.0/rpswa.dswa.cache.json",\
|
||||
"/workspaces/AS400API/bin/Debug/net9.0/AS400API.deps.json",\
|
||||
"/workspaces/AS400API/bin/Debug/net9.0/appsettings.json",\
|
||||
"/workspaces/AS400API/bin/Debug/net9.0/AS400API.runtimeconfig.json",\
|
||||
"/workspaces/AS400API/bin/Debug/net9.0/AS400API.staticwebassets.endpoints.json"
|
||||
|
||||
40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.cs.analyzer.projectOutPaths=\
|
||||
"/workspaces/AS400API/.sonarqube/out/0"
|
||||
40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.cs.roslyn.reportFilePaths=\
|
||||
"/workspaces/AS400API/.sonarqube/out/0/Issues.json"
|
||||
40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.cs.scanner.telemetry=\
|
||||
"/workspaces/AS400API/.sonarqube/out/0/Telemetry.json"
|
||||
|
||||
40CB5B53-77B8-B1FD-458C-805350CB09E8.sonar.working.directory=/workspaces/AS400API/.sonarqube/out/.sonar/mod0
|
||||
sonar.host.url=http://host.docker.internal:9000
|
||||
sonar.cs.opencover.reportsPaths=**/coverage.opencover.xml
|
||||
sonar.exclusions=**/bin/**,**/obj/**,**/coverage.opencover.xml
|
||||
sonar.visualstudio.enable=false
|
||||
|
||||
sonar.modules=40CB5B53-77B8-B1FD-458C-805350CB09E8
|
||||
|
||||
@ -6,15 +6,11 @@
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="JunitXml.TestLogger" Version="7.0.2" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="9.0.9" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.10.0" />
|
||||
<PackageReference Include="xunit" Version="2.9.0" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2" />
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.0" />
|
||||
<PackageReference Include="coverlet.msbuild" Version="6.0.0">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\AS400API.csproj" />
|
||||
|
||||
@ -4,10 +4,7 @@
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<InvariantGlobalization>true</InvariantGlobalization>
|
||||
<DefaultItemExcludes>$(DefaultItemExcludes);AS400API.Tests/**</DefaultItemExcludes>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Package references -->
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Dapper" Version="2.1.28" />
|
||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.5.0" />
|
||||
@ -17,16 +14,7 @@
|
||||
<PackageReference Include="Serilog.Settings.Configuration" Version="8.0.0" />
|
||||
<PackageReference Include="Serilog.Sinks.File" Version="6.0.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Remove build/test/output from Content/None (safe for SDK-style projects) -->
|
||||
<ItemGroup>
|
||||
<Content Remove="bin/**;obj/**;out/**;TestResults/**;**/*.Tests/**;**/AS400API.Tests/**" />
|
||||
<None Remove="bin/**;obj/**;out/**;TestResults/**;**/*.Tests/**;**/AS400API.Tests/**" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Update="appsettings*.json">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Compile Remove="AS400API.Tests/**/*.cs" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
395
Jenkinsfile
vendored
395
Jenkinsfile
vendored
@ -1,244 +1,221 @@
|
||||
pipeline {
|
||||
agent any
|
||||
|
||||
options {
|
||||
ansiColor('xterm')
|
||||
timestamps()
|
||||
buildDiscarder(logRotator(numToKeepStr: '15'))
|
||||
disableConcurrentBuilds()
|
||||
skipDefaultCheckout(true)
|
||||
}
|
||||
|
||||
parameters {
|
||||
string(name: 'GIT_URL', defaultValue: 'file:///repos/AS400API.git', description: 'Git repository URL to clone')
|
||||
string(name: 'GIT_BRANCH', defaultValue: 'main', description: 'Branch or ref to build')
|
||||
// string(name: 'AGENT_LABEL', defaultValue: '', description: 'Optional Jenkins agent label with Docker CLI access (leave blank for default node)')
|
||||
}
|
||||
agent none
|
||||
options { ansiColor('xterm'); timestamps() }
|
||||
|
||||
environment {
|
||||
DOTNET_CLI_TELEMETRY_OPTOUT = '1'
|
||||
DOTNET_SKIP_FIRST_TIME_EXPERIENCE = '1'
|
||||
DOTNET_NOLOGO = '1'
|
||||
BUILD_CONFIGURATION = 'Release'
|
||||
TEST_RESULTS_DIR = 'TestResults'
|
||||
COVERAGE_DIR = 'TestResults/Coverage'
|
||||
COVERAGE_FILE = 'TestResults/Coverage/coverage.opencover.xml'
|
||||
COVERAGE_HTML_DIR = 'TestResults/Coverage/html'
|
||||
|
||||
// Path ติดตั้ง dotnet ชั่วคราวใน pipeline
|
||||
DOTNET_ROOT = "${WORKSPACE}/.dotnet"
|
||||
PATH = "${DOTNET_ROOT}:${PATH}"
|
||||
|
||||
PUBLISH_DIR = 'publish/Release'
|
||||
SONAR_PROJECT_KEY = 'AS400API'
|
||||
SONAR_PROJECT_NAME = 'AS400API'
|
||||
SONAR_PROJECT_KEY = 'as400api-dotnet'
|
||||
SONAR_PROJECT_NAME = 'AS400_API_DOTNET (.NET 9)'
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Checkout') {
|
||||
steps {
|
||||
// Fetch the requested branch from the configured Git URL.
|
||||
script {
|
||||
if (!params.GIT_URL?.trim()) {
|
||||
error 'GIT_URL parameter must not be empty.'
|
||||
}
|
||||
String branchSpec = params.GIT_BRANCH?.trim() ?: 'main'
|
||||
if (!branchSpec.startsWith('*/')) {
|
||||
branchSpec = "*/${branchSpec}"
|
||||
}
|
||||
checkout([
|
||||
$class : 'GitSCM',
|
||||
branches : [[name: branchSpec]],
|
||||
doGenerateSubmoduleConfigurations: false,
|
||||
extensions : [[$class: 'CloneOption', depth: 0, noTags: false, shallow: false]],
|
||||
userRemoteConfigs : [[url: params.GIT_URL.trim()]]
|
||||
])
|
||||
}
|
||||
}
|
||||
agent any
|
||||
steps { checkout scm }
|
||||
}
|
||||
|
||||
stage('.NET SDK Info') {
|
||||
stage('Install prerequisites') {
|
||||
agent any
|
||||
steps {
|
||||
// Sanity check the SDK and install required global tools (Java for Sonar + dotnet-sonarscanner).
|
||||
sh '''#!/bin/bash -e
|
||||
sh '''
|
||||
set -euo pipefail
|
||||
|
||||
install_deps() {
|
||||
if command -v apt-get >/dev/null 2>&1; then
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update
|
||||
apt-get install -y --no-install-recommends openjdk-21-jre-headless
|
||||
# Common native deps for .NET + tools
|
||||
apt-get install -y --no-install-recommends \
|
||||
libkrb5-3 zlib1g libstdc++6 ca-certificates curl unzip jq
|
||||
|
||||
# --- Install ICU runtime (Debian uses versioned package names) ---
|
||||
if ! ldconfig -p | grep -qi libicu; then
|
||||
PKG="$(apt-cache search '^libicu[0-9]+$' | awk '{print $1}' | head -n1 || true)"
|
||||
if [ -n "$PKG" ]; then
|
||||
echo "Installing ICU package: ${PKG}"
|
||||
apt-get install -y --no-install-recommends "${PKG}"
|
||||
# Java (for OWASP Dependency-Check)
|
||||
# prefer 17 headless; fall back to default-jre-headless
|
||||
(apt-get install -y --no-install-recommends openjdk-17-jre-headless) || \
|
||||
(apt-get install -y --no-install-recommends default-jre-headless) || true
|
||||
|
||||
# ---- ICU on Debian/Ubuntu ----
|
||||
# 1) try meta/dev names (older releases)
|
||||
apt-get install -y --no-install-recommends libicu || true
|
||||
apt-get install -y --no-install-recommends libicu-dev || true
|
||||
|
||||
# 2) if still missing, detect versioned package (e.g., libicu74 on trixie)
|
||||
if ! ldconfig -p 2>/dev/null | grep -qi 'libicu'; then
|
||||
PKG="$(apt-cache search -n '^libicu[0-9]+$' | awk '{print $1}' | sort -V | tail -n1 || true)"
|
||||
if [ -n "${PKG:-}" ]; then
|
||||
echo "Installing detected ICU package: $PKG"
|
||||
apt-get install -y --no-install-recommends "$PKG"
|
||||
fi
|
||||
fi
|
||||
|
||||
# 3) final sanity
|
||||
if ! ldconfig -p 2>/dev/null | grep -qi 'libicu'; then
|
||||
echo "WARN: ICU not found after install attempts (will rely on invariant mode if needed)"
|
||||
fi
|
||||
|
||||
elif command -v dnf >/dev/null 2>&1; then
|
||||
dnf install -y libicu krb5-libs zlib libstdc++ ca-certificates curl unzip java-17-openjdk-headless jq || true
|
||||
elif command -v yum >/dev/null 2>&1; then
|
||||
yum install -y libicu krb5-libs zlib libstdc++ ca-certificates curl unzip java-17-openjdk-headless jq || true
|
||||
elif command -v apk >/dev/null 2>&1; then
|
||||
apk add --no-cache icu-libs krb5-libs zlib libstdc++ ca-certificates curl unzip openjdk17-jre-headless jq || true
|
||||
else
|
||||
echo "Installing fallback ICU development package..."
|
||||
apt-get install -y --no-install-recommends libicu-dev
|
||||
echo "Unsupported package manager. Please install ICU + Java manually."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
}
|
||||
|
||||
# Install .NET SDK locally for the build user
|
||||
mkdir -p "${WORKSPACE}/.dotnet"
|
||||
install_deps
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Bootstrap .NET SDK if dotnet is missing
|
||||
stage('Bootstrap .NET SDK') {
|
||||
agent any
|
||||
steps {
|
||||
sh '''
|
||||
set -e
|
||||
if ! command -v dotnet >/dev/null 2>&1; then
|
||||
echo "Installing .NET SDK locally for this build..."
|
||||
curl -fsSL https://dot.net/v1/dotnet-install.sh -o dotnet-install.sh
|
||||
bash dotnet-install.sh --channel 9.0 --install-dir "${WORKSPACE}/.dotnet"
|
||||
bash dotnet-install.sh --channel 9.0 --install-dir "$HOME/.dotnet"
|
||||
fi
|
||||
export PATH="$HOME/.dotnet:$PATH"
|
||||
|
||||
# If ICU still missing (e.g., no libicu*.so found), enable invariant mode as a fallback
|
||||
if ! ldconfig -p 2>/dev/null | grep -qi 'libicu'; then
|
||||
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
|
||||
echo "NOTE: Running .NET in globalization invariant mode (ICU not found)"
|
||||
fi
|
||||
|
||||
echo '### dotnet --info'
|
||||
dotnet --info
|
||||
|
||||
echo '### Install/Update dotnet tooling'
|
||||
dotnet tool install --global dotnet-sonarscanner || dotnet tool update --global dotnet-sonarscanner
|
||||
dotnet tool install --global dotnet-reportgenerator-globaltool || dotnet tool update --global dotnet-reportgenerator-globaltool
|
||||
'''
|
||||
script {
|
||||
String dotnetToolsPath = "${env.HOME ?: '/var/jenkins_home'}/.dotnet/tools"
|
||||
if (!env.PATH.contains(dotnetToolsPath)) {
|
||||
env.PATH = "${env.PATH}:${dotnetToolsPath}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Restore') {
|
||||
steps {
|
||||
// Restore solution dependencies.
|
||||
sh '''#!/bin/bash -e
|
||||
dotnet restore AS400API.sln
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build') {
|
||||
stage('SCA (NuGet vulnerabilities + OWASP)') {
|
||||
agent any
|
||||
steps {
|
||||
// Build the solution in Release mode without failing on warnings.
|
||||
sh '''#!/bin/bash -e
|
||||
dotnet build AS400API.sln --configuration "${BUILD_CONFIGURATION}" --no-restore
|
||||
sh '''
|
||||
set -euo pipefail
|
||||
export PATH="$HOME/.dotnet:$PATH"
|
||||
|
||||
echo "=== NuGet vulnerability audit ==="
|
||||
dotnet restore
|
||||
dotnet list package --vulnerable || true
|
||||
|
||||
echo "=== OWASP Dependency-Check (no Docker) ==="
|
||||
rm -f depcheck.zip || true
|
||||
rm -rf dependency-check || true
|
||||
mkdir -p depcheck
|
||||
|
||||
API="https://api.github.com/repos/jeremylong/DependencyCheck/releases/latest"
|
||||
|
||||
# Resolve the correct asset URL (ends with -release.zip)
|
||||
echo "Resolving Dependency-Check latest asset URL from GitHub API..."
|
||||
ASSET_URL="$(curl -fsSL "$API" \
|
||||
| jq -r '.assets[]?.browser_download_url | select(test("release\\\\.zip$"))' \
|
||||
| head -n1 || true)"
|
||||
|
||||
# Fallback from tag_name if assets listing is throttled
|
||||
if [ -z "${ASSET_URL:-}" ]; then
|
||||
TAG="$(curl -fsSL "$API" | jq -r '.tag_name' || true)"
|
||||
if [ -n "${TAG:-}" ]; then
|
||||
VER="${TAG#v}"
|
||||
ASSET_URL="https://github.com/jeremylong/DependencyCheck/releases/download/${TAG}/dependency-check-${VER}-release.zip"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "${ASSET_URL:-}" ]; then
|
||||
echo "ERROR: Could not resolve Dependency-Check release asset URL."
|
||||
exit 9
|
||||
fi
|
||||
|
||||
echo "Downloading: $ASSET_URL"
|
||||
curl -fL --retry 3 --retry-all-errors -o depcheck.zip "$ASSET_URL"
|
||||
|
||||
# Validate and extract
|
||||
unzip -tq depcheck.zip || { echo "Downloaded file is not a valid ZIP"; exit 9; }
|
||||
mkdir -p dependency-check
|
||||
unzip -q depcheck.zip -d dependency-check
|
||||
|
||||
DC_BIN="$(echo dependency-check/dependency-check*/bin/dependency-check.sh)"
|
||||
if [ ! -x "$DC_BIN" ]; then
|
||||
echo "ERROR: dependency-check.sh not found under extracted folder"
|
||||
ls -la dependency-check || true
|
||||
exit 9
|
||||
fi
|
||||
|
||||
# Generate HTML and XML reports (note: use multiple -f flags)
|
||||
bash "$DC_BIN" \
|
||||
-f HTML -f XML \
|
||||
--project "AS400_API_DOTNET" \
|
||||
--scan "." \
|
||||
--out "depcheck" \
|
||||
--noupdate || true
|
||||
|
||||
echo "SCA reports generated in depcheck/"
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('Test & Coverage') {
|
||||
steps {
|
||||
// Execute tests once for fast feedback and capture TRX + OpenCover reports.
|
||||
sh '''#!/bin/bash -e
|
||||
rm -rf "${TEST_RESULTS_DIR}"
|
||||
mkdir -p "${COVERAGE_DIR}"
|
||||
mkdir -p "${COVERAGE_HTML_DIR}"
|
||||
dotnet test AS400API.sln --configuration "${BUILD_CONFIGURATION}" --no-build \
|
||||
/p:CollectCoverage=true \
|
||||
/p:CoverletOutputFormat=opencover \
|
||||
/p:CoverletOutput="${WORKSPACE}/${COVERAGE_DIR}/" \
|
||||
--results-directory "${TEST_RESULTS_DIR}" \
|
||||
--logger "trx;LogFileName=test-results.trx" \
|
||||
--logger "junit;LogFileName=test-results.xml"
|
||||
|
||||
"${HOME}/.dotnet/tools/reportgenerator" \
|
||||
-reports:"${COVERAGE_FILE}" \
|
||||
-targetdir:"${COVERAGE_HTML_DIR}" \
|
||||
-reporttypes:"HtmlInline_AzurePipelines;Cobertura"
|
||||
'''
|
||||
junit testResults: "${TEST_RESULTS_DIR}/**/*.xml", allowEmptyResults: false
|
||||
publishHTML(target: [
|
||||
allowMissing : false,
|
||||
keepAll : true,
|
||||
reportDir : "${COVERAGE_HTML_DIR}",
|
||||
reportFiles : 'index.html',
|
||||
reportName : 'Code Coverage'
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
stage('SonarQube: Begin') {
|
||||
steps {
|
||||
// Kick off Sonar analysis with project metadata and coverage location.
|
||||
script {
|
||||
env.SONAR_PROJECT_VERSION = env.BUILD_NUMBER ?: '0.0.0'
|
||||
}
|
||||
withSonarQubeEnv('SonarQube') {
|
||||
sh '''#!/bin/bash -e
|
||||
|
||||
# Ensure scanner is available and PATH includes global tools
|
||||
dotnet tool update --global dotnet-sonarscanner
|
||||
export PATH="$PATH:${HOME}/.dotnet/tools"
|
||||
|
||||
# dotnet sonarscanner begin \
|
||||
# /k:"${SONAR_PROJECT_KEY}" \
|
||||
# /n:"${SONAR_PROJECT_NAME}" \
|
||||
# /v:"${SONAR_PROJECT_VERSION}" \
|
||||
# /d:sonar.host.url="${SONAR_HOST_URL}" \
|
||||
# /d:sonar.login="${SONAR_AUTH_TOKEN}" \
|
||||
# /d:sonar.cs.opencover.reportsPaths="${COVERAGE_FILE}"
|
||||
|
||||
|
||||
dotnet sonarscanner begin \
|
||||
/k:AS400API \
|
||||
/d:sonar.cs.opencover.reportsPaths="${COVERAGE_FILE}" \
|
||||
/d:sonar.exclusions="TestResults/Coverage/html/**"
|
||||
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Rebuild for Sonar') {
|
||||
steps {
|
||||
// Run a rebuild under the Sonar scanner context so analysis picks up compilation data.
|
||||
sh '''#!/bin/bash -e
|
||||
dotnet build AS400API.sln --configuration "${BUILD_CONFIGURATION}" --no-restore --no-incremental
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('SonarQube: End') {
|
||||
steps {
|
||||
// Close the Sonar analysis and push data to the server.
|
||||
withSonarQubeEnv('SonarQube') {
|
||||
sh '''#!/bin/bash -e
|
||||
export PATH="$PATH:${HOME}/.dotnet/tools"
|
||||
dotnet sonarscanner end
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Quality Gate') {
|
||||
steps {
|
||||
// Wait for the Quality Gate result and fail fast on non-green outcomes.
|
||||
timeout(time: 15, unit: 'MINUTES') {
|
||||
script {
|
||||
def qualityGate = waitForQualityGate()
|
||||
if (qualityGate.status != 'OK') {
|
||||
error "SonarQube Quality Gate failed: ${qualityGate.status}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Archive') {
|
||||
steps {
|
||||
// Publish Release-ready binaries and test artifacts for downstream consumption.
|
||||
sh '''#!/bin/bash -e
|
||||
rm -rf "${PUBLISH_DIR}"
|
||||
dotnet publish AS400API.sln --configuration "${BUILD_CONFIGURATION}" --no-restore --output "${PUBLISH_DIR}"
|
||||
'''
|
||||
archiveArtifacts artifacts: "${PUBLISH_DIR}/**", fingerprint: true
|
||||
archiveArtifacts artifacts: "${TEST_RESULTS_DIR}/**/*.trx", allowEmptyArchive: true
|
||||
archiveArtifacts artifacts: "${COVERAGE_FILE}", allowEmptyArchive: true
|
||||
archiveArtifacts artifacts: "${COVERAGE_HTML_DIR}/**", allowEmptyArchive: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
always {
|
||||
script {
|
||||
try {
|
||||
deleteDir()
|
||||
} catch (org.jenkinsci.plugins.workflow.steps.MissingContextVariableException ignore) {
|
||||
echo 'Workspace cleanup skipped because no workspace was provisioned.'
|
||||
archiveArtifacts artifacts: 'depcheck/**', allowEmptyArchive: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('SAST + Coverage (SonarQube + Tests)') {
|
||||
agent any
|
||||
steps {
|
||||
sh '''
|
||||
set -e
|
||||
export PATH="$HOME/.dotnet:$PATH"
|
||||
|
||||
# run tests with coverage (cobertura) + produce TRX results for JUnit
|
||||
dotnet test \
|
||||
--logger "trx;LogFileName=test_results.trx" \
|
||||
/p:CollectCoverage=true \
|
||||
/p:CoverletOutput=coverage/ \
|
||||
/p:CoverletOutputFormat=cobertura
|
||||
|
||||
mkdir -p coverage-report
|
||||
# copy the cobertura file (adjust path if your solution layout differs)
|
||||
COBERTURA_FILE=$(find . -type f -name "coverage.cobertura.xml" | head -n1 || true)
|
||||
[ -n "$COBERTURA_FILE" ] && cp "$COBERTURA_FILE" coverage-report/Cobertura.xml || true
|
||||
|
||||
# If SonarQube is configured, run scanner; otherwise skip gracefully.
|
||||
if [ -n "${SONARQUBE_ENV_NAME:-}" ]; then
|
||||
echo "SonarQube env variable detected: $SONARQUBE_ENV_NAME"
|
||||
else
|
||||
echo "SonarQube not configured; skipping Sonar scan."
|
||||
exit 0
|
||||
fi
|
||||
'''
|
||||
}
|
||||
post {
|
||||
always {
|
||||
// Publish TRX results (built-in)
|
||||
junit '**/TestResults/**/*.trx'
|
||||
// Archive coverage XML so you can inspect it
|
||||
archiveArtifacts artifacts: 'coverage-report/**', allowEmptyArchive: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build Artifact') {
|
||||
agent any
|
||||
steps {
|
||||
sh '''
|
||||
set -e
|
||||
export PATH="$HOME/.dotnet:$PATH"
|
||||
dotnet publish -c Release -o out
|
||||
ls -la out
|
||||
'''
|
||||
archiveArtifacts artifacts: 'out/**', fingerprint: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
221
Jenkinsfile copy
221
Jenkinsfile copy
@ -1,221 +0,0 @@
|
||||
pipeline {
|
||||
agent none
|
||||
options { ansiColor('xterm'); timestamps() }
|
||||
|
||||
environment {
|
||||
DOTNET_CLI_TELEMETRY_OPTOUT = '1'
|
||||
DOTNET_SKIP_FIRST_TIME_EXPERIENCE = '1'
|
||||
SONAR_PROJECT_KEY = 'as400api-dotnet'
|
||||
SONAR_PROJECT_NAME = 'AS400_API_DOTNET (.NET 9)'
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Checkout') {
|
||||
agent any
|
||||
steps { checkout scm }
|
||||
}
|
||||
|
||||
stage('Install prerequisites') {
|
||||
agent any
|
||||
steps {
|
||||
sh '''
|
||||
set -euo pipefail
|
||||
|
||||
install_deps() {
|
||||
if command -v apt-get >/dev/null 2>&1; then
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update
|
||||
# Common native deps for .NET + tools
|
||||
apt-get install -y --no-install-recommends \
|
||||
libkrb5-3 zlib1g libstdc++6 ca-certificates curl unzip jq
|
||||
|
||||
# Java (for OWASP Dependency-Check)
|
||||
# prefer 17 headless; fall back to default-jre-headless
|
||||
(apt-get install -y --no-install-recommends openjdk-17-jre-headless) || \
|
||||
(apt-get install -y --no-install-recommends default-jre-headless) || true
|
||||
|
||||
# ---- ICU on Debian/Ubuntu ----
|
||||
# 1) try meta/dev names (older releases)
|
||||
apt-get install -y --no-install-recommends libicu || true
|
||||
apt-get install -y --no-install-recommends libicu-dev || true
|
||||
|
||||
# 2) if still missing, detect versioned package (e.g., libicu74 on trixie)
|
||||
if ! ldconfig -p 2>/dev/null | grep -qi 'libicu'; then
|
||||
PKG="$(apt-cache search -n '^libicu[0-9]+$' | awk '{print $1}' | sort -V | tail -n1 || true)"
|
||||
if [ -n "${PKG:-}" ]; then
|
||||
echo "Installing detected ICU package: $PKG"
|
||||
apt-get install -y --no-install-recommends "$PKG"
|
||||
fi
|
||||
fi
|
||||
|
||||
# 3) final sanity
|
||||
if ! ldconfig -p 2>/dev/null | grep -qi 'libicu'; then
|
||||
echo "WARN: ICU not found after install attempts (will rely on invariant mode if needed)"
|
||||
fi
|
||||
|
||||
elif command -v dnf >/dev/null 2>&1; then
|
||||
dnf install -y libicu krb5-libs zlib libstdc++ ca-certificates curl unzip java-17-openjdk-headless jq || true
|
||||
elif command -v yum >/dev/null 2>&1; then
|
||||
yum install -y libicu krb5-libs zlib libstdc++ ca-certificates curl unzip java-17-openjdk-headless jq || true
|
||||
elif command -v apk >/dev/null 2>&1; then
|
||||
apk add --no-cache icu-libs krb5-libs zlib libstdc++ ca-certificates curl unzip openjdk17-jre-headless jq || true
|
||||
else
|
||||
echo "Unsupported package manager. Please install ICU + Java manually."
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
install_deps
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Bootstrap .NET SDK if dotnet is missing
|
||||
stage('Bootstrap .NET SDK') {
|
||||
agent any
|
||||
steps {
|
||||
sh '''
|
||||
set -e
|
||||
if ! command -v dotnet >/dev/null 2>&1; then
|
||||
echo "Installing .NET SDK locally for this build..."
|
||||
curl -fsSL https://dot.net/v1/dotnet-install.sh -o dotnet-install.sh
|
||||
bash dotnet-install.sh --channel 9.0 --install-dir "$HOME/.dotnet"
|
||||
fi
|
||||
export PATH="$HOME/.dotnet:$PATH"
|
||||
|
||||
# If ICU still missing (e.g., no libicu*.so found), enable invariant mode as a fallback
|
||||
if ! ldconfig -p 2>/dev/null | grep -qi 'libicu'; then
|
||||
export DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=1
|
||||
echo "NOTE: Running .NET in globalization invariant mode (ICU not found)"
|
||||
fi
|
||||
|
||||
dotnet --info
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('SCA (NuGet vulnerabilities + OWASP)') {
|
||||
agent any
|
||||
steps {
|
||||
sh '''
|
||||
set -euo pipefail
|
||||
export PATH="$HOME/.dotnet:$PATH"
|
||||
|
||||
echo "=== NuGet vulnerability audit ==="
|
||||
dotnet restore
|
||||
dotnet list package --vulnerable || true
|
||||
|
||||
echo "=== OWASP Dependency-Check (no Docker) ==="
|
||||
rm -f depcheck.zip || true
|
||||
rm -rf dependency-check || true
|
||||
mkdir -p depcheck
|
||||
|
||||
API="https://api.github.com/repos/jeremylong/DependencyCheck/releases/latest"
|
||||
|
||||
# Resolve the correct asset URL (ends with -release.zip)
|
||||
echo "Resolving Dependency-Check latest asset URL from GitHub API..."
|
||||
ASSET_URL="$(curl -fsSL "$API" \
|
||||
| jq -r '.assets[]?.browser_download_url | select(test("release\\\\.zip$"))' \
|
||||
| head -n1 || true)"
|
||||
|
||||
# Fallback from tag_name if assets listing is throttled
|
||||
if [ -z "${ASSET_URL:-}" ]; then
|
||||
TAG="$(curl -fsSL "$API" | jq -r '.tag_name' || true)"
|
||||
if [ -n "${TAG:-}" ]; then
|
||||
VER="${TAG#v}"
|
||||
ASSET_URL="https://github.com/jeremylong/DependencyCheck/releases/download/${TAG}/dependency-check-${VER}-release.zip"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "${ASSET_URL:-}" ]; then
|
||||
echo "ERROR: Could not resolve Dependency-Check release asset URL."
|
||||
exit 9
|
||||
fi
|
||||
|
||||
echo "Downloading: $ASSET_URL"
|
||||
curl -fL --retry 3 --retry-all-errors -o depcheck.zip "$ASSET_URL"
|
||||
|
||||
# Validate and extract
|
||||
unzip -tq depcheck.zip || { echo "Downloaded file is not a valid ZIP"; exit 9; }
|
||||
mkdir -p dependency-check
|
||||
unzip -q depcheck.zip -d dependency-check
|
||||
|
||||
DC_BIN="$(echo dependency-check/dependency-check*/bin/dependency-check.sh)"
|
||||
if [ ! -x "$DC_BIN" ]; then
|
||||
echo "ERROR: dependency-check.sh not found under extracted folder"
|
||||
ls -la dependency-check || true
|
||||
exit 9
|
||||
fi
|
||||
|
||||
# Generate HTML and XML reports (note: use multiple -f flags)
|
||||
bash "$DC_BIN" \
|
||||
-f HTML -f XML \
|
||||
--project "AS400_API_DOTNET" \
|
||||
--scan "." \
|
||||
--out "depcheck" \
|
||||
--noupdate || true
|
||||
|
||||
echo "SCA reports generated in depcheck/"
|
||||
'''
|
||||
}
|
||||
post {
|
||||
always {
|
||||
archiveArtifacts artifacts: 'depcheck/**', allowEmptyArchive: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('SAST + Coverage (SonarQube + Tests)') {
|
||||
agent any
|
||||
steps {
|
||||
sh '''
|
||||
set -e
|
||||
export PATH="$HOME/.dotnet:$PATH"
|
||||
|
||||
# run tests with coverage (cobertura) + produce TRX results for JUnit
|
||||
dotnet test \
|
||||
--logger "trx;LogFileName=test_results.trx" \
|
||||
/p:CollectCoverage=true \
|
||||
/p:CoverletOutput=coverage/ \
|
||||
/p:CoverletOutputFormat=cobertura
|
||||
|
||||
mkdir -p coverage-report
|
||||
# copy the cobertura file (adjust path if your solution layout differs)
|
||||
COBERTURA_FILE=$(find . -type f -name "coverage.cobertura.xml" | head -n1 || true)
|
||||
[ -n "$COBERTURA_FILE" ] && cp "$COBERTURA_FILE" coverage-report/Cobertura.xml || true
|
||||
|
||||
# If SonarQube is configured, run scanner; otherwise skip gracefully.
|
||||
if [ -n "${SONARQUBE_ENV_NAME:-}" ]; then
|
||||
echo "SonarQube env variable detected: $SONARQUBE_ENV_NAME"
|
||||
else
|
||||
echo "SonarQube not configured; skipping Sonar scan."
|
||||
exit 0
|
||||
fi
|
||||
'''
|
||||
}
|
||||
post {
|
||||
always {
|
||||
// Publish TRX results (built-in)
|
||||
junit '**/TestResults/**/*.trx'
|
||||
// Archive coverage XML so you can inspect it
|
||||
archiveArtifacts artifacts: 'coverage-report/**', allowEmptyArchive: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build Artifact') {
|
||||
agent any
|
||||
steps {
|
||||
sh '''
|
||||
set -e
|
||||
export PATH="$HOME/.dotnet:$PATH"
|
||||
dotnet publish -c Release -o out
|
||||
ls -la out
|
||||
'''
|
||||
archiveArtifacts artifacts: 'out/**', fingerprint: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,230 +0,0 @@
|
||||
pipeline {
|
||||
agent any
|
||||
|
||||
options {
|
||||
ansiColor('xterm')
|
||||
timestamps()
|
||||
}
|
||||
|
||||
environment {
|
||||
// ถ้าใช้ local bare repo
|
||||
GIT_URL = 'file:///repos/AS400API.git'
|
||||
|
||||
// Path ติดตั้ง dotnet ชั่วคราวใน pipeline
|
||||
DOTNET_ROOT = "${WORKSPACE}/.dotnet"
|
||||
PATH = "${DOTNET_ROOT}:${PATH}"
|
||||
|
||||
// Dependency-Check cache
|
||||
DC_DATA = "${JENKINS_HOME}/.dc-cache"
|
||||
|
||||
// SonarQube
|
||||
SONARQUBE_INSTANCE = 'SonarQube'
|
||||
SONAR_PROJECT_KEY = 'AS400API'
|
||||
}
|
||||
|
||||
stages {
|
||||
|
||||
|
||||
|
||||
|
||||
stage('Checkout') {
|
||||
steps {
|
||||
checkout([$class: 'GitSCM',
|
||||
branches: [[name: '*/main']],
|
||||
userRemoteConfigs: [[url: "${GIT_URL}"]]
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
stage('Install prerequisites') {
|
||||
steps {
|
||||
sh '''
|
||||
set -euo pipefail
|
||||
if command -v apt-get >/dev/null 2>&1; then
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
apt-get update
|
||||
apt-get install -y --no-install-recommends \
|
||||
ca-certificates curl unzip jq git openjdk-21-jre-headless
|
||||
|
||||
# --- Install ICU runtime (Debian uses versioned package names) ---
|
||||
if ! ldconfig -p | grep -qi libicu; then
|
||||
PKG="$(apt-cache search '^libicu[0-9]+$' | awk '{print $1}' | head -n1 || true)"
|
||||
if [ -n "$PKG" ]; then
|
||||
echo "Installing ICU package: ${PKG}"
|
||||
apt-get install -y --no-install-recommends "${PKG}"
|
||||
else
|
||||
echo "Falling back to libicu-dev..."
|
||||
apt-get install -y --no-install-recommends libicu-dev
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Install .NET SDK locally for the build user
|
||||
mkdir -p "${WORKSPACE}/.dotnet"
|
||||
curl -fsSL https://dot.net/v1/dotnet-install.sh -o dotnet-install.sh
|
||||
bash dotnet-install.sh --channel 9.0 --install-dir "${WORKSPACE}/.dotnet"
|
||||
bash dotnet-install.sh --channel 8.0 --install-dir "${WORKSPACE}/.dotnet"
|
||||
|
||||
export PATH="${WORKSPACE}/.dotnet:${PATH}"
|
||||
dotnet --info
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('SCA (NuGet + OWASP)') {
|
||||
steps {
|
||||
sh '''
|
||||
set -euo pipefail
|
||||
echo "=== NuGet vulnerability audit ==="
|
||||
dotnet restore
|
||||
dotnet list package --vulnerable || true
|
||||
|
||||
echo "=== OWASP Dependency-Check ==="
|
||||
rm -rf depcheck dependency-check
|
||||
mkdir -p depcheck
|
||||
|
||||
API="https://api.github.com/repos/jeremylong/DependencyCheck/releases/latest"
|
||||
echo "Resolving latest Dependency-Check..."
|
||||
ASSET_URL=$(curl -fsSL "$API" | jq -r '.assets[]?.browser_download_url | select(test("release\\\\.zip$"))' | head -n1)
|
||||
echo "Downloading: $ASSET_URL"
|
||||
curl -fL --retry 3 --retry-all-errors -o depcheck.zip "$ASSET_URL"
|
||||
unzip -oq depcheck.zip -d dependency-check
|
||||
|
||||
DC_BIN="dependency-check/dependency-check/bin/dependency-check.sh"
|
||||
bash "$DC_BIN" --data "${DC_DATA}" --updateonly || true
|
||||
bash "$DC_BIN" -f HTML -f XML \
|
||||
--project "AS400API" \
|
||||
--scan . \
|
||||
--out depcheck \
|
||||
--data "${DC_DATA}" \
|
||||
--noupdate || true \
|
||||
--disableAssembly
|
||||
'''
|
||||
}
|
||||
post {
|
||||
always {
|
||||
archiveArtifacts artifacts: 'depcheck/**', allowEmptyArchive: true
|
||||
script {
|
||||
try {
|
||||
publishHTML(target: [
|
||||
reportName: 'OWASP Dependency-Check',
|
||||
reportDir: 'depcheck',
|
||||
reportFiles: 'dependency-check-report.html',
|
||||
keepAll: true,
|
||||
alwaysLinkToLastBuild: true,
|
||||
allowMissing: true
|
||||
])
|
||||
} catch (Throwable e) {
|
||||
echo "Skipping HTML report publish: ${e.getClass().getSimpleName()}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('SAST with SonarQube') {
|
||||
steps {
|
||||
withSonarQubeEnv('SonarQube') {
|
||||
sh '''
|
||||
set -euo pipefail
|
||||
echo "=== SAST with SonarQube ==="
|
||||
|
||||
# Ensure scanner is available and PATH includes global tools
|
||||
dotnet tool update --global dotnet-sonarscanner
|
||||
export PATH="$PATH:/root/.dotnet/tools"
|
||||
|
||||
# Optional: show Java & reachability
|
||||
java -version || true
|
||||
# ไม่ต้องใช้ curl เพราะ API นี้ติดเรื่องสิทธิ์
|
||||
# curl -sf "$SONAR_HOST_URL/api/system/health" || { echo "Cannot reach SonarQube at $SONAR_HOST_URL"; exit 1; }
|
||||
|
||||
# BEGIN (use injected URL/token; add verbose for diagnostics)
|
||||
dotnet sonarscanner begin \
|
||||
/k:AS400API \
|
||||
/d:sonar.verbose=true \
|
||||
/d:sonar.exclusions=**/bin/**,**/obj/** \
|
||||
/d:sonar.test.exclusions=**/*.Tests/** \
|
||||
/d:sonar.cs.opencover.reportsPaths=**/coverage.opencover.xml
|
||||
|
||||
# BUILD & TEST (produce OpenCover report)
|
||||
dotnet restore
|
||||
dotnet build -c Release
|
||||
dotnet test AS400API.Tests/AS400API.Tests.csproj -c Release \
|
||||
/p:CollectCoverage=true \
|
||||
/p:CoverletOutput=./TestResults/coverage/ \
|
||||
/p:CoverletOutputFormat=opencover
|
||||
|
||||
# END (no login flag; uses env from withSonarQubeEnv)
|
||||
# dotnet sonarscanner end /d:sonar.verbose=true
|
||||
dotnet sonarscanner end
|
||||
'''
|
||||
}
|
||||
|
||||
// Optionally wait for the Quality Gate (only if 'end' succeeds)
|
||||
// waitForQualityGate abortPipeline: true
|
||||
}
|
||||
}
|
||||
stage('Test + Coverage') {
|
||||
steps {
|
||||
sh '''
|
||||
set -euo pipefail
|
||||
dotnet build -c Debug
|
||||
dotnet test \
|
||||
--logger "junit;LogFileName=test-results.xml" \
|
||||
--results-directory "TestResults" \
|
||||
/p:CollectCoverage=true \
|
||||
/p:CoverletOutput=coverage/ \
|
||||
/p:CoverletOutputFormat=cobertura
|
||||
|
||||
mkdir -p coverage-report
|
||||
COB=$(find . -type f -name "coverage.cobertura.xml" | head -n1 || true)
|
||||
if [ -n "$COB" ]; then
|
||||
cp "$COB" coverage-report/Cobertura.xml
|
||||
fi
|
||||
'''
|
||||
}
|
||||
post {
|
||||
always {
|
||||
junit allowEmptyResults: false, testResults: '**/TestResults/**/*.xml'
|
||||
archiveArtifacts artifacts: 'coverage-report/**', allowEmptyArchive: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build') {
|
||||
steps {
|
||||
sh '''
|
||||
set -euo pipefail
|
||||
# build only the app project
|
||||
dotnet restore AS400API.csproj
|
||||
dotnet build AS400API.csproj -c Release -warnaserror:false -p:TreatWarningsAsErrors=false
|
||||
|
||||
# publish the app project (not the solution)
|
||||
dotnet publish AS400API.csproj -c Release -o out --no-build
|
||||
'''
|
||||
}
|
||||
post {
|
||||
success {
|
||||
archiveArtifacts artifacts: 'out/**', allowEmptyArchive: false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Quality Gate') {
|
||||
steps {
|
||||
timeout(time: 30, unit: 'MINUTES') {
|
||||
waitForQualityGate abortPipeline: true
|
||||
}
|
||||
}
|
||||
}
|
||||
} // end stages
|
||||
|
||||
post {
|
||||
always {
|
||||
echo "Pipeline finished (status: ${currentBuild.currentResult})"
|
||||
}
|
||||
}
|
||||
} // end pipeline
|
||||
@ -1,197 +0,0 @@
|
||||
pipeline {
|
||||
agent {
|
||||
docker {
|
||||
image 'mcr.microsoft.com/dotnet/sdk:9.0'
|
||||
args '-u root:root'
|
||||
// label "${params.AGENT_LABEL?.trim() ?: ''}"
|
||||
}
|
||||
}
|
||||
|
||||
options {
|
||||
ansiColor('xterm')
|
||||
timestamps()
|
||||
buildDiscarder(logRotator(numToKeepStr: '15'))
|
||||
disableConcurrentBuilds()
|
||||
skipDefaultCheckout(true)
|
||||
}
|
||||
|
||||
parameters {
|
||||
string(name: 'GIT_URL', defaultValue: 'file:///repos/AS400API.git', description: 'Git repository URL to clone')
|
||||
string(name: 'GIT_BRANCH', defaultValue: 'main', description: 'Branch or ref to build')
|
||||
// string(name: 'AGENT_LABEL', defaultValue: '', description: 'Optional Jenkins agent label with Docker CLI access (leave blank for default node)')
|
||||
}
|
||||
|
||||
environment {
|
||||
DOTNET_CLI_TELEMETRY_OPTOUT = '1'
|
||||
DOTNET_SKIP_FIRST_TIME_EXPERIENCE = '1'
|
||||
DOTNET_NOLOGO = '1'
|
||||
BUILD_CONFIGURATION = 'Release'
|
||||
TEST_RESULTS_DIR = 'TestResults'
|
||||
COVERAGE_DIR = 'TestResults/Coverage'
|
||||
COVERAGE_FILE = 'TestResults/Coverage/coverage.opencover.xml'
|
||||
PUBLISH_DIR = 'publish/Release'
|
||||
SONAR_PROJECT_KEY = 'AS400API'
|
||||
SONAR_PROJECT_NAME = 'AS400API'
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Checkout') {
|
||||
steps {
|
||||
// Fetch the requested branch from the configured Git URL.
|
||||
script {
|
||||
if (!params.GIT_URL?.trim()) {
|
||||
error 'GIT_URL parameter must not be empty.'
|
||||
}
|
||||
String branchSpec = params.GIT_BRANCH?.trim() ?: 'main'
|
||||
if (!branchSpec.startsWith('*/')) {
|
||||
branchSpec = "*/${branchSpec}"
|
||||
}
|
||||
checkout([
|
||||
$class : 'GitSCM',
|
||||
branches : [[name: branchSpec]],
|
||||
doGenerateSubmoduleConfigurations: false,
|
||||
extensions : [[$class: 'CloneOption', depth: 0, noTags: false, shallow: false]],
|
||||
userRemoteConfigs : [[url: params.GIT_URL.trim()]]
|
||||
])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('.NET SDK Info') {
|
||||
steps {
|
||||
// Sanity check the SDK and install required global tools (Java for Sonar + dotnet-sonarscanner).
|
||||
sh '''#!/bin/bash -e
|
||||
apt-get update
|
||||
apt-get install -y --no-install-recommends openjdk-17-jre
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
echo '### dotnet --info'
|
||||
dotnet --info
|
||||
|
||||
echo '### Install/Update dotnet-sonarscanner'
|
||||
dotnet tool install --global dotnet-sonarscanner || dotnet tool update --global dotnet-sonarscanner
|
||||
'''
|
||||
script {
|
||||
if (!env.PATH.contains('/root/.dotnet/tools')) {
|
||||
env.PATH = "${env.PATH}:/root/.dotnet/tools"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Restore') {
|
||||
steps {
|
||||
// Restore solution dependencies.
|
||||
sh '''#!/bin/bash -e
|
||||
dotnet restore AS400API.sln
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build') {
|
||||
steps {
|
||||
// Build the solution in Release mode without failing on warnings.
|
||||
sh '''#!/bin/bash -e
|
||||
dotnet build AS400API.sln --configuration "${BUILD_CONFIGURATION}" --no-restore
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('Test & Coverage') {
|
||||
steps {
|
||||
// Execute tests once for fast feedback and capture TRX + OpenCover reports.
|
||||
sh '''#!/bin/bash -e
|
||||
rm -rf "${TEST_RESULTS_DIR}"
|
||||
mkdir -p "${COVERAGE_DIR}"
|
||||
dotnet test AS400API.sln --configuration "${BUILD_CONFIGURATION}" --no-build \
|
||||
/p:CollectCoverage=true \
|
||||
/p:CoverletOutputFormat=opencover \
|
||||
/p:CoverletOutput="${COVERAGE_DIR}/" \
|
||||
--logger "trx;LogFileName=test-results.trx" \
|
||||
--logger "junit;LogFileName=test-results.xml"
|
||||
'''
|
||||
junit testResults: "${TEST_RESULTS_DIR}/**/*.xml", allowEmptyResults: false
|
||||
publishCoverage adapters: [opencoverAdapter("${COVERAGE_FILE}")], sourceFileResolver: sourceFiles('STORE_LAST_BUILD'), failNoReports: true
|
||||
}
|
||||
}
|
||||
|
||||
stage('SonarQube: Begin') {
|
||||
steps {
|
||||
// Kick off Sonar analysis with project metadata and coverage location.
|
||||
script {
|
||||
env.SONAR_PROJECT_VERSION = env.BUILD_NUMBER ?: '0.0.0'
|
||||
}
|
||||
withSonarQubeEnv('sonarqube') {
|
||||
sh '''#!/bin/bash -e
|
||||
dotnet sonarscanner begin \
|
||||
/k:"${SONAR_PROJECT_KEY}" \
|
||||
/n:"${SONAR_PROJECT_NAME}" \
|
||||
/v:"${SONAR_PROJECT_VERSION}" \
|
||||
/d:sonar.host.url="${SONAR_HOST_URL}" \
|
||||
/d:sonar.login="${SONAR_AUTH_TOKEN}" \
|
||||
/d:sonar.cs.opencover.reportsPaths="${COVERAGE_FILE}"
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Rebuild for Sonar') {
|
||||
steps {
|
||||
// Run a rebuild under the Sonar scanner context so analysis picks up compilation data.
|
||||
sh '''#!/bin/bash -e
|
||||
dotnet build AS400API.sln --configuration "${BUILD_CONFIGURATION}" --no-restore --no-incremental
|
||||
'''
|
||||
}
|
||||
}
|
||||
|
||||
stage('SonarQube: End') {
|
||||
steps {
|
||||
// Close the Sonar analysis and push data to the server.
|
||||
withSonarQubeEnv('sonarqube') {
|
||||
sh '''#!/bin/bash -e
|
||||
dotnet sonarscanner end /d:sonar.login="${SONAR_AUTH_TOKEN}"
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Quality Gate') {
|
||||
steps {
|
||||
// Wait for the Quality Gate result and fail fast on non-green outcomes.
|
||||
timeout(time: 15, unit: 'MINUTES') {
|
||||
script {
|
||||
def qualityGate = waitForQualityGate()
|
||||
if (qualityGate.status != 'OK') {
|
||||
error "SonarQube Quality Gate failed: ${qualityGate.status}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Archive') {
|
||||
steps {
|
||||
// Publish Release-ready binaries and test artifacts for downstream consumption.
|
||||
sh '''#!/bin/bash -e
|
||||
rm -rf "${PUBLISH_DIR}"
|
||||
dotnet publish AS400API.sln --configuration "${BUILD_CONFIGURATION}" --no-restore --output "${PUBLISH_DIR}"
|
||||
'''
|
||||
archiveArtifacts artifacts: "${PUBLISH_DIR}/**", fingerprint: true
|
||||
archiveArtifacts artifacts: "${TEST_RESULTS_DIR}/**/*.trx", allowEmptyArchive: true
|
||||
archiveArtifacts artifacts: "${COVERAGE_FILE}", allowEmptyArchive: true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
always {
|
||||
script {
|
||||
try {
|
||||
deleteDir()
|
||||
} catch (org.jenkinsci.plugins.workflow.steps.MissingContextVariableException ignore) {
|
||||
echo 'Workspace cleanup skipped because no workspace was provisioned.'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -8,7 +8,7 @@ using Microsoft.IdentityModel.Tokens;
|
||||
using Microsoft.OpenApi.Models;
|
||||
using Serilog;
|
||||
|
||||
|
||||
// var builder = WebApplication.CreateBuilder(args);
|
||||
var builderArgs = args ?? Array.Empty<string>();
|
||||
var builder = WebApplication.CreateBuilder(builderArgs);
|
||||
|
||||
@ -126,7 +126,7 @@ api.MapAuthEndpoints();
|
||||
api.MapAs400Endpoints();
|
||||
api.MapORDUAGEndpoints();
|
||||
|
||||
await app.RunAsync();
|
||||
app.Run();
|
||||
|
||||
|
||||
// env DOTNET_ENVIRONMENT=Development dotnet run
|
||||
|
||||
@ -38,13 +38,6 @@ docker compose up --build
|
||||
- Override at runtime with environment variables, e.g. `Serilog__WriteTo__0__Args__path=/var/log/as400/api-.log`.
|
||||
- Request logging middleware is enabled; application-specific events (query counts, failures, etc.) are captured with structured properties to aid analysis.
|
||||
|
||||
## Jenkins CI notes
|
||||
- The repo includes a declarative Jenkinsfile that builds on the `mcr.microsoft.com/dotnet/sdk:9.0` container image and expects Jenkins parameters for `GIT_REPO_URL`, `GIT_CREDENTIALS_ID`, `SONARQUBE_SERVER`, and `SONAR_TOKEN_ID`. Create the credentials in **Manage Jenkins › Credentials** before running the job.
|
||||
- Set `AGENT_LABEL` (optional) to a Jenkins agent that has the Docker CLI available so the pipeline can launch containers; leave it blank only if the default node already provides Docker.
|
||||
- Update the Sonar project key or organization by editing `SONAR_PROJECT_KEY` / `SONAR_ORG` in the Jenkins parameter defaults or overriding them per-run; the pipeline passes these values to `dotnet-sonarscanner`.
|
||||
- The pipeline publishes unit-test results, OpenCover XML, and HTML coverage reports; open the “Code Coverage” HTML report in the Jenkins build sidebar or download the archived artifacts `artifacts/AS400API-<build>-<commit>/reports/coverage-html/index.html`.
|
||||
- SCA results (`security-reports/nuget-vulnerabilities.txt` and optional Dependency-Check HTML) and application logs from `Logs/` are archived automatically so you can review findings without re-running the build.
|
||||
|
||||
## SonarQube analysis
|
||||
- Install or provision a SonarQube/SonarCloud server and generate a project token.
|
||||
- Set environment variables (`SONAR_HOST_URL`, `SONAR_TOKEN`, optionally `SONAR_PROJECT_KEY`, `SONAR_PROJECT_NAME`; defaults are `as400api` / `AS400API`, plus `SONAR_ORGANIZATION` for SonarCloud).
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
export "SONAR_TOKEN"="sqa_a38081f27f9e32376feed2e653b48ed5a0723565"
|
||||
export "SONAR_TOKEN"="squ_ef2f0a2f495a32c33ed81afb16f3cdc98bf1336a"
|
||||
|
||||
if [[ -z "${SONAR_HOST_URL:-}" ]]; then
|
||||
echo "SONAR_HOST_URL environment variable is required" >&2
|
||||
|
||||
Loading…
Reference in New Issue
Block a user