microsoft / o365-moodle
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:
    • 32,319 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 3,624 duplicated lines
  • 445 duplicates
system11% (3,624 lines)
Duplication per Extension
php11% (3,266 lines)
css11% (138 lines)
scss28% (110 lines)
mustache23% (70 lines)
js2% (40 lines)
Duplication per Component (primary)
local/o365/classes16% (2,463 lines)
local/o36517% (277 lines)
auth/oidc/classes10% (143 lines)
local/onenote/classes14% (128 lines)
filter/oembed/lang47% (76 lines)
repository/office3657% (63 lines)
filter/oembed/sass65% (56 lines)
filter/oembed16% (55 lines)
local/o365/db6% (53 lines)
mod/assign/submission6% (51 lines)
local/o365/sass24% (47 lines)
filter/oembed/templates31% (42 lines)
mod/assign/feedback4% (29 lines)
filter/oembed/classes3% (28 lines)
theme/boost_o365teams/templates17% (28 lines)
blocks/microsoft2% (19 lines)
theme/boost_o365teams/style2% (18 lines)
blocks/microsoft/db27% (15 lines)
auth/oidc2% (14 lines)
filter/oembed/amd1% (12 lines)
blocks/microsoft/sass7% (7 lines)
auth/oidc/db0% (0 lines)
auth/oidc/lang0% (0 lines)
auth/oidc/sass0% (0 lines)
blocks/microsoft/classes0% (0 lines)
blocks/microsoft/js0% (0 lines)
blocks/microsoft/lang0% (0 lines)
filter/oembed/db0% (0 lines)
filter/oembed/provider0% (0 lines)
local/o365/lang0% (0 lines)
local/office365/classes0% (0 lines)
local/office365/lang0% (0 lines)
local/office3650% (0 lines)
local/onenote/db0% (0 lines)
local/onenote/lang0% (0 lines)
local/onenote0% (0 lines)
repository/office365/classes0% (0 lines)
repository/office365/db0% (0 lines)
repository/office365/lang0% (0 lines)
theme/boost_o365teams/amd0% (0 lines)
theme/boost_o365teams/classes0% (0 lines)
theme/boost_o365teams0% (0 lines)
theme/boost_o365teams/lang0% (0 lines)
theme/boost_o365teams/layout0% (0 lines)

Duplication Between Components (50+ lines)

