Overview
File Change Frequency Overall
  • There are 18 files with 681 lines of code.
    • 1 file changed more than 100 times (27 lines of code)
    • 0 files changed 51-100 times (0 lines of code)
    • 0 files changed 21-50 times (0 lines of code)
    • 0 files changed 6-20 times (0 lines of code)
    • 17 files changed 1-5 times (654 lines of code)
3% | 0% | 0% | 0% | 96%
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 18 files with 681 lines of code.
    • 1 file changed by more than 25 contributors (27 lines of code)
    • 0 files changed by 11-25 contributors (0 lines of code)
    • 0 files changed by 6-10 contributors (0 lines of code)
    • 16 files changed by 2-5 contributors (650 lines of code)
    • 1 file changed by 1 contributor (4 lines of code)
3% | 0% | 0% | 95% | <1%
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, sbt, txt, yml, html, yaml, gitignore, md, json, properties
File Change Frequency per Extension
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
scala4% | 0% | 0% | 0% | 95%
html0% | 0% | 0% | 0% | 100%
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
project100% | 0% | 0% | 0% | 0%
play-v300% | 0% | 0% | 0% | 100%
.github0% | 0% | 0% | 0% | 100%
.devcontainer0% | 0% | 0% | 0% | 100%
Most Frequently Changed Files (Top 18)

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
27 - 2018-08-13 2026-10-01 131 26 +497 / -391 roberto.tyley 108136057+gu-scala-steward-...
auth.scala
in play-v30/src/main/scala/com/gu/googleauth
204 12 2025-12-31 2026-04-01 3 3 +574 / -13 roberto.tyley tom.wey
ServiceAccountHelper.scala
in play-v30/src/main/scala/com/gu/googleauth
8 - 2025-12-31 2026-01-06 2 2 +36 / -0 roberto.tyley 52038+rtyley
AppLoader.scala
in play-v30/src/sbt-test/example/webapp/app
10 1 2025-12-31 2026-01-06 2 2 +26 / -0 roberto.tyley 52038+rtyley
index.scala.html
in play-v30/src/sbt-test/example/webapp/app/views
11 - 2025-12-31 2026-01-06 2 2 +24 / -0 roberto.tyley 52038+rtyley
TwoFactorAuthChecker.scala
in play-v30/src/main/scala/com/gu/googleauth
11 1 2025-12-31 2026-01-06 2 2 +44 / -0 roberto.tyley 52038+rtyley
DirectoryService.scala
in play-v30/src/main/scala/com/gu/googleauth/internal
15 1 2025-12-31 2026-01-06 2 2 +34 / -0 roberto.tyley 52038+rtyley
login.scala.html
in play-v30/src/sbt-test/example/webapp/app/views
17 - 2025-12-31 2026-01-06 2 2 +36 / -0 roberto.tyley 52038+rtyley
Application.scala
in play-v30/src/sbt-test/example/webapp/app/controllers
17 3 2025-12-31 2026-01-06 2 2 +52 / -0 roberto.tyley 52038+rtyley
authenticated.scala.html
in play-v30/src/sbt-test/example/webapp/app/views
24 - 2025-12-31 2026-01-06 2 2 +48 / -0 roberto.tyley 52038+rtyley
Login.scala
in play-v30/src/sbt-test/example/webapp/app/controllers
25 - 2025-12-31 2026-01-06 2 2 +92 / -0 roberto.tyley 52038+rtyley
filters.scala
in play-v30/src/main/scala/com/gu/googleauth
28 1 2025-12-31 2026-01-06 2 2 +68 / -0 roberto.tyley 52038+rtyley
groups.scala
in play-v30/src/main/scala/com/gu/googleauth
31 2 2025-12-31 2026-01-06 2 2 +116 / -0 roberto.tyley 52038+rtyley
AppComponents.scala
in play-v30/src/sbt-test/example/webapp/app
35 - 2025-12-31 2026-01-06 2 2 +88 / -0 roberto.tyley 52038+rtyley
model.scala
in play-v30/src/main/scala/com/gu/googleauth
49 3 2025-12-31 2026-01-06 2 2 +114 / -0 roberto.tyley 52038+rtyley
actions.scala
in play-v30/src/main/scala/com/gu/googleauth
159 13 2025-12-31 2026-01-06 2 2 +498 / -0 roberto.tyley 52038+rtyley
devenv.yaml
in .devcontainer
4 - 2026-05-12 2026-05-12 1 1 +14 / -0 1722550+kelvin-chappell 1722550+kelvin-chappell
dependabot.yml
in .github
6 - 2025-07-03 2025-07-03 1 2 +12 / -0 52038+rtyley roberto.tyley
Files With Most Churn (Top 18)
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
27 - 2018-08-13 2026-10-01 131 26 +497 / -391 roberto.tyley 108136057+gu-scala-steward-...
auth.scala
in play-v30/src/main/scala/com/gu/googleauth
204 12 2025-12-31 2026-04-01 3 3 +574 / -13 roberto.tyley tom.wey
actions.scala
in play-v30/src/main/scala/com/gu/googleauth
159 13 2025-12-31 2026-01-06 2 2 +498 / -0 roberto.tyley 52038+rtyley
groups.scala
in play-v30/src/main/scala/com/gu/googleauth
31 2 2025-12-31 2026-01-06 2 2 +116 / -0 roberto.tyley 52038+rtyley
model.scala
in play-v30/src/main/scala/com/gu/googleauth
49 3 2025-12-31 2026-01-06 2 2 +114 / -0 roberto.tyley 52038+rtyley
Login.scala
in play-v30/src/sbt-test/example/webapp/app/controllers
25 - 2025-12-31 2026-01-06 2 2 +92 / -0 roberto.tyley 52038+rtyley
AppComponents.scala
in play-v30/src/sbt-test/example/webapp/app
35 - 2025-12-31 2026-01-06 2 2 +88 / -0 roberto.tyley 52038+rtyley
filters.scala
in play-v30/src/main/scala/com/gu/googleauth
28 1 2025-12-31 2026-01-06 2 2 +68 / -0 roberto.tyley 52038+rtyley
Application.scala
in play-v30/src/sbt-test/example/webapp/app/controllers
17 3 2025-12-31 2026-01-06 2 2 +52 / -0 roberto.tyley 52038+rtyley
authenticated.scala.html
in play-v30/src/sbt-test/example/webapp/app/views
24 - 2025-12-31 2026-01-06 2 2 +48 / -0 roberto.tyley 52038+rtyley
TwoFactorAuthChecker.scala
in play-v30/src/main/scala/com/gu/googleauth
11 1 2025-12-31 2026-01-06 2 2 +44 / -0 roberto.tyley 52038+rtyley
ServiceAccountHelper.scala
in play-v30/src/main/scala/com/gu/googleauth
8 - 2025-12-31 2026-01-06 2 2 +36 / -0 roberto.tyley 52038+rtyley
login.scala.html
in play-v30/src/sbt-test/example/webapp/app/views
17 - 2025-12-31 2026-01-06 2 2 +36 / -0 roberto.tyley 52038+rtyley
DirectoryService.scala
in play-v30/src/main/scala/com/gu/googleauth/internal
15 1 2025-12-31 2026-01-06 2 2 +34 / -0 roberto.tyley 52038+rtyley
AppLoader.scala
in play-v30/src/sbt-test/example/webapp/app
10 1 2025-12-31 2026-01-06 2 2 +26 / -0 roberto.tyley 52038+rtyley
index.scala.html
in play-v30/src/sbt-test/example/webapp/app/views
11 - 2025-12-31 2026-01-06 2 2 +24 / -0 roberto.tyley 52038+rtyley
devenv.yaml
in .devcontainer
4 - 2026-05-12 2026-05-12 1 1 +14 / -0 1722550+kelvin-chappell 1722550+kelvin-chappell
dependabot.yml
in .github
6 - 2025-07-03 2025-07-03 1 2 +12 / -0 52038+rtyley roberto.tyley
Files With Most Contributors (Top 18)
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
27 - 2018-08-13 2026-10-01 131 26 +497 / -391 roberto.tyley 108136057+gu-scala-steward-...
auth.scala
in play-v30/src/main/scala/com/gu/googleauth
204 12 2025-12-31 2026-04-01 3 3 +574 / -13 roberto.tyley tom.wey
model.scala
in play-v30/src/main/scala/com/gu/googleauth
49 3 2025-12-31 2026-01-06 2 2 +114 / -0 roberto.tyley 52038+rtyley
ServiceAccountHelper.scala
in play-v30/src/main/scala/com/gu/googleauth
8 - 2025-12-31 2026-01-06 2 2 +36 / -0 roberto.tyley 52038+rtyley
DirectoryService.scala
in play-v30/src/main/scala/com/gu/googleauth/internal
15 1 2025-12-31 2026-01-06 2 2 +34 / -0 roberto.tyley 52038+rtyley
groups.scala
in play-v30/src/main/scala/com/gu/googleauth
31 2 2025-12-31 2026-01-06 2 2 +116 / -0 roberto.tyley 52038+rtyley
TwoFactorAuthChecker.scala
in play-v30/src/main/scala/com/gu/googleauth
11 1 2025-12-31 2026-01-06 2 2 +44 / -0 roberto.tyley 52038+rtyley
filters.scala
in play-v30/src/main/scala/com/gu/googleauth
28 1 2025-12-31 2026-01-06 2 2 +68 / -0 roberto.tyley 52038+rtyley
actions.scala
in play-v30/src/main/scala/com/gu/googleauth
159 13 2025-12-31 2026-01-06 2 2 +498 / -0 roberto.tyley 52038+rtyley
AppComponents.scala
in play-v30/src/sbt-test/example/webapp/app
35 - 2025-12-31 2026-01-06 2 2 +88 / -0 roberto.tyley 52038+rtyley
Login.scala
in play-v30/src/sbt-test/example/webapp/app/controllers
25 - 2025-12-31 2026-01-06 2 2 +92 / -0 roberto.tyley 52038+rtyley
Application.scala
in play-v30/src/sbt-test/example/webapp/app/controllers
17 3 2025-12-31 2026-01-06 2 2 +52 / -0 roberto.tyley 52038+rtyley
authenticated.scala.html
in play-v30/src/sbt-test/example/webapp/app/views
24 - 2025-12-31 2026-01-06 2 2 +48 / -0 roberto.tyley 52038+rtyley
login.scala.html
in play-v30/src/sbt-test/example/webapp/app/views
17 - 2025-12-31 2026-01-06 2 2 +36 / -0 roberto.tyley 52038+rtyley
index.scala.html
in play-v30/src/sbt-test/example/webapp/app/views
11 - 2025-12-31 2026-01-06 2 2 +24 / -0 roberto.tyley 52038+rtyley
AppLoader.scala
in play-v30/src/sbt-test/example/webapp/app
10 1 2025-12-31 2026-01-06 2 2 +26 / -0 roberto.tyley 52038+rtyley
dependabot.yml
in .github
6 - 2025-07-03 2025-07-03 1 2 +12 / -0 52038+rtyley roberto.tyley
devenv.yaml
in .devcontainer
4 - 2026-05-12 2026-05-12 1 1 +14 / -0 1722550+kelvin-chappell 1722550+kelvin-chappell
Files With Least Contributors (Top 18)
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
devenv.yaml
in .devcontainer
4 - 2026-05-12 2026-05-12 1 1 +14 / -0 1722550+kelvin-chappell 1722550+kelvin-chappell
actions.scala
in play-v30/src/main/scala/com/gu/googleauth
159 13 2025-12-31 2026-01-06 2 2 +498 / -0 roberto.tyley 52038+rtyley
model.scala
in play-v30/src/main/scala/com/gu/googleauth
49 3 2025-12-31 2026-01-06 2 2 +114 / -0 roberto.tyley 52038+rtyley
AppComponents.scala
in play-v30/src/sbt-test/example/webapp/app
35 - 2025-12-31 2026-01-06 2 2 +88 / -0 roberto.tyley 52038+rtyley
groups.scala
in play-v30/src/main/scala/com/gu/googleauth
31 2 2025-12-31 2026-01-06 2 2 +116 / -0 roberto.tyley 52038+rtyley
filters.scala
in play-v30/src/main/scala/com/gu/googleauth
28 1 2025-12-31 2026-01-06 2 2 +68 / -0 roberto.tyley 52038+rtyley
Login.scala
in play-v30/src/sbt-test/example/webapp/app/controllers
25 - 2025-12-31 2026-01-06 2 2 +92 / -0 roberto.tyley 52038+rtyley
authenticated.scala.html
in play-v30/src/sbt-test/example/webapp/app/views
24 - 2025-12-31 2026-01-06 2 2 +48 / -0 roberto.tyley 52038+rtyley
Application.scala
in play-v30/src/sbt-test/example/webapp/app/controllers
17 3 2025-12-31 2026-01-06 2 2 +52 / -0 roberto.tyley 52038+rtyley
login.scala.html
in play-v30/src/sbt-test/example/webapp/app/views
17 - 2025-12-31 2026-01-06 2 2 +36 / -0 roberto.tyley 52038+rtyley
DirectoryService.scala
in play-v30/src/main/scala/com/gu/googleauth/internal
15 1 2025-12-31 2026-01-06 2 2 +34 / -0 roberto.tyley 52038+rtyley
TwoFactorAuthChecker.scala
in play-v30/src/main/scala/com/gu/googleauth
11 1 2025-12-31 2026-01-06 2 2 +44 / -0 roberto.tyley 52038+rtyley
index.scala.html
in play-v30/src/sbt-test/example/webapp/app/views
11 - 2025-12-31 2026-01-06 2 2 +24 / -0 roberto.tyley 52038+rtyley
AppLoader.scala
in play-v30/src/sbt-test/example/webapp/app
10 1 2025-12-31 2026-01-06 2 2 +26 / -0 roberto.tyley 52038+rtyley
ServiceAccountHelper.scala
in play-v30/src/main/scala/com/gu/googleauth
8 - 2025-12-31 2026-01-06 2 2 +36 / -0 roberto.tyley 52038+rtyley
dependabot.yml
in .github
6 - 2025-07-03 2025-07-03 1 2 +12 / -0 52038+rtyley roberto.tyley
auth.scala
in play-v30/src/main/scala/com/gu/googleauth
204 12 2025-12-31 2026-04-01 3 3 +574 / -13 roberto.tyley tom.wey
27 - 2018-08-13 2026-10-01 131 26 +497 / -391 roberto.tyley 108136057+gu-scala-steward-...
Correlations

