Overview
File Change Frequency Overall
  • There are 15 files with 1,636 lines of code.
    • 0 files changed more than 100 times (0 lines of code)
    • 0 files changed 51-100 times (0 lines of code)
    • 1 file changed 21-50 times (344 lines of code)
    • 6 files changed 6-20 times (676 lines of code)
    • 8 files changed 1-5 times (616 lines of code)
0% | 0% | 21% | 41% | 37%
Legend:
101+
51-100
21-50
6-20
1-5

explore: grouped by folders | grouped by update frequency | data
Contributors Count Frequency Overall
  • There are 15 files with 1,636 lines of code.
    • 0 files changed by more than 25 contributors (0 lines of code)
    • 0 files changed by 11-25 contributors (0 lines of code)
    • 1 file changed by 6-10 contributors (344 lines of code)
    • 12 files changed by 2-5 contributors (1,247 lines of code)
    • 2 files changed by 1 contributor (45 lines of code)
0% | 0% | 21% | 76% | 2%
Legend:
26+
11-25
6-10
2-5
1

explore: grouped by folders | grouped by contributors count | data
File Change Frequency per File Extension
py, yaml, txt, css, html, md, sh, gitignore, yml
File Change Frequency per Extension
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
yaml0% | 0% | 53% | 17% | 28%
css0% | 0% | 0% | 52% | 47%
py0% | 0% | 0% | 46% | 53%
html0% | 0% | 0% | 100% | 0%
File Change Frequency per Logical Decomposition
primary
primary (file change frequency)
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
cloudformation0% | 0% | 80% | 19% | 0%
static0% | 0% | 0% | 100% | 0%
src0% | 0% | 0% | 51% | 48%
templates0% | 0% | 0% | 100% | 0%
ROOT0% | 0% | 0% | 30% | 69%
sd-warning0% | 0% | 0% | 0% | 100%
Most Frequently Changed Files (Top 15)

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
344 - 2019-04-26 2026-09-03 36 6 +1108 / -559 whalenka88 tom.matthews
156 16 2020-05-06 2026-07-16 14 5 +649 / -25 whalenka88 tom.matthews
public.css
in static
277 - 2019-04-15 2022-09-26 12 5 +465 / -96 sam.cutler stiliyana.simeonova
securedrop.html
in templates/public
98 - 2019-08-05 2025-10-07 10 5 +170 / -60 whalenka88 7014230+arelra
base.html
in templates/public
36 - 2019-04-15 2021-12-15 8 4 +55 / -15 sam.cutler simonadcock2
85 - 2019-07-04 2023-02-07 8 5 +215 / -213 whalenka88 louischather
24 - 2023-09-06 2024-04-09 6 1 +72 / -20 louischather louischather
21 - 2019-07-29 2019-09-05 4 1 +30 / -6 whalenka88 whalenka88
97 6 2020-05-06 2023-09-07 4 3 +367 / -8 whalenka88 louischather
sd-warning.yaml
in sd-warning/cloudformation
164 - 2021-02-01 2021-12-12 3 2 +556 / -1 sam.cutler 37340283+stiliyana-simeonova
public.css
in sd-warning/static
251 - 2021-02-01 2021-12-12 3 2 +940 / -1 sam.cutler 37340283+stiliyana-simeonova
1 - 2020-05-06 2021-12-12 2 2 - whalenka88 37340283+stiliyana-simeonova
1 - 2020-05-06 2021-12-12 2 2 - whalenka88 37340283+stiliyana-simeonova
33 2 2019-08-21 2022-09-26 2 3 +59 / -10 whalenka88 stiliyana.simeonova
dynamo.py
in src
48 4 2019-12-12 2021-12-12 2 2 +240 / -0 whalenka88 37340283+stiliyana-simeonova
Files With Most Churn (Top 15)
Based on the number of lines added and deleted across all commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
344 - 2019-04-26 2026-09-03 36 6 +1108 / -559 whalenka88 tom.matthews
public.css
in sd-warning/static
251 - 2021-02-01 2021-12-12 3 2 +940 / -1 sam.cutler 37340283+stiliyana-simeonova
156 16 2020-05-06 2026-07-16 14 5 +649 / -25 whalenka88 tom.matthews
public.css
in static
277 - 2019-04-15 2022-09-26 12 5 +465 / -96 sam.cutler stiliyana.simeonova
sd-warning.yaml
in sd-warning/cloudformation
164 - 2021-02-01 2021-12-12 3 2 +556 / -1 sam.cutler 37340283+stiliyana-simeonova
85 - 2019-07-04 2023-02-07 8 5 +215 / -213 whalenka88 louischather
97 6 2020-05-06 2023-09-07 4 3 +367 / -8 whalenka88 louischather
dynamo.py
in src
48 4 2019-12-12 2021-12-12 2 2 +240 / -0 whalenka88 37340283+stiliyana-simeonova
securedrop.html
in templates/public
98 - 2019-08-05 2025-10-07 10 5 +170 / -60 whalenka88 7014230+arelra
24 - 2023-09-06 2024-04-09 6 1 +72 / -20 louischather louischather
base.html
in templates/public
36 - 2019-04-15 2021-12-15 8 4 +55 / -15 sam.cutler simonadcock2
33 2 2019-08-21 2022-09-26 2 3 +59 / -10 whalenka88 stiliyana.simeonova
21 - 2019-07-29 2019-09-05 4 1 +30 / -6 whalenka88 whalenka88
1 - 2020-05-06 2021-12-12 2 2 - whalenka88 37340283+stiliyana-simeonova
1 - 2020-05-06 2021-12-12 2 2 - whalenka88 37340283+stiliyana-simeonova
Files With Most Contributors (Top 15)
Based on the number of unique email addresses found in commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
344 - 2019-04-26 2026-09-03 36 6 +1108 / -559 whalenka88 tom.matthews
156 16 2020-05-06 2026-07-16 14 5 +649 / -25 whalenka88 tom.matthews
public.css
in static
277 - 2019-04-15 2022-09-26 12 5 +465 / -96 sam.cutler stiliyana.simeonova
securedrop.html
in templates/public
98 - 2019-08-05 2025-10-07 10 5 +170 / -60 whalenka88 7014230+arelra
85 - 2019-07-04 2023-02-07 8 5 +215 / -213 whalenka88 louischather
base.html
in templates/public
36 - 2019-04-15 2021-12-15 8 4 +55 / -15 sam.cutler simonadcock2
97 6 2020-05-06 2023-09-07 4 3 +367 / -8 whalenka88 louischather
33 2 2019-08-21 2022-09-26 2 3 +59 / -10 whalenka88 stiliyana.simeonova
public.css
in sd-warning/static
251 - 2021-02-01 2021-12-12 3 2 +940 / -1 sam.cutler 37340283+stiliyana-simeonova
sd-warning.yaml
in sd-warning/cloudformation
164 - 2021-02-01 2021-12-12 3 2 +556 / -1 sam.cutler 37340283+stiliyana-simeonova
1 - 2020-05-06 2021-12-12 2 2 - whalenka88 37340283+stiliyana-simeonova
dynamo.py
in src
48 4 2019-12-12 2021-12-12 2 2 +240 / -0 whalenka88 37340283+stiliyana-simeonova
1 - 2020-05-06 2021-12-12 2 2 - whalenka88 37340283+stiliyana-simeonova
24 - 2023-09-06 2024-04-09 6 1 +72 / -20 louischather louischather
21 - 2019-07-29 2019-09-05 4 1 +30 / -6 whalenka88 whalenka88
Files With Least Contributors (Top 15)
Based on the number of unique email addresses found in commits.

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
24 - 2023-09-06 2024-04-09 6 1 +72 / -20 louischather louischather
21 - 2019-07-29 2019-09-05 4 1 +30 / -6 whalenka88 whalenka88
public.css
in sd-warning/static
251 - 2021-02-01 2021-12-12 3 2 +940 / -1 sam.cutler 37340283+stiliyana-simeonova
sd-warning.yaml
in sd-warning/cloudformation
164 - 2021-02-01 2021-12-12 3 2 +556 / -1 sam.cutler 37340283+stiliyana-simeonova
dynamo.py
in src
48 4 2019-12-12 2021-12-12 2 2 +240 / -0 whalenka88 37340283+stiliyana-simeonova
1 - 2020-05-06 2021-12-12 2 2 - whalenka88 37340283+stiliyana-simeonova
1 - 2020-05-06 2021-12-12 2 2 - whalenka88 37340283+stiliyana-simeonova
97 6 2020-05-06 2023-09-07 4 3 +367 / -8 whalenka88 louischather
33 2 2019-08-21 2022-09-26 2 3 +59 / -10 whalenka88 stiliyana.simeonova
base.html
in templates/public
36 - 2019-04-15 2021-12-15 8 4 +55 / -15 sam.cutler simonadcock2
public.css
in static
277 - 2019-04-15 2022-09-26 12 5 +465 / -96 sam.cutler stiliyana.simeonova
156 16 2020-05-06 2026-07-16 14 5 +649 / -25 whalenka88 tom.matthews
securedrop.html
in templates/public
98 - 2019-08-05 2025-10-07 10 5 +170 / -60 whalenka88 7014230+arelra
85 - 2019-07-04 2023-02-07 8 5 +215 / -213 whalenka88 louischather
344 - 2019-04-26 2026-09-03 36 6 +1108 / -559 whalenka88 tom.matthews
Correlations

