File Size Overall
  • There are 256 files with 13,858 lines of code.
    • 0 very long files (0 lines of code)
    • 0 long files (0 lines of code)
    • 12 medium size files (3,109 lines of code)
    • 26 small files (3,504 lines of code)
    • 218 very small files (7,245 lines of code)
0% | 0% | 22% | 25% | 52%
Legend:
1001+
501-1000
201-500
101-200
1-100


explore: grouped by folders | grouped by size | sunburst | 3D view
File Size per Extension
1001+
501-1000
201-500
101-200
1-100
scala0% | 0% | 15% | 23% | 60%
ts0% | 0% | 66% | 21% | 12%
yaml0% | 0% | 18% | 48% | 33%
xml0% | 0% | 0% | 0% | 100%
sql0% | 0% | 0% | 0% | 100%
mjs0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
cdk0% | 0% | 65% | 21% | 12%
notificationworkerlambda0% | 0% | 19% | 36% | 44%
football0% | 0% | 26% | 36% | 37%
api-models0% | 0% | 42% | 18% | 39%
common0% | 0% | 15% | 6% | 77%
liveactivities0% | 0% | 17% | 20% | 62%
notification0% | 0% | 0% | 33% | 66%
ROOT0% | 0% | 0% | 69% | 30%
slomonitor0% | 0% | 0% | 82% | 17%
reportextractor0% | 0% | 0% | 87% | 12%
registration0% | 0% | 0% | 17% | 82%
schedulelambda0% | 0% | 0% | 0% | 100%
eventconsumer0% | 0% | 0% | 0% | 100%
fakebreakingnewslambda0% | 0% | 0% | 0% | 100%
report0% | 0% | 0% | 0% | 100%
commoneventconsumer0% | 0% | 0% | 0% | 100%
commonEventBusPusher0% | 0% | 0% | 0% | 100%
commonscheduledynamodb0% | 0% | 0% | 0% | 100%
project0% | 0% | 0% | 0% | 100%
.github0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
senderworker.ts
in cdk/lib
428 2
320 1
Payloads.scala
in api-models/src/main/scala/com/gu/mobile.notifications.client/models
288 6
Notification.scala
in common/src/main/scala/models
268 3
report.ts
in cdk/lib
255 1
245 1
harvester-cfn.yaml
in notificationworkerlambda
244 -
FcmPayloadBuilder.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/models/payload
220 7
ApnsPayloadBuilder.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/apns/models/payload
217 8
MatchStatusNotificationBuilder.scala
in football/src/main/scala/com/gu/mobile/notifications/football/notificationbuilders
216 7
MatchEvents.scala
in football/src/main/scala/com/gu/mobile/notifications/football/models
205 11
LiveActivityChannelRepository.scala
in liveactivities/src/main/scala/com/gu/liveactivities/service
203 13
185 -
SyntheticMatchEventGenerator.scala
in football/src/main/scala/com/gu/mobile/notifications/football/lib
183 3
registration-cleaning-worker-cfn.yaml
in notificationworkerlambda
174 -
Harvester.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker
170 7
topic-counter-cfn.yaml
in notificationworkerlambda
156 -
SloMonitor.scala
in slomonitor/src/main/scala/com.gu.notifications.slos
148 5
notification.ts
in cdk/lib
147 1
registration.ts
in cdk/lib
145 1
Main.scala
in notification/app/notification/controllers
145 6
FootballData.scala
in football/src/main/scala/com/gu/mobile/notifications/football/lib
144 6
Lambda.scala
in football/src/main/scala/com/gu/mobile/notifications/football
142 6
Configuration.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker
140 7
BroadcastContentState.scala
in api-models/src/main/scala/com/gu/mobile.notifications.client/models/liveActitivites
125 3
FcmClient.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm
125 6
expired-registration-cleaner-cfn.yaml
in notificationworkerlambda
124 -
ApnsClient.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/apns
120 3
BroadcastPayloads.scala
in liveactivities/src/main/scala/com/gu/liveactivities/models
120 5
ChannelApiClient.scala
in liveactivities/src/main/scala/com/gu/liveactivities/service
117 3
Lambda.scala
in reportextractor/src/main/scala/com/gu/notifications/extractor
116 5
Cloudwatch.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils
115 6
FcmTransportJdkImpl.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm
114 7
Main.scala
in registration/app/registration/controllers
113 5
GuardianNotificationSender.scala
in notification/app/notification/services/guardian
111 5
SqlRegistrationRepository.scala
in common/src/main/scala/db
111 8
107 1
EventConsumer.scala
in football/src/main/scala/com/gu/mobile/notifications/football/lib
107 4
ChannelManagerLambda.scala
in liveactivities/src/main/scala/com/gu/liveactivities
98 5
AthenaMetrics.scala
in eventconsumer/src/main/scala/com/gu/notifications/events
97 4
95 1
LiveActivityEventBridgePayloads.scala
in api-models/src/main/scala/com/gu/mobile.notifications.client/models/liveActitivites
95 4
ProcessNotificationScheduleLambda.scala
in schedulelambda/src/main/scala/com/gu/notificationschedule
95 5
SenderRequestHandler.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker
95 4
cfn.yaml
in schedulelambda
94 -
MetricActor.scala
in common/src/main/scala/metrics
93 3
NotificationReportRepository.scala
in common/src/main/scala/tracking
92 4
DeliveryService.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery
90 2
DynamoDistinctCheck.scala
in football/src/main/scala/com/gu/mobile/notifications/football/lib
89 4
AthenaLambda.scala
in eventconsumer/src/main/scala/com/gu/notifications/events
87 8
Large Files That Change Often (Top 20)
To change a file, an AI coding agent (or a person) has to read it: these files are read the most for the changes in the past year (lines × changes).
File# lines≈ tokens
to read
# changes
(1y)
≈ lines edited
per change
lines read per
line changed
report.ts
in cdk/lib
255 ~1.5k–5k 39 ~20 ~10
320 ~2k–5k 21 ~30 ~15
registration.ts
in cdk/lib
145 ~1k–3k 38 ~20 ~7
245 ~1.5k–5k 21 ~30 ~7
senderworker.ts
in cdk/lib
428 ~2k–7k 12 ~70 ~5
notification.ts
in cdk/lib
147 ~1k–3k 26 ~20 ~7
SyntheticMatchEventGenerator.scala
in football/src/main/scala/com/gu/mobile/notifications/football/lib
183 ~1k–3k 18 ~20 ~10
LiveActivityChannelRepository.scala
in liveactivities/src/main/scala/com/gu/liveactivities/service
203 ~1k–3k 16 ~30 ~7
MatchStatusNotificationBuilder.scala
in football/src/main/scala/com/gu/mobile/notifications/football/notificationbuilders
216 ~1.5k–5k 14 ~30 ~5
Lambda.scala
in football/src/main/scala/com/gu/mobile/notifications/football
142 ~700–2k 19 ~20 ~7
BroadcastContentState.scala
in api-models/src/main/scala/com/gu/mobile.notifications.client/models/liveActitivites
125 ~700–2k 14 ~20 ~7
MatchStatusLiveActivityPayloadBuilder.scala
in football/src/main/scala/com/gu/mobile/notifications/football/notificationbuilders
83 ~500–1.5k 21 ~10 ~7
FootballData.scala
in football/src/main/scala/com/gu/mobile/notifications/football/lib
144 ~1k–3k 12 ~30 ~5
MatchEvents.scala
in football/src/main/scala/com/gu/mobile/notifications/football/models
205 ~1k–3k 8 ~50 ~5
BroadcastLambda.scala
in liveactivities/src/main/scala/com/gu/liveactivities
65 ~300–1k 23 ~20 ~3
ChannelManagerLambda.scala
in liveactivities/src/main/scala/com/gu/liveactivities
98 ~500–1.5k 15 ~30 ~3
Main.scala
in registration/app/registration/controllers
113 ~700–2k 13 ~20 ~7
Payloads.scala
in api-models/src/main/scala/com/gu/mobile.notifications.client/models
288 ~2k–5k 4 ~50 ~7
185 ~1k–3k 6 ~70 ~3
riff-raff.yaml
in report/conf
47 under 1k 22 ~7 ~7

Tokens are lines × 7 to 14 (analysis.fileReadsForChanges). Lines edited per change are the file's lines added and deleted divided by its commits over the whole history. Agents read about 2,000 lines at a time: when a 17,000-line file was split into modules, the tokens an agent read for the same change fell by 83% (The Economic Benefit of Refactoring, 2026).