File Size vs. Number of Changes: 18 points

project/Dependencies.scala x: 27 lines of code y: 131 # changes .devcontainer/devenv.yaml x: 4 lines of code y: 1 # changes play-v30/src/main/scala/com/gu/googleauth/auth.scala x: 204 lines of code y: 3 # changes play-v30/src/main/scala/com/gu/googleauth/ServiceAccountHelper.scala x: 8 lines of code y: 2 # changes play-v30/src/main/scala/com/gu/googleauth/TwoFactorAuthChecker.scala x: 11 lines of code y: 2 # changes play-v30/src/main/scala/com/gu/googleauth/actions.scala x: 159 lines of code y: 2 # changes play-v30/src/main/scala/com/gu/googleauth/filters.scala x: 28 lines of code y: 2 # changes play-v30/src/main/scala/com/gu/googleauth/groups.scala x: 31 lines of code y: 2 # changes play-v30/src/main/scala/com/gu/googleauth/internal/DirectoryService.scala x: 15 lines of code y: 2 # changes play-v30/src/main/scala/com/gu/googleauth/model.scala x: 49 lines of code y: 2 # changes play-v30/src/sbt-test/example/webapp/app/AppComponents.scala x: 35 lines of code y: 2 # changes play-v30/src/sbt-test/example/webapp/app/AppLoader.scala x: 10 lines of code y: 2 # changes play-v30/src/sbt-test/example/webapp/app/controllers/Application.scala x: 17 lines of code y: 2 # changes play-v30/src/sbt-test/example/webapp/app/controllers/Login.scala x: 25 lines of code y: 2 # changes play-v30/src/sbt-test/example/webapp/app/views/authenticated.scala.html x: 24 lines of code y: 2 # changes .github/dependabot.yml x: 6 lines of code y: 1 # changes
131.0
# changes
  min: 1.0
  average: 9.11
  25th percentile: 2.0
  median: 2.0
  75th percentile: 2.0
  max: 131.0
