aws-samples / aws-iam-permissions-guardrails
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
  • 28% duplication:
    • 1,156 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 324 duplicated lines
  • 18 duplicates
system28% (324 lines)
Duplication per Extension
py28% (324 lines)
Duplication per Component (primary)
access-analyzer/enablement61% (112 lines)
iam_permissions_guardrails/constructs/service_control_policies34% (88 lines)
access-analyzer/step-functions-archive-findings/access_analyzer_example27% (44 lines)
access-analyzer/iam-role-findings-resolution/iam_access_analyzer_findings_remediation49% (44 lines)
guardrails10% (16 lines)
access-analyzer/step-functions-archive-findings31% (10 lines)
access-analyzer/iam-role-findings-resolution32% (10 lines)
access-analyzer/step-functions-archive-findings/functions0% (0 lines)
access-analyzer/iam-role-findings-resolution/functions0% (0 lines)
ROOT0% (0 lines)
iam_permissions_guardrails0% (0 lines)
iam_permissions_guardrails/constructs0% (0 lines)

Duplication Between Components (50+ lines)

G access-analyzer/iam-role-findings-resolution/iam_access_analyzer_findings_remediation access-analyzer/iam-role-findings-resolution/iam_access_analyzer_findings_remediation access-analyzer/step-functions-archive-findings/access_analyzer_example access-analyzer/step-functions-archive-findings/access_analyzer_example access-analyzer/iam-role-findings-resolution/iam_access_analyzer_findings_remediation--access-analyzer/step-functions-archive-findings/access_analyzer_example 88

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 18 longest duplicates.
See data for all 18 duplicates...
Size#FoldersFilesLinesCode
35 x 2 access-analyzer/enablement
access-analyzer/enablement
create-account-analyzer-stack-set.py
create-org-analyzer-stack-set.py
16:53 (42%)
21:58 (41%)
view
14 x 2 access-analyzer/iam-role...er_findings_remediation
access-analyzer/step-fun...access_analyzer_example
iam_access_analyzer_findings_remediat...
access_analyzer_example_stack.py
35:49 (15%)
69:83 (8%)
view
13 x 2 access-analyzer/enablement
access-analyzer/enablement
create-account-analyzer-stack-set.py
create-org-analyzer-stack-set.py
89:103 (15%)
90:104 (15%)
view
11 x 2 iam_permissions_guardrai...icies/attachment_lambda
iam_permissions_guardrai...icies/attachment_lambda
app.py
app.py
105:115 (7%)
165:175 (7%)
view
10 x 2 access-analyzer/iam-role...er_findings_remediation
access-analyzer/step-fun...access_analyzer_example
iam_access_analyzer_findings_remediat...
access_analyzer_example_stack.py
98:109 (11%)
226:237 (6%)
view
10 x 2 access-analyzer/iam-role-findings-resolution
access-analyzer/step-functions-archive-findings
setup.py
setup.py
32:43 (35%)
34:45 (34%)
view
8 x 2 access-analyzer/enablement
access-analyzer/enablement
create-account-analyzer-stack-set.py
create-org-analyzer-stack-set.py
78:87 (9%)
79:88 (9%)
view
8 x 2 guardrails
guardrails
generate-roles-markdown.py
generate-scp-markdown.py
134:142 (8%)
69:77 (14%)
view
8 x 2 iam_permissions_guardrai...icies/attachment_lambda
iam_permissions_guardrai...icies/attachment_lambda
app.py
app.py
34:41 (5%)
121:128 (5%)
view
8 x 2 access-analyzer/iam-role...er_findings_remediation
access-analyzer/step-fun...access_analyzer_example
iam_access_analyzer_findings_remediat...
access_analyzer_example_stack.py
82:89 (9%)
183:190 (5%)
view
7 x 2 iam_permissions_guardrai...icies/attachment_lambda
iam_permissions_guardrai...icies/attachment_lambda
app.py
app.py
51:57 (4%)
112:118 (4%)
view
6 x 2 iam_permissions_guardrai...ervice_control_policies
iam_permissions_guardrai...ervice_control_policies
scp_policy_resource.py
scp_policy_resource.py
32:37 (10%)
45:50 (10%)
view
6 x 2 iam_permissions_guardrai...icies/attachment_lambda
iam_permissions_guardrai...icies/attachment_lambda
app.py
app.py
95:100 (4%)
155:160 (4%)
view
6 x 2 iam_permissions_guardrai...icies/attachment_lambda
iam_permissions_guardrai...icies/attachment_lambda
app.py
app.py
123:128 (4%)
135:140 (4%)
view
6 x 2 access-analyzer/iam-role...er_findings_remediation
access-analyzer/step-fun...access_analyzer_example
iam_access_analyzer_findings_remediat...
access_analyzer_example_stack.py
27:33 (6%)
30:39 (3%)
view
6 x 2 iam_permissions_guardrai...icies/attachment_lambda
iam_permissions_guardrai...icies/attachment_lambda
app.py
app.py
36:41 (4%)
135:140 (4%)
view
6 x 2 iam_permissions_guardrai...icies/attachment_lambda
iam_permissions_guardrai...icies/attachment_lambda
app.py
app.py
28:34 (4%)
149:155 (4%)
view
6 x 2 access-analyzer/iam-role...er_findings_remediation
access-analyzer/step-fun...access_analyzer_example
iam_access_analyzer_findings_remediat...
access_analyzer_example_stack.py
5:10 (6%)
4:9 (3%)
view