Files With Most Units (Top 50)
File# lines# units
LiveActivityChannelRepository.scala
in liveactivities/src/main/scala/com/gu/liveactivities/service
203 13
MatchEvents.scala
in football/src/main/scala/com/gu/mobile/notifications/football/models
205 11
AthenaLambda.scala
in eventconsumer/src/main/scala/com/gu/notifications/events
87 8
CloudWatch.scala
in schedulelambda/src/main/scala/com/gu/notificationschedule/cloudwatch
83 8
ApnsPayloadBuilder.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/apns/models/payload
217 8
JsonUtils.scala
in common/src/main/scala/models
47 8
SqlRegistrationRepository.scala
in common/src/main/scala/db
111 8
MatchStatusNotificationBuilder.scala
in football/src/main/scala/com/gu/mobile/notifications/football/notificationbuilders
216 7
EventFilter.scala
in football/src/main/scala/com/gu/mobile/notifications/football/lib
76 7
Harvester.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker
170 7
FcmPayloadBuilder.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/models/payload
220 7
FcmTransportJdkImpl.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm
114 7
Configuration.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker
140 7
RegistrationService.scala
in common/src/main/scala/db
54 7
DynamoJsonConversions.scala
in common/src/main/scala/aws
51 7
Payloads.scala
in api-models/src/main/scala/com/gu/mobile.notifications.client/models
288 6
JsonFormatsHelper.scala
in api-models/src/main/scala/com/gu/mobile.notifications.client/lib
34 6
Lambda.scala
in football/src/main/scala/com/gu/mobile/notifications/football
142 6
FootballData.scala
in football/src/main/scala/com/gu/mobile/notifications/football/lib
144 6
Main.scala
in notification/app/notification/controllers
145 6
Cloudwatch.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils
115 6
FcmClient.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm
125 6
FcmException.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm
32 6
54 5
Main.scala
in registration/app/registration/controllers
113 5
SloMonitor.scala
in slomonitor/src/main/scala/com.gu.notifications.slos
148 5
GuardianNotificationSender.scala
in notification/app/notification/services/guardian
111 5
ProcessNotificationScheduleLambda.scala
in schedulelambda/src/main/scala/com/gu/notificationschedule
95 5
NotificationParser.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils
44 5
OkGoogleHttpRequest.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/oktransport
81 5
BroadcastPayloads.scala
in liveactivities/src/main/scala/com/gu/liveactivities/models
120 5
ChannelManagerLambda.scala
in liveactivities/src/main/scala/com/gu/liveactivities
98 5
Lambda.scala
in reportextractor/src/main/scala/com/gu/notifications/extractor
116 5
LiveActivityEventBridgePayloads.scala
in api-models/src/main/scala/com/gu/mobile.notifications.client/models/liveActitivites
95 4
AthenaMetrics.scala
in eventconsumer/src/main/scala/com/gu/notifications/events
97 4
DynamoDistinctCheck.scala
in football/src/main/scala/com/gu/mobile/notifications/football/lib
89 4
EventConsumer.scala
in football/src/main/scala/com/gu/mobile/notifications/football/lib
107 4
Logging.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils
84 4
SendingResults.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/models
62 4
SenderRequestHandler.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker
95 4
SqsDeliveryService.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/tokens
55 4
DatabaseConfig.scala
in common/src/main/scala/db
47 4
NotificationReportRepository.scala
in common/src/main/scala/tracking
92 4
InMemoryNotificationReportRepository.scala
in common/src/main/scala/tracking
32 4
S3.scala
in common/src/main/scala/aws
54 4
BroadcastContentState.scala
in api-models/src/main/scala/com/gu/mobile.notifications.client/models/liveActitivites
125 3
DynamoReportUpdater.scala
in eventconsumer/src/main/scala/com/gu/notifications/events/dynamo
60 3
FootballMatchAuditor.scala
in registration/app/registration/auditor
42 3
LegacyRegistrationConverter.scala
in registration/app/registration/services
64 3
S3DataStore.scala
in football/src/main/scala/com/gu/mobile/notifications/football/lib
35 3
Files With Long Lines (Top 50)

There are 120 files with lines longer than 120 characters. In total, there are 331 long lines.

File# lines# units# long lines
SenderRequestHandler.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker
95 4 13
Athena.scala
in commoneventconsumer/src/main/scala/com/gu/notifications/athena
70 3 11
AndroidSender.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker
68 3 9
Harvester.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker
170 7 9
LiveActivityChannelRepository.scala
in liveactivities/src/main/scala/com/gu/liveactivities/service
203 13 9
RegistrationApplicationLoader.scala
in registration/app/registration
53 - 8
NotificationApplicationLoader.scala
in notification/app/notification
79 - 8
CloudWatch.scala
in schedulelambda/src/main/scala/com/gu/notificationschedule/cloudwatch
83 8 8
ProcessNotificationScheduleLambda.scala
in schedulelambda/src/main/scala/com/gu/notificationschedule
95 5 8
Cloudwatch.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils
115 6 8
AthenaMetrics.scala
in eventconsumer/src/main/scala/com/gu/notifications/events
97 4 7
Lambda.scala
in football/src/main/scala/com/gu/mobile/notifications/football
142 6 7
FcmPayloadBuilder.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/models/payload
220 7 7
Main.scala
in notification/app/notification/controllers
145 6 6
Logging.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils
84 4 6
FcmClient.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm
125 6 6
BroadcastService.scala
in liveactivities/src/main/scala/com/gu/liveactivities/service
48 1 6
DynamoReportUpdater.scala
in eventconsumer/src/main/scala/com/gu/notifications/events/dynamo
60 3 5
Main.scala
in registration/app/registration/controllers
113 5 5
MatchStatusNotificationBuilder.scala
in football/src/main/scala/com/gu/mobile/notifications/football/notificationbuilders
216 7 5
MatchEvents.scala
in football/src/main/scala/com/gu/mobile/notifications/football/models
205 11 5
EventFilter.scala
in football/src/main/scala/com/gu/mobile/notifications/football/lib
76 7 5
ChannelManagerLambda.scala
in liveactivities/src/main/scala/com/gu/liveactivities
98 5 5
ChannelApiClient.scala
in liveactivities/src/main/scala/com/gu/liveactivities/service
117 3 5
senderworker.ts
in cdk/lib
428 2 4
SloMonitor.scala
in slomonitor/src/main/scala/com.gu.notifications.slos
148 5 4
GuardianNotificationSender.scala
in notification/app/notification/services/guardian
111 5 4
ApnsClient.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/apns
120 3 4
DeliveryException.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery
48 - 4
Metrics.scala
in liveactivities/src/main/scala/com/gu/liveactivities/util
65 2 4
NotificationSchedulePersistenceImpl.scala
in commonscheduledynamodb/src/main/scala/com/gu/notificationschedule/dynamo
58 3 4
NotificationReportRepository.scala
in common/src/main/scala/tracking
92 4 4
AuthAction.scala
in common/src/main/scala/authentication
23 2 4
MatchStatusLiveActivityPayloadBuilder.scala
in football/src/main/scala/com/gu/mobile/notifications/football/notificationbuilders
83 1 3
RequestNotification.scala
in schedulelambda/src/main/scala/com/gu/notificationschedule/notifications
61 3 3
SendingResults.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/models
62 4 3
FcmTransportJdkImpl.scala
in notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm
114 7 3
ReportApplicationLoader.scala
in report/app/report
40 - 3
81 1 2
Payloads.scala
in api-models/src/main/scala/com/gu/mobile.notifications.client/models
288 6 2
AggregationCounts.scala
in eventconsumer/src/main/scala/com/gu/notifications/events/model
28 2 2
CustomErrorHandler.scala
in registration/app/registration
28 1 2
LegacyNewsstandRegistrationConverter.scala
in registration/app/registration/services
31 2 2
DatabaseRegistrar.scala
in registration/app/registration/services
51 2 2
LiveActivityPusher.scala
in commonEventBusPusher/src/main/scala/com/gu/mobile/liveactivities/event/bus
59 2 2
185 - 2
DynamoDistinctCheck.scala
in football/src/main/scala/com/gu/mobile/notifications/football/lib
89 4 2
PaFootballClient.scala
in football/src/main/scala/com/gu/mobile/notifications/football/lib
42 3 2
FootballData.scala
in football/src/main/scala/com/gu/mobile/notifications/football/lib
144 6 2
Schedule.scala
in notification/app/notification/controllers
25 1 2
Correlations

File Size vs. Commits (all time): 256 points

