Overview
File Change Frequency Overall
  • There are 40 files with 2,597 lines of code.
    • 0 files changed more than 100 times (0 lines of code)
    • 0 files changed 51-100 times (0 lines of code)
    • 5 files changed 21-50 times (1,028 lines of code)
    • 20 files changed 6-20 times (648 lines of code)
    • 15 files changed 1-5 times (921 lines of code)
0% | 0% | 39% | 24% | 35%
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 40 files with 2,597 lines of code.
    • 0 files changed by more than 25 contributors (0 lines of code)
    • 3 files changed by 11-25 contributors (703 lines of code)
    • 10 files changed by 6-10 contributors (694 lines of code)
    • 21 files changed by 2-5 contributors (424 lines of code)
    • 6 files changed by 1 contributor (776 lines of code)
0% | 27% | 26% | 16% | 29%
Legend:
26+
11-25
6-10
2-5
1

explore: grouped by folders | grouped by contributors count | data
File Change Frequency per File Extension
scala, xml, yaml, sbt, txt, yml, svg, gitignore, md, properties
File Change Frequency per Extension
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
scala0% | 0% | 57% | 34% | 8%
xml0% | 0% | 0% | 14% | 85%
yaml0% | 0% | 0% | 0% | 100%
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
api0% | 0% | 52% | 33% | 14%
ROOT0% | 0% | 0% | 0% | 100%
.github0% | 0% | 0% | 0% | 100%
Most Frequently Changed Files (Top 40)

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
AvatarServlet.scala
in api/src/main/scala/com/gu/adapters/http
240 6 2015-06-23 2026-08-25 50 12 +1088 / -581 nicolaslong bruno.catarino
Store.scala
in api/src/main/scala/com/gu/adapters/store
313 16 2015-06-23 2026-08-25 35 11 +1793 / -1297 nicolaslong bruno.catarino
Authentication.scala
in api/src/main/scala/com/gu/adapters/http
150 6 2015-06-23 2026-08-17 29 11 +670 / -273 nicolaslong patricio.vighi
store.scala
in api/src/main/scala/com/gu/core/store
294 20 2015-08-04 2026-08-25 26 8 +1243 / -336 nicolaslong bruno.catarino
ScalatraBootstrap.scala
in api/src/main/scala
31 2 2015-06-23 2025-05-09 24 9 +133 / -47 nicolaslong ashcorr20
Config.scala
in api/src/main/scala/com/gu/adapters/config
51 2 2015-07-17 2025-06-04 19 9 +351 / -159 nicholas.smith ashcorr20
Notifications.scala
in api/src/main/scala/com/gu/adapters/notifications
53 4 2015-07-14 2026-08-25 16 7 +278 / -147 gidsgoldberg bruno.catarino
SqsDeletionConsumer.scala
in api/src/main/scala/com/gu/adapters/queue
56 2 2018-01-09 2025-06-04 15 9 +191 / -60 zvvvvt ashcorr20
responses.scala
in api/src/main/scala/com/gu/adapters/http
39 5 2015-06-23 2026-08-25 14 6 +115 / -21 nicolaslong bruno.catarino
SwaggerOps.scala
in api/src/main/scala/com/gu/adapters/http
55 - 2015-06-23 2026-08-25 13 5 +157 / -31 nicolaslong bruno.catarino
Image.scala
in api/src/main/scala/com/gu/adapters/http
42 4 2015-07-27 2026-08-19 12 7 +191 / -37 nicholas.smith bruno.catarino
errors.scala
in api/src/main/scala/com/gu/core/models
59 7 2015-08-04 2026-08-25 11 6 +281 / -66 nicolaslong bruno.catarino
Req.scala
in api/src/main/scala/com/gu/adapters/http
9 1 2015-06-23 2026-08-25 10 5 +36 / -12 nicolaslong bruno.catarino
Filter.scala
in api/src/main/scala/com/gu/adapters/http
58 2 2015-08-04 2026-08-25 10 6 +255 / -59 nicolaslong bruno.catarino
AWSCredentials.scala
in api/src/main/scala/com/gu/auth
11 - 2018-05-24 2026-08-25 9 5 +48 / -22 pascal bruno.catarino
JsonFormats.scala
in api/src/main/scala/com/gu/adapters/http
27 - 2015-06-23 2026-08-25 9 5 +85 / -26 nicolaslong bruno.catarino
params.scala
in api/src/main/scala/com/gu/adapters/http
6 - 2015-06-23 2026-08-25 8 4 +41 / -35 nicolaslong bruno.catarino
User.scala
in api/src/main/scala/com/gu/core/models
11 1 2015-08-04 2025-04-23 8 6 +41 / -10 nicolaslong ashcorr20
Links.scala
in api/src/main/scala/com/gu/adapters/http
18 1 2015-06-23 2015-08-14 8 3 +78 / -35 nicolaslong gidsgoldberg
AvatarSwagger.scala
in api/src/main/scala/com/gu/adapters/http
21 - 2015-06-23 2026-08-25 8 4 +58 / -8 nicolaslong bruno.catarino
IOUtils.scala
in api/src/main/scala/com/gu/adapters/http
29 3 2019-10-16 2025-05-08 8 3 +88 / -18 gccdawson ashcorr20
ErrorHandling.scala
in api/src/main/scala/com/gu/core/utils
40 5 2015-08-04 2025-04-23 8 4 +186 / -36 nicolaslong ashcorr20
successes.scala
in api/src/main/scala/com/gu/core/models
15 - 2015-08-04 2018-03-22 7 3 +48 / -0 nicolaslong nicolaslong
logback.xml
in api/src/main/resources
25 - 2015-06-23 2024-01-08 7 3 +73 / -12 nicolaslong kelvin.chappell
JettyLauncher.scala
in api/src/main/scala/com/gu/adapters/http
23 - 2015-06-23 2025-05-09 6 3 +92 / -32 nicolaslong ashcorr20
ServletWithErrorHandling.scala
in api/src/main/scala/com/gu/adapters/http
13 1 2015-07-27 2025-04-23 5 3 +80 / -18 nicholas.smith ashcorr20
AuthorizedApiServlet.scala
in api/src/main/scala/com/gu/adapters/http
15 1 2015-07-27 2025-04-23 5 4 +81 / -18 nicholas.smith ashcorr20
utils.scala
in api/src/main/scala/com/gu/core/utils
15 2 2015-08-04 2022-04-11 5 3 +63 / -6 nicolaslong pvighi
logback-access.xml
in api/src/main/resources
26 - 2017-04-04 2024-01-08 5 2 +65 / -8 nicolaslong kelvin.chappell
Filters.scala
in api/src/main/scala/com/gu/core/models
8 - 2015-08-04 2016-09-22 4 3 +32 / -3 nicolaslong nick.satterly
Avatar.scala
in api/src/main/scala/com/gu/core/models
14 - 2015-08-04 2016-11-10 4 4 +50 / -2 nicolaslong nfsatterly
statuses.scala
in api/src/main/scala/com/gu/core/models
14 1 2015-08-04 2026-08-25 4 3 +51 / -0 nicolaslong bruno.catarino
IdentityConfig.scala
in api/src/main/scala/com/gu/adapters/config
17 - 2019-10-16 2023-06-21 4 2 +46 / -4 gccdawson mahesh
DeletionEvent.scala
in api/src/main/scala/com/gu/core/models
23 1 2018-01-09 2026-08-25 3 2 +56 / -0 zvvvvt bruno.catarino
59 - 2025-04-23 2025-05-01 3 1 +128 / -2 ashcorr20 ashcorr20
order.scala
in api/src/main/scala/com/gu/core/models
10 1 2016-09-20 2016-09-22 2 1 +26 / -0 nick.satterly nick.satterly
117 - 2015-06-23 2015-06-24 2 1 +234 / -0 nicolaslong nicolaslong
569 - 2025-04-23 2025-04-29 2 1 +1150 / -0 ashcorr20 ashcorr20
dependabot.yml
in .github
6 - 2023-12-20 2023-12-20 1 1 +7 / -0 kelvin.chappell kelvin.chappell
Pekko.scala
in api/src/main/scala/com/gu/core/pekko
15 1 2023-07-10 2023-07-10 1 1 +20 / -0 kelvin.chappell kelvin.chappell
Files With Most Churn (Top 40)
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
Store.scala
in api/src/main/scala/com/gu/adapters/store
313 16 2015-06-23 2026-08-25 35 11 +1793 / -1297 nicolaslong bruno.catarino
AvatarServlet.scala
in api/src/main/scala/com/gu/adapters/http
240 6 2015-06-23 2026-08-25 50 12 +1088 / -581 nicolaslong bruno.catarino
store.scala
in api/src/main/scala/com/gu/core/store
294 20 2015-08-04 2026-08-25 26 8 +1243 / -336 nicolaslong bruno.catarino
569 - 2025-04-23 2025-04-29 2 1 +1150 / -0 ashcorr20 ashcorr20
Authentication.scala
in api/src/main/scala/com/gu/adapters/http
150 6 2015-06-23 2026-08-17 29 11 +670 / -273 nicolaslong patricio.vighi
Config.scala
in api/src/main/scala/com/gu/adapters/config
51 2 2015-07-17 2025-06-04 19 9 +351 / -159 nicholas.smith ashcorr20
Notifications.scala
in api/src/main/scala/com/gu/adapters/notifications
53 4 2015-07-14 2026-08-25 16 7 +278 / -147 gidsgoldberg bruno.catarino
errors.scala
in api/src/main/scala/com/gu/core/models
59 7 2015-08-04 2026-08-25 11 6 +281 / -66 nicolaslong bruno.catarino
Filter.scala
in api/src/main/scala/com/gu/adapters/http
58 2 2015-08-04 2026-08-25 10 6 +255 / -59 nicolaslong bruno.catarino
SqsDeletionConsumer.scala
in api/src/main/scala/com/gu/adapters/queue
56 2 2018-01-09 2025-06-04 15 9 +191 / -60 zvvvvt ashcorr20
117 - 2015-06-23 2015-06-24 2 1 +234 / -0 nicolaslong nicolaslong
Image.scala
in api/src/main/scala/com/gu/adapters/http
42 4 2015-07-27 2026-08-19 12 7 +191 / -37 nicholas.smith bruno.catarino
ErrorHandling.scala
in api/src/main/scala/com/gu/core/utils
40 5 2015-08-04 2025-04-23 8 4 +186 / -36 nicolaslong ashcorr20
SwaggerOps.scala
in api/src/main/scala/com/gu/adapters/http
55 - 2015-06-23 2026-08-25 13 5 +157 / -31 nicolaslong bruno.catarino
ScalatraBootstrap.scala
in api/src/main/scala
31 2 2015-06-23 2025-05-09 24 9 +133 / -47 nicolaslong ashcorr20
responses.scala
in api/src/main/scala/com/gu/adapters/http
39 5 2015-06-23 2026-08-25 14 6 +115 / -21 nicolaslong bruno.catarino
59 - 2025-04-23 2025-05-01 3 1 +128 / -2 ashcorr20 ashcorr20
JettyLauncher.scala
in api/src/main/scala/com/gu/adapters/http
23 - 2015-06-23 2025-05-09 6 3 +92 / -32 nicolaslong ashcorr20
Links.scala
in api/src/main/scala/com/gu/adapters/http
18 1 2015-06-23 2015-08-14 8 3 +78 / -35 nicolaslong gidsgoldberg
JsonFormats.scala
in api/src/main/scala/com/gu/adapters/http
27 - 2015-06-23 2026-08-25 9 5 +85 / -26 nicolaslong bruno.catarino
IOUtils.scala
in api/src/main/scala/com/gu/adapters/http
29 3 2019-10-16 2025-05-08 8 3 +88 / -18 gccdawson ashcorr20
AuthorizedApiServlet.scala
in api/src/main/scala/com/gu/adapters/http
15 1 2015-07-27 2025-04-23 5 4 +81 / -18 nicholas.smith ashcorr20
ServletWithErrorHandling.scala
in api/src/main/scala/com/gu/adapters/http
13 1 2015-07-27 2025-04-23 5 3 +80 / -18 nicholas.smith ashcorr20
logback.xml
in api/src/main/resources
25 - 2015-06-23 2024-01-08 7 3 +73 / -12 nicolaslong kelvin.chappell
params.scala
in api/src/main/scala/com/gu/adapters/http
6 - 2015-06-23 2026-08-25 8 4 +41 / -35 nicolaslong bruno.catarino
logback-access.xml
in api/src/main/resources
26 - 2017-04-04 2024-01-08 5 2 +65 / -8 nicolaslong kelvin.chappell
AWSCredentials.scala
in api/src/main/scala/com/gu/auth
11 - 2018-05-24 2026-08-25 9 5 +48 / -22 pascal bruno.catarino
utils.scala
in api/src/main/scala/com/gu/core/utils
15 2 2015-08-04 2022-04-11 5 3 +63 / -6 nicolaslong pvighi
AvatarSwagger.scala
in api/src/main/scala/com/gu/adapters/http
21 - 2015-06-23 2026-08-25 8 4 +58 / -8 nicolaslong bruno.catarino
DeletionEvent.scala
in api/src/main/scala/com/gu/core/models
23 1 2018-01-09 2026-08-25 3 2 +56 / -0 zvvvvt bruno.catarino
Avatar.scala
in api/src/main/scala/com/gu/core/models
14 - 2015-08-04 2016-11-10 4 4 +50 / -2 nicolaslong nfsatterly
User.scala
in api/src/main/scala/com/gu/core/models
11 1 2015-08-04 2025-04-23 8 6 +41 / -10 nicolaslong ashcorr20
statuses.scala
in api/src/main/scala/com/gu/core/models
14 1 2015-08-04 2026-08-25 4 3 +51 / -0 nicolaslong bruno.catarino
IdentityConfig.scala
in api/src/main/scala/com/gu/adapters/config
17 - 2019-10-16 2023-06-21 4 2 +46 / -4 gccdawson mahesh
Req.scala
in api/src/main/scala/com/gu/adapters/http
9 1 2015-06-23 2026-08-25 10 5 +36 / -12 nicolaslong bruno.catarino
successes.scala
in api/src/main/scala/com/gu/core/models
15 - 2015-08-04 2018-03-22 7 3 +48 / -0 nicolaslong nicolaslong
Filters.scala
in api/src/main/scala/com/gu/core/models
8 - 2015-08-04 2016-09-22 4 3 +32 / -3 nicolaslong nick.satterly
order.scala
in api/src/main/scala/com/gu/core/models
10 1 2016-09-20 2016-09-22 2 1 +26 / -0 nick.satterly nick.satterly
Pekko.scala
in api/src/main/scala/com/gu/core/pekko
15 1 2023-07-10 2023-07-10 1 1 +20 / -0 kelvin.chappell kelvin.chappell
dependabot.yml
in .github
6 - 2023-12-20 2023-12-20 1 1 +7 / -0 kelvin.chappell kelvin.chappell
Files With Most Contributors (Top 40)
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
AvatarServlet.scala
in api/src/main/scala/com/gu/adapters/http
240 6 2015-06-23 2026-08-25 50 12 +1088 / -581 nicolaslong bruno.catarino
Store.scala
in api/src/main/scala/com/gu/adapters/store
313 16 2015-06-23 2026-08-25 35 11 +1793 / -1297 nicolaslong bruno.catarino
Authentication.scala
in api/src/main/scala/com/gu/adapters/http
150 6 2015-06-23 2026-08-17 29 11 +670 / -273 nicolaslong patricio.vighi
ScalatraBootstrap.scala
in api/src/main/scala
31 2 2015-06-23 2025-05-09 24 9 +133 / -47 nicolaslong ashcorr20
Config.scala
in api/src/main/scala/com/gu/adapters/config
51 2 2015-07-17 2025-06-04 19 9 +351 / -159 nicholas.smith ashcorr20
SqsDeletionConsumer.scala
in api/src/main/scala/com/gu/adapters/queue
56 2 2018-01-09 2025-06-04 15 9 +191 / -60 zvvvvt ashcorr20
store.scala
in api/src/main/scala/com/gu/core/store
294 20 2015-08-04 2026-08-25 26 8 +1243 / -336 nicolaslong bruno.catarino
Notifications.scala
in api/src/main/scala/com/gu/adapters/notifications
53 4 2015-07-14 2026-08-25 16 7 +278 / -147 gidsgoldberg bruno.catarino
Image.scala
in api/src/main/scala/com/gu/adapters/http
42 4 2015-07-27 2026-08-19 12 7 +191 / -37 nicholas.smith bruno.catarino
responses.scala
in api/src/main/scala/com/gu/adapters/http
39 5 2015-06-23 2026-08-25 14 6 +115 / -21 nicolaslong bruno.catarino
errors.scala
in api/src/main/scala/com/gu/core/models
59 7 2015-08-04 2026-08-25 11 6 +281 / -66 nicolaslong bruno.catarino
Filter.scala
in api/src/main/scala/com/gu/adapters/http
58 2 2015-08-04 2026-08-25 10 6 +255 / -59 nicolaslong bruno.catarino
User.scala
in api/src/main/scala/com/gu/core/models
11 1 2015-08-04 2025-04-23 8 6 +41 / -10 nicolaslong ashcorr20
SwaggerOps.scala
in api/src/main/scala/com/gu/adapters/http
55 - 2015-06-23 2026-08-25 13 5 +157 / -31 nicolaslong bruno.catarino
Req.scala
in api/src/main/scala/com/gu/adapters/http
9 1 2015-06-23 2026-08-25 10 5 +36 / -12 nicolaslong bruno.catarino
AWSCredentials.scala
in api/src/main/scala/com/gu/auth
11 - 2018-05-24 2026-08-25 9 5 +48 / -22 pascal bruno.catarino
JsonFormats.scala
in api/src/main/scala/com/gu/adapters/http
27 - 2015-06-23 2026-08-25 9 5 +85 / -26 nicolaslong bruno.catarino
ErrorHandling.scala
in api/src/main/scala/com/gu/core/utils
40 5 2015-08-04 2025-04-23 8 4 +186 / -36 nicolaslong ashcorr20
params.scala
in api/src/main/scala/com/gu/adapters/http
6 - 2015-06-23 2026-08-25 8 4 +41 / -35 nicolaslong bruno.catarino
AvatarSwagger.scala
in api/src/main/scala/com/gu/adapters/http
21 - 2015-06-23 2026-08-25 8 4 +58 / -8 nicolaslong bruno.catarino
AuthorizedApiServlet.scala
in api/src/main/scala/com/gu/adapters/http
15 1 2015-07-27 2025-04-23 5 4 +81 / -18 nicholas.smith ashcorr20
Avatar.scala
in api/src/main/scala/com/gu/core/models
14 - 2015-08-04 2016-11-10 4 4 +50 / -2 nicolaslong nfsatterly
Links.scala
in api/src/main/scala/com/gu/adapters/http
18 1 2015-06-23 2015-08-14 8 3 +78 / -35 nicolaslong gidsgoldberg
IOUtils.scala
in api/src/main/scala/com/gu/adapters/http
29 3 2019-10-16 2025-05-08 8 3 +88 / -18 gccdawson ashcorr20
logback.xml
in api/src/main/resources
25 - 2015-06-23 2024-01-08 7 3 +73 / -12 nicolaslong kelvin.chappell
successes.scala
in api/src/main/scala/com/gu/core/models
15 - 2015-08-04 2018-03-22 7 3 +48 / -0 nicolaslong nicolaslong
JettyLauncher.scala
in api/src/main/scala/com/gu/adapters/http
23 - 2015-06-23 2025-05-09 6 3 +92 / -32 nicolaslong ashcorr20
utils.scala
in api/src/main/scala/com/gu/core/utils
15 2 2015-08-04 2022-04-11 5 3 +63 / -6 nicolaslong pvighi
ServletWithErrorHandling.scala
in api/src/main/scala/com/gu/adapters/http
13 1 2015-07-27 2025-04-23 5 3 +80 / -18 nicholas.smith ashcorr20
statuses.scala
in api/src/main/scala/com/gu/core/models
14 1 2015-08-04 2026-08-25 4 3 +51 / -0 nicolaslong bruno.catarino
Filters.scala
in api/src/main/scala/com/gu/core/models
8 - 2015-08-04 2016-09-22 4 3 +32 / -3 nicolaslong nick.satterly
logback-access.xml
in api/src/main/resources
26 - 2017-04-04 2024-01-08 5 2 +65 / -8 nicolaslong kelvin.chappell
IdentityConfig.scala
in api/src/main/scala/com/gu/adapters/config
17 - 2019-10-16 2023-06-21 4 2 +46 / -4 gccdawson mahesh
DeletionEvent.scala
in api/src/main/scala/com/gu/core/models
23 1 2018-01-09 2026-08-25 3 2 +56 / -0 zvvvvt bruno.catarino
59 - 2025-04-23 2025-05-01 3 1 +128 / -2 ashcorr20 ashcorr20
569 - 2025-04-23 2025-04-29 2 1 +1150 / -0 ashcorr20 ashcorr20
117 - 2015-06-23 2015-06-24 2 1 +234 / -0 nicolaslong nicolaslong
order.scala
in api/src/main/scala/com/gu/core/models
10 1 2016-09-20 2016-09-22 2 1 +26 / -0 nick.satterly nick.satterly
dependabot.yml
in .github
6 - 2023-12-20 2023-12-20 1 1 +7 / -0 kelvin.chappell kelvin.chappell
Pekko.scala
in api/src/main/scala/com/gu/core/pekko
15 1 2023-07-10 2023-07-10 1 1 +20 / -0 kelvin.chappell kelvin.chappell
Files With Least Contributors (Top 40)
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
569 - 2025-04-23 2025-04-29 2 1 +1150 / -0 ashcorr20 ashcorr20
117 - 2015-06-23 2015-06-24 2 1 +234 / -0 nicolaslong nicolaslong
59 - 2025-04-23 2025-05-01 3 1 +128 / -2 ashcorr20 ashcorr20
Pekko.scala
in api/src/main/scala/com/gu/core/pekko
15 1 2023-07-10 2023-07-10 1 1 +20 / -0 kelvin.chappell kelvin.chappell
order.scala
in api/src/main/scala/com/gu/core/models
10 1 2016-09-20 2016-09-22 2 1 +26 / -0 nick.satterly nick.satterly
dependabot.yml
in .github
6 - 2023-12-20 2023-12-20 1 1 +7 / -0 kelvin.chappell kelvin.chappell
logback-access.xml
in api/src/main/resources
26 - 2017-04-04 2024-01-08 5 2 +65 / -8 nicolaslong kelvin.chappell
DeletionEvent.scala
in api/src/main/scala/com/gu/core/models
23 1 2018-01-09 2026-08-25 3 2 +56 / -0 zvvvvt bruno.catarino
IdentityConfig.scala
in api/src/main/scala/com/gu/adapters/config
17 - 2019-10-16 2023-06-21 4 2 +46 / -4 gccdawson mahesh
IOUtils.scala
in api/src/main/scala/com/gu/adapters/http
29 3 2019-10-16 2025-05-08 8 3 +88 / -18 gccdawson ashcorr20
logback.xml
in api/src/main/resources
25 - 2015-06-23 2024-01-08 7 3 +73 / -12 nicolaslong kelvin.chappell
JettyLauncher.scala
in api/src/main/scala/com/gu/adapters/http
23 - 2015-06-23 2025-05-09 6 3 +92 / -32 nicolaslong ashcorr20
Links.scala
in api/src/main/scala/com/gu/adapters/http
18 1 2015-06-23 2015-08-14 8 3 +78 / -35 nicolaslong gidsgoldberg
utils.scala
in api/src/main/scala/com/gu/core/utils
15 2 2015-08-04 2022-04-11 5 3 +63 / -6 nicolaslong pvighi
successes.scala
in api/src/main/scala/com/gu/core/models
15 - 2015-08-04 2018-03-22 7 3 +48 / -0 nicolaslong nicolaslong
statuses.scala
in api/src/main/scala/com/gu/core/models
14 1 2015-08-04 2026-08-25 4 3 +51 / -0 nicolaslong bruno.catarino
ServletWithErrorHandling.scala
in api/src/main/scala/com/gu/adapters/http
13 1 2015-07-27 2025-04-23 5 3 +80 / -18 nicholas.smith ashcorr20
Filters.scala
in api/src/main/scala/com/gu/core/models
8 - 2015-08-04 2016-09-22 4 3 +32 / -3 nicolaslong nick.satterly
ErrorHandling.scala
in api/src/main/scala/com/gu/core/utils
40 5 2015-08-04 2025-04-23 8 4 +186 / -36 nicolaslong ashcorr20
AvatarSwagger.scala
in api/src/main/scala/com/gu/adapters/http
21 - 2015-06-23 2026-08-25 8 4 +58 / -8 nicolaslong bruno.catarino
AuthorizedApiServlet.scala
in api/src/main/scala/com/gu/adapters/http
15 1 2015-07-27 2025-04-23 5 4 +81 / -18 nicholas.smith ashcorr20
Avatar.scala
in api/src/main/scala/com/gu/core/models
14 - 2015-08-04 2016-11-10 4 4 +50 / -2 nicolaslong nfsatterly
params.scala
in api/src/main/scala/com/gu/adapters/http
6 - 2015-06-23 2026-08-25 8 4 +41 / -35 nicolaslong bruno.catarino
SwaggerOps.scala
in api/src/main/scala/com/gu/adapters/http
55 - 2015-06-23 2026-08-25 13 5 +157 / -31 nicolaslong bruno.catarino
JsonFormats.scala
in api/src/main/scala/com/gu/adapters/http
27 - 2015-06-23 2026-08-25 9 5 +85 / -26 nicolaslong bruno.catarino
AWSCredentials.scala
in api/src/main/scala/com/gu/auth
11 - 2018-05-24 2026-08-25 9 5 +48 / -22 pascal bruno.catarino
Req.scala
in api/src/main/scala/com/gu/adapters/http
9 1 2015-06-23 2026-08-25 10 5 +36 / -12 nicolaslong bruno.catarino
errors.scala
in api/src/main/scala/com/gu/core/models
59 7 2015-08-04 2026-08-25 11 6 +281 / -66 nicolaslong bruno.catarino
Filter.scala
in api/src/main/scala/com/gu/adapters/http
58 2 2015-08-04 2026-08-25 10 6 +255 / -59 nicolaslong bruno.catarino
responses.scala
in api/src/main/scala/com/gu/adapters/http
39 5 2015-06-23 2026-08-25 14 6 +115 / -21 nicolaslong bruno.catarino
User.scala
in api/src/main/scala/com/gu/core/models
11 1 2015-08-04 2025-04-23 8 6 +41 / -10 nicolaslong ashcorr20
Notifications.scala
in api/src/main/scala/com/gu/adapters/notifications
53 4 2015-07-14 2026-08-25 16 7 +278 / -147 gidsgoldberg bruno.catarino
Image.scala
in api/src/main/scala/com/gu/adapters/http
42 4 2015-07-27 2026-08-19 12 7 +191 / -37 nicholas.smith bruno.catarino
store.scala
in api/src/main/scala/com/gu/core/store
294 20 2015-08-04 2026-08-25 26 8 +1243 / -336 nicolaslong bruno.catarino
SqsDeletionConsumer.scala
in api/src/main/scala/com/gu/adapters/queue
56 2 2018-01-09 2025-06-04 15 9 +191 / -60 zvvvvt ashcorr20
Config.scala
in api/src/main/scala/com/gu/adapters/config
51 2 2015-07-17 2025-06-04 19 9 +351 / -159 nicholas.smith ashcorr20
ScalatraBootstrap.scala
in api/src/main/scala
31 2 2015-06-23 2025-05-09 24 9 +133 / -47 nicolaslong ashcorr20
Store.scala
in api/src/main/scala/com/gu/adapters/store
313 16 2015-06-23 2026-08-25 35 11 +1793 / -1297 nicolaslong bruno.catarino
Authentication.scala
in api/src/main/scala/com/gu/adapters/http
150 6 2015-06-23 2026-08-17 29 11 +670 / -273 nicolaslong patricio.vighi
AvatarServlet.scala
in api/src/main/scala/com/gu/adapters/http
240 6 2015-06-23 2026-08-25 50 12 +1088 / -581 nicolaslong bruno.catarino
Correlations