0 204.0
lines of code
min: 4.0 | average: 37.83 | 25th percentile: 10.75 | median: 20.5 | 75th percentile: 32.0 | max: 204.0

Number of Contributors vs. Number of Changes: 18 points

project/Dependencies.scala x: 26 # contributors y: 131 # changes .devcontainer/devenv.yaml x: 1 # contributors y: 1 # changes play-v30/src/main/scala/com/gu/googleauth/auth.scala x: 3 # contributors y: 3 # changes play-v30/src/main/scala/com/gu/googleauth/ServiceAccountHelper.scala x: 2 # contributors y: 2 # changes .github/dependabot.yml x: 2 # contributors y: 1 # changes
131.0
# changes
  min: 1.0
  average: 9.11
  25th percentile: 2.0
  median: 2.0
  75th percentile: 2.0
  max: 131.0
0 26.0
# contributors
min: 1.0 | average: 3.33 | 25th percentile: 2.0 | median: 2.0 | 75th percentile: 2.0 | max: 26.0

Number of Contributors vs. File Size: 18 points

project/Dependencies.scala x: 26 # contributors y: 27 lines of code .devcontainer/devenv.yaml x: 1 # contributors y: 4 lines of code play-v30/src/main/scala/com/gu/googleauth/auth.scala x: 3 # contributors y: 204 lines of code play-v30/src/main/scala/com/gu/googleauth/ServiceAccountHelper.scala x: 2 # contributors y: 8 lines of code play-v30/src/main/scala/com/gu/googleauth/TwoFactorAuthChecker.scala x: 2 # contributors y: 11 lines of code play-v30/src/main/scala/com/gu/googleauth/actions.scala x: 2 # contributors y: 159 lines of code play-v30/src/main/scala/com/gu/googleauth/filters.scala x: 2 # contributors y: 28 lines of code play-v30/src/main/scala/com/gu/googleauth/groups.scala x: 2 # contributors y: 31 lines of code play-v30/src/main/scala/com/gu/googleauth/internal/DirectoryService.scala x: 2 # contributors y: 15 lines of code play-v30/src/main/scala/com/gu/googleauth/model.scala x: 2 # contributors y: 49 lines of code play-v30/src/sbt-test/example/webapp/app/AppComponents.scala x: 2 # contributors y: 35 lines of code play-v30/src/sbt-test/example/webapp/app/AppLoader.scala x: 2 # contributors y: 10 lines of code play-v30/src/sbt-test/example/webapp/app/controllers/Application.scala x: 2 # contributors y: 17 lines of code play-v30/src/sbt-test/example/webapp/app/controllers/Login.scala x: 2 # contributors y: 25 lines of code play-v30/src/sbt-test/example/webapp/app/views/authenticated.scala.html x: 2 # contributors y: 24 lines of code .github/dependabot.yml x: 2 # contributors y: 6 lines of code
204.0
lines of code
  min: 4.0
  average: 37.83
  25th percentile: 10.75
  median: 20.5
  75th percentile: 32.0
  max: 204.0