notificationworkerlambda/src/main/resources/logback.xml x: 11 commits (all time) y: 12 lines of code cdk/lib/senderworker.ts x: 12 commits (all time) y: 428 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/DeliveryException.scala x: 20 commits (all time) y: 48 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/DeliveryService.scala x: 49 commits (all time) y: 90 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/models/SendingResults.scala x: 26 commits (all time) y: 62 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Cloudwatch.scala x: 43 commits (all time) y: 115 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/apns/ApnsClient.scala x: 59 commits (all time) y: 120 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/FcmClient.scala x: 89 commits (all time) y: 125 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Reporting.scala x: 26 commits (all time) y: 24 lines of code common/src/main/scala/aws/AWSAsync.scala x: 11 commits (all time) y: 30 lines of code notification/app/notification/NotificationApplicationLoader.scala x: 113 commits (all time) y: 79 lines of code notification/app/notification/services/SloTrackingSender.scala x: 4 commits (all time) y: 22 lines of code notification/app/notification/services/guardian/GuardianNotificationSender.scala x: 63 commits (all time) y: 111 lines of code common/src/main/scala/aws/S3.scala x: 12 commits (all time) y: 54 lines of code common/src/main/scala/utils/CustomApplicationLoader.scala x: 23 commits (all time) y: 36 lines of code common/src/main/scala/utils/MobileAwsCredentialsProvider.scala x: 14 commits (all time) y: 18 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/TopicCounterLambda.scala x: 10 commits (all time) y: 34 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/cleaning/CleaningClient.scala x: 21 commits (all time) y: 31 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/tokens/SqsDeliveryService.scala x: 5 commits (all time) y: 55 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Aws.scala x: 3 commits (all time) y: 5 lines of code football/src/main/scala/com/gu/mobile/notifications/football/Configuration.scala x: 15 commits (all time) y: 35 lines of code football/src/main/scala/com/gu/mobile/notifications/football/Lambda.scala x: 30 commits (all time) y: 142 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/DynamoDistinctCheck.scala x: 12 commits (all time) y: 89 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/FootballData.scala x: 15 commits (all time) y: 144 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/S3DataStore.scala x: 5 commits (all time) y: 35 lines of code football/src/main/scala/com/gu/mobile/notifications/football/notificationbuilders/MatchStatusLiveActivityPayloadBuilder.scala x: 21 commits (all time) y: 83 lines of code football/src/main/scala/com/gu/mobile/notifications/football/notificationbuilders/MatchStatusNotificationBuilder.scala x: 16 commits (all time) y: 216 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/SyntheticMatchEventGenerator.scala x: 20 commits (all time) y: 183 lines of code football/src/main/scala/com/gu/mobile/notifications/football/models/MatchEvents.scala x: 10 commits (all time) y: 205 lines of code cdk/lib/report.ts x: 39 commits (all time) y: 255 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/EventConsumer.scala x: 10 commits (all time) y: 107 lines of code cdk/lib/liveactivities.ts x: 21 commits (all time) y: 320 lines of code liveactivities/src/main/scala/com/gu/liveactivities/BroadcastLambda.scala x: 23 commits (all time) y: 65 lines of code liveactivities/src/main/scala/com/gu/liveactivities/ChannelCleanUpLambda.scala x: 4 commits (all time) y: 32 lines of code liveactivities/src/main/scala/com/gu/liveactivities/ChannelManagerLambda.scala x: 15 commits (all time) y: 98 lines of code liveactivities/src/main/scala/com/gu/liveactivities/service/BroadcastApiClient.scala x: 9 commits (all time) y: 81 lines of code liveactivities/src/main/scala/com/gu/liveactivities/service/BroadcastService.scala x: 9 commits (all time) y: 48 lines of code liveactivities/src/main/scala/com/gu/liveactivities/service/ChannelApiClient.scala x: 6 commits (all time) y: 117 lines of code liveactivities/src/main/scala/com/gu/liveactivities/util/Metrics.scala x: 9 commits (all time) y: 65 lines of code common/src/main/scala/models/Registration.scala x: 35 commits (all time) y: 33 lines of code registration/app/registration/controllers/Main.scala x: 108 commits (all time) y: 113 lines of code api-models/src/main/scala/com/gu/mobile.notifications.client/models/liveActitivites/BroadcastContentState.scala x: 14 commits (all time) y: 125 lines of code liveactivities/src/main/scala/com/gu/liveactivities/models/BroadcastPayloads.scala x: 6 commits (all time) y: 120 lines of code liveactivities/src/main/scala/com/gu/liveactivities/service/Authentication.scala x: 4 commits (all time) y: 29 lines of code liveactivities/src/main/scala/com/gu/liveactivities/service/LiveActivityChannelRepository.scala x: 16 commits (all time) y: 203 lines of code registration/app/registration/auditor/FootballMatchAuditor.scala x: 7 commits (all time) y: 42 lines of code registration/app/registration/CustomErrorHandler.scala x: 10 commits (all time) y: 28 lines of code registration/app/registration/services/LegacyRegistrationConverter.scala x: 44 commits (all time) y: 64 lines of code liveactivities/src/main/scala/com/gu/liveactivities/util/Configuration.scala x: 3 commits (all time) y: 56 lines of code api-models/src/main/scala/com/gu/mobile.notifications.client/models/Payloads.scala x: 20 commits (all time) y: 288 lines of code api-models/src/main/scala/com/gu/mobile.notifications.client/models/liveActitivites/LiveActivityEventBridgePayloads.scala x: 2 commits (all time) y: 95 lines of code cdk/lib/footballnotificationslambda.ts x: 21 commits (all time) y: 245 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/EventFilter.scala x: 7 commits (all time) y: 76 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/AndroidSender.scala x: 60 commits (all time) y: 68 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/DeliveryClient.scala x: 30 commits (all time) y: 13 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/DeliverySuccess.scala x: 16 commits (all time) y: 9 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/tokens/TokenService.scala x: 24 commits (all time) y: 44 lines of code liveactivities/src/main/scala/com/gu/liveactivities/models/LiveActivityChannelMappings.scala x: 1 commits (all time) y: 63 lines of code api-models/src/main/scala/com/gu/mobile.notifications.client/models/NotificationPayloadType.scala x: 9 commits (all time) y: 20 lines of code common/src/main/scala/models/Notification.scala x: 78 commits (all time) y: 268 lines of code common/src/main/scala/models/NotificationType.scala x: 29 commits (all time) y: 36 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/models/payload/FcmPayloadBuilder.scala x: 42 commits (all time) y: 220 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/models/payload/Keys.scala x: 11 commits (all time) y: 73 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/models/payload/MessageTypes.scala x: 6 commits (all time) y: 9 lines of code liveactivities/src/main/scala/com/gu/liveactivities/Lambda.scala x: 13 commits (all time) y: 42 lines of code liveactivities/src/main/scala/com/gu/liveactivities/service/ChannelCleanUpService.scala x: 2 commits (all time) y: 47 lines of code common/src/main/scala/models/TopicType.scala x: 33 commits (all time) y: 48 lines of code liveactivities/riff-raff.yaml x: 4 commits (all time) y: 19 lines of code liveactivities/src/main/scala/com/gu/liveactivities/LambdaLocalRun.scala x: 6 commits (all time) y: 30 lines of code commonEventBusPusher/src/main/scala/com/gu/mobile/liveactivities/event/bus/LiveActivityPusher.scala x: 3 commits (all time) y: 59 lines of code api-models/src/main/scala/com/gu/mobile.notifications.client/models/Topic.scala x: 35 commits (all time) y: 53 lines of code liveactivities/src/main/scala/com/gu/liveactivities/util/DateTimeHelper.scala x: 2 commits (all time) y: 25 lines of code liveactivities/src/main/resources/logback.xml x: 1 commits (all time) y: 10 lines of code liveactivities/src/main/scala/com/gu/liveactivities/util/Future.scala x: 1 commits (all time) y: 19 lines of code liveactivities/src/main/scala/com/gu/liveactivities/util/Logging.scala x: 1 commits (all time) y: 5 lines of code project/LocalDynamoDBLiveActivities.scala x: 1 commits (all time) y: 11 lines of code registration-db.yaml x: 6 commits (all time) y: 185 lines of code football/riff-raff.yaml x: 10 commits (all time) y: 18 lines of code notificationworkerlambda/harvester-cfn.yaml x: 46 commits (all time) y: 244 lines of code notificationworkerlambda/riff-raff.yaml x: 42 commits (all time) y: 75 lines of code notificationworkerlambda/expired-registration-cleaner-cfn.yaml x: 14 commits (all time) y: 124 lines of code notificationworkerlambda/registration-cleaning-worker-cfn.yaml x: 31 commits (all time) y: 174 lines of code notificationworkerlambda/topic-counter-cfn.yaml x: 19 commits (all time) y: 156 lines of code cdk/lib/registration.ts x: 49 commits (all time) y: 145 lines of code fakebreakingnewslambda/riff-raff.yaml x: 10 commits (all time) y: 36 lines of code cdk/lib/fakebreakingnewslambda.ts x: 4 commits (all time) y: 81 lines of code registration/conf/riff-raff.yaml x: 44 commits (all time) y: 28 lines of code cdk/lib/notification.ts x: 26 commits (all time) y: 147 lines of code notification/conf/riff-raff.yaml x: 39 commits (all time) y: 21 lines of code report/conf/riff-raff.yaml x: 50 commits (all time) y: 47 lines of code common/src/main/scala/db/RegistrationRepository.scala x: 32 commits (all time) y: 14 lines of code common/src/main/scala/db/RegistrationService.scala x: 60 commits (all time) y: 54 lines of code common/src/main/scala/db/SqlRegistrationRepository.scala x: 56 commits (all time) y: 111 lines of code registration/app/registration/services/DatabaseRegistrar.scala x: 28 commits (all time) y: 51 lines of code registration/app/registration/services/NotificationRegistrar.scala x: 54 commits (all time) y: 23 lines of code notification/conf/logback.xml x: 10 commits (all time) y: 23 lines of code registration/conf/logback.xml x: 18 commits (all time) y: 23 lines of code report/conf/logback.xml x: 10 commits (all time) y: 24 lines of code cdk/lib/mobile-n10n-compatibility.ts x: 4 commits (all time) y: 54 lines of code cdk/lib/registrations-db-proxy.ts x: 8 commits (all time) y: 107 lines of code cdk/eslint.config.mjs x: 2 commits (all time) y: 14 lines of code .github/dependabot.yml x: 9 commits (all time) y: 14 lines of code common/src/main/scala/models/Topic.scala x: 38 commits (all time) y: 24 lines of code common/src/main/scala/metrics/MetricActor.scala x: 14 commits (all time) y: 93 lines of code common/src/main/scala/metrics/Metrics.scala x: 11 commits (all time) y: 39 lines of code fakebreakingnewslambda/src/main/scala/fakebreakingnews/FakeBreakingNewsLambda.scala x: 20 commits (all time) y: 54 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/Configuration.scala x: 80 commits (all time) y: 140 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/IOSSender.scala x: 29 commits (all time) y: 22 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/NotificationWorkerLocalRun.scala x: 20 commits (all time) y: 67 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/SenderRequestHandler.scala x: 49 commits (all time) y: 95 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/FcmException.scala x: 5 commits (all time) y: 32 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/FcmTransportJdkImpl.scala x: 14 commits (all time) y: 114 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/models/FcmConfig.scala x: 5 commits (all time) y: 8 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/models/payload/FcmResponse.scala x: 7 commits (all time) y: 24 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Logging.scala x: 37 commits (all time) y: 84 lines of code registration/app/registration/RegistrationApplicationLoader.scala x: 71 commits (all time) y: 53 lines of code report/app/report/ReportApplicationLoader.scala x: 44 commits (all time) y: 40 lines of code reportextractor/src/main/scala/com/gu/notifications/extractor/Lambda.scala x: 28 commits (all time) y: 116 lines of code schedulelambda/src/main/scala/com/gu/notificationschedule/ProcessNotificationScheduleLambda.scala x: 13 commits (all time) y: 95 lines of code api-models/src/main/scala/com/gu/mobile.notifications.client/lib/JsonFormatsHelper.scala x: 12 commits (all time) y: 34 lines of code api-models/src/main/scala/com/gu/mobile.notifications.client/models/Editions.scala x: 10 commits (all time) y: 47 lines of code api-models/src/main/scala/com/gu/mobile.notifications.client/models/Importance.scala x: 8 commits (all time) y: 13 lines of code api-models/src/main/scala/com/gu/mobile.notifications.client/models/SendNotificationReply.scala x: 8 commits (all time) y: 6 lines of code common/src/main/scala/models/GoalType.scala x: 7 commits (all time) y: 21 lines of code common/src/main/scala/models/GuardianItemType.scala x: 12 commits (all time) y: 14 lines of code common/src/main/scala/models/Importance.scala x: 10 commits (all time) y: 13 lines of code common/src/main/scala/models/JsonUtils.scala x: 22 commits (all time) y: 47 lines of code common/src/main/scala/models/Link.scala x: 18 commits (all time) y: 29 lines of code common/src/main/scala/models/NotificationMetadata.scala x: 3 commits (all time) y: 7 lines of code common/src/main/scala/models/NotificationReport.scala x: 37 commits (all time) y: 67 lines of code common/src/main/scala/models/Platform.scala x: 27 commits (all time) y: 28 lines of code common/src/main/scala/models/PlatformStatistics.scala x: 9 commits (all time) y: 6 lines of code common/src/main/scala/models/ShardedNotification.scala x: 18 commits (all time) y: 16 lines of code commoneventconsumer/src/main/scala/com/gu/notifications/events/model/EventAggregation.scala x: 21 commits (all time) y: 16 lines of code commoneventconsumer/src/main/scala/com/gu/notifications/events/model/PlatformCount.scala x: 20 commits (all time) y: 12 lines of code fakebreakingnewslambda/src/main/scala/fakebreakingnews/FakeRegistrations.scala x: 16 commits (all time) y: 57 lines of code fakebreakingnewslambda/src/main/scala/fakebreakingnews/NotificationClient.scala x: 14 commits (all time) y: 46 lines of code fakebreakingnewslambda/src/main/scala/fakebreakingnews/TopUkRegularStory.scala x: 15 commits (all time) y: 69 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/NotificationHttpProvider.scala x: 7 commits (all time) y: 29 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/NotificationsApiClient.scala x: 11 commits (all time) y: 60 lines of code notification/app/notification/controllers/Main.scala x: 118 commits (all time) y: 145 lines of code notification/app/notification/models/PushResult.scala x: 20 commits (all time) y: 18 lines of code notification/app/notification/services/NotificationSender.scala x: 18 commits (all time) y: 7 lines of code notification/app/notification/services/frontend/FrontendAlerts.scala x: 29 commits (all time) y: 54 lines of code notification/app/notification/services/frontend/NewsAlert.scala x: 22 commits (all time) y: 38 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/Harvester.scala x: 60 commits (all time) y: 170 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/models/payload/Editions.scala x: 5 commits (all time) y: 28 lines of code registration/app/registration/models/LegacyNewsstandRegistration.scala x: 7 commits (all time) y: 6 lines of code registration/app/registration/models/LegacyRegistration.scala x: 22 commits (all time) y: 64 lines of code schedulelambda/src/main/scala/com/gu/notificationschedule/notifications/RequestNotification.scala x: 10 commits (all time) y: 61 lines of code slomonitor/src/main/scala/com.gu.notifications.slos/SloMonitor.scala x: 13 commits (all time) y: 148 lines of code schedulelambda/cfn.yaml x: 8 commits (all time) y: 94 lines of code cdk/lib/slo-monitoring.ts x: 5 commits (all time) y: 95 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/NotificationParser.scala x: 14 commits (all time) y: 44 lines of code commoneventconsumer/src/main/scala/com/gu/notifications/athena/Athena.scala x: 2 commits (all time) y: 70 lines of code eventconsumer/src/main/scala/com/gu/notifications/events/AthenaLambda.scala x: 20 commits (all time) y: 87 lines of code eventconsumer/src/main/scala/com/gu/notifications/events/AthenaMetrics.scala x: 23 commits (all time) y: 97 lines of code notification/app/notification/services/Configuration.scala x: 65 commits (all time) y: 21 lines of code schedulelambda/riff-raff.yaml x: 5 commits (all time) y: 19 lines of code slomonitor/riff-raff.yaml x: 2 commits (all time) y: 21 lines of code slomonitor/src/main/resources/logback.xml x: 2 commits (all time) y: 10 lines of code common/src/main/scala/aws/DynamoJsonConversions.scala x: 16 commits (all time) y: 51 lines of code common/src/main/scala/utils/LruCache.scala x: 6 commits (all time) y: 68 lines of code commonscheduledynamodb/src/main/scala/com/gu/notificationschedule/dynamo/NotificationSchedulePersistenceImpl.scala x: 8 commits (all time) y: 58 lines of code eventconsumer/src/main/scala/com/gu/notifications/events/dynamo/DynamoReportUpdater.scala x: 20 commits (all time) y: 60 lines of code notification/app/notification/data/DataStore.scala x: 12 commits (all time) y: 22 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/TopicCounter.scala x: 12 commits (all time) y: 21 lines of code schedulelambda/src/main/scala/com/gu/notificationschedule/cloudwatch/CloudWatch.scala x: 11 commits (all time) y: 83 lines of code common/src/main/scala/tracking/InMemoryNotificationReportRepository.scala x: 36 commits (all time) y: 32 lines of code common/src/main/scala/tracking/NotificationReportRepository.scala x: 24 commits (all time) y: 92 lines of code report/app/report/controllers/Report.scala x: 56 commits (all time) y: 44 lines of code notificationworkerlambda/ecr.yaml x: 4 commits (all time) y: 51 lines of code common/src/main/scala/db/DatabaseConfig.scala x: 24 commits (all time) y: 47 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/apns/models/payload/ApnsPayloadBuilder.scala x: 62 commits (all time) y: 217 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/apns/models/payload/CustomProperty.scala x: 17 commits (all time) y: 67 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/apns/models/payload/MessageTypes.scala x: 4 commits (all time) y: 6 lines of code football/src/main/scala/com/gu/mobile/notifications/football/Logging.scala x: 2 commits (all time) y: 5 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/ArticleSearcher.scala x: 2 commits (all time) y: 36 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/Batch.scala x: 2 commits (all time) y: 19 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/HttpProvider.scala x: 2 commits (all time) y: 12 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/NotificationSender.scala x: 2 commits (all time) y: 16 lines of code football/src/main/scala/com/gu/mobile/notifications/football/models/MatchData.scala x: 2 commits (all time) y: 17 lines of code common/src/main/scala/binders/querystringbinders/package.scala x: 18 commits (all time) y: 34 lines of code eventconsumer/src/main/scala/com/gu/notifications/events/dynamo/DynamoConversion.scala x: 7 commits (all time) y: 16 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/RegistrationCleaningWorker.scala x: 7 commits (all time) y: 61 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/oktransport/OkGoogleHttpTransport.scala x: 4 commits (all time) y: 17 lines of code common/src/main/scala/db/Registration.scala x: 24 commits (all time) y: 60 lines of code notification/app/notification/authentication/NotificationAuthAction.scala x: 8 commits (all time) y: 23 lines of code notification/app/notification/services/FastlyPurge.scala x: 15 commits (all time) y: 27 lines of code registration/app/registration/services/LegacyNewsstandRegistrationConverter.scala x: 29 commits (all time) y: 31 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/ExpiredRegistrationCleaner.scala x: 8 commits (all time) y: 25 lines of code athena-tables.sql x: 4 commits (all time) y: 80 lines of code notification/app/notification/controllers/Schedule.scala x: 6 commits (all time) y: 25 lines of code common/src/main/scala/models/DeviceToken.scala x: 5 commits (all time) y: 12 lines of code common/src/main/scala/tracking/SentNotificationReportRepository.scala x: 17 commits (all time) y: 12 lines of code notification/app/notification/services/guardian/TopicRegistrationCounter.scala x: 13 commits (all time) y: 7 lines of code registration/app/registration/auditor/Auditor.scala x: 3 commits (all time) y: 6 lines of code registration/app/registration/auditor/AuditorApiConfig.scala x: 3 commits (all time) y: 3 lines of code registration/app/registration/auditor/LiveBlogAuditor.scala x: 3 commits (all time) y: 23 lines of code registration/app/registration/auditor/TimeExpiringAuditor.scala x: 3 commits (all time) y: 14 lines of code registration/app/registration/services/Configuration.scala x: 40 commits (all time) y: 19 lines of code registration/app/registration/services/WSPaClient.scala x: 5 commits (all time) y: 14 lines of code registration/app/registration/services/topic/TopicValidator.scala x: 24 commits (all time) y: 30 lines of code reportextractor/src/main/scala/com/gu/notifications/extractor/LocalRun.scala x: 5 commits (all time) y: 6 lines of code schedulelambda/src/main/resources/log4j2.xml x: 4 commits (all time) y: 15 lines of code common/src/main/scala/exception/TopicCounterException.scala x: 6 commits (all time) y: 2 lines of code report/app/report/authentication/ReportAuthAction.scala x: 5 commits (all time) y: 11 lines of code report/app/report/services/Configuration.scala x: 20 commits (all time) y: 7 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/apns/Apns.scala x: 8 commits (all time) y: 7 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/Fcm.scala x: 9 commits (all time) y: 7 lines of code eventconsumer/src/main/scala/com/gu/notifications/events/LocalRun.scala x: 4 commits (all time) y: 4 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/oktransport/OkGoogleHttpRequest.scala x: 1 commits (all time) y: 81 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/oktransport/OkGoogleHttpResponse.scala x: 1 commits (all time) y: 24 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/utils/TimeToLive.scala x: 1 commits (all time) y: 6 lines of code common/src/main/scala/aws/AsyncDynamo.scala x: 19 commits (all time) y: 34 lines of code common/src/main/scala/binders/pathbinders/package.scala x: 9 commits (all time) y: 26 lines of code common/src/main/scala/models/Provider.scala x: 8 commits (all time) y: 28 lines of code notification/app/notification/services/NewsstandSender.scala x: 2 commits (all time) y: 29 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/apns/models/payload/PlatformUri.scala x: 2 commits (all time) y: 8 lines of code commoneventconsumer/src/main/scala/com/gu/notifications/events/model/NotificationReportEvent.scala x: 4 commits (all time) y: 2 lines of code notification/app/notification/services/package.scala x: 18 commits (all time) y: 15 lines of code common/src/main/scala/models/NewsstandShardConfig.scala x: 1 commits (all time) y: 2 lines of code common/src/main/scala/tracking/Repository.scala x: 6 commits (all time) y: 8 lines of code registration/app/registration/services/RegistrationConverter.scala x: 7 commits (all time) y: 7 lines of code
428.0
lines of code
  min: 2.0
  average: 54.13
  25th percentile: 14.0
  median: 30.5
  75th percentile: 68.0
  max: 428.0
