kubernetes / ingress-gce
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
  • 17% duplication:
    • 28,190 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 4,893 duplicated lines
  • 927 duplicates
system17% (4,893 lines)
Duplication per Extension
go17% (4,893 lines)
Duplication per Component (primary)
pkg/apis69% (2,217 lines)
pkg/backendconfig44% (457 lines)
pkg/serviceattachment51% (430 lines)
pkg/experimental20% (341 lines)
pkg/composite8% (337 lines)
pkg/svcneg44% (226 lines)
pkg/frontendconfig44% (224 lines)
pkg/ingparams47% (220 lines)
pkg/fuzz6% (116 lines)
pkg/neg3% (109 lines)
pkg/loadbalancers4% (68 lines)
cmd/workload-controller56% (31 lines)
cmd/glbc6% (31 lines)
pkg/utils1% (26 lines)
pkg/metrics3% (18 lines)
pkg/backends1% (18 lines)
cmd/404-server-with-metrics6% (12 lines)
pkg/firewalls1% (6 lines)
pkg/controller<1% (6 lines)
cmd/echo0% (0 lines)
cmd/workload-daemon0% (0 lines)
cmd/404-server0% (0 lines)
cmd/fuzzer0% (0 lines)
cmd/e2e-test0% (0 lines)
pkg/ratelimit0% (0 lines)
pkg/storage0% (0 lines)
pkg/instances0% (0 lines)
pkg/context0% (0 lines)
pkg/flags0% (0 lines)
pkg/version0% (0 lines)
pkg/annotations0% (0 lines)
pkg/common0% (0 lines)
pkg/crd0% (0 lines)
pkg/cmconfig0% (0 lines)
pkg/events0% (0 lines)
pkg/translator0% (0 lines)
pkg/l4lb0% (0 lines)
pkg/psc0% (0 lines)
pkg/sync0% (0 lines)
pkg/klog0% (0 lines)
pkg/healthchecks0% (0 lines)

Duplication Between Components (50+ lines)