File Size vs. Number of Changes: 40 points

api/src/main/scala/com/gu/adapters/http/AvatarServlet.scala x: 240 lines of code y: 50 # changes api/src/main/scala/com/gu/adapters/http/AvatarSwagger.scala x: 21 lines of code y: 8 # changes api/src/main/scala/com/gu/adapters/http/Filter.scala x: 58 lines of code y: 10 # changes api/src/main/scala/com/gu/adapters/http/JsonFormats.scala x: 27 lines of code y: 9 # changes api/src/main/scala/com/gu/adapters/http/Req.scala x: 9 lines of code y: 10 # changes api/src/main/scala/com/gu/adapters/http/SwaggerOps.scala x: 55 lines of code y: 13 # changes api/src/main/scala/com/gu/adapters/http/params.scala x: 6 lines of code y: 8 # changes api/src/main/scala/com/gu/adapters/http/responses.scala x: 39 lines of code y: 14 # changes api/src/main/scala/com/gu/adapters/notifications/Notifications.scala x: 53 lines of code y: 16 # changes api/src/main/scala/com/gu/adapters/store/Store.scala x: 313 lines of code y: 35 # changes api/src/main/scala/com/gu/auth/AWSCredentials.scala x: 11 lines of code y: 9 # changes api/src/main/scala/com/gu/core/models/DeletionEvent.scala x: 23 lines of code y: 3 # changes api/src/main/scala/com/gu/core/models/errors.scala x: 59 lines of code y: 11 # changes api/src/main/scala/com/gu/core/models/statuses.scala x: 14 lines of code y: 4 # changes api/src/main/scala/com/gu/core/store/store.scala x: 294 lines of code y: 26 # changes api/src/main/scala/com/gu/adapters/http/Image.scala x: 42 lines of code y: 12 # changes api/src/main/scala/com/gu/adapters/http/Authentication.scala x: 150 lines of code y: 29 # changes api/src/main/scala/com/gu/adapters/config/Config.scala x: 51 lines of code y: 19 # changes api/src/main/scala/com/gu/adapters/queue/SqsDeletionConsumer.scala x: 56 lines of code y: 15 # changes api/src/main/scala/ScalatraBootstrap.scala x: 31 lines of code y: 24 # changes api/src/main/scala/com/gu/adapters/http/JettyLauncher.scala x: 23 lines of code y: 6 # changes api/src/main/scala/com/gu/adapters/http/IOUtils.scala x: 29 lines of code y: 8 # changes riff-raff.yaml x: 59 lines of code y: 3 # changes cloudformation.yaml x: 569 lines of code y: 2 # changes api/src/main/scala/com/gu/adapters/http/AuthorizedApiServlet.scala x: 15 lines of code y: 5 # changes api/src/main/scala/com/gu/adapters/http/ServletWithErrorHandling.scala x: 13 lines of code y: 5 # changes api/src/main/scala/com/gu/core/models/User.scala x: 11 lines of code y: 8 # changes api/src/main/scala/com/gu/core/utils/ErrorHandling.scala x: 40 lines of code y: 8 # changes api/src/main/resources/logback-access.xml x: 26 lines of code y: 5 # changes api/src/main/resources/logback.xml x: 25 lines of code y: 7 # changes .github/dependabot.yml x: 6 lines of code y: 1 # changes api/src/main/scala/com/gu/core/pekko/Pekko.scala x: 15 lines of code y: 1 # changes api/src/main/scala/com/gu/adapters/config/IdentityConfig.scala x: 17 lines of code y: 4 # changes api/src/main/scala/com/gu/core/models/successes.scala x: 15 lines of code y: 7 # changes api/src/main/scala/com/gu/core/models/Filters.scala x: 8 lines of code y: 4 # changes api/src/main/scala/com/gu/core/models/order.scala x: 10 lines of code y: 2 # changes api/src/main/scala/com/gu/adapters/http/Links.scala x: 18 lines of code y: 8 # changes api/scalastyle-config.xml x: 117 lines of code y: 2 # changes
50.0
# changes
  min: 1.0
  average: 10.5
  25th percentile: 4.0
  median: 8.0
  75th percentile: 12.75
  max: 50.0