0 118.0
commits (all time)
min: 1.0 | average: 17.2 | 25th percentile: 4.0 | median: 10.0 | 75th percentile: 21.0 | max: 118.0

File Size vs. Contributors (all time): 256 points

notificationworkerlambda/src/main/resources/logback.xml x: 6 contributors (all time) y: 12 lines of code cdk/lib/senderworker.ts x: 6 contributors (all time) y: 428 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/DeliveryException.scala x: 8 contributors (all time) y: 48 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/DeliveryService.scala x: 12 contributors (all time) y: 90 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/models/SendingResults.scala x: 9 contributors (all time) y: 62 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Cloudwatch.scala x: 11 contributors (all time) y: 115 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/apns/ApnsClient.scala x: 13 contributors (all time) y: 120 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/FcmClient.scala x: 17 contributors (all time) y: 125 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Reporting.scala x: 9 contributors (all time) y: 24 lines of code common/src/main/scala/aws/AWSAsync.scala x: 6 contributors (all time) y: 30 lines of code notification/app/notification/NotificationApplicationLoader.scala x: 13 contributors (all time) y: 79 lines of code notification/app/notification/services/SloTrackingSender.scala x: 2 contributors (all time) y: 22 lines of code notification/app/notification/services/guardian/GuardianNotificationSender.scala x: 10 contributors (all time) y: 111 lines of code common/src/main/scala/aws/S3.scala x: 5 contributors (all time) y: 54 lines of code common/src/main/scala/utils/CustomApplicationLoader.scala x: 8 contributors (all time) y: 36 lines of code common/src/main/scala/utils/MobileAwsCredentialsProvider.scala x: 3 contributors (all time) y: 18 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/TopicCounterLambda.scala x: 3 contributors (all time) y: 34 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/cleaning/CleaningClient.scala x: 8 contributors (all time) y: 31 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/tokens/SqsDeliveryService.scala x: 2 contributors (all time) y: 55 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Aws.scala x: 2 contributors (all time) y: 5 lines of code football/src/main/scala/com/gu/mobile/notifications/football/Configuration.scala x: 8 contributors (all time) y: 35 lines of code football/src/main/scala/com/gu/mobile/notifications/football/Lambda.scala x: 9 contributors (all time) y: 142 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/DynamoDistinctCheck.scala x: 4 contributors (all time) y: 89 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/FootballData.scala x: 4 contributors (all time) y: 144 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/S3DataStore.scala x: 2 contributors (all time) y: 35 lines of code football/src/main/scala/com/gu/mobile/notifications/football/notificationbuilders/MatchStatusLiveActivityPayloadBuilder.scala x: 2 contributors (all time) y: 83 lines of code football/src/main/scala/com/gu/mobile/notifications/football/notificationbuilders/MatchStatusNotificationBuilder.scala x: 4 contributors (all time) y: 216 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/SyntheticMatchEventGenerator.scala x: 4 contributors (all time) y: 183 lines of code football/src/main/scala/com/gu/mobile/notifications/football/models/MatchEvents.scala x: 3 contributors (all time) y: 205 lines of code cdk/lib/report.ts x: 5 contributors (all time) y: 255 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/EventConsumer.scala x: 3 contributors (all time) y: 107 lines of code cdk/lib/liveactivities.ts x: 2 contributors (all time) y: 320 lines of code liveactivities/src/main/scala/com/gu/liveactivities/BroadcastLambda.scala x: 2 contributors (all time) y: 65 lines of code liveactivities/src/main/scala/com/gu/liveactivities/ChannelCleanUpLambda.scala x: 1 contributors (all time) y: 32 lines of code liveactivities/src/main/scala/com/gu/liveactivities/ChannelManagerLambda.scala x: 2 contributors (all time) y: 98 lines of code liveactivities/src/main/scala/com/gu/liveactivities/service/BroadcastApiClient.scala x: 2 contributors (all time) y: 81 lines of code liveactivities/src/main/scala/com/gu/liveactivities/service/BroadcastService.scala x: 2 contributors (all time) y: 48 lines of code liveactivities/src/main/scala/com/gu/liveactivities/service/ChannelApiClient.scala x: 1 contributors (all time) y: 117 lines of code liveactivities/src/main/scala/com/gu/liveactivities/util/Metrics.scala x: 1 contributors (all time) y: 65 lines of code common/src/main/scala/models/Registration.scala x: 10 contributors (all time) y: 33 lines of code registration/app/registration/controllers/Main.scala x: 19 contributors (all time) y: 113 lines of code api-models/src/main/scala/com/gu/mobile.notifications.client/models/liveActitivites/BroadcastContentState.scala x: 3 contributors (all time) y: 125 lines of code liveactivities/src/main/scala/com/gu/liveactivities/models/BroadcastPayloads.scala x: 2 contributors (all time) y: 120 lines of code liveactivities/src/main/scala/com/gu/liveactivities/service/Authentication.scala x: 2 contributors (all time) y: 29 lines of code liveactivities/src/main/scala/com/gu/liveactivities/service/LiveActivityChannelRepository.scala x: 3 contributors (all time) y: 203 lines of code registration/app/registration/auditor/FootballMatchAuditor.scala x: 3 contributors (all time) y: 42 lines of code registration/app/registration/CustomErrorHandler.scala x: 3 contributors (all time) y: 28 lines of code registration/app/registration/services/LegacyRegistrationConverter.scala x: 10 contributors (all time) y: 64 lines of code liveactivities/src/main/scala/com/gu/liveactivities/util/Configuration.scala x: 1 contributors (all time) y: 56 lines of code api-models/src/main/scala/com/gu/mobile.notifications.client/models/Payloads.scala x: 9 contributors (all time) y: 288 lines of code api-models/src/main/scala/com/gu/mobile.notifications.client/models/liveActitivites/LiveActivityEventBridgePayloads.scala x: 1 contributors (all time) y: 95 lines of code cdk/lib/footballnotificationslambda.ts x: 5 contributors (all time) y: 245 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/EventFilter.scala x: 3 contributors (all time) y: 76 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/AndroidSender.scala x: 13 contributors (all time) y: 68 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/DeliveryClient.scala x: 12 contributors (all time) y: 13 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/DeliverySuccess.scala x: 7 contributors (all time) y: 9 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/tokens/TokenService.scala x: 10 contributors (all time) y: 44 lines of code liveactivities/src/main/scala/com/gu/liveactivities/models/LiveActivityChannelMappings.scala x: 1 contributors (all time) y: 63 lines of code api-models/src/main/scala/com/gu/mobile.notifications.client/models/NotificationPayloadType.scala x: 7 contributors (all time) y: 20 lines of code common/src/main/scala/models/Notification.scala x: 16 contributors (all time) y: 268 lines of code common/src/main/scala/models/NotificationType.scala x: 15 contributors (all time) y: 36 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/models/payload/FcmPayloadBuilder.scala x: 5 contributors (all time) y: 220 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/models/payload/Keys.scala x: 6 contributors (all time) y: 73 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/models/payload/MessageTypes.scala x: 6 contributors (all time) y: 9 lines of code liveactivities/src/main/scala/com/gu/liveactivities/Lambda.scala x: 2 contributors (all time) y: 42 lines of code liveactivities/src/main/scala/com/gu/liveactivities/service/ChannelCleanUpService.scala x: 1 contributors (all time) y: 47 lines of code common/src/main/scala/models/TopicType.scala x: 12 contributors (all time) y: 48 lines of code liveactivities/riff-raff.yaml x: 2 contributors (all time) y: 19 lines of code commonEventBusPusher/src/main/scala/com/gu/mobile/liveactivities/event/bus/LiveActivityPusher.scala x: 2 contributors (all time) y: 59 lines of code api-models/src/main/scala/com/gu/mobile.notifications.client/models/Topic.scala x: 14 contributors (all time) y: 53 lines of code liveactivities/src/main/scala/com/gu/liveactivities/util/DateTimeHelper.scala x: 1 contributors (all time) y: 25 lines of code liveactivities/src/main/resources/logback.xml x: 1 contributors (all time) y: 10 lines of code liveactivities/src/main/scala/com/gu/liveactivities/util/Future.scala x: 1 contributors (all time) y: 19 lines of code liveactivities/src/main/scala/com/gu/liveactivities/util/Logging.scala x: 1 contributors (all time) y: 5 lines of code project/LocalDynamoDBLiveActivities.scala x: 1 contributors (all time) y: 11 lines of code registration-db.yaml x: 3 contributors (all time) y: 185 lines of code football/riff-raff.yaml x: 7 contributors (all time) y: 18 lines of code notificationworkerlambda/harvester-cfn.yaml x: 12 contributors (all time) y: 244 lines of code notificationworkerlambda/riff-raff.yaml x: 8 contributors (all time) y: 75 lines of code notificationworkerlambda/expired-registration-cleaner-cfn.yaml x: 7 contributors (all time) y: 124 lines of code notificationworkerlambda/registration-cleaning-worker-cfn.yaml x: 11 contributors (all time) y: 174 lines of code notificationworkerlambda/topic-counter-cfn.yaml x: 8 contributors (all time) y: 156 lines of code cdk/lib/registration.ts x: 9 contributors (all time) y: 145 lines of code fakebreakingnewslambda/riff-raff.yaml x: 7 contributors (all time) y: 36 lines of code cdk/lib/fakebreakingnewslambda.ts x: 3 contributors (all time) y: 81 lines of code registration/conf/riff-raff.yaml x: 16 contributors (all time) y: 28 lines of code cdk/lib/notification.ts x: 3 contributors (all time) y: 147 lines of code notification/conf/riff-raff.yaml x: 12 contributors (all time) y: 21 lines of code report/conf/riff-raff.yaml x: 15 contributors (all time) y: 47 lines of code common/src/main/scala/db/RegistrationRepository.scala x: 7 contributors (all time) y: 14 lines of code common/src/main/scala/db/RegistrationService.scala x: 10 contributors (all time) y: 54 lines of code common/src/main/scala/db/SqlRegistrationRepository.scala x: 13 contributors (all time) y: 111 lines of code registration/app/registration/services/DatabaseRegistrar.scala x: 9 contributors (all time) y: 51 lines of code registration/app/registration/services/NotificationRegistrar.scala x: 15 contributors (all time) y: 23 lines of code notification/conf/logback.xml x: 5 contributors (all time) y: 23 lines of code registration/conf/logback.xml x: 7 contributors (all time) y: 23 lines of code report/conf/logback.xml x: 5 contributors (all time) y: 24 lines of code cdk/lib/mobile-n10n-compatibility.ts x: 1 contributors (all time) y: 54 lines of code cdk/lib/registrations-db-proxy.ts x: 4 contributors (all time) y: 107 lines of code cdk/eslint.config.mjs x: 1 contributors (all time) y: 14 lines of code .github/dependabot.yml x: 4 contributors (all time) y: 14 lines of code common/src/main/scala/models/Topic.scala x: 12 contributors (all time) y: 24 lines of code common/src/main/scala/metrics/MetricActor.scala x: 6 contributors (all time) y: 93 lines of code common/src/main/scala/metrics/Metrics.scala x: 7 contributors (all time) y: 39 lines of code fakebreakingnewslambda/src/main/scala/fakebreakingnews/FakeBreakingNewsLambda.scala x: 8 contributors (all time) y: 54 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/Configuration.scala x: 14 contributors (all time) y: 140 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/IOSSender.scala x: 11 contributors (all time) y: 22 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/NotificationWorkerLocalRun.scala x: 8 contributors (all time) y: 67 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/SenderRequestHandler.scala x: 11 contributors (all time) y: 95 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/FcmException.scala x: 4 contributors (all time) y: 32 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/FcmTransportJdkImpl.scala x: 4 contributors (all time) y: 114 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/models/FcmConfig.scala x: 5 contributors (all time) y: 8 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/models/payload/FcmResponse.scala x: 4 contributors (all time) y: 24 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Logging.scala x: 10 contributors (all time) y: 84 lines of code registration/app/registration/RegistrationApplicationLoader.scala x: 13 contributors (all time) y: 53 lines of code report/app/report/ReportApplicationLoader.scala x: 11 contributors (all time) y: 40 lines of code reportextractor/src/main/scala/com/gu/notifications/extractor/Lambda.scala x: 9 contributors (all time) y: 116 lines of code schedulelambda/src/main/scala/com/gu/notificationschedule/ProcessNotificationScheduleLambda.scala x: 7 contributors (all time) y: 95 lines of code api-models/src/main/scala/com/gu/mobile.notifications.client/lib/JsonFormatsHelper.scala x: 7 contributors (all time) y: 34 lines of code api-models/src/main/scala/com/gu/mobile.notifications.client/models/Editions.scala x: 7 contributors (all time) y: 47 lines of code api-models/src/main/scala/com/gu/mobile.notifications.client/models/SendNotificationReply.scala x: 6 contributors (all time) y: 6 lines of code common/src/main/scala/models/GoalType.scala x: 6 contributors (all time) y: 21 lines of code common/src/main/scala/models/Importance.scala x: 8 contributors (all time) y: 13 lines of code common/src/main/scala/models/JsonUtils.scala x: 9 contributors (all time) y: 47 lines of code common/src/main/scala/models/Link.scala x: 9 contributors (all time) y: 29 lines of code common/src/main/scala/models/NotificationMetadata.scala x: 3 contributors (all time) y: 7 lines of code common/src/main/scala/models/NotificationReport.scala x: 12 contributors (all time) y: 67 lines of code common/src/main/scala/models/Platform.scala x: 9 contributors (all time) y: 28 lines of code common/src/main/scala/models/PlatformStatistics.scala x: 7 contributors (all time) y: 6 lines of code common/src/main/scala/models/ShardedNotification.scala x: 7 contributors (all time) y: 16 lines of code commoneventconsumer/src/main/scala/com/gu/notifications/events/model/EventAggregation.scala x: 8 contributors (all time) y: 16 lines of code eventconsumer/src/main/scala/com/gu/notifications/events/model/AggregationCounts.scala x: 7 contributors (all time) y: 28 lines of code fakebreakingnewslambda/src/main/scala/fakebreakingnews/FakeRegistrations.scala x: 7 contributors (all time) y: 57 lines of code fakebreakingnewslambda/src/main/scala/fakebreakingnews/TopUkRegularStory.scala x: 8 contributors (all time) y: 69 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/NotificationHttpProvider.scala x: 5 contributors (all time) y: 29 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/NotificationsApiClient.scala x: 6 contributors (all time) y: 60 lines of code notification/app/notification/controllers/Main.scala x: 16 contributors (all time) y: 145 lines of code notification/app/notification/models/PushResult.scala x: 10 contributors (all time) y: 18 lines of code notification/app/notification/services/NotificationSender.scala x: 8 contributors (all time) y: 7 lines of code notification/app/notification/services/frontend/NewsAlert.scala x: 11 contributors (all time) y: 38 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/Harvester.scala x: 12 contributors (all time) y: 170 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/models/payload/Editions.scala x: 4 contributors (all time) y: 28 lines of code registration/app/registration/models/LegacyRegistration.scala x: 9 contributors (all time) y: 64 lines of code schedulelambda/src/main/scala/com/gu/notificationschedule/notifications/RequestNotification.scala x: 6 contributors (all time) y: 61 lines of code slomonitor/src/main/scala/com.gu.notifications.slos/SloMonitor.scala x: 5 contributors (all time) y: 148 lines of code schedulelambda/cfn.yaml x: 5 contributors (all time) y: 94 lines of code cdk/lib/slo-monitoring.ts x: 2 contributors (all time) y: 95 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/apns/models/ApnsConfig.scala x: 4 contributors (all time) y: 12 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/NotificationParser.scala x: 7 contributors (all time) y: 44 lines of code commoneventconsumer/src/main/scala/com/gu/notifications/athena/Athena.scala x: 1 contributors (all time) y: 70 lines of code eventconsumer/src/main/scala/com/gu/notifications/events/AthenaLambda.scala x: 4 contributors (all time) y: 87 lines of code eventconsumer/src/main/scala/com/gu/notifications/events/AthenaMetrics.scala x: 6 contributors (all time) y: 97 lines of code schedulelambda/riff-raff.yaml x: 5 contributors (all time) y: 19 lines of code slomonitor/riff-raff.yaml x: 1 contributors (all time) y: 21 lines of code common/src/main/scala/aws/DynamoJsonConversions.scala x: 7 contributors (all time) y: 51 lines of code common/src/main/scala/utils/LruCache.scala x: 3 contributors (all time) y: 68 lines of code commonscheduledynamodb/src/main/scala/com/gu/notificationschedule/dynamo/NotificationSchedulePersistenceImpl.scala x: 5 contributors (all time) y: 58 lines of code notification/app/notification/data/DataStore.scala x: 4 contributors (all time) y: 22 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/TopicCounter.scala x: 4 contributors (all time) y: 21 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/models/InvalidTokens.scala x: 3 contributors (all time) y: 14 lines of code schedulelambda/src/main/scala/com/gu/notificationschedule/cloudwatch/CloudWatch.scala x: 6 contributors (all time) y: 83 lines of code common/src/main/scala/tracking/InMemoryNotificationReportRepository.scala x: 12 contributors (all time) y: 32 lines of code common/src/main/scala/tracking/NotificationReportRepository.scala x: 6 contributors (all time) y: 92 lines of code report/app/report/controllers/Report.scala x: 13 contributors (all time) y: 44 lines of code notificationworkerlambda/ecr.yaml x: 1 contributors (all time) y: 51 lines of code common/src/main/scala/db/DatabaseConfig.scala x: 3 contributors (all time) y: 47 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/apns/models/payload/CustomProperty.scala x: 4 contributors (all time) y: 67 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/apns/models/payload/MessageTypes.scala x: 3 contributors (all time) y: 6 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/ArticleSearcher.scala x: 1 contributors (all time) y: 36 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/HttpProvider.scala x: 1 contributors (all time) y: 12 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/NotificationSender.scala x: 1 contributors (all time) y: 16 lines of code football/src/main/scala/com/gu/mobile/notifications/football/models/MatchData.scala x: 1 contributors (all time) y: 17 lines of code common/src/main/scala/binders/querystringbinders/package.scala x: 6 contributors (all time) y: 34 lines of code eventconsumer/src/main/scala/com/gu/notifications/events/dynamo/DynamoConversion.scala x: 3 contributors (all time) y: 16 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/RegistrationCleaningWorker.scala x: 2 contributors (all time) y: 61 lines of code common/src/main/scala/db/Registration.scala x: 4 contributors (all time) y: 60 lines of code notification/app/notification/authentication/NotificationAuthAction.scala x: 3 contributors (all time) y: 23 lines of code registration/app/registration/services/LegacyNewsstandRegistrationConverter.scala x: 5 contributors (all time) y: 31 lines of code common/src/main/scala/db/HarvestedToken.scala x: 1 contributors (all time) y: 8 lines of code athena-tables.sql x: 1 contributors (all time) y: 80 lines of code notification/app/notification/controllers/Schedule.scala x: 3 contributors (all time) y: 25 lines of code common/src/main/scala/models/DeviceToken.scala x: 2 contributors (all time) y: 12 lines of code notification/app/notification/services/guardian/TopicRegistrationCounter.scala x: 2 contributors (all time) y: 7 lines of code registration/app/registration/auditor/Auditor.scala x: 2 contributors (all time) y: 6 lines of code registration/app/registration/auditor/AuditorApiConfig.scala x: 2 contributors (all time) y: 3 lines of code registration/app/registration/auditor/TimeExpiringAuditor.scala x: 2 contributors (all time) y: 14 lines of code registration/app/registration/services/Configuration.scala x: 8 contributors (all time) y: 19 lines of code registration/app/registration/services/topic/TopicValidator.scala x: 7 contributors (all time) y: 30 lines of code report/app/report/authentication/ReportAuthAction.scala x: 2 contributors (all time) y: 11 lines of code report/app/report/services/Configuration.scala x: 9 contributors (all time) y: 7 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/oktransport/OkGoogleHttpRequest.scala x: 1 contributors (all time) y: 81 lines of code notification/app/notification/services/azure/NewsstandSender.scala x: 3 contributors (all time) y: 29 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/utils/TimeToLive.scala x: 1 contributors (all time) y: 6 lines of code common/src/main/scala/binders/pathbinders/package.scala x: 4 contributors (all time) y: 26 lines of code common/src/main/scala/models/Provider.scala x: 1 contributors (all time) y: 28 lines of code notification/app/notification/services/NewsstandSender.scala x: 1 contributors (all time) y: 29 lines of code commoneventconsumer/src/main/scala/com/gu/notifications/events/model/NotificationReportEvent.scala x: 3 contributors (all time) y: 2 lines of code notification/app/notification/services/package.scala x: 5 contributors (all time) y: 15 lines of code common/src/main/scala/models/NewsstandShardConfig.scala x: 1 contributors (all time) y: 2 lines of code common/src/main/scala/error/NotificationsError.scala x: 4 contributors (all time) y: 5 lines of code
428.0
lines of code
  min: 2.0
  average: 54.13
  25th percentile: 14.0
  median: 30.5
  75th percentile: 68.0
  max: 428.0