G pkg/apis pkg/apis pkg/experimental pkg/experimental pkg/apis--pkg/experimental 666 pkg/frontendconfig pkg/frontendconfig pkg/experimental--pkg/frontendconfig 342 pkg/svcneg pkg/svcneg pkg/experimental--pkg/svcneg 342 pkg/ingparams pkg/ingparams pkg/experimental--pkg/ingparams 330 pkg/serviceattachment pkg/serviceattachment pkg/experimental--pkg/serviceattachment 373 pkg/frontendconfig--pkg/svcneg 448 pkg/frontendconfig--pkg/ingparams 436 pkg/frontendconfig--pkg/serviceattachment 417 pkg/ingparams--pkg/svcneg 440 pkg/ingparams--pkg/serviceattachment 399 pkg/backendconfig pkg/backendconfig pkg/backendconfig--pkg/experimental 373 pkg/backendconfig--pkg/frontendconfig 381 pkg/backendconfig--pkg/svcneg 381 pkg/backendconfig--pkg/ingparams 363 pkg/backendconfig--pkg/serviceattachment 426 pkg/serviceattachment--pkg/svcneg 417 cmd/glbc cmd/glbc cmd/workload-controller cmd/workload-controller cmd/glbc--cmd/workload-controller 62

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 927 duplicates...
Size#FoldersFilesLinesCode
100 x 2 pkg/apis/serviceattachment/v1
pkg/apis/serviceattachment/v1beta1
zz_generated.deepcopy.go
zz_generated.deepcopy.go
28:183 (100%)
28:183 (100%)
view
96 x 2 pkg/apis/backendconfig/v1
pkg/apis/backendconfig/v1beta1
zz_generated.deepcopy.go
zz_generated.deepcopy.go
262:407 (30%)
168:313 (43%)
view
76 x 2 pkg/serviceattachment/cl...ormers/externalversions
pkg/svcneg/client/informers/externalversions
factory.go
factory.go
36:173 (96%)
36:173 (96%)
view
76 x 2 pkg/backendconfig/client...ormers/externalversions
pkg/frontendconfig/clien...ormers/externalversions
factory.go
factory.go
36:173 (96%)
36:173 (96%)
view
76 x 2 pkg/experimental/workloa...ormers/externalversions
pkg/serviceattachment/cl...ormers/externalversions
factory.go
factory.go
36:173 (96%)
36:173 (96%)
view
76 x 2 pkg/experimental/workloa...ormers/externalversions
pkg/ingparams/client/informers/externalversions
factory.go
factory.go
36:173 (96%)
36:173 (96%)
view
76 x 2 pkg/ingparams/client/informers/externalversions
pkg/svcneg/client/informers/externalversions
factory.go
factory.go
36:173 (96%)
36:173 (96%)
view
76 x 2 pkg/frontendconfig/clien...ormers/externalversions
pkg/serviceattachment/cl...ormers/externalversions
factory.go
factory.go
36:173 (96%)
36:173 (96%)
view
76 x 2 pkg/experimental/workloa...ormers/externalversions
pkg/svcneg/client/informers/externalversions
factory.go
factory.go
36:173 (96%)
36:173 (96%)
view
76 x 2 pkg/backendconfig/client...ormers/externalversions
pkg/svcneg/client/informers/externalversions
factory.go
factory.go
36:173 (96%)
36:173 (96%)
view
76 x 2 pkg/ingparams/client/informers/externalversions
pkg/serviceattachment/cl...ormers/externalversions
factory.go
factory.go
36:173 (96%)
36:173 (96%)
view
76 x 2 pkg/backendconfig/client...ormers/externalversions
pkg/serviceattachment/cl...ormers/externalversions
factory.go
factory.go
36:173 (96%)
36:173 (96%)
view
76 x 2 pkg/frontendconfig/clien...ormers/externalversions
pkg/ingparams/client/informers/externalversions
factory.go
factory.go
36:173 (96%)
36:173 (96%)
view
76 x 2 pkg/experimental/workloa...ormers/externalversions
pkg/frontendconfig/clien...ormers/externalversions
factory.go
factory.go
36:173 (96%)
36:173 (96%)
view
76 x 2 pkg/backendconfig/client...ormers/externalversions
pkg/experimental/workloa...ormers/externalversions
factory.go
factory.go
36:173 (96%)
36:173 (96%)
view
76 x 2 pkg/frontendconfig/clien...ormers/externalversions
pkg/svcneg/client/informers/externalversions
factory.go
factory.go
36:173 (96%)
36:173 (96%)
view
76 x 2 pkg/backendconfig/client...ormers/externalversions
pkg/ingparams/client/informers/externalversions
factory.go
factory.go
36:173 (96%)
36:173 (96%)
view
71 x 2 pkg/apis/backendconfig/v1
pkg/apis/backendconfig/v1beta1
zz_generated.deepcopy.go
zz_generated.deepcopy.go
28:129 (22%)
28:129 (32%)
view
56 x 2 pkg/apis/backendconfig/v1
pkg/apis/backendconfig/v1beta1
zz_generated.openapi.go
zz_generated.openapi.go
287:342 (9%)
173:228 (14%)
view
43 x 2 pkg/apis/backendconfig/v1
pkg/apis/backendconfig/v1beta1
zz_generated.openapi.go
zz_generated.openapi.go
395:437 (7%)
281:323 (11%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 79 unit duplicates...
Size#FoldersFilesLinesCode
60 x 2 pkg/apis/backendconfig/v1beta1
pkg/apis/backendconfig/v1
zz_generated.openapi.go
zz_generated.openapi.go
172:232 
286:346 
view
42 x 2 pkg/apis/ingparams/v1beta1
pkg/apis/serviceattachment/v1beta1
zz_generated.openapi.go
zz_generated.openapi.go
37:79 
132:174 
view
41 x 5 pkg/experimental/apis/workload/v1alpha1
pkg/apis/backendconfig/v1beta1
pkg/apis/backendconfig/v1
pkg/apis/svcneg/v1beta1
pkg/apis/frontendconfig/v1beta1
zz_generated.openapi.go
zz_generated.openapi.go
zz_generated.openapi.go
zz_generated.openapi.go
zz_generated.openapi.go
124:165 
46:87 
50:91 
131:172 
38:79 
view
38 x 2 pkg/apis/backendconfig/v1beta1
pkg/apis/backendconfig/v1
zz_generated.deepcopy.go
zz_generated.deepcopy.go
245:283 
339:377 
view
33 x 3 pkg/apis/backendconfig/v1beta1
pkg/apis/backendconfig/v1
pkg/apis/svcneg/v1beta1
zz_generated.openapi.go
zz_generated.openapi.go
zz_generated.openapi.go
368:401 
537:570 
96:129 
view
25 x 2 pkg/apis/backendconfig/v1beta1
pkg/apis/backendconfig/v1
zz_generated.openapi.go
zz_generated.openapi.go
341:366 
456:481 
view
25 x 4 pkg/apis/backendconfig/v1
pkg/apis/backendconfig/v1
pkg/apis/serviceattachment/v1beta1
pkg/apis/serviceattachment/v1
zz_generated.openapi.go
zz_generated.openapi.go
zz_generated.openapi.go
zz_generated.openapi.go
483:508 
510:535 
40:65 
40:65 
view
24 x 2 pkg/apis/backendconfig/v1beta1
pkg/apis/backendconfig/v1
zz_generated.openapi.go
zz_generated.openapi.go
254:278 
368:392 
view
23 x 2 pkg/apis/backendconfig/v1beta1
pkg/apis/backendconfig/v1
zz_generated.openapi.go
zz_generated.openapi.go
424:447 
593:616 
view
21 x 2 pkg/apis/serviceattachment/v1beta1
pkg/apis/serviceattachment/v1
zz_generated.deepcopy.go
zz_generated.deepcopy.go
131:152 
131:152 
view
20 x 6 pkg/backendconfig/client/clientset/versioned/fake
pkg/svcneg/client/clientset/versioned/fake
pkg/ingparams/client/clientset/versioned/fake
pkg/experimental/workloa...lientset/versioned/fake
pkg/frontendconfig/client/clientset/versioned/fake
pkg/serviceattachment/cl...lientset/versioned/fake
clientset_generated.go
clientset_generated.go
clientset_generated.go
clientset_generated.go
clientset_generated.go
clientset_generated.go
38:60 
36:58 
36:58 
36:58 
36:58 
38:60 
view
19 x 3 pkg/svcneg/client/clientset/versioned
pkg/ingparams/client/clientset/versioned
pkg/frontendconfig/client/clientset/versioned
clientset.go
clientset.go
clientset.go
58:78 
58:78 
58:78 
view
19 x 3 pkg/apis/backendconfig/v1beta1
pkg/apis/backendconfig/v1
pkg/apis/ingparams/v1beta1
zz_generated.openapi.go
zz_generated.openapi.go
zz_generated.openapi.go
403:422 
572:591 
81:100 
view
18 x 2 pkg/apis/backendconfig/v1beta1
pkg/apis/backendconfig/v1
zz_generated.openapi.go
zz_generated.openapi.go
234:252 
155:173 
view
17 x 6 pkg/backendconfig/client...ormers/externalversions
pkg/svcneg/client/informers/externalversions
pkg/ingparams/client/informers/externalversions
pkg/experimental/workloa...ormers/externalversions
pkg/frontendconfig/clien...ormers/externalversions
pkg/serviceattachment/cl...ormers/externalversions
factory.go
factory.go
factory.go
factory.go
factory.go
factory.go
124:143 
124:143 
124:143 
124:143 
124:143 
124:143 
view
15 x 6 pkg/backendconfig/client...ormers/externalversions
pkg/svcneg/client/informers/externalversions
pkg/ingparams/client/informers/externalversions
pkg/experimental/workloa...ormers/externalversions
pkg/frontendconfig/clien...ormers/externalversions
pkg/serviceattachment/cl...ormers/externalversions
factory.go
factory.go
factory.go
factory.go
factory.go
factory.go
147:166 
147:166 
147:166 
147:166 
147:166 
147:166 
view
13 x 6 pkg/backendconfig/client...ormers/externalversions
pkg/svcneg/client/informers/externalversions
pkg/ingparams/client/informers/externalversions
pkg/experimental/workloa...ormers/externalversions
pkg/frontendconfig/clien...ormers/externalversions
pkg/serviceattachment/cl...ormers/externalversions
factory.go
factory.go
factory.go
factory.go
factory.go
factory.go
92:108 
92:108 
92:108 
92:108 
92:108 
92:108 
view
13 x 7 pkg/backendconfig/client...d/backendconfig/v1beta1
pkg/backendconfig/client.../typed/backendconfig/v1
pkg/svcneg/client/client...ed/typed/svcneg/v1beta1
pkg/experimental/workloa...typed/workload/v1alpha1
pkg/frontendconfig/clien.../frontendconfig/v1beta1
pkg/serviceattachment/cl...rviceattachment/v1beta1
pkg/serviceattachment/cl...ed/serviceattachment/v1
backendconfig.go
backendconfig.go
servicenetworkendpointgroup.go
workload.go
frontendconfig.go
serviceattachment.go
serviceattachment.go
150:163 
150:163 
167:180 
167:180 
150:163 
167:180 
167:180 
view
13 x 2 pkg/apis/backendconfig/v1beta1
pkg/apis/backendconfig/v1
zz_generated.deepcopy.go
zz_generated.deepcopy.go
182:195 
276:289 
view
13 x 2 pkg/apis/serviceattachment/v1beta1
pkg/apis/serviceattachment/v1
zz_generated.deepcopy.go
zz_generated.deepcopy.go
44:57 
44:57 
view