microsoft / PSRule
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 11% duplication:
    • 18,696 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 2,152 duplicated lines
  • 230 duplicates
system11% (2,152 lines)
Duplication per Extension
psm151% (1,149 lines)
cs4% (738 lines)
ps1xml45% (171 lines)
ps111% (56 lines)
psd127% (38 lines)
Duplication per Component (primary)
src/PSRule50% (1,303 lines)
src/PSRule/Pipeline9% (401 lines)
src/PSRule/Runtime4% (123 lines)
src/PSRule/Commands13% (82 lines)
src/PSRule.Benchmark15% (72 lines)
src/PSRule/Definitions3% (64 lines)
scripts21% (28 lines)
src/PSRule/Common<1% (15 lines)
src/PSRule/Configuration1% (15 lines)
src/PSRule/Host2% (14 lines)
src/PSRule/en-AU100% (9 lines)
src/PSRule/en-GB100% (9 lines)
src/PSRule/en-US100% (9 lines)
src/PSRule/Parser<1% (8 lines)
ROOT0% (0 lines)
overrides0% (0 lines)
src/PSRule.Badges0% (0 lines)
src/PSRule.Badges/Properties0% (0 lines)
src/PSRule.BuildTool0% (0 lines)
src/PSRule/Annotations0% (0 lines)
src/PSRule/Badges0% (0 lines)
src/PSRule/Data0% (0 lines)
src/PSRule/Properties0% (0 lines)
src/PSRule/Rules0% (0 lines)
Multiple Classifications0% (0 lines)
Longest Duplicates
The list of 20 longest duplicates.
See data for all 230 duplicates...
Size#FoldersFilesLinesCode
131 x 2 src/PSRule
src/PSRule
PSRule.psm1
PSRule.psm1
1384:1550 (6%)
2086:2252 (6%)
view
69 x 2 src/PSRule
src/PSRule
PSRule.psm1
PSRule.psm1
1122:1209 (3%)
2086:2173 (3%)
view
69 x 2 src/PSRule
src/PSRule
PSRule.psm1
PSRule.psm1
1122:1209 (3%)
1384:1471 (3%)
view
51 x 2 src/PSRule
src/PSRule
PSRule.psm1
PSRule.psm1
1219:1282 (2%)
2183:2246 (2%)
view
51 x 2 src/PSRule
src/PSRule
PSRule.psm1
PSRule.psm1
1219:1282 (2%)
1481:1544 (2%)
view
35 x 2 src/PSRule
src/PSRule
PSRule.psm1
PSRule.psm1
161:196 (1%)
593:628 (1%)
view
35 x 2 src/PSRule
src/PSRule
PSRule.psm1
PSRule.psm1
161:196 (1%)
308:343 (1%)
view
35 x 2 src/PSRule
src/PSRule
PSRule.psm1
PSRule.psm1
99:141 (1%)
527:569 (1%)
view
35 x 2 src/PSRule
src/PSRule
PSRule.psm1
PSRule.psm1
308:343 (1%)
593:628 (1%)
view
30 x 2 src/PSRule/Pipeline
src/PSRule/Pipeline
GetTargetPipeline.cs
InvokeRulePipeline.cs
67:119 (42%)
101:153 (14%)
view
27 x 2 src/PSRule
src/PSRule
PSRule.psm1
PSRule.psm1
106:138 (1%)
263:295 (1%)
view
27 x 2 src/PSRule
src/PSRule
PSRule.psm1
PSRule.psm1
263:295 (1%)
534:566 (1%)
view
27 x 2 src/PSRule
src/PSRule
PSRule.psm1
PSRule.psm1
419:445 (1%)
602:628 (1%)
view
27 x 2 src/PSRule
src/PSRule
PSRule.psm1
PSRule.psm1
170:196 (1%)
419:445 (1%)
view
27 x 2 src/PSRule
src/PSRule
PSRule.psm1
PSRule.psm1
317:343 (1%)
419:445 (1%)
view
26 x 2 src/PSRule
src/PSRule
PSRule.Format.ps1xml
PSRule.Format.ps1xml
393:422 (6%)
442:471 (6%)
view
23 x 2 src/PSRule
src/PSRule
PSRule.psm1
PSRule.psm1
733:756 (1%)
1065:1089 (1%)
view
21 x 2 src/PSRule
src/PSRule
PSRule.psm1
PSRule.psm1
839:859 (<1%)
948:968 (<1%)
view
20 x 2 src/PSRule
src/PSRule
PSRule.psm1
PSRule.psm1
737:756 (<1%)
949:968 (<1%)
view
20 x 2 src/PSRule
src/PSRule
PSRule.psm1
PSRule.psm1
840:859 (<1%)
1069:1089 (<1%)
view
Duplicated Units
The list of top 14 duplicated units.
See data for all 14 unit duplicates...
Size#FoldersFilesLinesCode
52 x 2 src/PSRule/Pipeline
src/PSRule/Pipeline
GetTargetPipeline.cs
InvokeRulePipeline.cs
67:120 
101:154 
view
14 x 2 src/PSRule/Pipeline
src/PSRule/Pipeline
ExportBaselinePipelineBuilder.cs
GetBaselinePipelineBuilder.cs
42:57 
40:55 
view
13 x 2 src/PSRule/Pipeline/Formatters
src/PSRule/Pipeline/Formatters
ClientFormatter.cs
PlainFormatter.cs
39:53 
18:32 
view
13 x 2 src/PSRule/Pipeline
src/PSRule/Pipeline
GetTargetPipeline.cs
InvokeRulePipeline.cs
45:60 
34:49 
view
13 x 2 src/PSRule/Runtime
src/PSRule/Runtime/ObjectPath
ObjectHelper.cs
PathExpressionBuilder.cs
36:49 
487:500 
view
10 x 2 src/PSRule/Commands
src/PSRule/Definitions/Expressions
InvokeRuleBlockCommand.cs
LanguageExpressions.cs
110:121 
238:249 
view
10 x 2 src/PSRule/Configuration
src/PSRule/Pipeline
BindingOption.cs
OptionContext.cs
57:67 
230:240 
view
10 x 2 src/PSRule/Definitions/Baselines
src/PSRule/Definitions/Conventions
Baseline.cs
BaseConvention.cs
61:72 
20:31 
view
10 x 2 src/PSRule/Definitions/Expressions
src/PSRule/Commands
LanguageExpressions.cs
InvokeRuleBlockCommand.cs
238:249 
110:121 
view
10 x 2 src/PSRule/Pipeline/Formatters
src/PSRule/Pipeline/Formatters
AzurePipelinesFormatter.cs
GitHubActionsFormatter.cs
36:47 
38:49 
view
10 x 2 src/PSRule/Runtime
src/PSRule/Runtime/ObjectPath
ObjectHelper.cs
PathExpressionBuilder.cs
51:63 
514:526 
view
9 x 2 src/PSRule.Benchmark
src/PSRule.Benchmark
PSRule.cs
PSRule.cs
277:286 
289:298 
view
6 x 2 src/PSRule/Pipeline/Output
src/PSRule/Pipeline
HostPipelineWriter.cs
PipelineLogger.cs
48:55 
185:192 
view
6 x 2 src/PSRule/Pipeline
src/PSRule/Pipeline/Output
PipelineLogger.cs
HostPipelineWriter.cs
185:192 
48:55 
view