0 19.0
contributors (all time)
min: 1.0 | average: 5.26 | 25th percentile: 2.0 | median: 4.0 | 75th percentile: 8.0 | max: 19.0

File Size vs. Commits (30 days): 25 points

notificationworkerlambda/src/main/resources/logback.xml x: 2 commits (30d) y: 12 lines of code cdk/lib/senderworker.ts x: 6 commits (30d) y: 428 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/DeliveryException.scala x: 5 commits (30d) y: 48 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/DeliveryService.scala x: 9 commits (30d) y: 90 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/models/SendingResults.scala x: 2 commits (30d) y: 62 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Cloudwatch.scala x: 3 commits (30d) y: 115 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/apns/ApnsClient.scala x: 4 commits (30d) y: 120 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/FcmClient.scala x: 2 commits (30d) y: 125 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Reporting.scala x: 3 commits (30d) y: 24 lines of code common/src/main/scala/aws/AWSAsync.scala x: 2 commits (30d) y: 30 lines of code notification/app/notification/NotificationApplicationLoader.scala x: 2 commits (30d) y: 79 lines of code notification/app/notification/services/SloTrackingSender.scala x: 1 commits (30d) y: 22 lines of code notification/app/notification/services/guardian/GuardianNotificationSender.scala x: 1 commits (30d) y: 111 lines of code common/src/main/scala/aws/S3.scala x: 1 commits (30d) y: 54 lines of code common/src/main/scala/utils/CustomApplicationLoader.scala x: 3 commits (30d) y: 36 lines of code common/src/main/scala/utils/MobileAwsCredentialsProvider.scala x: 3 commits (30d) y: 18 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/TopicCounterLambda.scala x: 1 commits (30d) y: 34 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/cleaning/CleaningClient.scala x: 1 commits (30d) y: 31 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/tokens/SqsDeliveryService.scala x: 2 commits (30d) y: 55 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Aws.scala x: 1 commits (30d) y: 5 lines of code football/src/main/scala/com/gu/mobile/notifications/football/Lambda.scala x: 1 commits (30d) y: 142 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/DynamoDistinctCheck.scala x: 1 commits (30d) y: 89 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/FootballData.scala x: 1 commits (30d) y: 144 lines of code
428.0
lines of code
  min: 5.0
  average: 77.76
  25th percentile: 30.5
  median: 54.0
  75th percentile: 113.0
  max: 428.0