0 26.0
# contributors
min: 1.0 | average: 3.33 | 25th percentile: 2.0 | median: 2.0 | 75th percentile: 2.0 | max: 26.0

Number of Changes vs. Line Churn: 203 points

version.sbt x: 117 # changes y: 554 line churn project/Dependencies.scala x: 131 # changes y: 888 line churn build.sbt x: 174 # changes y: 1438 line churn .github/workflows/ci.yml x: 10 # changes y: 128 line churn .github/workflows/sbt-dependency-graph.yaml x: 14 # changes y: 120 line churn project/build.properties x: 70 # changes y: 159 line churn project/plugins.sbt x: 41 # changes y: 178 line churn play-v30/src/test/scala/com/gu/googleauth/TwoFactorAuthCheckerCLITester.scala x: 3 # changes y: 106 line churn .devcontainer/.gitignore x: 1 # changes y: 2 line churn .devcontainer/README.md x: 1 # changes y: 66 line churn .devcontainer/devenv.yaml x: 1 # changes y: 14 line churn .devcontainer/shared/devcontainer.json x: 1 # changes y: 40 line churn .gitignore x: 5 # changes y: 15 line churn .tool-versions x: 3 # changes y: 8 line churn .github/workflows/check-labels.yaml x: 7 # changes y: 25 line churn play-v30/src/main/scala/com/gu/googleauth/auth.scala x: 3 # changes y: 587 line churn play-v30/src/test/scala/com/gu/googleauth/AntiForgeryCheckerTest.scala x: 3 # changes y: 201 line churn .scala-steward.conf x: 4 # changes y: 21 line churn README.md x: 50 # changes y: 718 line churn play-v29/src-akka/com/gu/googleauth/internal/AkkaOrPekko.scala x: 3 # changes y: 20 line churn play-v29/src/main/scala/com/gu/googleauth/ServiceAccountHelper.scala x: 3 # changes y: 72 line churn play-v29/src/main/scala/com/gu/googleauth/TwoFactorAuthChecker.scala x: 3 # changes y: 88 line churn play-v29/src/main/scala/com/gu/googleauth/actions.scala x: 5 # changes y: 1016 line churn play-v29/src/main/scala/com/gu/googleauth/auth.scala x: 5 # changes y: 1104 line churn play-v29/src/main/scala/com/gu/googleauth/filters.scala x: 3 # changes y: 136 line churn play-v29/src/main/scala/com/gu/googleauth/groups.scala x: 4 # changes y: 219 line churn play-v29/src/main/scala/com/gu/googleauth/internal/DirectoryService.scala x: 3 # changes y: 68 line churn play-v29/src/main/scala/com/gu/googleauth/model.scala x: 3 # changes y: 228 line churn play-v29/src/sbt-test/example/webapp/app/AppComponents.scala x: 4 # changes y: 212 line churn play-v29/src/sbt-test/example/webapp/app/AppLoader.scala x: 3 # changes y: 52 line churn play-v29/src/sbt-test/example/webapp/app/controllers/Application.scala x: 4 # changes y: 108 line churn play-v29/src/sbt-test/example/webapp/app/controllers/Login.scala x: 4 # changes y: 200 line churn play-v29/src/sbt-test/example/webapp/app/views/authenticated.scala.html x: 4 # changes y: 104 line churn play-v29/src/sbt-test/example/webapp/app/views/index.scala.html x: 4 # changes y: 60 line churn play-v29/src/sbt-test/example/webapp/app/views/login.scala.html x: 4 # changes y: 84 line churn play-v29/src/sbt-test/example/webapp/build.sbt x: 11 # changes y: 62 line churn play-v29/src/sbt-test/example/webapp/conf/routes x: 3 # changes y: 32 line churn play-v29/src/sbt-test/example/webapp/project/build.properties x: 4 # changes y: 8 line churn play-v29/src/test/scala/com/gu/googleauth/AntiForgeryCheckerTest.scala x: 5 # changes y: 368 line churn play-v29/src/test/scala/com/gu/googleauth/GoogleAuthTest.scala x: 3 # changes y: 180 line churn play-v29/src/test/scala/com/gu/googleauth/TwoFactorAuthCheckerCLITester.scala x: 3 # changes y: 204 line churn play-v30/src x: 6 # changes y: 12 line churn play-v30/src-pekko/com/gu/googleauth/internal/AkkaOrPekko.scala x: 4 # changes y: 16 line churn play-v30/src/main/scala/com/gu/googleauth/ServiceAccountHelper.scala x: 2 # changes y: 36 line churn play-v30/src/main/scala/com/gu/googleauth/TwoFactorAuthChecker.scala x: 2 # changes y: 44 line churn play-v30/src/main/scala/com/gu/googleauth/actions.scala x: 2 # changes y: 498 line churn play-v30/src/main/scala/com/gu/googleauth/filters.scala x: 2 # changes y: 68 line churn play-v30/src/main/scala/com/gu/googleauth/groups.scala x: 2 # changes y: 116 line churn play-v30/src/sbt-test/example/webapp/app/AppComponents.scala x: 2 # changes y: 88 line churn play-v30/src/sbt-test/example/webapp/app/AppLoader.scala x: 2 # changes y: 26 line churn play-v30/src/sbt-test/example/webapp/app/controllers/Application.scala x: 2 # changes y: 52 line churn play-v30/src/sbt-test/example/webapp/app/controllers/Login.scala x: 2 # changes y: 92 line churn play-v30/src/sbt-test/example/webapp/conf/routes x: 2 # changes y: 16 line churn play-v30/src/sbt-test/example/webapp/project/build.properties x: 2 # changes y: 2 line churn .github/workflows/release.yml x: 8 # changes y: 46 line churn .github/dependabot.yml x: 1 # changes y: 12 line churn .github/workflows/snyk.yml x: 2 # changes y: 72 line churn play-v28/src/main/scala/com/gu/googleauth/actions.scala x: 2 # changes y: 1000 line churn play-v28/src/main/scala/com/gu/googleauth/auth.scala x: 2 # changes y: 1028 line churn play-v28/src/main/scala/com/gu/googleauth/filters.scala x: 2 # changes y: 136 line churn play-v28/src/main/scala/com/gu/googleauth/groups.scala x: 2 # changes y: 148 line churn play-v28/src/main/scala/com/gu/googleauth/model.scala x: 2 # changes y: 228 line churn play-v28/src/sbt-test/example/webapp/app/AppComponents.scala x: 2 # changes y: 176 line churn play-v28/src/sbt-test/example/webapp/app/controllers/Application.scala x: 2 # changes y: 108 line churn play-v28/src/sbt-test/example/webapp/app/controllers/Login.scala x: 2 # changes y: 184 line churn play-v28/src/sbt-test/example/webapp/conf/routes x: 2 # changes y: 32 line churn play-v28/src/sbt-test/example/webapp/test x: 2 # changes y: 12 line churn play-v28/src/test/scala/com/gu/googleauth/AntiForgeryCheckerTest.scala x: 2 # changes y: 360 line churn play-v28/src/test/scala/com/gu/googleauth/TwoFactorAuthCheckerCLITester.scala x: 2 # changes y: 204 line churn play-v27/src/main/scala/com/gu/googleauth/ServiceAccountHelper.scala x: 2 # changes y: 54 line churn play-v27/src/main/scala/com/gu/googleauth/actions.scala x: 7 # changes y: 1023 line churn play-v27/src/main/scala/com/gu/googleauth/auth.scala x: 7 # changes y: 1047 line churn play-v27/src/main/scala/com/gu/googleauth/filters.scala x: 5 # changes y: 144 line churn play-v27/src/main/scala/com/gu/googleauth/groups.scala x: 10 # changes y: 398 line churn play-v27/src/main/scala/com/gu/googleauth/model.scala x: 5 # changes y: 256 line churn play-v27/src/sbt-test/example/webapp/app/AppComponents.scala x: 4 # changes y: 180 line churn play-v27/src/sbt-test/example/webapp/app/controllers/Login.scala x: 3 # changes y: 184 line churn play-v27/src/sbt-test/example/webapp/build.sbt x: 6 # changes y: 48 line churn play-v27/src/sbt-test/example/webapp/project/build.properties x: 3 # changes y: 4 line churn play-v27/src/test/scala/com/gu/googleauth/AntiForgeryCheckerTest.scala x: 6 # changes y: 416 line churn play-v27/src/test/scala/com/gu/googleauth/GoogleAuthTest.scala x: 6 # changes y: 1120 line churn .travis.yml x: 8 # changes y: 64 line churn play-v26/src/main/scala/com/gu/googleauth/actions.scala x: 4 # changes y: 960 line churn play-v26/src/main/scala/com/gu/googleauth/auth.scala x: 8 # changes y: 1158 line churn play-v26/src/main/scala/com/gu/googleauth/filters.scala x: 4 # changes y: 132 line churn play-v26/src/main/scala/com/gu/googleauth/groups.scala x: 4 # changes y: 252 line churn play-v26/src/main/scala/com/gu/googleauth/model.scala x: 4 # changes y: 228 line churn play-v26/src/sbt-test/example/webapp/app/AppLoader.scala x: 4 # changes y: 52 line churn play-v26/src/sbt-test/example/webapp/app/controllers/Login.scala x: 4 # changes y: 184 line churn play-v26/src/sbt-test/example/webapp/app/views/login.scala.html x: 4 # changes y: 72 line churn play-v26/src/sbt-test/example/webapp/build.sbt x: 4 # changes y: 40 line churn play-v26/src/sbt-test/example/webapp/conf/application.conf x: 4 # changes y: 68 line churn play-v26/src/sbt-test/example/webapp/conf/routes x: 4 # changes y: 32 line churn play-v26/src/sbt-test/example/webapp/project/build.properties x: 4 # changes y: 4 line churn play-v26/src/test/scala/com/gu/googleauth/AntiForgeryCheckerTest.scala x: 4 # changes y: 352 line churn play-v26/src/test/scala/com/gu/googleauth/GoogleAuthTest.scala x: 6 # changes y: 1112 line churn src/main/scala/com/gu/googleauth/actions.scala x: 6 # changes y: 1164 line churn src/main/scala/com/gu/googleauth/auth.scala x: 10 # changes y: 1278 line churn src/main/scala/com/gu/googleauth/model.scala x: 6 # changes y: 326 line churn src/sbt-test/example/webapp/project/plugins.sbt x: 5 # changes y: 24 line churn src/test/scala/com/gu/googleauth/AntiForgeryCheckerTest.scala x: 8 # changes y: 368 line churn example/app/AppComponents.scala x: 6 # changes y: 226 line churn example/app/controllers/Application.scala x: 11 # changes y: 172 line churn example/app/controllers/Login.scala x: 15 # changes y: 505 line churn example/app/views/authenticated.scala.html x: 8 # changes y: 110 line churn example/app/views/index.scala.html x: 8 # changes y: 54 line churn example/app/views/login.scala.html x: 5 # changes y: 62 line churn example/build.sbt x: 19 # changes y: 100 line churn example/conf/application.conf x: 11 # changes y: 71 line churn example/conf/routes x: 6 # changes y: 29 line churn example/project/build.properties x: 11 # changes y: 23 line churn example/project/plugins.sbt x: 10 # changes y: 37 line churn module/build.sbt x: 26 # changes y: 385 line churn module/project/Dependencies.scala x: 11 # changes y: 178 line churn module/project/build.properties x: 11 # changes y: 27 line churn module/project/plugins.sbt x: 9 # changes y: 45 line churn module/src/main/scala/com/gu/googleauth/actions.scala x: 24 # changes y: 1651 line churn module/src/main/scala/com/gu/googleauth/auth.scala x: 21 # changes y: 1245 line churn module/src/main/scala/com/gu/googleauth/filters.scala x: 5 # changes y: 160 line churn module/src/main/scala/com/gu/googleauth/groups.scala x: 9 # changes y: 394 line churn module/src/main/scala/com/gu/googleauth/model.scala x: 9 # changes y: 254 line churn module/src/test/scala/com/gu/googleauth/AntiForgeryCheckerTest.scala x: 4 # changes y: 256 line churn module/src/test/scala/com/gu/googleauth/GoogleAuthTest.scala x: 4 # changes y: 154 line churn module/version.sbt x: 33 # changes y: 165 line churn example/app/auth/AuthActions.scala x: 7 # changes y: 166 line churn module/src/main/scala/com/gu/googleauth/PlayGoogleAuthHelpers.scala x: 2 # changes y: 152 line churn project/GoogleAuthBuild.scala x: 1 # changes y: 127 line churn
1651.0
line churn
  min: 2.0
  average: 190.55
  25th percentile: 32.0
  median: 72.0
  75th percentile: 184.0
  max: 1651.0