0 569.0
lines of code
min: 6.0 | average: 64.93 | 25th percentile: 14.25 | median: 25.5 | 75th percentile: 55.75 | max: 569.0

Number of Contributors vs. Number of Changes: 40 points

api/src/main/scala/com/gu/adapters/http/AvatarServlet.scala x: 12 # contributors y: 50 # changes api/src/main/scala/com/gu/adapters/http/AvatarSwagger.scala x: 4 # contributors y: 8 # changes api/src/main/scala/com/gu/adapters/http/Filter.scala x: 6 # contributors y: 10 # changes api/src/main/scala/com/gu/adapters/http/JsonFormats.scala x: 5 # contributors y: 9 # changes api/src/main/scala/com/gu/adapters/http/Req.scala x: 5 # contributors y: 10 # changes api/src/main/scala/com/gu/adapters/http/SwaggerOps.scala x: 5 # contributors y: 13 # changes api/src/main/scala/com/gu/adapters/http/responses.scala x: 6 # contributors y: 14 # changes api/src/main/scala/com/gu/adapters/notifications/Notifications.scala x: 7 # contributors y: 16 # changes api/src/main/scala/com/gu/adapters/store/Store.scala x: 11 # contributors y: 35 # changes api/src/main/scala/com/gu/core/models/DeletionEvent.scala x: 2 # contributors y: 3 # changes api/src/main/scala/com/gu/core/models/errors.scala x: 6 # contributors y: 11 # changes api/src/main/scala/com/gu/core/models/statuses.scala x: 3 # contributors y: 4 # changes api/src/main/scala/com/gu/core/store/store.scala x: 8 # contributors y: 26 # changes api/src/main/scala/com/gu/adapters/http/Image.scala x: 7 # contributors y: 12 # changes api/src/main/scala/com/gu/adapters/http/Authentication.scala x: 11 # contributors y: 29 # changes api/src/main/scala/com/gu/adapters/config/Config.scala x: 9 # contributors y: 19 # changes api/src/main/scala/com/gu/adapters/queue/SqsDeletionConsumer.scala x: 9 # contributors y: 15 # changes api/src/main/scala/ScalatraBootstrap.scala x: 9 # contributors y: 24 # changes api/src/main/scala/com/gu/adapters/http/JettyLauncher.scala x: 3 # contributors y: 6 # changes api/src/main/scala/com/gu/adapters/http/IOUtils.scala x: 3 # contributors y: 8 # changes riff-raff.yaml x: 1 # contributors y: 3 # changes cloudformation.yaml x: 1 # contributors y: 2 # changes api/src/main/scala/com/gu/adapters/http/AuthorizedApiServlet.scala x: 4 # contributors y: 5 # changes api/src/main/scala/com/gu/adapters/http/ServletWithErrorHandling.scala x: 3 # contributors y: 5 # changes api/src/main/scala/com/gu/core/models/User.scala x: 6 # contributors y: 8 # changes api/src/main/resources/logback-access.xml x: 2 # contributors y: 5 # changes api/src/main/resources/logback.xml x: 3 # contributors y: 7 # changes .github/dependabot.yml x: 1 # contributors y: 1 # changes api/src/main/scala/com/gu/adapters/config/IdentityConfig.scala x: 2 # contributors y: 4 # changes api/src/main/scala/com/gu/core/models/Avatar.scala x: 4 # contributors y: 4 # changes
50.0
# changes
  min: 1.0
  average: 10.5
  25th percentile: 4.0
  median: 8.0
  75th percentile: 12.75
  max: 50.0