0 9.0
commits (30d)
min: 1.0 | average: 2.36 | 25th percentile: 1.0 | median: 2.0 | 75th percentile: 3.0 | max: 9.0

File Size vs. Contributors (30 days): 25 points

notificationworkerlambda/src/main/resources/logback.xml x: 1 contributors (30d) y: 12 lines of code cdk/lib/senderworker.ts x: 1 contributors (30d) y: 428 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/DeliveryException.scala x: 1 contributors (30d) y: 48 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/DeliveryService.scala x: 2 contributors (30d) y: 90 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/models/SendingResults.scala x: 1 contributors (30d) y: 62 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Cloudwatch.scala x: 1 contributors (30d) y: 115 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/apns/ApnsClient.scala x: 1 contributors (30d) y: 120 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/FcmClient.scala x: 1 contributors (30d) y: 125 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Reporting.scala x: 1 contributors (30d) y: 24 lines of code common/src/main/scala/aws/AWSAsync.scala x: 1 contributors (30d) y: 30 lines of code notification/app/notification/NotificationApplicationLoader.scala x: 1 contributors (30d) y: 79 lines of code notification/app/notification/services/SloTrackingSender.scala x: 1 contributors (30d) y: 22 lines of code notification/app/notification/services/guardian/GuardianNotificationSender.scala x: 1 contributors (30d) y: 111 lines of code common/src/main/scala/aws/S3.scala x: 1 contributors (30d) y: 54 lines of code common/src/main/scala/utils/CustomApplicationLoader.scala x: 1 contributors (30d) y: 36 lines of code common/src/main/scala/utils/MobileAwsCredentialsProvider.scala x: 1 contributors (30d) y: 18 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/TopicCounterLambda.scala x: 1 contributors (30d) y: 34 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/cleaning/CleaningClient.scala x: 1 contributors (30d) y: 31 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Aws.scala x: 1 contributors (30d) y: 5 lines of code football/src/main/scala/com/gu/mobile/notifications/football/Lambda.scala x: 1 contributors (30d) y: 142 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/DynamoDistinctCheck.scala x: 1 contributors (30d) y: 89 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/FootballData.scala x: 1 contributors (30d) y: 144 lines of code
428.0
lines of code
  min: 5.0
  average: 77.76
  25th percentile: 30.5
  median: 54.0
  75th percentile: 113.0
  max: 428.0