0 174.0
# changes
min: 1.0 | average: 7.28 | 25th percentile: 2.0 | median: 4.0 | 75th percentile: 5.0 | max: 174.0

Number of Contributors vs. Line Churn: 18 points

project/Dependencies.scala x: 26 # contributors y: 888 line churn .devcontainer/devenv.yaml x: 1 # contributors y: 14 line churn play-v30/src/main/scala/com/gu/googleauth/auth.scala x: 3 # contributors y: 587 line churn play-v30/src/main/scala/com/gu/googleauth/ServiceAccountHelper.scala x: 2 # contributors y: 36 line churn play-v30/src/main/scala/com/gu/googleauth/TwoFactorAuthChecker.scala x: 2 # contributors y: 44 line churn play-v30/src/main/scala/com/gu/googleauth/actions.scala x: 2 # contributors y: 498 line churn play-v30/src/main/scala/com/gu/googleauth/filters.scala x: 2 # contributors y: 68 line churn play-v30/src/main/scala/com/gu/googleauth/groups.scala x: 2 # contributors y: 116 line churn play-v30/src/main/scala/com/gu/googleauth/internal/DirectoryService.scala x: 2 # contributors y: 34 line churn play-v30/src/main/scala/com/gu/googleauth/model.scala x: 2 # contributors y: 114 line churn play-v30/src/sbt-test/example/webapp/app/AppComponents.scala x: 2 # contributors y: 88 line churn play-v30/src/sbt-test/example/webapp/app/AppLoader.scala x: 2 # contributors y: 26 line churn play-v30/src/sbt-test/example/webapp/app/controllers/Application.scala x: 2 # contributors y: 52 line churn play-v30/src/sbt-test/example/webapp/app/controllers/Login.scala x: 2 # contributors y: 92 line churn play-v30/src/sbt-test/example/webapp/app/views/authenticated.scala.html x: 2 # contributors y: 48 line churn play-v30/src/sbt-test/example/webapp/app/views/index.scala.html x: 2 # contributors y: 24 line churn .github/dependabot.yml x: 2 # contributors y: 12 line churn
888.0
line churn
  min: 12.0
  average: 154.28
  25th percentile: 32.0
  median: 50.0
  75th percentile: 114.5
  max: 888.0