File Size vs. Number of Changes: 15 points

cloudformation/secure-contact.template.yaml x: 344 lines of code y: 36 # changes src/monitor.py x: 156 lines of code y: 14 # changes templates/public/securedrop.html x: 98 lines of code y: 10 # changes secure-drop-monitor-riff-raff.yaml x: 24 lines of code y: 6 # changes src/notifications.py x: 97 lines of code y: 4 # changes cloudformation/secure-contact-lambda.yaml x: 85 lines of code y: 8 # changes securedrop.py x: 33 lines of code y: 2 # changes static/public.css x: 277 lines of code y: 12 # changes templates/public/base.html x: 36 lines of code y: 8 # changes __init__.py x: 1 lines of code y: 2 # changes sd-warning/cloudformation/sd-warning.yaml x: 164 lines of code y: 3 # changes sd-warning/static/public.css x: 251 lines of code y: 3 # changes src/dynamo.py x: 48 lines of code y: 2 # changes riff-raff.yaml x: 21 lines of code y: 4 # changes
36.0
# changes
  min: 2.0
  average: 7.73
  25th percentile: 2.0
  median: 4.0
  75th percentile: 10.0
  max: 36.0
0 344.0
lines of code
min: 1.0 | average: 109.07 | 25th percentile: 24.0 | median: 85.0 | 75th percentile: 164.0 | max: 344.0