0 2.0
contributors (30d)
min: 1.0 | average: 1.04 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 1.0 | max: 2.0

File Size vs. Commits (90 days): 31 points

notificationworkerlambda/src/main/resources/logback.xml x: 2 commits (90d) y: 12 lines of code cdk/lib/senderworker.ts x: 6 commits (90d) y: 428 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/DeliveryException.scala x: 5 commits (90d) y: 48 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/DeliveryService.scala x: 9 commits (90d) y: 90 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/models/SendingResults.scala x: 2 commits (90d) y: 62 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Cloudwatch.scala x: 4 commits (90d) y: 115 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/apns/ApnsClient.scala x: 4 commits (90d) y: 120 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/FcmClient.scala x: 2 commits (90d) y: 125 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Reporting.scala x: 3 commits (90d) y: 24 lines of code common/src/main/scala/aws/AWSAsync.scala x: 3 commits (90d) y: 30 lines of code notification/app/notification/NotificationApplicationLoader.scala x: 4 commits (90d) y: 79 lines of code notification/app/notification/services/SloTrackingSender.scala x: 2 commits (90d) y: 22 lines of code notification/app/notification/services/guardian/GuardianNotificationSender.scala x: 2 commits (90d) y: 111 lines of code common/src/main/scala/aws/S3.scala x: 2 commits (90d) y: 54 lines of code common/src/main/scala/utils/CustomApplicationLoader.scala x: 4 commits (90d) y: 36 lines of code common/src/main/scala/utils/MobileAwsCredentialsProvider.scala x: 4 commits (90d) y: 18 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/TopicCounterLambda.scala x: 2 commits (90d) y: 34 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/cleaning/CleaningClient.scala x: 2 commits (90d) y: 31 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/tokens/SqsDeliveryService.scala x: 3 commits (90d) y: 55 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Aws.scala x: 2 commits (90d) y: 5 lines of code football/src/main/scala/com/gu/mobile/notifications/football/Lambda.scala x: 2 commits (90d) y: 142 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/DynamoDistinctCheck.scala x: 2 commits (90d) y: 89 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/FootballData.scala x: 3 commits (90d) y: 144 lines of code football/src/main/scala/com/gu/mobile/notifications/football/notificationbuilders/MatchStatusLiveActivityPayloadBuilder.scala x: 4 commits (90d) y: 83 lines of code football/src/main/scala/com/gu/mobile/notifications/football/notificationbuilders/MatchStatusNotificationBuilder.scala x: 8 commits (90d) y: 216 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/SyntheticMatchEventGenerator.scala x: 2 commits (90d) y: 183 lines of code football/src/main/scala/com/gu/mobile/notifications/football/models/MatchEvents.scala x: 2 commits (90d) y: 205 lines of code cdk/lib/report.ts x: 2 commits (90d) y: 255 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/EventConsumer.scala x: 1 commits (90d) y: 107 lines of code
428.0
lines of code
  min: 5.0
  average: 96.55
  25th percentile: 34.0
  median: 79.0
  75th percentile: 125.0
  max: 428.0