0 26.0
# contributors
min: 1.0 | average: 3.33 | 25th percentile: 2.0 | median: 2.0 | 75th percentile: 2.0 | max: 26.0

File Size vs. Line Churn: 18 points

project/Dependencies.scala x: 27 lines of code y: 888 line churn .devcontainer/devenv.yaml x: 4 lines of code y: 14 line churn play-v30/src/main/scala/com/gu/googleauth/auth.scala x: 204 lines of code y: 587 line churn play-v30/src/main/scala/com/gu/googleauth/ServiceAccountHelper.scala x: 8 lines of code y: 36 line churn play-v30/src/main/scala/com/gu/googleauth/TwoFactorAuthChecker.scala x: 11 lines of code y: 44 line churn play-v30/src/main/scala/com/gu/googleauth/actions.scala x: 159 lines of code y: 498 line churn play-v30/src/main/scala/com/gu/googleauth/filters.scala x: 28 lines of code y: 68 line churn play-v30/src/main/scala/com/gu/googleauth/groups.scala x: 31 lines of code y: 116 line churn play-v30/src/main/scala/com/gu/googleauth/internal/DirectoryService.scala x: 15 lines of code y: 34 line churn play-v30/src/main/scala/com/gu/googleauth/model.scala x: 49 lines of code y: 114 line churn play-v30/src/sbt-test/example/webapp/app/AppComponents.scala x: 35 lines of code y: 88 line churn play-v30/src/sbt-test/example/webapp/app/AppLoader.scala x: 10 lines of code y: 26 line churn play-v30/src/sbt-test/example/webapp/app/controllers/Application.scala x: 17 lines of code y: 52 line churn play-v30/src/sbt-test/example/webapp/app/controllers/Login.scala x: 25 lines of code y: 92 line churn play-v30/src/sbt-test/example/webapp/app/views/authenticated.scala.html x: 24 lines of code y: 48 line churn play-v30/src/sbt-test/example/webapp/app/views/index.scala.html x: 11 lines of code y: 24 line churn play-v30/src/sbt-test/example/webapp/app/views/login.scala.html x: 17 lines of code y: 36 line churn .github/dependabot.yml x: 6 lines of code y: 12 line churn
888.0
line churn
  min: 12.0
  average: 154.28
  25th percentile: 32.0
  median: 50.0
  75th percentile: 114.5
  max: 888.0
0 204.0
lines of code
min: 4.0 | average: 37.83 | 25th percentile: 10.75 | median: 20.5 | 75th percentile: 32.0 | max: 204.0