Number of Contributors vs. Number of Changes: 15 points

cloudformation/secure-contact.template.yaml x: 6 # contributors y: 36 # changes src/monitor.py x: 5 # contributors y: 14 # changes templates/public/securedrop.html x: 5 # contributors y: 10 # changes secure-drop-monitor-riff-raff.yaml x: 1 # contributors y: 6 # changes src/notifications.py x: 3 # contributors y: 4 # changes cloudformation/secure-contact-lambda.yaml x: 5 # contributors y: 8 # changes securedrop.py x: 3 # contributors y: 2 # changes static/public.css x: 5 # contributors y: 12 # changes templates/public/base.html x: 4 # contributors y: 8 # changes __init__.py x: 2 # contributors y: 2 # changes sd-warning/cloudformation/sd-warning.yaml x: 2 # contributors y: 3 # changes riff-raff.yaml x: 1 # contributors y: 4 # changes
36.0
# changes
  min: 2.0
  average: 7.73
  25th percentile: 2.0
  median: 4.0
  75th percentile: 10.0
  max: 36.0
0 6.0
# contributors
min: 1.0 | average: 3.2 | 25th percentile: 2.0 | median: 3.0 | 75th percentile: 5.0 | max: 6.0

Number of Contributors vs. File Size: 15 points

cloudformation/secure-contact.template.yaml x: 6 # contributors y: 344 lines of code src/monitor.py x: 5 # contributors y: 156 lines of code templates/public/securedrop.html x: 5 # contributors y: 98 lines of code secure-drop-monitor-riff-raff.yaml x: 1 # contributors y: 24 lines of code src/notifications.py x: 3 # contributors y: 97 lines of code cloudformation/secure-contact-lambda.yaml x: 5 # contributors y: 85 lines of code securedrop.py x: 3 # contributors y: 33 lines of code static/public.css x: 5 # contributors y: 277 lines of code templates/public/base.html x: 4 # contributors y: 36 lines of code __init__.py x: 2 # contributors y: 1 lines of code sd-warning/cloudformation/sd-warning.yaml x: 2 # contributors y: 164 lines of code sd-warning/static/public.css x: 2 # contributors y: 251 lines of code src/dynamo.py x: 2 # contributors y: 48 lines of code riff-raff.yaml x: 1 # contributors y: 21 lines of code
344.0
lines of code
  min: 1.0
  average: 109.07
  25th percentile: 24.0
  median: 85.0
  75th percentile: 164.0
  max: 344.0
0 6.0
# contributors
min: 1.0 | average: 3.2 | 25th percentile: 2.0 | median: 3.0 | 75th percentile: 5.0 | max: 6.0

Number of Changes vs. Line Churn: 43 points