0 12.0
# contributors
min: 1.0 | average: 4.65 | 25th percentile: 3.0 | median: 4.0 | 75th percentile: 6.0 | max: 12.0

Number of Contributors vs. File Size: 40 points

api/src/main/scala/com/gu/adapters/http/AvatarServlet.scala x: 12 # contributors y: 240 lines of code api/src/main/scala/com/gu/adapters/http/AvatarSwagger.scala x: 4 # contributors y: 21 lines of code api/src/main/scala/com/gu/adapters/http/Filter.scala x: 6 # contributors y: 58 lines of code api/src/main/scala/com/gu/adapters/http/JsonFormats.scala x: 5 # contributors y: 27 lines of code api/src/main/scala/com/gu/adapters/http/Req.scala x: 5 # contributors y: 9 lines of code api/src/main/scala/com/gu/adapters/http/SwaggerOps.scala x: 5 # contributors y: 55 lines of code api/src/main/scala/com/gu/adapters/http/params.scala x: 4 # contributors y: 6 lines of code api/src/main/scala/com/gu/adapters/http/responses.scala x: 6 # contributors y: 39 lines of code api/src/main/scala/com/gu/adapters/notifications/Notifications.scala x: 7 # contributors y: 53 lines of code api/src/main/scala/com/gu/adapters/store/Store.scala x: 11 # contributors y: 313 lines of code api/src/main/scala/com/gu/core/models/DeletionEvent.scala x: 2 # contributors y: 23 lines of code api/src/main/scala/com/gu/core/models/errors.scala x: 6 # contributors y: 59 lines of code api/src/main/scala/com/gu/core/models/statuses.scala x: 3 # contributors y: 14 lines of code api/src/main/scala/com/gu/core/store/store.scala x: 8 # contributors y: 294 lines of code api/src/main/scala/com/gu/adapters/http/Image.scala x: 7 # contributors y: 42 lines of code api/src/main/scala/com/gu/adapters/http/Authentication.scala x: 11 # contributors y: 150 lines of code api/src/main/scala/com/gu/adapters/config/Config.scala x: 9 # contributors y: 51 lines of code api/src/main/scala/com/gu/adapters/queue/SqsDeletionConsumer.scala x: 9 # contributors y: 56 lines of code api/src/main/scala/ScalatraBootstrap.scala x: 9 # contributors y: 31 lines of code api/src/main/scala/com/gu/adapters/http/JettyLauncher.scala x: 3 # contributors y: 23 lines of code api/src/main/scala/com/gu/adapters/http/IOUtils.scala x: 3 # contributors y: 29 lines of code riff-raff.yaml x: 1 # contributors y: 59 lines of code cloudformation.yaml x: 1 # contributors y: 569 lines of code api/src/main/scala/com/gu/adapters/http/AuthorizedApiServlet.scala x: 4 # contributors y: 15 lines of code api/src/main/scala/com/gu/adapters/http/ServletWithErrorHandling.scala x: 3 # contributors y: 13 lines of code api/src/main/scala/com/gu/core/models/User.scala x: 6 # contributors y: 11 lines of code api/src/main/scala/com/gu/core/utils/ErrorHandling.scala x: 4 # contributors y: 40 lines of code api/src/main/resources/logback-access.xml x: 2 # contributors y: 26 lines of code api/src/main/resources/logback.xml x: 3 # contributors y: 25 lines of code .github/dependabot.yml x: 1 # contributors y: 6 lines of code api/src/main/scala/com/gu/core/pekko/Pekko.scala x: 1 # contributors y: 15 lines of code api/src/main/scala/com/gu/adapters/config/IdentityConfig.scala x: 2 # contributors y: 17 lines of code api/src/main/scala/com/gu/core/models/Filters.scala x: 3 # contributors y: 8 lines of code api/src/main/scala/com/gu/core/models/order.scala x: 1 # contributors y: 10 lines of code api/src/main/scala/com/gu/adapters/http/Links.scala x: 3 # contributors y: 18 lines of code api/scalastyle-config.xml x: 1 # contributors y: 117 lines of code
569.0
lines of code
  min: 6.0
  average: 64.93
  25th percentile: 14.25
  median: 25.5
  75th percentile: 55.75
  max: 569.0