0 9.0
commits (90d)
min: 1.0 | average: 3.13 | 25th percentile: 2.0 | median: 2.0 | 75th percentile: 4.0 | max: 9.0

File Size vs. Contributors (90 days): 31 points

notificationworkerlambda/src/main/resources/logback.xml x: 1 contributors (90d) y: 12 lines of code cdk/lib/senderworker.ts x: 1 contributors (90d) y: 428 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/DeliveryException.scala x: 1 contributors (90d) y: 48 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/DeliveryService.scala x: 2 contributors (90d) y: 90 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/models/SendingResults.scala x: 1 contributors (90d) y: 62 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Cloudwatch.scala x: 1 contributors (90d) y: 115 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/apns/ApnsClient.scala x: 1 contributors (90d) y: 120 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/delivery/fcm/FcmClient.scala x: 1 contributors (90d) y: 125 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Reporting.scala x: 1 contributors (90d) y: 24 lines of code common/src/main/scala/aws/AWSAsync.scala x: 1 contributors (90d) y: 30 lines of code notification/app/notification/NotificationApplicationLoader.scala x: 1 contributors (90d) y: 79 lines of code notification/app/notification/services/SloTrackingSender.scala x: 1 contributors (90d) y: 22 lines of code notification/app/notification/services/guardian/GuardianNotificationSender.scala x: 1 contributors (90d) y: 111 lines of code common/src/main/scala/aws/S3.scala x: 1 contributors (90d) y: 54 lines of code common/src/main/scala/utils/CustomApplicationLoader.scala x: 1 contributors (90d) y: 36 lines of code common/src/main/scala/utils/MobileAwsCredentialsProvider.scala x: 1 contributors (90d) y: 18 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/TopicCounterLambda.scala x: 1 contributors (90d) y: 34 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/cleaning/CleaningClient.scala x: 1 contributors (90d) y: 31 lines of code notificationworkerlambda/src/main/scala/com/gu/notifications/worker/utils/Aws.scala x: 1 contributors (90d) y: 5 lines of code football/src/main/scala/com/gu/mobile/notifications/football/Lambda.scala x: 1 contributors (90d) y: 142 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/DynamoDistinctCheck.scala x: 1 contributors (90d) y: 89 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/FootballData.scala x: 2 contributors (90d) y: 144 lines of code football/src/main/scala/com/gu/mobile/notifications/football/notificationbuilders/MatchStatusLiveActivityPayloadBuilder.scala x: 1 contributors (90d) y: 83 lines of code football/src/main/scala/com/gu/mobile/notifications/football/notificationbuilders/MatchStatusNotificationBuilder.scala x: 2 contributors (90d) y: 216 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/SyntheticMatchEventGenerator.scala x: 1 contributors (90d) y: 183 lines of code football/src/main/scala/com/gu/mobile/notifications/football/models/MatchEvents.scala x: 1 contributors (90d) y: 205 lines of code cdk/lib/report.ts x: 2 contributors (90d) y: 255 lines of code football/src/main/scala/com/gu/mobile/notifications/football/lib/EventConsumer.scala x: 1 contributors (90d) y: 107 lines of code
428.0
lines of code
  min: 5.0
  average: 96.55
  25th percentile: 34.0
  median: 79.0
  75th percentile: 125.0
  max: 428.0
0 2.0
contributors (90d)
min: 1.0 | average: 1.13 | 25th percentile: 1.0 | median: 1.0 | 75th percentile: 1.0 | max: 2.0
About This Analysis
  • File size measurements show the distribution of size of files.
  • Files are classified in four categories based on their size (lines of code): 1-100 (very small files), 101-200 (small files), 201-500 (medium size files), 501-1000 (long files), 1001+(very long files).
  • It is a good practice to keep files small. Long files may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...