Pipfile x: 11 # changes y: 380 line churn Pipfile.lock x: 14 # changes y: 3680 line churn requirements.txt x: 29 # changes y: 364 line churn cloudformation/secure-contact.template.yaml x: 36 # changes y: 1667 line churn src/monitor.py x: 14 # changes y: 674 line churn .github/workflows/check-labels.yaml x: 2 # changes y: 18 line churn templates/public/securedrop.html x: 10 # changes y: 230 line churn .github/workflows/ci.yml x: 5 # changes y: 108 line churn secure-drop-monitor-riff-raff.yaml x: 6 # changes y: 92 line churn src/notifications.py x: 4 # changes y: 375 line churn README.md x: 13 # changes y: 649 line churn build-lambda.sh x: 7 # changes y: 141 line churn cloudformation/secure-contact-lambda.yaml x: 8 # changes y: 428 line churn pgp_listing.py x: 18 # changes y: 750 line churn pgp_manager.py x: 13 # changes y: 737 line churn templates/public/pgp-listing.html x: 14 # changes y: 580 line churn tests/edge_case.fpr.txt x: 3 # changes y: 12 line churn tests/test_pgp_listing.py x: 3 # changes y: 312 line churn securedrop.py x: 2 # changes y: 69 line churn static/public.css x: 12 # changes y: 561 line churn .gitignore x: 5 # changes y: 32 line churn templates/public/base.html x: 8 # changes y: 70 line churn monitor.py x: 11 # changes y: 1230 line churn notifications.py x: 5 # changes y: 430 line churn sd-warning/README.md x: 2 # changes y: 39 line churn sd-warning/cloudformation/sd-warning.yaml x: 3 # changes y: 557 line churn sd-warning/static/index.html x: 2 # changes y: 210 line churn sd-warning/static/materialize.min.css x: 2 # changes y: 96 line churn sd-warning/static/public.css x: 3 # changes y: 941 line churn src/aws_helpers.py x: 3 # changes y: 320 line churn src/dynamo.py x: 2 # changes y: 240 line churn tests/test_database.py x: 4 # changes y: 187 line churn tests/test_monitor.py x: 4 # changes y: 49 line churn dev/dev_database.py x: 3 # changes y: 176 line churn tests/stage x: 1 # changes y: 1 line churn riff-raff.yaml x: 4 # changes y: 36 line churn healthcheck.py x: 3 # changes y: 500 line churn LICENSE x: 1 # changes y: 21 line churn tests/pgp_listing_test.py x: 6 # changes y: 312 line churn build/index.html x: 2 # changes y: 316 line churn build/public.css x: 2 # changes y: 248 line churn
3680.0
line churn
  min: 1.0
  average: 415.56
  25th percentile: 69.0
  median: 248.0
  75th percentile: 557.0
  max: 3680.0
0 36.0
# changes
min: 1.0 | average: 7.05 | 25th percentile: 2.0 | median: 4.0 | 75th percentile: 11.0 | max: 36.0

Number of Contributors vs. Line Churn: 13 points

cloudformation/secure-contact.template.yaml x: 6 # contributors y: 1667 line churn src/monitor.py x: 5 # contributors y: 674 line churn templates/public/securedrop.html x: 5 # contributors y: 230 line churn secure-drop-monitor-riff-raff.yaml x: 1 # contributors y: 92 line churn src/notifications.py x: 3 # contributors y: 375 line churn cloudformation/secure-contact-lambda.yaml x: 5 # contributors y: 428 line churn securedrop.py x: 3 # contributors y: 69 line churn static/public.css x: 5 # contributors y: 561 line churn templates/public/base.html x: 4 # contributors y: 70 line churn sd-warning/cloudformation/sd-warning.yaml x: 2 # contributors y: 557 line churn sd-warning/static/public.css x: 2 # contributors y: 941 line churn src/dynamo.py x: 2 # contributors y: 240 line churn riff-raff.yaml x: 1 # contributors y: 36 line churn
1667.0
line churn
  min: 36.0
  average: 456.92
  25th percentile: 81.0
  median: 375.0
  75th percentile: 617.5
  max: 1667.0
0 6.0
# contributors
min: 1.0 | average: 3.38 | 25th percentile: 2.0 | median: 3.0 | 75th percentile: 5.0 | max: 6.0

File Size vs. Line Churn: 13 points

cloudformation/secure-contact.template.yaml x: 344 lines of code y: 1667 line churn src/monitor.py x: 156 lines of code y: 674 line churn templates/public/securedrop.html x: 98 lines of code y: 230 line churn secure-drop-monitor-riff-raff.yaml x: 24 lines of code y: 92 line churn src/notifications.py x: 97 lines of code y: 375 line churn cloudformation/secure-contact-lambda.yaml x: 85 lines of code y: 428 line churn securedrop.py x: 33 lines of code y: 69 line churn static/public.css x: 277 lines of code y: 561 line churn templates/public/base.html x: 36 lines of code y: 70 line churn sd-warning/cloudformation/sd-warning.yaml x: 164 lines of code y: 557 line churn sd-warning/static/public.css x: 251 lines of code y: 941 line churn src/dynamo.py x: 48 lines of code y: 240 line churn riff-raff.yaml x: 21 lines of code y: 36 line churn
1667.0
line churn
  min: 36.0
  average: 456.92
  25th percentile: 81.0
  median: 375.0
  75th percentile: 617.5
  max: 1667.0
0 344.0
lines of code
min: 21.0 | average: 125.69 | 25th percentile: 34.5 | median: 97.0 | 75th percentile: 207.5 | max: 344.0