G auth/oidc/classes auth/oidc/classes local/o365/classes local/o365/classes auth/oidc/classes--local/o365/classes 200 local/onenote/classes local/onenote/classes auth/oidc/classes--local/onenote/classes 76 local/o365/classes--local/onenote/classes 124 filter/oembed/sass filter/oembed/sass filter/oembed filter/oembed filter/oembed/sass--filter/oembed 111 local/o365/sass local/o365/sass local/o365 local/o365 local/o365/sass--local/o365 93 filter/oembed/templates filter/oembed/templates theme/boost_o365teams/templates theme/boost_o365teams/templates filter/oembed/templates--theme/boost_o365teams/templates 70 mod/assign/feedback mod/assign/feedback mod/assign/submission mod/assign/submission mod/assign/feedback--mod/assign/submission 58

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 445 duplicates...
Size#FoldersFilesLinesCode
49 x 2 local/o365/classes/page
local/o365/classes/page
acp.php
acp.php
1053:1117 (3%)
1173:1238 (3%)
view
39 x 2 local/o365/classes/oauth2
local/o365/classes/oauth2
systemapiusertoken.php
systemtoken.php
42:114 (92%)
56:128 (90%)
view
31 x 2 local/o365/classes/rest
local/o365/classes/rest
azuread.php
unified.php
157:194 (10%)
1784:1821 (2%)
view
26 x 2 local/o365/classes/feature/sharepointcustom
local/o365/classes/task
utils.php
sharepointinit.php
84:115 (17%)
218:249 (15%)
view
25 x 2 local/o365
local/o365
teams_tab.php
teams_tab_configuration.php
167:193 (17%)
178:205 (14%)
view
22 x 2 auth/oidc/classes
local/o365/classes
utils.php
utils.php
88:121 (33%)
232:265 (10%)
view
18 x 2 local/o365/classes/bot/intents
local/o365/classes/bot/intents
lateststudents.php
recentstudents.php
80:100 (32%)
79:99 (33%)
view
17 x 2 local/o365/classes/page
local/o365/classes/page
acp.php
acp.php
561:582 (1%)
789:810 (1%)
view
17 x 2 local/o365
local/o365
teams_tab.php
teams_tab_configuration.php
144:163 (12%)
116:135 (9%)
view
17 x 2 local/o365/classes/page
local/o365/classes/page
acp.php
acp.php
594:612 (1%)
822:840 (1%)
view
17 x 2 auth/oidc/classes
local/o365/classes
httpclient.php
httpclient.php
41:66 (48%)
44:69 (21%)
view
16 x 2 local/o365/classes/page
local/o365/classes/page
acp.php
acp.php
597:613 (1%)
1702:1718 (1%)
view
16 x 2 local/onenote/classes/api
local/onenote/classes/api
base.php
base.php
388:410 (2%)
419:441 (2%)
view
16 x 2 local/o365
local/o365
teams_tab.php
teams_tab_configuration.php
110:127 (11%)
212:229 (9%)
view
16 x 2 local/o365/classes/task
local/o365/classes/task
sharepointinit.php
sharepointinit.php
158:177 (9%)
261:279 (9%)
view
16 x 2 local/o365/classes/adminsetting
local/o365/classes/adminsetting
adminconsent.php
systemapiuser.php
39:92 (57%)
39:92 (34%)
view
15 x 2 local/o365/classes/rest
local/o365/classes/rest
unified.php
unified.php
1967:1985 (1%)
2037:2055 (1%)
view
15 x 2 local/o365/classes/rest
local/o365/classes/rest
unified.php
unified.php
1967:1985 (1%)
2002:2020 (1%)
view
15 x 2 local/o365/classes/rest
local/o365/classes/rest
unified.php
unified.php
2037:2055 (1%)
2072:2090 (1%)
view
15 x 2 mod/assign/feedback/onenote
mod/assign/submission/onenote
locallib.php
locallib.php
291:323 (8%)
469:501 (5%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 31 unit duplicates...
Size#FoldersFilesLinesCode
27 x 2 local/o365
local/o365
teams_tab.php
teams_tab_configuration.php
167:194 
178:206 
view
24 x 2 auth/oidc/classes
local/o365/classes
utils.php
utils.php
88:112 
232:256 
view
19 x 2 local/o365/classes/rest
local/o365/classes/rest
azuread.php
unified.php
250:269 
1936:1955 
view
19 x 2 local/o365/classes/rest
local/o365/classes/rest
unified.php
unified.php
577:598 
1408:1430 
view
17 x 2 local/o365/classes
local/o365/classes
httpclient.php
httpclient.php
92:111 
121:140 
view
15 x 2 filter/oembed/provider/officeforms
filter/oembed/provider/powerbi
officeforms.php
powerbi.php
38:53 
38:53 
view
15 x 2 local/o365/classes/rest
local/o365/classes/rest
unified.php
unified.php
482:500 
1026:1044 
view
15 x 2 local/o365/classes/rest
local/o365/classes/rest
unified.php
unified.php
522:540 
549:567 
view
14 x 2 auth/oidc/classes
local/o365/classes
httpclient.php
httpclient.php
41:57 
44:60 
view
14 x 2 auth/oidc/classes/privacy
local/o365/classes/privacy
provider.php
provider.php
155:169 
171:185 
view
14 x 2 local/o365/classes/oauth2
local/o365/classes/oauth2
systemapiusertoken.php
systemtoken.php
101:115 
115:129 
view
14 x 2 local/o365/classes/rest
local/o365/classes/rest
unified.php
unified.php
2585:2602 
2611:2628 
view
11 x 2 local/o365/classes/page
local/o365/classes/page
acp.php
acp.php
72:83 
88:99 
view
10 x 2 local/o365/classes/feature/usersync
local/o365/classes/rest
main.php
unified.php
326:336 
1008:1018 
view
10 x 2 local/o365/classes/oauth2
local/o365/classes/oauth2
systemapiusertoken.php
systemtoken.php
60:70 
74:84 
view
10 x 2 mod/assign/submission/onenote/classes/event
mod/assign/submission/onenote/classes/event
submission_created.php
submission_updated.php
56:67 
56:67 
view
9 x 3 auth/oidc/classes/privacy
local/o365/classes/privacy
local/onenote/classes/privacy
provider.php
provider.php
provider.php
201:210 
203:212 
159:168 
view
9 x 3 local/o365/classes/oauth2
local/o365/classes/oauth2
local/o365/classes/oauth2
apptoken.php
systemapiusertoken.php
systemtoken.php
191:200 
78:87 
92:101 
view
9 x 2 local/o365/classes/oauth2
local/o365/classes/oauth2
systemapiusertoken.php
systemtoken.php
42:51 
56:65 
view
9 x 2 local/o365
local/o365
teams_tab.php
teams_tab_configuration.php
197:206 
92:101 
view