0 12.0
# contributors
min: 1.0 | average: 4.65 | 25th percentile: 3.0 | median: 4.0 | 75th percentile: 6.0 | max: 12.0

Number of Changes vs. Line Churn: 166 points

api/build.sbt x: 75 # changes y: 674 line churn .github/workflows/ci.yml x: 23 # changes y: 282 line churn .github/workflows/sbt-dependency-graph.yaml x: 54 # changes y: 220 line churn .githooks/pre-push x: 2 # changes y: 28 line churn api/.scalafmt.conf x: 4 # changes y: 28 line churn api/project/plugins.sbt x: 15 # changes y: 98 line churn api/src/main/scala/com/gu/adapters/http/AvatarServlet.scala x: 50 # changes y: 1669 line churn api/src/main/scala/com/gu/adapters/http/AvatarSwagger.scala x: 8 # changes y: 66 line churn api/src/main/scala/com/gu/adapters/http/Filter.scala x: 10 # changes y: 314 line churn api/src/main/scala/com/gu/adapters/http/JsonFormats.scala x: 9 # changes y: 111 line churn api/src/main/scala/com/gu/adapters/http/Req.scala x: 10 # changes y: 48 line churn api/src/main/scala/com/gu/adapters/http/SwaggerOps.scala x: 13 # changes y: 188 line churn api/src/main/scala/com/gu/adapters/http/params.scala x: 8 # changes y: 76 line churn api/src/main/scala/com/gu/adapters/http/responses.scala x: 14 # changes y: 136 line churn api/src/main/scala/com/gu/adapters/notifications/Notifications.scala x: 16 # changes y: 425 line churn api/src/main/scala/com/gu/adapters/store/Store.scala x: 35 # changes y: 3090 line churn api/src/main/scala/com/gu/auth/AWSCredentials.scala x: 9 # changes y: 70 line churn api/src/main/scala/com/gu/core/models/DeletionEvent.scala x: 3 # changes y: 56 line churn api/src/main/scala/com/gu/core/models/errors.scala x: 11 # changes y: 347 line churn api/src/main/scala/com/gu/core/models/statuses.scala x: 4 # changes y: 51 line churn api/src/main/scala/com/gu/core/store/store.scala x: 26 # changes y: 1579 line churn api/src/test/scala/com/gu/adapters/http/AuthenticationTests.scala x: 30 # changes y: 440 line churn api/src/test/scala/com/gu/adapters/http/AvatarServletTests.scala x: 32 # changes y: 1301 line churn api/src/test/scala/com/gu/core/utils/utils.scala x: 9 # changes y: 80 line churn api/src/test/scala/com/gu/utils/TestHelpers.scala x: 21 # changes y: 685 line churn api/src/main/scala/com/gu/adapters/http/Image.scala x: 12 # changes y: 228 line churn api/src/main/scala/com/gu/adapters/http/Authentication.scala x: 29 # changes y: 943 line churn .github/workflows/check-labels.yaml x: 5 # changes y: 34 line churn .scala-steward.conf x: 2 # changes y: 9 line churn api/src/main/scala/com/gu/adapters/config/Config.scala x: 19 # changes y: 510 line churn api/src/main/scala/com/gu/adapters/queue/SqsDeletionConsumer.scala x: 15 # changes y: 251 line churn api/src/test/scala/com/gu/adapters/notifications/TestPublisher.scala x: 3 # changes y: 26 line churn api/src/test/scala/com/gu/adapters/store/AvatarStoreTest.scala x: 14 # changes y: 456 line churn api/src/test/scala/com/gu/adapters/store/store.scala x: 18 # changes y: 685 line churn api/src/main/scala/ScalatraBootstrap.scala x: 24 # changes y: 180 line churn api/src/main/scala/com/gu/adapters/http/JettyLauncher.scala x: 6 # changes y: 124 line churn api/src/main/webapp/WEB-INF/web.xml x: 4 # changes y: 60 line churn api/src/main/scala/com/gu/adapters/http/IOUtils.scala x: 8 # changes y: 106 line churn api/src/test/scala/com/gu/adapters/queue/DeletionEventTest.scala x: 4 # changes y: 136 line churn api/src/test/scala/com/gu/adapters/queue/SqsDeleteQueueTest.scala x: 16 # changes y: 204 line churn .tool-versions x: 3 # changes y: 6 line churn api/project/build.properties x: 9 # changes y: 22 line churn riff-raff.yaml x: 3 # changes y: 130 line churn cloudformation.yaml x: 2 # changes y: 1150 line churn api/src/main/scala/com/gu/adapters/http/AuthorizedApiServlet.scala x: 5 # changes y: 99 line churn api/src/main/scala/com/gu/core/models/User.scala x: 8 # changes y: 51 line churn api/src/main/scala/com/gu/core/utils/ErrorHandling.scala x: 8 # changes y: 222 line churn api/src/main/resources/application.conf x: 13 # changes y: 143 line churn api/src/main/resources/logback-access.xml x: 5 # changes y: 73 line churn api/src/main/resources/logback.xml x: 7 # changes y: 85 line churn api/src/main/scala/com/gu/logstash/KinesisAdapter.scala x: 3 # changes y: 170 line churn api/src/main/scala/com/gu/logstash/LogStash.scala x: 4 # changes y: 159 line churn api/src/main/scala/com/gu/logstash/LogbackConfig.scala x: 2 # changes y: 249 line churn .github/dependabot.yml x: 1 # changes y: 7 line churn api/src/main/scala/com/gu/core/pekko/Pekko.scala x: 1 # changes y: 20 line churn .gitignore x: 10 # changes y: 11 line churn api/src/test/scala/com/gu/adapters/http/TestCookie.scala x: 12 # changes y: 144 line churn README.md x: 24 # changes y: 492 line churn api/project/assembly.sbt x: 4 # changes y: 6 line churn api/conf/logstash.conf x: 3 # changes y: 136 line churn api/src/main/scala/com/gu/core/models/successes.scala x: 7 # changes y: 48 line churn api/src/main/scala/com/gu/core/store/AvatarUpdateService.scala x: 2 # changes y: 78 line churn api/src/test/scala/com/gu/adapters/store/AvatarUpdateServiceTest.scala x: 2 # changes y: 170 line churn api/src/main/scala/com/gu/adapters/queue/DeletionEventHandler.scala x: 3 # changes y: 198 line churn api/src/test/scala/com/gu/adapters/queue/DeletionEventHandlerTest.scala x: 2 # changes y: 110 line churn api/src/main/scala/play.sc x: 1 # changes y: 104 line churn api/project/build.scala x: 7 # changes y: 372 line churn api/src/test/resources/logback-test.xml x: 2 # changes y: 58 line churn LICENSE x: 2 # changes y: 408 line churn api/src/main/scala/com/gu/adapters/http/Filters.scala x: 8 # changes y: 358 line churn api/src/main/scala/com/gu/adapters/http/ImageValidator.scala x: 8 # changes y: 230 line churn api/src/main/scala/com/gu/adapters/http/Links.scala x: 8 # changes y: 113 line churn api/src/main/scala/com/gu/adapters/utils/ErrorHandling.scala x: 7 # changes y: 326 line churn api/src/main/scala/com/gu/adapters/utils/IO.scala x: 5 # changes y: 209 line churn api/src/main/scala/com/gu/adapters/utils/utils.scala x: 10 # changes y: 520 line churn api/src/main/scala/com/gu/core/Avatar.scala x: 4 # changes y: 80 line churn api/src/main/scala/com/gu/core/errors.scala x: 7 # changes y: 382 line churn api/src/main/scala/com/gu/core/successes.scala x: 5 # changes y: 55 line churn api/src/test/scala/com/gu/adapters/http/store/store.scala x: 9 # changes y: 790 line churn api/src/main/scala/com/gu/adapters/http/FilterUtils.scala x: 1 # changes y: 116 line churn api/src/main/scala/com/gu/core/Config.scala x: 5 # changes y: 152 line churn api/scalastyle-config.xml x: 2 # changes y: 234 line churn project/build.scala x: 10 # changes y: 238 line churn resize-lambda/CreateThumbnail.js x: 9 # changes y: 670 line churn resize-lambda/createLambdaAndRole.sh x: 7 # changes y: 276 line churn resize-lambda/readme.md x: 6 # changes y: 182 line churn scalastyle-config.xml x: 4 # changes y: 585 line churn src/main/resources/application.conf x: 20 # changes y: 258 line churn src/main/scala/ScalatraBootstrap.scala x: 11 # changes y: 75 line churn src/main/scala/com/gu/adapters/http/Authentication.scala x: 4 # changes y: 186 line churn src/main/scala/com/gu/adapters/http/AvatarServlet.scala x: 28 # changes y: 3135 line churn src/main/scala/com/gu/adapters/http/Filters.scala x: 20 # changes y: 522 line churn src/main/scala/com/gu/adapters/http/ImageValidator.scala x: 8 # changes y: 313 line churn src/main/scala/com/gu/adapters/http/JettyLauncher.scala x: 3 # changes y: 69 line churn src/main/scala/com/gu/adapters/http/JsonFormats.scala x: 6 # changes y: 165 line churn src/main/scala/com/gu/adapters/http/Links.scala x: 8 # changes y: 170 line churn src/main/scala/com/gu/adapters/http/SwaggerOps.scala x: 11 # changes y: 285 line churn src/main/scala/com/gu/adapters/http/params.scala x: 15 # changes y: 157 line churn src/main/scala/com/gu/adapters/http/responses.scala x: 12 # changes y: 284 line churn src/main/scala/com/gu/adapters/store/Store.scala x: 34 # changes y: 4743 line churn src/main/scala/com/gu/adapters/utils/utils.scala x: 16 # changes y: 474 line churn src/main/scala/com/gu/core/Avatar.scala x: 7 # changes y: 69 line churn src/main/scala/com/gu/core/Config.scala x: 17 # changes y: 166 line churn src/main/scala/com/gu/core/successes.scala x: 9 # changes y: 48 line churn src/test/scala/com/gu/adapters/http/AuthenticationTests.scala x: 3 # changes y: 104 line churn src/test/scala/com/gu/adapters/http/AvatarServletTests.scala x: 22 # changes y: 1088 line churn src/test/scala/com/gu/adapters/http/ImageValidatorTests.scala x: 6 # changes y: 235 line churn src/test/scala/com/gu/adapters/http/store/store.scala x: 17 # changes y: 786 line churn src/test/scala/com/gu/utils/TestHelpers.scala x: 18 # changes y: 1098 line churn src/main/scala/com/gu/adapters/http/CookieDecoder.scala x: 9 # changes y: 135 line churn src/test/scala/com/gu/adapters/http/CookieDecoderTests.scala x: 5 # changes y: 116 line churn src/main/scala/com/gu/entities/Avatar.scala x: 6 # changes y: 69 line churn src/main/scala/com/gu/entities/User.scala x: 5 # changes y: 13 line churn src/main/scala/com/gu/entities/errors.scala x: 7 # changes y: 120 line churn src/main/scala/com/gu/entities/statuses.scala x: 6 # changes y: 92 line churn src/main/scala/com/gu/adapters/http/Handler.scala x: 1 # changes y: 238 line churn artifact/packages/cfn/cfn.json x: 1 # changes y: 270 line churn deploy.json.bak x: 1 # changes y: 48 line churn src/main/scala/com.gu/AvatarServlet.scala x: 3 # changes y: 366 line churn
4743.0
line churn
  min: 2.0
  average: 271.58
  25th percentile: 49.5
  median: 112.0
  75th percentile: 252.75
  max: 4743.0
0 75.0
# changes
min: 1.0 | average: 8.78 | 25th percentile: 3.0 | median: 5.0 | 75th percentile: 10.0 | max: 75.0

Number of Contributors vs. Line Churn: 40 points

api/src/main/scala/com/gu/adapters/http/AvatarServlet.scala x: 12 # contributors y: 1669 line churn api/src/main/scala/com/gu/adapters/http/AvatarSwagger.scala x: 4 # contributors y: 66 line churn api/src/main/scala/com/gu/adapters/http/Filter.scala x: 6 # contributors y: 314 line churn api/src/main/scala/com/gu/adapters/http/JsonFormats.scala x: 5 # contributors y: 111 line churn api/src/main/scala/com/gu/adapters/http/Req.scala x: 5 # contributors y: 48 line churn api/src/main/scala/com/gu/adapters/http/SwaggerOps.scala x: 5 # contributors y: 188 line churn api/src/main/scala/com/gu/adapters/http/params.scala x: 4 # contributors y: 76 line churn api/src/main/scala/com/gu/adapters/http/responses.scala x: 6 # contributors y: 136 line churn api/src/main/scala/com/gu/adapters/notifications/Notifications.scala x: 7 # contributors y: 425 line churn api/src/main/scala/com/gu/adapters/store/Store.scala x: 11 # contributors y: 3090 line churn api/src/main/scala/com/gu/auth/AWSCredentials.scala x: 5 # contributors y: 70 line churn api/src/main/scala/com/gu/core/models/DeletionEvent.scala x: 2 # contributors y: 56 line churn api/src/main/scala/com/gu/core/models/errors.scala x: 6 # contributors y: 347 line churn api/src/main/scala/com/gu/core/models/statuses.scala x: 3 # contributors y: 51 line churn api/src/main/scala/com/gu/core/store/store.scala x: 8 # contributors y: 1579 line churn api/src/main/scala/com/gu/adapters/http/Image.scala x: 7 # contributors y: 228 line churn api/src/main/scala/com/gu/adapters/http/Authentication.scala x: 11 # contributors y: 943 line churn api/src/main/scala/com/gu/adapters/config/Config.scala x: 9 # contributors y: 510 line churn api/src/main/scala/com/gu/adapters/queue/SqsDeletionConsumer.scala x: 9 # contributors y: 251 line churn api/src/main/scala/ScalatraBootstrap.scala x: 9 # contributors y: 180 line churn api/src/main/scala/com/gu/adapters/http/JettyLauncher.scala x: 3 # contributors y: 124 line churn api/src/main/scala/com/gu/adapters/http/IOUtils.scala x: 3 # contributors y: 106 line churn riff-raff.yaml x: 1 # contributors y: 130 line churn cloudformation.yaml x: 1 # contributors y: 1150 line churn api/src/main/scala/com/gu/adapters/http/AuthorizedApiServlet.scala x: 4 # contributors y: 99 line churn api/src/main/scala/com/gu/core/models/User.scala x: 6 # contributors y: 51 line churn api/src/main/scala/com/gu/core/utils/ErrorHandling.scala x: 4 # contributors y: 222 line churn api/src/main/resources/logback-access.xml x: 2 # contributors y: 73 line churn api/src/main/resources/logback.xml x: 3 # contributors y: 85 line churn .github/dependabot.yml x: 1 # contributors y: 7 line churn api/src/main/scala/com/gu/core/pekko/Pekko.scala x: 1 # contributors y: 20 line churn api/src/main/scala/com/gu/core/utils/utils.scala x: 3 # contributors y: 69 line churn api/src/main/scala/com/gu/core/models/successes.scala x: 3 # contributors y: 48 line churn api/src/main/scala/com/gu/core/models/Avatar.scala x: 4 # contributors y: 52 line churn api/src/main/scala/com/gu/core/models/Filters.scala x: 3 # contributors y: 35 line churn api/src/main/scala/com/gu/core/models/order.scala x: 1 # contributors y: 26 line churn api/src/main/scala/com/gu/adapters/http/Links.scala x: 3 # contributors y: 113 line churn api/scalastyle-config.xml x: 1 # contributors y: 234 line churn
3090.0
line churn
  min: 7.0
  average: 328.25
  25th percentile: 53.0
  median: 108.5
  75th percentile: 246.75
  max: 3090.0
0 12.0
# contributors
min: 1.0 | average: 4.65 | 25th percentile: 3.0 | median: 4.0 | 75th percentile: 6.0 | max: 12.0

File Size vs. Line Churn: 40 points

api/src/main/scala/com/gu/adapters/http/AvatarServlet.scala x: 240 lines of code y: 1669 line churn api/src/main/scala/com/gu/adapters/http/AvatarSwagger.scala x: 21 lines of code y: 66 line churn api/src/main/scala/com/gu/adapters/http/Filter.scala x: 58 lines of code y: 314 line churn api/src/main/scala/com/gu/adapters/http/JsonFormats.scala x: 27 lines of code y: 111 line churn api/src/main/scala/com/gu/adapters/http/Req.scala x: 9 lines of code y: 48 line churn api/src/main/scala/com/gu/adapters/http/SwaggerOps.scala x: 55 lines of code y: 188 line churn api/src/main/scala/com/gu/adapters/http/params.scala x: 6 lines of code y: 76 line churn api/src/main/scala/com/gu/adapters/http/responses.scala x: 39 lines of code y: 136 line churn api/src/main/scala/com/gu/adapters/notifications/Notifications.scala x: 53 lines of code y: 425 line churn api/src/main/scala/com/gu/adapters/store/Store.scala x: 313 lines of code y: 3090 line churn api/src/main/scala/com/gu/auth/AWSCredentials.scala x: 11 lines of code y: 70 line churn api/src/main/scala/com/gu/core/models/DeletionEvent.scala x: 23 lines of code y: 56 line churn api/src/main/scala/com/gu/core/models/errors.scala x: 59 lines of code y: 347 line churn api/src/main/scala/com/gu/core/models/statuses.scala x: 14 lines of code y: 51 line churn api/src/main/scala/com/gu/core/store/store.scala x: 294 lines of code y: 1579 line churn api/src/main/scala/com/gu/adapters/http/Image.scala x: 42 lines of code y: 228 line churn api/src/main/scala/com/gu/adapters/http/Authentication.scala x: 150 lines of code y: 943 line churn api/src/main/scala/com/gu/adapters/config/Config.scala x: 51 lines of code y: 510 line churn api/src/main/scala/com/gu/adapters/queue/SqsDeletionConsumer.scala x: 56 lines of code y: 251 line churn api/src/main/scala/ScalatraBootstrap.scala x: 31 lines of code y: 180 line churn api/src/main/scala/com/gu/adapters/http/JettyLauncher.scala x: 23 lines of code y: 124 line churn api/src/main/scala/com/gu/adapters/http/IOUtils.scala x: 29 lines of code y: 106 line churn riff-raff.yaml x: 59 lines of code y: 130 line churn cloudformation.yaml x: 569 lines of code y: 1150 line churn api/src/main/scala/com/gu/adapters/http/AuthorizedApiServlet.scala x: 15 lines of code y: 99 line churn api/src/main/scala/com/gu/adapters/http/ServletWithErrorHandling.scala x: 13 lines of code y: 98 line churn api/src/main/scala/com/gu/core/models/User.scala x: 11 lines of code y: 51 line churn api/src/main/scala/com/gu/core/utils/ErrorHandling.scala x: 40 lines of code y: 222 line churn api/src/main/resources/logback-access.xml x: 26 lines of code y: 73 line churn api/src/main/resources/logback.xml x: 25 lines of code y: 85 line churn .github/dependabot.yml x: 6 lines of code y: 7 line churn api/src/main/scala/com/gu/core/pekko/Pekko.scala x: 15 lines of code y: 20 line churn api/src/main/scala/com/gu/adapters/config/IdentityConfig.scala x: 17 lines of code y: 50 line churn api/src/main/scala/com/gu/core/utils/utils.scala x: 15 lines of code y: 69 line churn api/src/main/scala/com/gu/core/models/successes.scala x: 15 lines of code y: 48 line churn api/src/main/scala/com/gu/core/models/Filters.scala x: 8 lines of code y: 35 line churn api/src/main/scala/com/gu/core/models/order.scala x: 10 lines of code y: 26 line churn api/src/main/scala/com/gu/adapters/http/Links.scala x: 18 lines of code y: 113 line churn api/scalastyle-config.xml x: 117 lines of code y: 234 line churn
3090.0
line churn
  min: 7.0
  average: 328.25
  25th percentile: 53.0
  median: 108.5
  75th percentile: 246.75
  max: 3090.0
0 569.0
lines of code
min: 6.0 | average: 64.93 | 25th percentile: 14.25 | median: 25.5 | 75th percentile: 55.75 | max: 569.0