Overview
File Change Frequency Overall
  • There are 554 files with 47,720 lines of code.
    • 0 files changed more than 100 times (0 lines of code)
    • 4 files changed 51-100 times (3,217 lines of code)
    • 35 files changed 21-50 times (7,869 lines of code)
    • 123 files changed 6-20 times (13,102 lines of code)
    • 392 files changed 1-5 times (23,532 lines of code)
0% | 6% | 16% | 27% | 49%
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 554 files with 47,720 lines of code.
    • 0 files changed by more than 25 contributors (0 lines of code)
    • 2 files changed by 11-25 contributors (647 lines of code)
    • 33 files changed by 6-10 contributors (8,731 lines of code)
    • 270 files changed by 2-5 contributors (22,989 lines of code)
    • 249 files changed by 1 contributor (15,353 lines of code)
0% | 1% | 18% | 48% | 32%
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, ts, tsx, properties, scss, js, jsx, md, json, txt, sh, css, svg, yml, gitignore, xml, yaml, sbt, sql, feature, html, java, toml, cjs, mjs, snap, prettierignore
File Change Frequency per Extension
The number of recorded file updates
101+
51-100
21-50
6-20
1-5
scala0% | 10% | 32% | 31% | 25%
tsx0% | 10% | 14% | 32% | 42%
ts0% | 0% | 2% | 30% | 67%
yaml0% | 0% | 65% | 0% | 34%
scss0% | 0% | 0% | 38% | 61%
css0% | 0% | 0% | 66% | 33%
js0% | 0% | 0% | 2% | 97%
jsx0% | 0% | 0% | 0% | 100%
xml0% | 0% | 0% | 0% | 100%
html0% | 0% | 0% | 0% | 100%
toml0% | 0% | 0% | 0% | 100%
sql0% | 0% | 0% | 0% | 100%
mjs0% | 0% | 0% | 0% | 100%
java0% | 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
backend0% | 12% | 37% | 32% | 18%
frontend0% | 4% | 7% | 25% | 62%
common0% | 0% | 17% | 30% | 51%
ROOT0% | 0% | 100% | 0% | 0%
cli0% | 0% | 0% | 41% | 58%
transcription-worker-interface0% | 0% | 0% | 0% | 100%
project0% | 0% | 0% | 0% | 100%
infra0% | 0% | 0% | 0% | 100%
.devcontainer0% | 0% | 0% | 0% | 100%
util0% | 0% | 0% | 0% | 100%
Most Frequently Changed Files (Top 50)

See data for all files...

File# lines# unitscreatedlast modified# changes
(days)
# contributorsline
churn
first
contributor
latest
contributor
AppComponents.scala
in backend/app
253 - 2021-05-24 2026-09-10 90 13 +501 / -327 michael.barton philip.mcmahon
Workspaces.tsx
in frontend/src/js/components/workspace
1364 17 2023-09-15 2026-09-16 61 7 +3736 / -1899 marjan.kalanaki philip.mcmahon
Neo4jManifest.scala
in backend/app/services/manifest
1206 44 2022-03-28 2026-07-29 60 9 +1999 / -977 philip.mcmahon luke.hoyland
Workspaces.scala
in backend/app/controllers/api
394 28 2021-05-25 2026-08-14 51 12 +739 / -336 mbarton luke.hoyland
ElasticsearchResources.scala
in backend/app/services/index
940 32 2022-09-30 2026-09-08 46 7 +1185 / -433 joseph.lochlann philip.mcmahon
Config.scala
in backend/app/services
222 1 2022-02-25 2026-07-21 42 9 +187 / -71 sam.cutler philip.mcmahon
VirtualScroll.tsx
in frontend/src/js/components/PageViewer
335 - 2022-03-02 2026-07-13 41 7 +2083 / -846 sam.cutler philip.mcmahon
ExternalTranscriptionExtractor.scala
in backend/app/extraction
75 1 2024-03-12 2026-09-24 39 5 +697 / -554 philip.mcmahon philip.mcmahon
AwsDiscovery.scala
in backend/app/utils
226 9 2021-05-28 2026-07-21 39 10 +370 / -155 mbarton philip.mcmahon
PageViewer.tsx
in frontend/src/js/components/PageViewer
93 - 2022-03-02 2026-07-13 36 6 +1653 / -1066 sam.cutler philip.mcmahon
Neo4jAnnotations.scala
in backend/app/services/annotations
708 28 2022-10-08 2026-06-12 36 7 +730 / -293 michael tom.richards
FailureToResultMapper.scala
in backend/app/utils/controller
154 4 2021-11-10 2026-07-21 35 8 +119 / -98 philip.mcmahon philip.mcmahon
66 - 2022-01-10 2026-06-23 34 6 +95 / -63 philip.mcmahon philip.mcmahon
RemoteIngestWorker.scala
in backend/app/services/ingestion
181 5 2025-09-02 2026-04-01 34 4 +876 / -336 philip.mcmahon philip.mcmahon
OcrMyPdfExtractor.scala
in backend/app/extraction/ocr
146 7 2021-05-21 2026-10-05 33 6 +315 / -232 michael.barton philip.mcmahon
Failure.scala
in common/src/main/scala/utils/attempt
99 1 2022-03-30 2026-07-21 32 6 +82 / -16 philip.mcmahon philip.mcmahon
WorkspaceSummary.tsx
in frontend/src/js/components/workspace
235 - 2023-11-06 2026-09-16 31 6 +762 / -475 marjan.kalanaki philip.mcmahon
Manifest.scala
in backend/app/services/manifest
72 1 2022-03-28 2026-07-21 30 5 +103 / -39 philip.mcmahon philip.mcmahon
PagesController.scala
in backend/app/controllers/api
141 9 2022-03-02 2026-09-15 30 7 +875 / -268 sam.cutler philip.mcmahon
PostgresClient.scala
in backend/app/services/observability
239 6 2023-08-10 2025-10-01 30 3 +867 / -349 philip.mcmahon philip.mcmahon
ExternalTranscriptionWorker.scala
in backend/app/extraction
257 13 2024-10-02 2026-09-24 30 4 +1053 / -445 marjan.kalanaki philip.mcmahon
Ocr.scala
in backend/app/utils
244 7 2021-05-21 2026-10-05 29 7 +679 / -151 michael.barton philip.mcmahon
PageViewerOrFallback.tsx
in frontend/src/js/components
343 3 2022-07-04 2026-09-08 29 3 +1305 / -499 joseph.lochlann philip.mcmahon
Index.scala
in backend/app/services/index
35 - 2022-09-30 2026-08-18 28 5 +80 / -34 joseph.lochlann philip.mcmahon
Blobs.scala
in backend/app/controllers/api
122 7 2021-05-24 2026-04-30 28 6 +394 / -174 michael.barton philip.mcmahon
Models.scala
in backend/app/services/observability
184 9 2023-08-08 2025-11-12 28 5 +692 / -219 zeke.huntergreen srbd
RemoteIngest.scala
in backend/app/model/ingestion
144 5 2025-09-02 2026-06-12 27 5 +710 / -252 philip.mcmahon tom.richards
PageCache.ts
in frontend/src/js/components/PageViewer
147 1 2022-03-02 2026-01-12 26 4 +970 / -287 sam.cutler philip.mcmahon
Viewer.tsx
in frontend/src/js/components/viewer
362 10 2021-05-27 2026-09-08 26 5 +797 / -761 joseph.lochlann philip.mcmahon
Collections.scala
in backend/app/controllers/api
241 15 2022-10-11 2026-04-01 25 7 +395 / -153 joseph.lochlann philip.mcmahon
HitReaders.scala
in backend/app/services/index
324 29 2022-10-08 2026-09-08 25 4 +283 / -91 michael philip.mcmahon
Controls.tsx
in frontend/src/js/components/PageViewer
37 - 2022-03-17 2026-05-11 24 5 +907 / -538 sam.cutler luke.hoyland
Neo4jRemoteIngestStore.scala
in backend/app/services/ingestion
214 9 2025-09-09 2026-04-01 23 3 +1046 / -500 tom.richards philip.mcmahon
WorkerControl.scala
in backend/app/utils
217 17 2022-10-08 2026-05-14 22 6 +318 / -201 michael philip.mcmahon
IngestionEvents.tsx
in frontend/src/js/components/IngestionEvents
502 3 2023-08-17 2026-09-16 22 3 +1737 / -851 philip.mcmahon philip.mcmahon
Page.tsx
in frontend/src/js/components/PageViewer
68 - 2022-03-02 2026-01-12 21 4 +493 / -160 sam.cutler philip.mcmahon
Worker.scala
in backend/app/extraction
153 7 2021-05-27 2026-04-13 21 5 +214 / -86 mbarton tom.richards
IngestStorePolling.scala
in backend/app/ingestion/phase2
165 8 2021-11-10 2026-01-13 21 7 +198 / -148 philip.mcmahon sabina.bejasa-dimmock
IngestionServices.scala
in backend/app/services/ingestion
178 11 2023-08-10 2026-09-16 21 4 +419 / -153 philip.mcmahon philip.mcmahon
model.ts
in frontend/src/js/components/PageViewer
82 1 2022-03-02 2026-04-27 20 5 +348 / -54 sam.cutler luke.hoyland
OcrMyPdfImageExtractor.scala
in backend/app/extraction/ocr
86 6 2021-05-21 2026-10-05 20 6 +231 / -181 michael.barton philip.mcmahon
UploadFiles.tsx
in frontend/src/js/components/Uploads
458 17 2023-09-08 2026-09-16 20 5 +720 / -326 philip.mcmahon philip.mcmahon
FindInput.tsx
in frontend/src/js/components/PageViewer
137 - 2022-03-21 2026-09-16 19 4 +802 / -172 sam.cutler philip.mcmahon
Pages2.scala
in backend/app/services/index
148 9 2022-03-02 2026-07-27 19 7 +804 / -224 sam.cutler luke.hoyland
WorkspaceApi.ts
in frontend/src/js/services
228 21 2023-09-15 2026-08-14 19 6 +405 / -129 marjan.kalanaki luke.hoyland
Annotations.scala
in backend/app/services/annotations
47 2 2023-09-18 2026-05-26 18 6 +32 / -17 marjan.kalanaki luke.hoyland
DeleteResource.scala
in backend/app/commands
63 5 2022-03-30 2023-09-25 18 4 +458 / -153 philip.mcmahon philip.mcmahon
MetricsService.scala
in backend/app/services
79 7 2021-11-10 2026-04-29 18 9 +308 / -81 philip.mcmahon philip.mcmahon
Resource.ts
in frontend/src/js/types
95 - 2023-08-18 2026-09-21 18 2 +192 / -122 philip.mcmahon philip.mcmahon
Workspace.scala
in backend/app/model/annotations
179 4 2023-09-15 2026-06-12 18 7 +85 / -30 marjan.kalanaki tom.richards
Files With Most Churn (Top 50)
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
Workspaces.tsx
in frontend/src/js/components/workspace
1364 17 2023-09-15 2026-09-16 61 7 +3736 / -1899 marjan.kalanaki philip.mcmahon
workspaceUtils.fixtures.ts
in frontend/src/js/util
955 - 2025-09-22 2026-06-12 5 3 +1516 / -1512 sabina.bejasa-dimmock tom.richards
Neo4jManifest.scala
in backend/app/services/manifest
1206 44 2022-03-28 2026-07-29 60 9 +1999 / -977 philip.mcmahon luke.hoyland
VirtualScroll.tsx
in frontend/src/js/components/PageViewer
335 - 2022-03-02 2026-07-13 41 7 +2083 / -846 sam.cutler philip.mcmahon
PageViewer.tsx
in frontend/src/js/components/PageViewer
93 - 2022-03-02 2026-07-13 36 6 +1653 / -1066 sam.cutler philip.mcmahon
IngestionEvents.tsx
in frontend/src/js/components/IngestionEvents
502 3 2023-08-17 2026-09-16 22 3 +1737 / -851 philip.mcmahon philip.mcmahon
PageViewerOrFallback.tsx
in frontend/src/js/components
343 3 2022-07-04 2026-09-08 29 3 +1305 / -499 joseph.lochlann philip.mcmahon
CaptureFromUrl.tsx
in frontend/src/js/components/Uploads
355 8 2025-09-05 2026-09-16 18 3 +1355 / -287 tom.richards philip.mcmahon
ElasticsearchResources.scala
in backend/app/services/index
940 32 2022-09-30 2026-09-08 46 7 +1185 / -433 joseph.lochlann philip.mcmahon
Viewer.tsx
in frontend/src/js/components/viewer
362 10 2021-05-27 2026-09-08 26 5 +797 / -761 joseph.lochlann philip.mcmahon
Neo4jRemoteIngestStore.scala
in backend/app/services/ingestion
214 9 2025-09-09 2026-04-01 23 3 +1046 / -500 tom.richards philip.mcmahon
VideoVerifier.tsx
in frontend/src/js/components
366 6 2025-11-13 2026-09-11 7 2 +1356 / -180 tom.richards philip.mcmahon
ExternalTranscriptionWorker.scala
in backend/app/extraction
257 13 2024-10-02 2026-09-24 30 4 +1053 / -445 marjan.kalanaki philip.mcmahon
Controls.tsx
in frontend/src/js/components/PageViewer
37 - 2022-03-17 2026-05-11 24 5 +907 / -538 sam.cutler luke.hoyland
TranscriptionWorkerInterface.scala
in transcription-worker-interface/src/main/scala/com/gu/transcriptionservice/workerinterface
548 7 2026-09-04 2026-09-21 2 1 +1304 / -0 philip.mcmahon philip.mcmahon
PageCache.ts
in frontend/src/js/components/PageViewer
147 1 2022-03-02 2026-01-12 26 4 +970 / -287 sam.cutler philip.mcmahon
ExternalTranscriptionExtractor.scala
in backend/app/extraction
75 1 2024-03-12 2026-09-24 39 5 +697 / -554 philip.mcmahon philip.mcmahon
WorkspaceSummary.tsx
in frontend/src/js/components/workspace
235 - 2023-11-06 2026-09-16 31 6 +762 / -475 marjan.kalanaki philip.mcmahon
PostgresClient.scala
in backend/app/services/observability
239 6 2023-08-10 2025-10-01 30 3 +867 / -349 philip.mcmahon philip.mcmahon
RemoteIngestWorker.scala
in backend/app/services/ingestion
181 5 2025-09-02 2026-04-01 34 4 +876 / -336 philip.mcmahon philip.mcmahon
PagesController.scala
in backend/app/controllers/api
141 9 2022-03-02 2026-09-15 30 7 +875 / -268 sam.cutler philip.mcmahon
Workspaces.scala
in backend/app/controllers/api
394 28 2021-05-25 2026-08-14 51 12 +739 / -336 mbarton luke.hoyland
UploadFiles.tsx
in frontend/src/js/components/Uploads
458 17 2023-09-08 2026-09-16 20 5 +720 / -326 philip.mcmahon philip.mcmahon
Pages2.scala
in backend/app/services/index
148 9 2022-03-02 2026-07-27 19 7 +804 / -224 sam.cutler luke.hoyland
Neo4jAnnotations.scala
in backend/app/services/annotations
708 28 2022-10-08 2026-06-12 36 7 +730 / -293 michael tom.richards
_select.scss
in frontend/src/stylesheets/components
32 - 2026-01-12 2026-09-16 3 1 +142 / -866 philip.mcmahon philip.mcmahon
FindInput.tsx
in frontend/src/js/components/PageViewer
137 - 2022-03-21 2026-09-16 19 4 +802 / -172 sam.cutler philip.mcmahon
RemoteIngest.scala
in backend/app/model/ingestion
144 5 2025-09-02 2026-06-12 27 5 +710 / -252 philip.mcmahon tom.richards
index.jsx
in frontend/src/js/components/UtilComponents/InputSupper
412 - 2026-09-03 2026-09-11 2 1 +914 / -0 philip.mcmahon philip.mcmahon
Models.scala
in backend/app/services/observability
184 9 2023-08-08 2025-11-12 28 5 +692 / -219 zeke.huntergreen srbd
297 15 2026-09-04 2026-09-21 2 1 +862 / -38 philip.mcmahon philip.mcmahon
Chip.jsx
in frontend/src/js/components/UtilComponents/InputSupper
387 - 2026-09-03 2026-09-11 2 1 +896 / -0 philip.mcmahon philip.mcmahon
PreviewSwitcher.tsx
in frontend/src/js/components/viewer
255 2 2026-07-16 2026-09-08 5 1 +738 / -128 philip.mcmahon philip.mcmahon
Ocr.scala
in backend/app/utils
244 7 2021-05-21 2026-10-05 29 7 +679 / -151 michael.barton philip.mcmahon
AppComponents.scala
in backend/app
253 - 2021-05-24 2026-09-10 90 13 +501 / -327 michael.barton philip.mcmahon
GiantActions.ts
in frontend/src/js/types/redux
305 - 2021-05-28 2026-09-29 18 9 +449 / -321 michael.barton 3606555+philmcmahon
Search.tsx
in frontend/src/js/components/Search
284 7 2026-05-18 2026-09-16 4 2 +753 / -5 luke.hoyland philip.mcmahon
Timeline.jsx
in frontend/src/js/components/EmailBrowser
333 - 2026-09-03 2026-09-11 2 1 +754 / -0 philip.mcmahon philip.mcmahon
TextPreview.tsx
in frontend/src/js/components/viewer
161 4 2023-05-01 2026-09-08 14 2 +442 / -278 philip.mcmahon philip.mcmahon
AllIngestionEvents.tsx
in frontend/src/js/components/IngestionEvents
178 4 2023-08-17 2026-09-11 11 4 +540 / -180 philip.mcmahon philip.mcmahon
DownloadTextModal.tsx
in frontend/src/js/components/workspace
232 - 2026-04-20 2026-08-14 7 2 +622 / -92 tom.richards luke.hoyland
ConfirmModal.tsx
in frontend/src/js/components/workspace
167 4 2024-09-24 2026-01-12 5 4 +539 / -169 marjan.kalanaki philip.mcmahon
DeleteButtonModal.tsx
in frontend/src/js/components/viewer
104 1 2022-03-29 2026-01-12 10 3 +546 / -134 philip.mcmahon philip.mcmahon
DownloadModal.jsx
in frontend/src/js/components/viewer
295 - 2026-09-03 2026-09-16 4 1 +664 / -10 philip.mcmahon philip.mcmahon
TranscriptViewer.tsx
in frontend/src/js/components/viewer/TranscriptViewer
188 - 2025-12-05 2026-01-12 5 1 +544 / -118 philip.mcmahon philip.mcmahon
Page.tsx
in frontend/src/js/components/PageViewer
68 - 2022-03-02 2026-01-12 21 4 +493 / -160 sam.cutler philip.mcmahon
TranscriptionService.scala
in backend/app/model
20 - 2026-06-22 2026-09-24 7 1 +357 / -281 philip.mcmahon philip.mcmahon
RegisterUser.jsx
in frontend/src/js/components/users
288 - 2026-09-03 2026-09-11 2 1 +634 / -0 philip.mcmahon philip.mcmahon
index.tsx
in frontend/src/js/components/UtilComponents/TreeBrowser
340 5 2026-01-12 2026-09-22 12 3 +391 / -231 philip.mcmahon 3606555+philmcmahon
MyUploads.tsx
in frontend/src/js/components/IngestionEvents
137 3 2023-08-17 2026-09-11 9 3 +448 / -170 philip.mcmahon philip.mcmahon
Files With Most Contributors (Top 50)
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
AppComponents.scala
in backend/app
253 - 2021-05-24 2026-09-10 90 13 +501 / -327 michael.barton philip.mcmahon
Workspaces.scala
in backend/app/controllers/api
394 28 2021-05-25 2026-08-14 51 12 +739 / -336 mbarton luke.hoyland
AwsDiscovery.scala
in backend/app/utils
226 9 2021-05-28 2026-07-21 39 10 +370 / -155 mbarton philip.mcmahon
Neo4jManifest.scala
in backend/app/services/manifest
1206 44 2022-03-28 2026-07-29 60 9 +1999 / -977 philip.mcmahon luke.hoyland
Config.scala
in backend/app/services
222 1 2022-02-25 2026-07-21 42 9 +187 / -71 sam.cutler philip.mcmahon
GiantActions.ts
in frontend/src/js/types/redux
305 - 2021-05-28 2026-09-29 18 9 +449 / -321 michael.barton 3606555+philmcmahon
MetricsService.scala
in backend/app/services
79 7 2021-11-10 2026-04-29 18 9 +308 / -81 philip.mcmahon philip.mcmahon
FailureToResultMapper.scala
in backend/app/utils/controller
154 4 2021-11-10 2026-07-21 35 8 +119 / -98 philip.mcmahon philip.mcmahon
EmlParser.scala
in backend/app/extraction/email/eml
126 8 2022-02-03 2026-04-21 12 8 +55 / -37 sam.cutler srbd
Workspaces.tsx
in frontend/src/js/components/workspace
1364 17 2023-09-15 2026-09-16 61 7 +3736 / -1899 marjan.kalanaki philip.mcmahon
ElasticsearchResources.scala
in backend/app/services/index
940 32 2022-09-30 2026-09-08 46 7 +1185 / -433 joseph.lochlann philip.mcmahon
VirtualScroll.tsx
in frontend/src/js/components/PageViewer
335 - 2022-03-02 2026-07-13 41 7 +2083 / -846 sam.cutler philip.mcmahon
Neo4jAnnotations.scala
in backend/app/services/annotations
708 28 2022-10-08 2026-06-12 36 7 +730 / -293 michael tom.richards
PagesController.scala
in backend/app/controllers/api
141 9 2022-03-02 2026-09-15 30 7 +875 / -268 sam.cutler philip.mcmahon
Ocr.scala
in backend/app/utils
244 7 2021-05-21 2026-10-05 29 7 +679 / -151 michael.barton philip.mcmahon
Collections.scala
in backend/app/controllers/api
241 15 2022-10-11 2026-04-01 25 7 +395 / -153 joseph.lochlann philip.mcmahon
IngestStorePolling.scala
in backend/app/ingestion/phase2
165 8 2021-11-10 2026-01-13 21 7 +198 / -148 philip.mcmahon sabina.bejasa-dimmock
Pages2.scala
in backend/app/services/index
148 9 2022-03-02 2026-07-27 19 7 +804 / -224 sam.cutler luke.hoyland
Workspace.scala
in backend/app/model/annotations
179 4 2023-09-15 2026-06-12 18 7 +85 / -30 marjan.kalanaki tom.richards
Resource.scala
in backend/app/controllers/api
77 4 2022-02-25 2025-11-12 12 7 +25 / -34 sam.cutler srbd
PanDomainUserProvider.scala
in backend/app/utils/auth/providers
88 4 2022-05-24 2026-01-21 8 7 +69 / -42 samantha.gottlieb philip.mcmahon
PageViewer.tsx
in frontend/src/js/components/PageViewer
93 - 2022-03-02 2026-07-13 36 6 +1653 / -1066 sam.cutler philip.mcmahon
66 - 2022-01-10 2026-06-23 34 6 +95 / -63 philip.mcmahon philip.mcmahon
OcrMyPdfExtractor.scala
in backend/app/extraction/ocr
146 7 2021-05-21 2026-10-05 33 6 +315 / -232 michael.barton philip.mcmahon
Failure.scala
in common/src/main/scala/utils/attempt
99 1 2022-03-30 2026-07-21 32 6 +82 / -16 philip.mcmahon philip.mcmahon
WorkspaceSummary.tsx
in frontend/src/js/components/workspace
235 - 2023-11-06 2026-09-16 31 6 +762 / -475 marjan.kalanaki philip.mcmahon
Blobs.scala
in backend/app/controllers/api
122 7 2021-05-24 2026-04-30 28 6 +394 / -174 michael.barton philip.mcmahon
WorkerControl.scala
in backend/app/utils
217 17 2022-10-08 2026-05-14 22 6 +318 / -201 michael philip.mcmahon
OcrMyPdfImageExtractor.scala
in backend/app/extraction/ocr
86 6 2021-05-21 2026-10-05 20 6 +231 / -181 michael.barton philip.mcmahon
WorkspaceApi.ts
in frontend/src/js/services
228 21 2023-09-15 2026-08-14 19 6 +405 / -129 marjan.kalanaki luke.hoyland
Annotations.scala
in backend/app/services/annotations
47 2 2023-09-18 2026-05-26 18 6 +32 / -17 marjan.kalanaki luke.hoyland
ObjectStorage.scala
in backend/app/services
137 14 2022-09-28 2026-07-21 16 6 +302 / -76 joseph.lochlann philip.mcmahon
Workspaces.ts
in frontend/src/js/types
51 2 2023-09-15 2026-06-12 12 6 +94 / -64 marjan.kalanaki tom.richards
Main.scala
in cli/src/main/scala/com/gu/pfi/cli
172 1 2022-06-21 2026-06-02 11 6 +141 / -81 philip.mcmahon srbd
Tika.scala
in backend/app/services
84 4 2022-10-08 2026-04-21 5 6 +8 / -10 michael srbd
ExternalTranscriptionExtractor.scala
in backend/app/extraction
75 1 2024-03-12 2026-09-24 39 5 +697 / -554 philip.mcmahon philip.mcmahon
Manifest.scala
in backend/app/services/manifest
72 1 2022-03-28 2026-07-21 30 5 +103 / -39 philip.mcmahon philip.mcmahon
Models.scala
in backend/app/services/observability
184 9 2023-08-08 2025-11-12 28 5 +692 / -219 zeke.huntergreen srbd
Index.scala
in backend/app/services/index
35 - 2022-09-30 2026-08-18 28 5 +80 / -34 joseph.lochlann philip.mcmahon
RemoteIngest.scala
in backend/app/model/ingestion
144 5 2025-09-02 2026-06-12 27 5 +710 / -252 philip.mcmahon tom.richards
Viewer.tsx
in frontend/src/js/components/viewer
362 10 2021-05-27 2026-09-08 26 5 +797 / -761 joseph.lochlann philip.mcmahon
Controls.tsx
in frontend/src/js/components/PageViewer
37 - 2022-03-17 2026-05-11 24 5 +907 / -538 sam.cutler luke.hoyland
Worker.scala
in backend/app/extraction
153 7 2021-05-27 2026-04-13 21 5 +214 / -86 mbarton tom.richards
model.ts
in frontend/src/js/components/PageViewer
82 1 2022-03-02 2026-04-27 20 5 +348 / -54 sam.cutler luke.hoyland
UploadFiles.tsx
in frontend/src/js/components/Uploads
458 17 2023-09-08 2026-09-16 20 5 +720 / -326 philip.mcmahon philip.mcmahon
PdfHelpers.ts
in frontend/src/js/components/PageViewer
75 1 2022-03-03 2026-04-02 17 5 +442 / -152 sam.cutler luke.hoyland
Neo4jUserManagement.scala
in backend/app/services/users
397 24 2022-10-08 2026-03-27 16 5 +148 / -114 michael tom.richards
PDFUtil.scala
in backend/app/utils
91 5 2022-02-25 2022-10-21 15 5 +253 / -180 sam.cutler philip.mcmahon
TesseractPdfOcrExtractor.scala
in backend/app/extraction/ocr
75 4 2021-05-24 2026-09-15 15 5 +55 / -86 michael.barton philip.mcmahon
IngestStorage.scala
in backend/app/services
160 9 2022-10-08 2026-04-21 14 5 +317 / -99 michael srbd
Files With Least Contributors (Top 50)
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
Users.scala
in backend/app/controllers/api
111 10
OlmMessage.scala
in backend/app/extraction/email/olm
99 5
DownloadHelper.scala
in backend/app/utils/controller
83 6
Totp.scala
in backend/app/utils/auth/totp
72 7
PasswordHashing.scala
in backend/app/utils/auth
67 4
GetFilters.scala
in backend/app/commands
60 1
logback.xml
in backend/conf
59 -
Genesis.scala
in backend/app/controllers/genesis
55 2
CliCredentialsStore.scala
in cli/src/main/scala/com/gu/pfi/cli/credentials
53 5
Emails.scala
in backend/app/controllers/api
52 4
Documents.scala
in backend/app/controllers/api
39 2
CliVeracrypt.scala
in cli/src/main/scala/com/gu/pfi/cli/service
39 4
PfiApiController.scala
in backend/app/utils/controller
37 1
PreviewGenerator.scala
in backend/app/services/previewing
36 1
Events.scala
in backend/app/controllers/api
31 2
VerifyIngestion.scala
in backend/app/commands
30 3
VersionedFormat.scala
in common/src/main/scala/utils
27 2
CustomTikaDetector.scala
in backend/app/extraction/email
26 1
CliUsers.scala
in cli/src/main/scala/com/gu/pfi/cli/service
24 3
Uri.scala
in common/src/main/scala/model
24 1
SecureSecretGenerator.scala
in backend/app/utils/auth/totp
23 1
TFACommands.scala
in backend/app/commands
23 1
CliServices.scala
in cli/src/main/scala/com/gu/pfi/cli/service
23 1
UserProvider.scala
in backend/app/utils/auth/providers
22 -
LibreOfficePreviewGenerator.scala
in backend/app/services/previewing
22 2
AuthApiController.scala
in backend/app/utils/controller
21 1
CliCredentials.scala
in cli/src/main/scala/com/gu/pfi/cli/credentials
21 1
FileExtractor.scala
in backend/app/extraction
20 1
logback.xml
in cli/src/main/resources
20 -
CreateCollection.scala
in backend/app/commands
19 1
IngestionSource.scala
in cli/src/main/scala/com/gu/pfi/cli/ingestion
18 1
AttemptAwait.scala
in common/src/main/scala/utils/attempt
18 2
UserPermissions.scala
in backend/app/model/user
17 1
MimeTypes.scala
in backend/app/controllers/api
17 -
OlmEmailDetector.scala
in backend/app/extraction/email/olm
17 1
package.scala
in common/src/main/scala/utils/attempt
17 3
OptionalAuthApiController.scala
in backend/app/utils/controller
16 -
HashFiles.scala
in cli/src/main/scala/com/gu/pfi/cli
16 1
DateTimeUtils.scala
in backend/app/utils
15 -
AuthControllerComponents.scala
in backend/app/utils/controller
14 -
Chart.scala
in backend/app/utils
14 1
Flags.scala
in backend/app/model/index
14 -
package.scala
in common/src/main/scala/model/ingestion
14 -
Stopwatch.scala
in backend/app/utils
12 2
Filters.scala
in backend/app/controllers/api
12 -
CliFiles.scala
in cli/src/main/scala/com/gu/pfi/cli/service
12 2
PasswordValidator.scala
in backend/app/utils/auth
11 1
Epoch.scala
in backend/app/utils
11 -
GetBlobObjectData.scala
in backend/app/commands
11 1
Secret.scala
in backend/app/utils/auth/totp
10 2
Correlations

File Size vs. Number of Changes: 554 points

backend/app/extraction/ocr/OcrMyPdfExtractor.scala x: 146 lines of code y: 33 # changes backend/app/extraction/ocr/OcrMyPdfImageExtractor.scala x: 86 lines of code y: 20 # changes backend/app/utils/Ocr.scala x: 244 lines of code y: 29 # changes frontend/src/js/actions/getFilters.ts x: 39 lines of code y: 1 # changes frontend/src/js/components/SearchSidebar/SearchFilter.jsx x: 63 lines of code y: 3 # changes frontend/src/js/components/SearchSidebar/SearchFilterOption.jsx x: 155 lines of code y: 3 # changes frontend/src/js/components/SearchSidebar/SearchFilterValue.jsx x: 118 lines of code y: 5 # changes frontend/src/js/reducers/filtersReducer.ts x: 13 lines of code y: 1 # changes frontend/src/js/services/FiltersApi.ts x: 11 lines of code y: 1 # changes frontend/src/js/types/SearchFilter.ts x: 34 lines of code y: 1 # changes frontend/src/js/types/redux/GiantActions.ts x: 305 lines of code y: 18 # changes frontend/src/js/types/redux/GiantState.ts x: 88 lines of code y: 10 # changes .devcontainer/devenv.yaml x: 20 lines of code y: 5 # changes frontend/src/index.jsx x: 38 lines of code y: 4 # changes frontend/src/js/actions/preferences.ts x: 33 lines of code y: 2 # changes frontend/src/js/actions/problems.ts x: 55 lines of code y: 2 # changes frontend/src/js/components/Settings/About.tsx x: 46 lines of code y: 3 # changes frontend/src/js/components/Settings/FeatureSwitches.tsx x: 83 lines of code y: 2 # changes frontend/src/js/components/UtilComponents/ErrorBar.tsx x: 110 lines of code y: 2 # changes frontend/src/js/components/viewer/DownloadButton.tsx x: 27 lines of code y: 3 # changes frontend/src/js/reducers/appReducer.ts x: 48 lines of code y: 2 # changes frontend/src/js/types/Config.ts x: 20 lines of code y: 3 # changes frontend/src/js/components/UtilComponents/SelectionPopover.tsx x: 123 lines of code y: 2 # changes backend/app/extraction/ExternalDocumentTranslationExtractor.scala x: 27 lines of code y: 6 # changes backend/app/extraction/ExternalOcrTranslationExtractor.scala x: 28 lines of code y: 6 # changes backend/app/extraction/ExternalTranscriptionExtractor.scala x: 75 lines of code y: 39 # changes backend/app/extraction/ExternalTranscriptionWorker.scala x: 257 lines of code y: 30 # changes backend/app/extraction/ExternalTranslationExtractor.scala x: 83 lines of code y: 14 # changes backend/app/model/TranscriptionService.scala x: 20 lines of code y: 7 # changes frontend/src/js/components/UtilComponents/HoverSearchLink.tsx x: 65 lines of code y: 1 # changes frontend/src/js/components/UtilComponents/KeyboardShortcut.ts x: 15 lines of code y: 1 # changes frontend/src/js/components/UtilComponents/Modal.tsx x: 52 lines of code y: 1 # changes frontend/src/js/components/UtilComponents/SearchLink.tsx x: 92 lines of code y: 1 # changes frontend/src/js/components/UtilComponents/SidebarSearchLink.tsx x: 32 lines of code y: 1 # changes frontend/src/js/components/UtilComponents/TreeBrowser/index.tsx x: 340 lines of code y: 12 # changes frontend/src/js/components/UtilComponents/Checkbox.tsx x: 40 lines of code y: 1 # changes frontend/src/js/components/UtilComponents/PageNavigator.tsx x: 72 lines of code y: 1 # changes frontend/src/js/components/UtilComponents/ProgressBar.tsx x: 23 lines of code y: 1 # changes frontend/src/js/util/UrlParameters.ts x: 68 lines of code y: 1 # changes frontend/src/js/util/buildLink.ts x: 29 lines of code y: 1 # changes frontend/src/js/util/history.ts x: 2 lines of code y: 1 # changes frontend/src/js/components/UtilComponents/documentTitle.ts x: 68 lines of code y: 2 # changes frontend/src/js/types/Resource.ts x: 95 lines of code y: 18 # changes frontend/src/js/util/parseDate.ts x: 112 lines of code y: 2 # changes project/TranscriptionSchemaFetcher.scala x: 61 lines of code y: 2 # changes project/TranscriptionWorkerInterfaceGenerator.scala x: 297 lines of code y: 2 # changes transcription-worker-interface/src/main/scala/com/gu/transcriptionservice/workerinterface/TranscriptionWorkerInterface.scala x: 548 lines of code y: 2 # changes infra/cdk/eslint.config.mjs x: 17 lines of code y: 2 # changes backend/app/extraction/DocumentBodyExtractor.scala x: 58 lines of code y: 10 # changes backend/app/extraction/ocr/BaseOcrExtractor.scala x: 81 lines of code y: 13 # changes backend/app/services/ingestion/IngestionServices.scala x: 178 lines of code y: 21 # changes frontend/src/js/components/Header.jsx x: 145 lines of code y: 4 # changes frontend/src/js/components/IngestionEvents/IngestionEvents.tsx x: 502 lines of code y: 22 # changes frontend/src/js/components/PageViewer/FindInput.tsx x: 137 lines of code y: 19 # changes frontend/src/js/components/PageViewer/SearchStepper.tsx x: 60 lines of code y: 7 # changes frontend/src/js/components/Search/Search.tsx x: 284 lines of code y: 4 # changes frontend/src/js/components/SearchResults/CompactResultsTable.jsx x: 158 lines of code y: 4 # changes frontend/src/js/components/SearchResults/SearchResult.jsx x: 207 lines of code y: 4 # changes frontend/src/js/components/Settings/Users.tsx x: 260 lines of code y: 3 # changes frontend/src/js/components/Uploads/CaptureFromUrl.tsx x: 355 lines of code y: 18 # changes frontend/src/js/components/Uploads/UploadFiles.tsx x: 458 lines of code y: 20 # changes frontend/src/js/components/UtilComponents/MenuChevron.tsx x: 14 lines of code y: 5 # changes frontend/src/js/components/UtilComponents/TreeBrowser/Node.tsx x: 343 lines of code y: 10 # changes frontend/src/js/components/users/Setup2Fa.jsx x: 55 lines of code y: 4 # changes frontend/src/js/components/viewer/AddToWorkspaceModal.tsx x: 179 lines of code y: 7 # changes frontend/src/js/components/viewer/DocNavButton.tsx x: 29 lines of code y: 4 # changes frontend/src/js/components/viewer/DocumentFooter.tsx x: 194 lines of code y: 9 # changes frontend/src/js/components/viewer/DownloadModal.jsx x: 295 lines of code y: 4 # changes frontend/src/js/components/viewer/LazyTreeBrowser.tsx x: 256 lines of code y: 5 # changes frontend/src/js/components/viewer/PageViewer/PageViewerStatusBar.tsx x: 81 lines of code y: 3 # changes frontend/src/js/components/viewer/PagedBrowser.tsx x: 75 lines of code y: 3 # changes frontend/src/js/components/viewer/Preview.tsx x: 137 lines of code y: 5 # changes frontend/src/js/components/viewer/SidebarComments.tsx x: 210 lines of code y: 4 # changes frontend/src/js/components/viewer/TextPopover.jsx x: 92 lines of code y: 4 # changes frontend/src/js/components/viewer/ViewerSidebar.jsx x: 122 lines of code y: 4 # changes frontend/src/js/components/workspace/CreateWorkspaceModal.tsx x: 108 lines of code y: 5 # changes frontend/src/js/components/workspace/WorkspacePublicInfoIcon.tsx x: 14 lines of code y: 3 # changes frontend/src/js/components/workspace/WorkspaceSummary.tsx x: 235 lines of code y: 31 # changes frontend/src/js/components/workspace/Workspaces.tsx x: 1364 lines of code y: 61 # changes frontend/src/js/eui-components/GiantEuiLeftHandNav.tsx x: 194 lines of code y: 3 # changes frontend/src/js/eui-components/GiantEuiSearchResultNav.tsx x: 100 lines of code y: 3 # changes frontend/src/js/util/fileTypeIcon.ts x: 43 lines of code y: 5 # changes frontend/src/stylesheets/components/_search.scss x: 289 lines of code y: 9 # changes frontend/src/stylesheets/components/_select.scss x: 32 lines of code y: 3 # changes backend/app/commands/GetPages.scala x: 72 lines of code y: 12 # changes backend/app/controllers/api/PagesController.scala x: 141 lines of code y: 30 # changes backend/app/extraction/ocr/TesseractPdfOcrExtractor.scala x: 75 lines of code y: 15 # changes backend/app/extraction/tables/CsvTableExtractor.scala x: 34 lines of code y: 6 # changes frontend/src/js/components/IngestionEvents/AllIngestionEvents.tsx x: 178 lines of code y: 11 # changes frontend/src/js/components/IngestionEvents/MyUploads.tsx x: 137 lines of code y: 9 # changes frontend/src/js/components/VideoVerifier.tsx x: 366 lines of code y: 7 # changes frontend/src/js/eui-components/GiantEuiSearchResults.tsx x: 158 lines of code y: 9 # changes frontend/src/js/util/stylesheets/EUIStyles.tsx x: 3 lines of code y: 3 # changes frontend/index.html x: 26 lines of code y: 2 # changes frontend/src/js/App.jsx x: 195 lines of code y: 2 # changes frontend/src/js/components/Collections/Collections.jsx x: 35 lines of code y: 2 # changes frontend/src/js/components/Collections/CollectionsSidebar/CollectionItem.jsx x: 20 lines of code y: 2 # changes frontend/src/js/components/Collections/CollectionsSidebar/CollectionsSidebar.jsx x: 63 lines of code y: 2 # changes frontend/src/js/components/EmailBrowser/Timeline.jsx x: 333 lines of code y: 2 # changes frontend/src/js/components/Login/Login.jsx x: 261 lines of code y: 2 # changes frontend/src/js/components/Search/SearchVisualizations.jsx x: 24 lines of code y: 2 # changes frontend/src/js/components/SearchResults/SearchResults.jsx x: 104 lines of code y: 2 # changes frontend/src/js/components/SearchSidebar/SearchSidebar.jsx x: 143 lines of code y: 2 # changes frontend/src/js/components/Settings/SettingsSidebar.jsx x: 108 lines of code y: 2 # changes frontend/src/js/components/UtilComponents/InputSupper/Chip.jsx x: 387 lines of code y: 2 # changes frontend/src/js/components/UtilComponents/InputSupper/InlineInput.jsx x: 141 lines of code y: 2 # changes frontend/src/js/components/UtilComponents/InputSupper/SuggestionsPanel.jsx x: 45 lines of code y: 2 # changes frontend/src/js/components/UtilComponents/InputSupper/index.jsx x: 412 lines of code y: 2 # changes frontend/src/js/components/UtilComponents/Wizard.jsx x: 117 lines of code y: 2 # changes frontend/src/js/components/users/CreateGenesisUser.jsx x: 254 lines of code y: 2 # changes frontend/src/js/components/users/CreateNewUser.jsx x: 217 lines of code y: 2 # changes frontend/src/js/components/users/RegisterUser.jsx x: 288 lines of code y: 2 # changes frontend/src/js/components/viewer/DocumentMetadata.jsx x: 163 lines of code y: 2 # changes frontend/src/js/components/viewer/EmailDetails.jsx x: 115 lines of code y: 2 # changes frontend/src/js/components/viewer/EmailMetadata.jsx x: 53 lines of code y: 2 # changes frontend/src/js/util/store.js x: 31 lines of code y: 6 # changes backend/app/AppComponents.scala x: 253 lines of code y: 90 # changes common/src/main/scala/utils/AwsCredentials.scala x: 28 lines of code y: 8 # changes backend/app/controllers/api/Ingestion.scala x: 22 lines of code y: 6 # changes backend/app/model/frontend/Chip.scala x: 93 lines of code y: 6 # changes backend/app/model/frontend/Resource.scala x: 170 lines of code y: 17 # changes backend/app/model/index/TranslationData.scala x: 45 lines of code y: 6 # changes backend/app/services/index/ElasticsearchResources.scala x: 940 lines of code y: 46 # changes backend/app/services/index/HighlightFields.scala x: 112 lines of code y: 6 # changes backend/app/services/index/HitReaders.scala x: 324 lines of code y: 25 # changes common/src/main/scala/model/Language.scala x: 85 lines of code y: 12 # changes frontend/src/js/components/PageViewerOrFallback.tsx x: 343 lines of code y: 29 # changes frontend/src/js/components/viewer/TextPreview.tsx x: 161 lines of code y: 14 # changes frontend/src/js/components/viewer/Viewer.tsx x: 362 lines of code y: 26 # changes frontend/src/js/services/CollectionsApi.ts x: 76 lines of code y: 11 # changes frontend/src/js/types/Collection.ts x: 47 lines of code y: 4 # changes frontend/src/js/util/resourceUtils.ts x: 154 lines of code y: 16 # changes backend/app/extraction/ocr/ImageOcrExtractor.scala x: 38 lines of code y: 7 # changes backend/app/model/Email.scala x: 178 lines of code y: 13 # changes backend/app/model/index/Document.scala x: 20 lines of code y: 11 # changes backend/app/services/ElasticsearchSyntax.scala x: 126 lines of code y: 9 # changes backend/app/services/index/Index.scala x: 35 lines of code y: 28 # changes backend/app/controllers/api/Workspaces.scala x: 394 lines of code y: 51 # changes frontend/src/js/components/workspace/DownloadTextModal.tsx x: 232 lines of code y: 7 # changes frontend/src/js/services/WorkspaceApi.ts x: 228 lines of code y: 19 # changes infra/cdk/lib/constructs/GuStackWithGiantVPC.ts x: 18 lines of code y: 2 # changes infra/cdk/lib/postgres.ts x: 91 lines of code y: 4 # changes backend/app/services/manifest/Neo4jManifest.scala x: 1206 lines of code y: 60 # changes backend/app/services/index/Pages2.scala x: 148 lines of code y: 19 # changes frontend/src/js/components/PageViewer/useHighlightNavigation.ts x: 84 lines of code y: 4 # changes backend/app/extraction/ExternalExtractor.scala x: 37 lines of code y: 8 # changes backend/app/extraction/TranscriptionExtractor.scala x: 68 lines of code y: 17 # changes backend/app/services/Config.scala x: 222 lines of code y: 42 # changes backend/app/services/ObjectStorage.scala x: 137 lines of code y: 16 # changes backend/app/services/manifest/Manifest.scala x: 72 lines of code y: 30 # changes backend/app/utils/AwsDiscovery.scala x: 226 lines of code y: 39 # changes backend/app/utils/aws/S3Client.scala x: 83 lines of code y: 9 # changes backend/app/utils/controller/FailureToResultMapper.scala x: 154 lines of code y: 35 # changes common/src/main/scala/utils/attempt/Failure.scala x: 99 lines of code y: 32 # changes frontend/src/stylesheets/components/_document.scss x: 319 lines of code y: 14 # changes common/src/main/scala/utils/AwsS3Clients.scala x: 55 lines of code y: 10 # changes frontend/src/js/components/PageViewer/PageNavInput.module.css x: 31 lines of code y: 2 # changes frontend/src/js/components/PageViewer/PageNavInput.tsx x: 71 lines of code y: 3 # changes frontend/src/js/components/PageViewer/PageViewer.tsx x: 93 lines of code y: 36 # changes frontend/src/js/components/PageViewer/VirtualScroll.tsx x: 335 lines of code y: 41 # changes frontend/src/js/components/PageViewer/pageInput.ts x: 5 lines of code y: 2 # changes riff-raff.yaml x: 66 lines of code y: 34 # changes backend/app/extraction/MetadataEnrichment.scala x: 79 lines of code y: 7 # changes backend/app/model/annotations/Workspace.scala x: 179 lines of code y: 18 # changes backend/app/model/ingestion/RemoteIngest.scala x: 144 lines of code y: 27 # changes backend/app/services/annotations/Neo4jAnnotations.scala x: 708 lines of code y: 36 # changes frontend/src/js/types/Workspaces.ts x: 51 lines of code y: 12 # changes frontend/src/js/util/workspaceUtils.fixtures.ts x: 955 lines of code y: 5 # changes frontend/src/js/components/UtilComponents/TreeBrowser/Leaf.tsx x: 144 lines of code y: 6 # changes frontend/src/stylesheets/components/_workspace.scss x: 138 lines of code y: 11 # changes cli/src/main/scala/com/gu/pfi/cli/Main.scala x: 172 lines of code y: 11 # changes cli/src/main/scala/com/gu/pfi/cli/Options.scala x: 148 lines of code y: 7 # changes util/nginx-mapping.yml x: 15 lines of code y: 3 # changes backend/app/commands/GetResource.scala x: 128 lines of code y: 1 # changes backend/app/services/annotations/Annotations.scala x: 47 lines of code y: 18 # changes backend/app/services/index/SearchContext.scala x: 94 lines of code y: 7 # changes frontend/src/js/actions/urlParams/updateSearchQuery.ts x: 40 lines of code y: 3 # changes frontend/src/js/components/Search/SearchBox.tsx x: 65 lines of code y: 2 # changes frontend/src/js/types/SearchResults.ts x: 79 lines of code y: 6 # changes frontend/src/js/types/SuggestedFields.ts x: 9 lines of code y: 2 # changes frontend/src/stylesheets/components/_markdown-page.scss x: 116 lines of code y: 6 # changes frontend/src/js/components/Uploads/FilePicker.tsx x: 123 lines of code y: 8 # changes backend/app/utils/WorkerControl.scala x: 217 lines of code y: 22 # changes backend/app/model/frontend/SearchResult.scala x: 58 lines of code y: 6 # changes backend/app/utils/MimeDetails.scala x: 160 lines of code y: 2 # changes frontend/src/js/util/formatDate.ts x: 4 lines of code y: 2 # changes frontend/src/js/util/formatRecipients.ts x: 11 lines of code y: 2 # changes frontend/src/js/components/viewer/CommentHighlighter.tsx x: 143 lines of code y: 3 # changes frontend/src/js/components/viewer/CommentPanel/CommentPanel.tsx x: 279 lines of code y: 3 # changes frontend/src/js/util/commentUtils.ts x: 72 lines of code y: 3 # changes frontend/src/stylesheets/components/_sidebar-comments.scss x: 95 lines of code y: 2 # changes frontend/src/js/components/PageViewer/Controls.tsx x: 37 lines of code y: 24 # changes frontend/src/js/components/PageViewer/VirtualScroll.module.css x: 21 lines of code y: 8 # changes backend/app/model/frontend/TreeEntry.scala x: 76 lines of code y: 2 # changes frontend/src/js/components/Uploads/FileApiHelpers.ts x: 83 lines of code y: 3 # changes frontend/src/js/components/Uploads/dropZoneUtils.ts x: 69 lines of code y: 4 # changes frontend/src/js/components/workspace/WorkspacesSidebarItem.tsx x: 78 lines of code y: 8 # changes backend/app/controllers/api/Blobs.scala x: 122 lines of code y: 28 # changes backend/app/services/MetricsService.scala x: 79 lines of code y: 18 # changes frontend/src/js/components/PageViewer/FindInput.module.css x: 82 lines of code y: 10 # changes frontend/src/js/components/PageViewer/model.ts x: 82 lines of code y: 20 # changes backend/app/extraction/email/eml/EmlParser.scala x: 126 lines of code y: 12 # changes backend/app/services/IngestStorage.scala x: 160 lines of code y: 14 # changes backend/app/services/Tika.scala x: 84 lines of code y: 5 # changes backend/app/services/previewing/HtmlPreviewGenerator.scala x: 34 lines of code y: 4 # changes backend/app/utils/aws/AwsErrors.scala x: 14 lines of code y: 2 # changes cli/src/main/scala/com/gu/pfi/cli/RunIngestion.scala x: 38 lines of code y: 2 # changes backend/app/extraction/email/olm/OlmEmailExtractor.scala x: 143 lines of code y: 5 # changes backend/app/services/ScratchSpace.scala x: 43 lines of code y: 4 # changes backend/app/extraction/tables/ExcelTableExtractor.scala x: 129 lines of code y: 9 # changes backend/app/extraction/Worker.scala x: 153 lines of code y: 21 # changes frontend/src/stylesheets/components/_file-browser.scss x: 121 lines of code y: 5 # changes frontend/src/js/util/workspaceNavigation.ts x: 136 lines of code y: 3 # changes frontend/src/js/components/PageViewer/PdfHelpers.ts x: 75 lines of code y: 17 # changes frontend/src/js/components/PageViewer/layout.ts x: 43 lines of code y: 2 # changes backend/app/controllers/api/Collections.scala x: 241 lines of code y: 25 # changes backend/app/services/ingestion/Neo4jRemoteIngestStore.scala x: 214 lines of code y: 23 # changes backend/app/services/ingestion/RemoteIngestStore.scala x: 27 lines of code y: 17 # changes backend/app/services/ingestion/RemoteIngestWorker.scala x: 181 lines of code y: 34 # changes frontend/src/stylesheets/components/_buttons.scss x: 96 lines of code y: 5 # changes backend/app/utils/Neo4jHelper.scala x: 255 lines of code y: 6 # changes backend/app/model/annotations/Comment.scala x: 40 lines of code y: 5 # changes backend/app/model/frontend/email/EmailThread.scala x: 45 lines of code y: 7 # changes backend/app/model/manifest/Blob.scala x: 12 lines of code y: 5 # changes backend/app/model/manifest/Ingestion.scala x: 40 lines of code y: 7 # changes backend/app/model/manifest/MimeType.scala x: 17 lines of code y: 5 # changes backend/app/services/users/Neo4jUserManagement.scala x: 397 lines of code y: 16 # changes frontend/src/js/components/UtilComponents/ModalAction.tsx x: 116 lines of code y: 7 # changes frontend/src/js/components/workspace/ShareWorkspaceModal.tsx x: 105 lines of code y: 7 # changes frontend/src/js/components/workspace/TakeOwnershipOfWorkspaceModal.tsx x: 51 lines of code y: 6 # changes infra/migrate-db/src/migrations/001.undo.create_table_ingestion_events.sql x: 2 lines of code y: 2 # changes frontend/src/stylesheets/base/_layout.scss x: 67 lines of code y: 7 # changes frontend/src/stylesheets/components/_sidebar.scss x: 119 lines of code y: 5 # changes backend/app/extraction/Extractor.scala x: 16 lines of code y: 4 # changes cli/src/main/scala/com/gu/pfi/cli/service/CliIngestionService.scala x: 120 lines of code y: 13 # changes backend/app/commands/IngestFile.scala x: 84 lines of code y: 10 # changes cli/src/main/scala/com/gu/pfi/cli/DeleteIngestions.scala x: 70 lines of code y: 9 # changes cli/src/main/scala/com/gu/pfi/cli/ErrorFormatter.scala x: 78 lines of code y: 2 # changes cli/src/main/scala/com/gu/pfi/cli/ingestion/CliIngestionPipeline.scala x: 130 lines of code y: 4 # changes backend/app/utils/auth/providers/PanDomainUserProvider.scala x: 88 lines of code y: 8 # changes backend/app/ingestion/phase2/IngestStorePolling.scala x: 165 lines of code y: 21 # changes frontend/src/js/actions/auth/getAuthToken.js x: 84 lines of code y: 1 # changes frontend/src/js/actions/email/getEmailThread.js x: 26 lines of code y: 1 # changes frontend/src/js/actions/highlights.ts x: 18 lines of code y: 1 # changes frontend/src/js/actions/pages/loadPages.ts x: 18 lines of code y: 3 # changes frontend/src/js/actions/pages/resetPages.ts x: 8 lines of code y: 3 # changes frontend/src/js/actions/resources/clearResource.js x: 8 lines of code y: 1 # changes frontend/src/js/actions/resources/getResource.js x: 97 lines of code y: 1 # changes frontend/src/js/actions/users/createGenesisUser.js x: 60 lines of code y: 1 # changes frontend/src/js/actions/workspaces/copyItem.ts x: 44 lines of code y: 3 # changes frontend/src/js/actions/workspaces/getWorkspace.ts x: 62 lines of code y: 5 # changes frontend/src/js/components/Collections/CurrentCollection/CurrentCollection.tsx x: 83 lines of code y: 1 # changes frontend/src/js/components/Directory/Directory.tsx x: 77 lines of code y: 1 # changes frontend/src/js/components/IngestionEvents/types.ts x: 53 lines of code y: 7 # changes frontend/src/js/components/PageViewer/Page.module.css x: 9 lines of code y: 6 # changes frontend/src/js/components/PageViewer/Page.tsx x: 68 lines of code y: 21 # changes frontend/src/js/components/PageViewer/PageCache.ts x: 147 lines of code y: 26 # changes frontend/src/js/components/PageViewer/PageHighlight.module.css x: 35 lines of code y: 10 # changes frontend/src/js/components/PageViewer/PageHighlight.tsx x: 40 lines of code y: 13 # changes frontend/src/js/components/ResourceBreadcrumbs/index.tsx x: 64 lines of code y: 1 # changes frontend/src/js/components/Settings/FileTypes/FileTypes.tsx x: 115 lines of code y: 1 # changes frontend/src/js/components/Settings/ResourcesForExtractionFailureComponent.tsx x: 55 lines of code y: 3 # changes frontend/src/js/components/Uploads/FileList.tsx x: 175 lines of code y: 3 # changes frontend/src/js/components/Uploads/UploadTarget.ts x: 49 lines of code y: 5 # changes frontend/src/js/components/Uploads/Uploads.tsx x: 132 lines of code y: 1 # changes frontend/src/js/components/UtilComponents/TreeBrowser/MagicTextInput.tsx x: 47 lines of code y: 1 # changes frontend/src/js/components/viewer/CommentPanel/AddComment.tsx x: 76 lines of code y: 1 # changes frontend/src/js/components/viewer/DeleteButtonModal.tsx x: 104 lines of code y: 10 # changes frontend/src/js/components/viewer/EmbeddedPdfViewer.tsx x: 36 lines of code y: 5 # changes frontend/src/js/components/viewer/PageViewer/PagePreview.tsx x: 143 lines of code y: 8 # changes frontend/src/js/components/viewer/PageViewer/PageViewer.tsx x: 113 lines of code y: 4 # changes frontend/src/js/components/viewer/PageViewer/pageViewerApi.ts x: 103 lines of code y: 8 # changes frontend/src/js/components/viewer/PageViewer/pageViewerPdf.ts x: 83 lines of code y: 5 # changes frontend/src/js/components/viewer/TablePreview.tsx x: 36 lines of code y: 1 # changes frontend/src/js/components/viewer/TranscriptViewer/TranscriptViewer.tsx x: 188 lines of code y: 5 # changes frontend/src/js/components/workspace/ConfirmModal.tsx x: 167 lines of code y: 5 # changes frontend/src/js/components/workspace/CopyOrMoveModal.tsx x: 23 lines of code y: 4 # changes frontend/src/js/components/workspace/WorkspacesSidebar.tsx x: 132 lines of code y: 6 # changes frontend/src/js/eui-components/GiantEuiSettings.tsx x: 51 lines of code y: 1 # changes frontend/src/js/eui-components/GiantEuiWorkspace.tsx x: 20 lines of code y: 1 # changes frontend/src/js/reducers/authReducer.js x: 88 lines of code y: 1 # changes frontend/src/js/reducers/pagesReducer.ts x: 124 lines of code y: 8 # changes frontend/src/js/reducers/searchReducer.js x: 5 lines of code y: 1 # changes frontend/src/js/reducers/urlParamsReducer.ts x: 89 lines of code y: 2 # changes frontend/src/js/services/BlobApi.ts x: 22 lines of code y: 13 # changes frontend/src/js/services/EmailApi.js x: 4 lines of code y: 1 # changes frontend/src/js/services/UserApi.js x: 79 lines of code y: 1 # changes frontend/src/js/util/LruCache.ts x: 70 lines of code y: 14 # changes frontend/src/js/util/auth/authFetch.ts x: 28 lines of code y: 2 # changes frontend/src/js/util/stringUtils.ts x: 10 lines of code y: 4 # changes frontend/src/stylesheets/components/_checkbox.scss x: 60 lines of code y: 3 # changes frontend/src/stylesheets/components/_header.scss x: 57 lines of code y: 1 # changes frontend/src/stylesheets/components/_input-supper.scss x: 111 lines of code y: 3 # changes frontend/src/stylesheets/components/_node-browser.scss x: 71 lines of code y: 1 # changes frontend/src/stylesheets/components/_transcript-viewer.scss x: 119 lines of code y: 4 # changes frontend/src/stylesheets/components/_upload-files.scss x: 4 lines of code y: 6 # changes frontend/src/stylesheets/components/_users.scss x: 42 lines of code y: 1 # changes backend/app/controllers/api/Comments.scala x: 49 lines of code y: 3 # changes backend/app/controllers/api/Resource.scala x: 77 lines of code y: 12 # changes backend/app/model/frontend/Highlight.scala x: 6 lines of code y: 3 # changes backend/app/model/frontend/Node.scala x: 6 lines of code y: 8 # changes backend/app/model/ingestion/MediaDownload.scala x: 20 lines of code y: 10 # changes backend/app/services/events/Events.scala x: 131 lines of code y: 3 # changes backend/app/services/observability/Models.scala x: 184 lines of code y: 28 # changes backend/app/services/users/UserManagement.scala x: 32 lines of code y: 5 # changes backend/app/utils/Binders.scala x: 28 lines of code y: 3 # changes backend/app/utils/auth/Token.scala x: 12 lines of code y: 3 # changes cli/src/main/scala/com/gu/pfi/cli/service/CliHttpClient.scala x: 147 lines of code y: 3 # changes common/src/main/scala/model/ingestion/IngestMetadata.scala x: 37 lines of code y: 3 # changes backend/app/services/observability/PostgresClient.scala x: 239 lines of code y: 30 # changes backend/app/utils/Whisper.scala x: 37 lines of code y: 13 # changes backend/app/services/ExternalWorkerScheduler.scala x: 33 lines of code y: 3 # changes backend/app/controllers/api/Search.scala x: 159 lines of code y: 3 # changes backend/app/extraction/archives/ZipExtractor.scala x: 61 lines of code y: 4 # changes backend/app/commands/CreateIngestion.scala x: 50 lines of code y: 4 # changes backend/app/services/index/ElasticsearchPages.scala x: 227 lines of code y: 8 # changes backend/app/commands/GetPagePreview.scala x: 19 lines of code y: 11 # changes backend/app/controllers/api/Previews.scala x: 60 lines of code y: 6 # changes backend/app/utils/RequestLoggingFilter.scala x: 78 lines of code y: 10 # changes backend/app/utils/auth/AuthActionBuilder.scala x: 88 lines of code y: 4 # changes backend/app/services/WorkerScheduler.scala x: 37 lines of code y: 5 # changes backend/app/controllers/api/IngestionEvents.scala x: 36 lines of code y: 9 # changes backend/app/commands/DeleteResource.scala x: 63 lines of code y: 18 # changes backend/app/extraction/email/JakartaMail.scala x: 32 lines of code y: 4 # changes backend/app/extraction/email/msg/MsgEmailExtractor.scala x: 84 lines of code y: 8 # changes backend/app/AppLoader.scala x: 27 lines of code y: 4 # changes backend/app/utils/auth/providers/DatabaseUserProvider.scala x: 101 lines of code y: 2 # changes backend/app/extraction/email/pst/PstEmailExtractor.scala x: 98 lines of code y: 2 # changes backend/app/utils/PDFUtil.scala x: 91 lines of code y: 15 # changes common/src/main/scala/utils/attempt/Attempt.scala x: 135 lines of code y: 2 # changes backend/app/services/previewing/PreviewService.scala x: 137 lines of code y: 4 # changes frontend/src/js/components/PageViewer/PageViewer.module.css x: 12 lines of code y: 7 # changes backend/app/model/index/Page.scala x: 92 lines of code y: 14 # changes backend/app/controllers/api/Authentication.scala x: 57 lines of code y: 3 # changes
90.0
# changes
  min: 1.0
  average: 6.23
  25th percentile: 1.0
  median: 3.0
  75th percentile: 6.0
  max: 90.0
0 1364.0
lines of code
min: 1.0 | average: 86.14 | 25th percentile: 23.0 | median: 46.5 | 75th percentile: 106.25 | max: 1364.0

Number of Contributors vs. Number of Changes: 554 points

backend/app/extraction/ocr/OcrMyPdfExtractor.scala x: 6 # contributors y: 33 # changes backend/app/extraction/ocr/OcrMyPdfImageExtractor.scala x: 6 # contributors y: 20 # changes backend/app/utils/Ocr.scala x: 7 # contributors y: 29 # changes frontend/src/js/actions/getFilters.ts x: 2 # contributors y: 1 # changes frontend/src/js/components/SearchSidebar/SearchFilter.jsx x: 2 # contributors y: 3 # changes frontend/src/js/components/SearchSidebar/SearchFilterValue.jsx x: 2 # contributors y: 5 # changes frontend/src/js/types/redux/GiantActions.ts x: 9 # contributors y: 18 # changes frontend/src/js/types/redux/GiantState.ts x: 5 # contributors y: 10 # changes frontend/src/index.jsx x: 2 # contributors y: 4 # changes frontend/src/js/actions/preferences.ts x: 2 # contributors y: 2 # changes backend/app/extraction/ExternalDocumentTranslationExtractor.scala x: 1 # contributors y: 6 # changes backend/app/extraction/ExternalTranscriptionExtractor.scala x: 5 # contributors y: 39 # changes backend/app/extraction/ExternalTranscriptionWorker.scala x: 4 # contributors y: 30 # changes backend/app/extraction/ExternalTranslationExtractor.scala x: 1 # contributors y: 14 # changes backend/app/model/TranscriptionService.scala x: 1 # contributors y: 7 # changes frontend/src/js/components/UtilComponents/TreeBrowser/index.tsx x: 3 # contributors y: 12 # changes frontend/src/js/types/Resource.ts x: 2 # contributors y: 18 # changes project/TranscriptionSchemaFetcher.scala x: 1 # contributors y: 2 # changes backend/app/extraction/DocumentBodyExtractor.scala x: 1 # contributors y: 10 # changes backend/app/extraction/ocr/BaseOcrExtractor.scala x: 4 # contributors y: 13 # changes backend/app/services/ingestion/IngestionServices.scala x: 4 # contributors y: 21 # changes frontend/src/js/components/Header.jsx x: 1 # contributors y: 4 # changes frontend/src/js/components/IngestionEvents/IngestionEvents.tsx x: 3 # contributors y: 22 # changes frontend/src/js/components/PageViewer/FindInput.tsx x: 4 # contributors y: 19 # changes frontend/src/js/components/PageViewer/SearchStepper.tsx x: 2 # contributors y: 7 # changes frontend/src/js/components/Settings/Users.tsx x: 1 # contributors y: 3 # changes frontend/src/js/components/Uploads/CaptureFromUrl.tsx x: 3 # contributors y: 18 # changes frontend/src/js/components/Uploads/UploadFiles.tsx x: 5 # contributors y: 20 # changes frontend/src/js/components/UtilComponents/MenuChevron.tsx x: 1 # contributors y: 5 # changes frontend/src/js/components/UtilComponents/TreeBrowser/Node.tsx x: 2 # contributors y: 10 # changes frontend/src/js/components/viewer/DocumentFooter.tsx x: 2 # contributors y: 9 # changes frontend/src/js/components/workspace/WorkspaceSummary.tsx x: 6 # contributors y: 31 # changes frontend/src/js/components/workspace/Workspaces.tsx x: 7 # contributors y: 61 # changes backend/app/controllers/api/PagesController.scala x: 7 # contributors y: 30 # changes backend/app/extraction/ocr/TesseractPdfOcrExtractor.scala x: 5 # contributors y: 15 # changes backend/app/extraction/tables/CsvTableExtractor.scala x: 2 # contributors y: 6 # changes frontend/src/js/components/IngestionEvents/AllIngestionEvents.tsx x: 4 # contributors y: 11 # changes frontend/src/js/components/IngestionEvents/MyUploads.tsx x: 3 # contributors y: 9 # changes frontend/src/js/eui-components/GiantEuiSearchResults.tsx x: 1 # contributors y: 9 # changes backend/app/AppComponents.scala x: 13 # contributors y: 90 # changes common/src/main/scala/utils/AwsCredentials.scala x: 3 # contributors y: 8 # changes backend/app/model/frontend/Chip.scala x: 4 # contributors y: 6 # changes backend/app/model/frontend/Resource.scala x: 4 # contributors y: 17 # changes backend/app/services/index/ElasticsearchResources.scala x: 7 # contributors y: 46 # changes backend/app/services/index/HitReaders.scala x: 4 # contributors y: 25 # changes common/src/main/scala/model/Language.scala x: 5 # contributors y: 12 # changes frontend/src/js/components/PageViewerOrFallback.tsx x: 3 # contributors y: 29 # changes frontend/src/js/components/viewer/TextPreview.tsx x: 2 # contributors y: 14 # changes frontend/src/js/components/viewer/Viewer.tsx x: 5 # contributors y: 26 # changes frontend/src/js/services/CollectionsApi.ts x: 3 # contributors y: 11 # changes frontend/src/js/util/resourceUtils.ts x: 4 # contributors y: 16 # changes backend/app/extraction/ocr/ImageOcrExtractor.scala x: 3 # contributors y: 7 # changes backend/app/services/index/Index.scala x: 5 # contributors y: 28 # changes backend/app/controllers/api/Workspaces.scala x: 12 # contributors y: 51 # changes frontend/src/js/services/WorkspaceApi.ts x: 6 # contributors y: 19 # changes backend/app/services/manifest/Neo4jManifest.scala x: 9 # contributors y: 60 # changes backend/app/services/index/Pages2.scala x: 7 # contributors y: 19 # changes backend/app/extraction/ExternalExtractor.scala x: 2 # contributors y: 8 # changes backend/app/extraction/TranscriptionExtractor.scala x: 2 # contributors y: 17 # changes backend/app/services/Config.scala x: 9 # contributors y: 42 # changes backend/app/services/ObjectStorage.scala x: 6 # contributors y: 16 # changes backend/app/services/manifest/Manifest.scala x: 5 # contributors y: 30 # changes backend/app/utils/AwsDiscovery.scala x: 10 # contributors y: 39 # changes backend/app/utils/controller/FailureToResultMapper.scala x: 8 # contributors y: 35 # changes common/src/main/scala/utils/attempt/Failure.scala x: 6 # contributors y: 32 # changes frontend/src/stylesheets/components/_document.scss x: 4 # contributors y: 14 # changes common/src/main/scala/utils/AwsS3Clients.scala x: 3 # contributors y: 10 # changes frontend/src/js/components/PageViewer/PageViewer.tsx x: 6 # contributors y: 36 # changes frontend/src/js/components/PageViewer/VirtualScroll.tsx x: 7 # contributors y: 41 # changes riff-raff.yaml x: 6 # contributors y: 34 # changes backend/app/extraction/MetadataEnrichment.scala x: 5 # contributors y: 7 # changes backend/app/model/annotations/Workspace.scala x: 7 # contributors y: 18 # changes backend/app/model/ingestion/RemoteIngest.scala x: 5 # contributors y: 27 # changes backend/app/services/annotations/Neo4jAnnotations.scala x: 7 # contributors y: 36 # changes frontend/src/js/types/Workspaces.ts x: 6 # contributors y: 12 # changes frontend/src/js/util/workspaceUtils.fixtures.ts x: 3 # contributors y: 5 # changes cli/src/main/scala/com/gu/pfi/cli/Main.scala x: 6 # contributors y: 11 # changes util/nginx-mapping.yml x: 3 # contributors y: 3 # changes backend/app/commands/GetResource.scala x: 1 # contributors y: 1 # changes backend/app/services/annotations/Annotations.scala x: 6 # contributors y: 18 # changes backend/app/utils/WorkerControl.scala x: 6 # contributors y: 22 # changes frontend/src/js/components/PageViewer/Controls.tsx x: 5 # contributors y: 24 # changes frontend/src/js/components/PageViewer/VirtualScroll.module.css x: 4 # contributors y: 8 # changes backend/app/controllers/api/Blobs.scala x: 6 # contributors y: 28 # changes frontend/src/js/components/PageViewer/FindInput.module.css x: 4 # contributors y: 10 # changes backend/app/controllers/api/VideoVerifier.scala x: 3 # contributors y: 4 # changes backend/app/extraction/email/eml/EmlParser.scala x: 8 # contributors y: 12 # changes backend/app/services/IngestStorage.scala x: 5 # contributors y: 14 # changes backend/app/services/Tika.scala x: 6 # contributors y: 5 # changes backend/app/extraction/email/olm/OlmEmailExtractor.scala x: 5 # contributors y: 5 # changes backend/app/extraction/Worker.scala x: 5 # contributors y: 21 # changes frontend/src/js/components/PageViewer/PdfHelpers.ts x: 5 # contributors y: 17 # changes backend/app/controllers/api/Collections.scala x: 7 # contributors y: 25 # changes backend/app/services/ingestion/Neo4jRemoteIngestStore.scala x: 3 # contributors y: 23 # changes backend/app/services/ingestion/RemoteIngestStore.scala x: 3 # contributors y: 17 # changes backend/app/services/ingestion/RemoteIngestWorker.scala x: 4 # contributors y: 34 # changes backend/app/utils/Neo4jHelper.scala x: 3 # contributors y: 6 # changes backend/app/model/annotations/Comment.scala x: 4 # contributors y: 5 # changes backend/app/model/frontend/email/EmailThread.scala x: 4 # contributors y: 7 # changes backend/app/services/users/Neo4jUserManagement.scala x: 5 # contributors y: 16 # changes cli/src/main/scala/com/gu/pfi/cli/service/CliIngestionService.scala x: 3 # contributors y: 13 # changes cli/src/main/scala/com/gu/pfi/cli/DeleteIngestions.scala x: 4 # contributors y: 9 # changes backend/app/utils/auth/providers/PanDomainUserProvider.scala x: 7 # contributors y: 8 # changes backend/app/ingestion/phase2/IngestStorePolling.scala x: 7 # contributors y: 21 # changes frontend/src/js/components/PageViewer/PageCache.ts x: 4 # contributors y: 26 # changes frontend/src/js/components/viewer/PageViewer/PageViewer.tsx x: 4 # contributors y: 4 # changes frontend/src/js/reducers/pagesReducer.ts x: 5 # contributors y: 8 # changes backend/app/controllers/api/Resource.scala x: 7 # contributors y: 12 # changes backend/app/services/observability/PostgresClient.scala x: 3 # contributors y: 30 # changes backend/app/commands/DeleteResource.scala x: 4 # contributors y: 18 # changes backend/app/model/index/Page.scala x: 3 # contributors y: 14 # changes
90.0
# changes
  min: 1.0
  average: 6.23
  25th percentile: 1.0
  median: 3.0
  75th percentile: 6.0
  max: 90.0
0 13.0
# contributors
min: 1.0 | average: 2.29 | 25th percentile: 1.0 | median: 2.0 | 75th percentile: 3.0 | max: 13.0

Number of Contributors vs. File Size: 554 points

backend/app/extraction/ocr/OcrMyPdfExtractor.scala x: 6 # contributors y: 146 lines of code backend/app/extraction/ocr/OcrMyPdfImageExtractor.scala x: 6 # contributors y: 86 lines of code backend/app/utils/Ocr.scala x: 7 # contributors y: 244 lines of code frontend/src/js/actions/getFilters.ts x: 2 # contributors y: 39 lines of code frontend/src/js/components/SearchSidebar/SearchFilter.jsx x: 2 # contributors y: 63 lines of code frontend/src/js/components/SearchSidebar/SearchFilterOption.jsx x: 2 # contributors y: 155 lines of code frontend/src/js/components/SearchSidebar/SearchFilterValue.jsx x: 2 # contributors y: 118 lines of code frontend/src/js/reducers/filtersReducer.ts x: 2 # contributors y: 13 lines of code frontend/src/js/types/SearchFilter.ts x: 2 # contributors y: 34 lines of code frontend/src/js/types/redux/GiantActions.ts x: 9 # contributors y: 305 lines of code frontend/src/js/types/redux/GiantState.ts x: 5 # contributors y: 88 lines of code .devcontainer/devenv.yaml x: 2 # contributors y: 20 lines of code frontend/src/js/actions/problems.ts x: 2 # contributors y: 55 lines of code frontend/src/js/components/Settings/About.tsx x: 2 # contributors y: 46 lines of code frontend/src/js/components/Settings/FeatureSwitches.tsx x: 2 # contributors y: 83 lines of code frontend/src/js/components/UtilComponents/ErrorBar.tsx x: 2 # contributors y: 110 lines of code frontend/src/js/components/viewer/DownloadButton.tsx x: 2 # contributors y: 27 lines of code frontend/src/js/components/UtilComponents/SelectionPopover.tsx x: 2 # contributors y: 123 lines of code backend/app/extraction/ExternalDocumentTranslationExtractor.scala x: 1 # contributors y: 27 lines of code backend/app/extraction/ExternalTranscriptionExtractor.scala x: 5 # contributors y: 75 lines of code backend/app/extraction/ExternalTranscriptionWorker.scala x: 4 # contributors y: 257 lines of code backend/app/extraction/ExternalTranslationExtractor.scala x: 1 # contributors y: 83 lines of code backend/app/model/TranscriptionService.scala x: 1 # contributors y: 20 lines of code frontend/src/js/components/UtilComponents/HoverSearchLink.tsx x: 2 # contributors y: 65 lines of code frontend/src/js/components/UtilComponents/Modal.tsx x: 2 # contributors y: 52 lines of code frontend/src/js/components/UtilComponents/SearchLink.tsx x: 2 # contributors y: 92 lines of code frontend/src/js/components/UtilComponents/TreeBrowser/index.tsx x: 3 # contributors y: 340 lines of code frontend/src/js/components/UtilComponents/PageNavigator.tsx x: 2 # contributors y: 72 lines of code frontend/src/js/components/UtilComponents/ProgressAnimation.tsx x: 2 # contributors y: 10 lines of code frontend/src/js/components/UtilComponents/ProgressBar.tsx x: 2 # contributors y: 23 lines of code frontend/src/js/util/history.ts x: 2 # contributors y: 2 lines of code project/TranscriptionSchemaFetcher.scala x: 1 # contributors y: 61 lines of code project/TranscriptionWorkerInterfaceGenerator.scala x: 1 # contributors y: 297 lines of code transcription-worker-interface/src/main/scala/com/gu/transcriptionservice/workerinterface/TranscriptionWorkerInterface.scala x: 1 # contributors y: 548 lines of code backend/app/extraction/DocumentBodyExtractor.scala x: 1 # contributors y: 58 lines of code backend/app/extraction/ocr/BaseOcrExtractor.scala x: 4 # contributors y: 81 lines of code backend/app/services/ingestion/IngestionServices.scala x: 4 # contributors y: 178 lines of code frontend/src/js/components/Header.jsx x: 1 # contributors y: 145 lines of code frontend/src/js/components/IngestionEvents/IngestionEvents.tsx x: 3 # contributors y: 502 lines of code frontend/src/js/components/PageViewer/FindInput.tsx x: 4 # contributors y: 137 lines of code frontend/src/js/components/Search/Search.tsx x: 2 # contributors y: 284 lines of code frontend/src/js/components/SearchResults/CompactResultsTable.jsx x: 1 # contributors y: 158 lines of code frontend/src/js/components/SearchResults/SearchResult.jsx x: 1 # contributors y: 207 lines of code frontend/src/js/components/Settings/Users.tsx x: 1 # contributors y: 260 lines of code frontend/src/js/components/Uploads/CaptureFromUrl.tsx x: 3 # contributors y: 355 lines of code frontend/src/js/components/Uploads/UploadFiles.tsx x: 5 # contributors y: 458 lines of code frontend/src/js/components/UtilComponents/MenuChevron.tsx x: 1 # contributors y: 14 lines of code frontend/src/js/components/UtilComponents/TreeBrowser/Node.tsx x: 2 # contributors y: 343 lines of code frontend/src/js/components/viewer/AddToWorkspaceModal.tsx x: 2 # contributors y: 179 lines of code frontend/src/js/components/viewer/DocumentFooter.tsx x: 2 # contributors y: 194 lines of code frontend/src/js/components/viewer/DownloadModal.jsx x: 1 # contributors y: 295 lines of code frontend/src/js/components/viewer/LazyTreeBrowser.tsx x: 2 # contributors y: 256 lines of code frontend/src/js/components/viewer/PagedBrowser.tsx x: 1 # contributors y: 75 lines of code frontend/src/js/components/viewer/Preview.tsx x: 1 # contributors y: 137 lines of code frontend/src/js/components/viewer/SidebarComments.tsx x: 2 # contributors y: 210 lines of code frontend/src/js/components/viewer/TextPopover.jsx x: 1 # contributors y: 92 lines of code frontend/src/js/components/viewer/ViewerSidebar.jsx x: 1 # contributors y: 122 lines of code frontend/src/js/components/workspace/CreateWorkspaceModal.tsx x: 1 # contributors y: 108 lines of code frontend/src/js/components/workspace/WorkspaceSummary.tsx x: 6 # contributors y: 235 lines of code frontend/src/js/components/workspace/Workspaces.tsx x: 7 # contributors y: 1364 lines of code frontend/src/js/eui-components/GiantEuiLeftHandNav.tsx x: 1 # contributors y: 194 lines of code frontend/src/js/eui-components/GiantEuiSearchResultNav.tsx x: 1 # contributors y: 100 lines of code frontend/src/stylesheets/components/_search.scss x: 2 # contributors y: 289 lines of code backend/app/commands/GetPages.scala x: 3 # contributors y: 72 lines of code backend/app/controllers/api/PagesController.scala x: 7 # contributors y: 141 lines of code backend/conf/custom-mimetypes.xml x: 1 # contributors y: 34 lines of code frontend/src/js/components/IngestionEvents/MyUploads.tsx x: 3 # contributors y: 137 lines of code frontend/src/js/components/VideoVerifier.tsx x: 2 # contributors y: 366 lines of code frontend/src/js/util/stylesheets/EUIStyles.tsx x: 1 # contributors y: 3 lines of code frontend/index.html x: 1 # contributors y: 26 lines of code frontend/src/js/components/EmailBrowser/Timeline.jsx x: 1 # contributors y: 333 lines of code frontend/src/js/components/SearchResults/SearchResults.jsx x: 1 # contributors y: 104 lines of code frontend/src/js/components/SearchSidebar/SearchSidebar.jsx x: 1 # contributors y: 143 lines of code frontend/src/js/components/UtilComponents/InputSupper/Chip.jsx x: 1 # contributors y: 387 lines of code frontend/src/js/components/UtilComponents/InputSupper/SuggestionsPanel.jsx x: 1 # contributors y: 45 lines of code frontend/src/js/components/UtilComponents/InputSupper/index.jsx x: 1 # contributors y: 412 lines of code frontend/src/js/components/UtilComponents/Wizard.jsx x: 1 # contributors y: 117 lines of code frontend/src/js/components/users/CreateGenesisUser.jsx x: 1 # contributors y: 254 lines of code frontend/src/js/components/users/CreateNewUser.jsx x: 1 # contributors y: 217 lines of code frontend/src/js/components/users/RegisterUser.jsx x: 1 # contributors y: 288 lines of code frontend/src/js/components/viewer/DocumentMetadata.jsx x: 1 # contributors y: 163 lines of code frontend/src/js/components/viewer/EmailMetadata.jsx x: 1 # contributors y: 53 lines of code backend/app/AppComponents.scala x: 13 # contributors y: 253 lines of code common/src/main/scala/utils/AwsCredentials.scala x: 3 # contributors y: 28 lines of code backend/app/model/frontend/Chip.scala x: 4 # contributors y: 93 lines of code backend/app/model/frontend/Resource.scala x: 4 # contributors y: 170 lines of code backend/app/services/index/ElasticsearchResources.scala x: 7 # contributors y: 940 lines of code backend/app/services/index/HitReaders.scala x: 4 # contributors y: 324 lines of code common/src/main/scala/model/Language.scala x: 5 # contributors y: 85 lines of code frontend/src/js/components/Uploads/LanguagePicker.tsx x: 1 # contributors y: 39 lines of code frontend/src/js/components/viewer/TextPreview.tsx x: 2 # contributors y: 161 lines of code frontend/src/js/components/viewer/Viewer.tsx x: 5 # contributors y: 362 lines of code frontend/src/js/services/CollectionsApi.ts x: 3 # contributors y: 76 lines of code frontend/src/js/util/resourceUtils.ts x: 4 # contributors y: 154 lines of code backend/app/extraction/ocr/ImageOcrExtractor.scala x: 3 # contributors y: 38 lines of code backend/app/model/index/Document.scala x: 3 # contributors y: 20 lines of code backend/app/services/ElasticsearchSyntax.scala x: 2 # contributors y: 126 lines of code backend/app/services/index/Index.scala x: 5 # contributors y: 35 lines of code backend/app/controllers/api/Workspaces.scala x: 12 # contributors y: 394 lines of code frontend/src/js/components/workspace/DownloadTextModal.tsx x: 2 # contributors y: 232 lines of code frontend/src/js/services/WorkspaceApi.ts x: 6 # contributors y: 228 lines of code infra/cdk/lib/postgres.ts x: 1 # contributors y: 91 lines of code backend/app/services/manifest/Neo4jManifest.scala x: 9 # contributors y: 1206 lines of code backend/app/services/index/Pages2.scala x: 7 # contributors y: 148 lines of code backend/app/services/Config.scala x: 9 # contributors y: 222 lines of code backend/app/services/ObjectStorage.scala x: 6 # contributors y: 137 lines of code backend/app/utils/AwsDiscovery.scala x: 10 # contributors y: 226 lines of code backend/app/utils/aws/S3Client.scala x: 3 # contributors y: 83 lines of code backend/app/utils/controller/FailureToResultMapper.scala x: 8 # contributors y: 154 lines of code common/src/main/scala/utils/attempt/Failure.scala x: 6 # contributors y: 99 lines of code frontend/src/stylesheets/components/_document.scss x: 4 # contributors y: 319 lines of code common/src/main/scala/utils/AwsS3Clients.scala x: 3 # contributors y: 55 lines of code frontend/src/js/components/PageViewer/PageViewer.tsx x: 6 # contributors y: 93 lines of code frontend/src/js/components/PageViewer/VirtualScroll.tsx x: 7 # contributors y: 335 lines of code riff-raff.yaml x: 6 # contributors y: 66 lines of code backend/app/extraction/MetadataEnrichment.scala x: 5 # contributors y: 79 lines of code backend/app/model/annotations/Workspace.scala x: 7 # contributors y: 179 lines of code backend/app/model/ingestion/RemoteIngest.scala x: 5 # contributors y: 144 lines of code backend/app/services/annotations/Neo4jAnnotations.scala x: 7 # contributors y: 708 lines of code frontend/src/js/types/Workspaces.ts x: 6 # contributors y: 51 lines of code frontend/src/js/util/workspaceUtils.fixtures.ts x: 3 # contributors y: 955 lines of code frontend/src/js/components/UtilComponents/TreeBrowser/Leaf.tsx x: 2 # contributors y: 144 lines of code cli/src/main/scala/com/gu/pfi/cli/Main.scala x: 6 # contributors y: 172 lines of code cli/src/main/scala/com/gu/pfi/cli/Options.scala x: 5 # contributors y: 148 lines of code cli/src/main/scala/com/gu/pfi/cli/service/IngestionS3Client.scala x: 2 # contributors y: 89 lines of code util/nginx-mapping.yml x: 3 # contributors y: 15 lines of code backend/app/commands/GetResource.scala x: 1 # contributors y: 128 lines of code backend/app/services/annotations/Annotations.scala x: 6 # contributors y: 47 lines of code frontend/src/js/components/Search/SearchBox.tsx x: 1 # contributors y: 65 lines of code frontend/src/js/types/SearchResults.ts x: 2 # contributors y: 79 lines of code frontend/src/js/types/SuggestedFields.ts x: 1 # contributors y: 9 lines of code backend/app/utils/WorkerControl.scala x: 6 # contributors y: 217 lines of code backend/app/model/frontend/SearchResult.scala x: 4 # contributors y: 58 lines of code frontend/src/js/components/viewer/CommentPanel/CommentPanel.tsx x: 2 # contributors y: 279 lines of code frontend/src/js/components/PageViewer/VirtualScroll.module.css x: 4 # contributors y: 21 lines of code backend/app/model/frontend/TreeEntry.scala x: 1 # contributors y: 76 lines of code backend/app/controllers/api/Blobs.scala x: 6 # contributors y: 122 lines of code backend/app/services/MetricsService.scala x: 9 # contributors y: 79 lines of code backend/app/controllers/api/VideoVerifier.scala x: 3 # contributors y: 47 lines of code backend/app/extraction/email/eml/EmlParser.scala x: 8 # contributors y: 126 lines of code backend/app/services/IngestStorage.scala x: 5 # contributors y: 160 lines of code backend/app/services/Tika.scala x: 6 # contributors y: 84 lines of code backend/app/services/previewing/HtmlPreviewGenerator.scala x: 3 # contributors y: 34 lines of code backend/app/extraction/tables/ExcelTableExtractor.scala x: 3 # contributors y: 129 lines of code backend/app/extraction/email/mbox/MBoxEmailDetector.scala x: 4 # contributors y: 33 lines of code backend/app/extraction/Worker.scala x: 5 # contributors y: 153 lines of code frontend/src/js/util/workspaceNavigation.ts x: 2 # contributors y: 136 lines of code backend/app/controllers/api/Collections.scala x: 7 # contributors y: 241 lines of code backend/app/services/ingestion/Neo4jRemoteIngestStore.scala x: 3 # contributors y: 214 lines of code frontend/src/js/util/auth/authUploadWithProgress.ts x: 3 # contributors y: 170 lines of code backend/app/utils/Neo4jHelper.scala x: 3 # contributors y: 255 lines of code backend/app/model/annotations/Comment.scala x: 4 # contributors y: 40 lines of code backend/app/model/frontend/email/EmailThread.scala x: 4 # contributors y: 45 lines of code backend/app/model/manifest/Blob.scala x: 4 # contributors y: 12 lines of code backend/app/model/manifest/Collection.scala x: 5 # contributors y: 46 lines of code backend/app/services/users/Neo4jUserManagement.scala x: 5 # contributors y: 397 lines of code frontend/src/js/components/UtilComponents/ModalAction.tsx x: 3 # contributors y: 116 lines of code frontend/src/js/components/workspace/ShareWorkspaceModal.tsx x: 3 # contributors y: 105 lines of code frontend/src/js/components/workspace/TakeOwnershipOfWorkspaceModal.tsx x: 3 # contributors y: 51 lines of code frontend/src/stylesheets/base/_layout.scss x: 3 # contributors y: 67 lines of code cli/src/main/scala/com/gu/pfi/cli/service/CliIngestionService.scala x: 3 # contributors y: 120 lines of code cli/src/main/scala/com/gu/pfi/cli/CommandValidator.scala x: 2 # contributors y: 107 lines of code cli/src/main/scala/com/gu/pfi/cli/DeleteIngestions.scala x: 4 # contributors y: 70 lines of code backend/app/utils/auth/providers/PanDomainUserProvider.scala x: 7 # contributors y: 88 lines of code backend/app/ingestion/phase2/IngestStorePolling.scala x: 7 # contributors y: 165 lines of code frontend/src/js/actions/pages/resetPages.ts x: 3 # contributors y: 8 lines of code frontend/src/js/actions/workspaces/getWorkspace.ts x: 3 # contributors y: 62 lines of code frontend/src/js/components/PageViewer/Page.tsx x: 4 # contributors y: 68 lines of code frontend/src/js/components/PageViewer/PageCache.ts x: 4 # contributors y: 147 lines of code frontend/src/js/components/Uploads/FileList.tsx x: 1 # contributors y: 175 lines of code frontend/src/js/components/Uploads/Uploads.tsx x: 1 # contributors y: 132 lines of code frontend/src/js/components/viewer/PageViewer/PagePreview.tsx x: 3 # contributors y: 143 lines of code frontend/src/js/components/viewer/PageViewer/PageViewer.tsx x: 4 # contributors y: 113 lines of code frontend/src/js/components/viewer/PageViewer/pageViewerApi.ts x: 4 # contributors y: 103 lines of code frontend/src/js/components/viewer/TranscriptViewer/TranscriptViewer.tsx x: 1 # contributors y: 188 lines of code frontend/src/js/components/workspace/WorkspacesSidebar.tsx x: 4 # contributors y: 132 lines of code frontend/src/js/reducers/pagesReducer.ts x: 5 # contributors y: 124 lines of code frontend/src/js/services/BlobApi.ts x: 4 # contributors y: 22 lines of code frontend/src/stylesheets/components/_upload-files.scss x: 3 # contributors y: 4 lines of code backend/app/controllers/api/Resource.scala x: 7 # contributors y: 77 lines of code backend/app/model/frontend/HighlightableText.scala x: 5 # contributors y: 56 lines of code backend/app/model/frontend/Node.scala x: 4 # contributors y: 6 lines of code backend/app/services/observability/Models.scala x: 5 # contributors y: 184 lines of code cli/src/main/scala/com/gu/pfi/cli/service/CliHttpClient.scala x: 3 # contributors y: 147 lines of code backend/app/services/observability/PostgresClient.scala x: 3 # contributors y: 239 lines of code backend/app/extraction/archives/ZipExtractor.scala x: 4 # contributors y: 61 lines of code backend/app/services/index/ElasticsearchPages.scala x: 5 # contributors y: 227 lines of code backend/app/utils/auth/AuthActionBuilder.scala x: 3 # contributors y: 88 lines of code backend/app/AppLoader.scala x: 4 # contributors y: 27 lines of code backend/app/utils/auth/providers/DatabaseUserProvider.scala x: 2 # contributors y: 101 lines of code backend/app/model/index/Page.scala x: 3 # contributors y: 92 lines of code
1364.0
lines of code
  min: 1.0
  average: 86.14
  25th percentile: 23.0
  median: 46.5
  75th percentile: 106.25
  max: 1364.0
0 13.0
# contributors
min: 1.0 | average: 2.29 | 25th percentile: 1.0 | median: 2.0 | 75th percentile: 3.0 | max: 13.0

Number of Changes vs. Line Churn: 899 points

build.sbt x: 117 # changes y: 1038 line churn backend/app/extraction/ocr/OcrMyPdfExtractor.scala x: 33 # changes y: 547 line churn backend/app/extraction/ocr/OcrMyPdfImageExtractor.scala x: 20 # changes y: 412 line churn backend/app/utils/Ocr.scala x: 29 # changes y: 830 line churn frontend/package-lock.json x: 80 # changes y: 424707 line churn frontend/package.json x: 47 # changes y: 330 line churn infra/migrate-db/package-lock.json x: 17 # changes y: 12792 line churn .github/codex/typescript-migration-plan.md x: 10 # changes y: 862 line churn frontend/src/js/actions/getFilters.js x: 2 # changes y: 116 line churn frontend/src/js/actions/getFilters.ts x: 1 # changes y: 88 line churn frontend/src/js/components/SearchSidebar/SearchFilter.jsx x: 3 # changes y: 146 line churn frontend/src/js/components/SearchSidebar/SearchFilterValue.jsx x: 5 # changes y: 276 line churn frontend/src/js/types/redux/GiantActions.ts x: 18 # changes y: 770 line churn backend/test/controllers/api/EventsTest.scala x: 8 # changes y: 68 line churn backend/test/controllers/api/WorkspaceSharingITest.scala x: 11 # changes y: 144 line churn backend/test/services/index/ElasticsearchResourcesITest.scala x: 14 # changes y: 476 line churn backend/test/test/integration/Helpers.scala x: 46 # changes y: 244 line churn backend/test/utils/auth/AuthActionBuilderTest.scala x: 12 # changes y: 112 line churn e2e-tests/package.json x: 4 # changes y: 52 line churn frontend/src/js/components/UtilComponents/ErrorBar.jsx x: 6 # changes y: 490 line churn backend/app/extraction/ExternalTranscriptionExtractor.scala x: 39 # changes y: 1251 line churn backend/app/extraction/ExternalTranscriptionWorker.scala x: 30 # changes y: 1498 line churn backend/app/model/TranscriptionService.scala x: 7 # changes y: 638 line churn backend/test/services/manifest/Neo4JManifestITest.scala x: 24 # changes y: 2528 line churn .github/workflows/build.yml x: 13 # changes y: 522 line churn transcription-worker-interface/worker-interface-schema.json x: 3 # changes y: 1886 line churn infra/cdk/bin/__snapshots__/cdk.test.ts.snap x: 6 # changes y: 1682 line churn infra/cdk/package-lock.json x: 9 # changes y: 69870 line churn README.md x: 17 # changes y: 268 line churn backend/app/services/ingestion/IngestionServices.scala x: 21 # changes y: 572 line churn frontend/src/js/components/IngestionEvents/IngestionEvents.tsx x: 22 # changes y: 2588 line churn frontend/src/js/components/PageViewer/FindInput.tsx x: 19 # changes y: 974 line churn frontend/src/js/components/viewer/DocumentFooter.tsx x: 9 # changes y: 532 line churn frontend/src/js/components/workspace/WorkspaceSummary.tsx x: 31 # changes y: 1237 line churn frontend/src/js/components/workspace/Workspaces.tsx x: 61 # changes y: 5635 line churn backend/app/extraction/ocr/TesseractPdfOcrExtractor.scala x: 15 # changes y: 141 line churn frontend/src/js/App.js x: 23 # changes y: 973 line churn backend/app/AppComponents.scala x: 90 # changes y: 828 line churn docker-compose.yml x: 41 # changes y: 323 line churn Brewfile x: 16 # changes y: 30 line churn backend/app/services/index/HitReaders.scala x: 25 # changes y: 374 line churn frontend/src/js/components/PageViewerOrFallback.tsx x: 29 # changes y: 1804 line churn frontend/src/js/components/viewer/Viewer.tsx x: 26 # changes y: 1558 line churn backend/app/services/index/Index.scala x: 28 # changes y: 114 line churn backend/app/controllers/api/Workspaces.scala x: 51 # changes y: 1075 line churn backend/conf/routes x: 72 # changes y: 268 line churn backend/app/services/manifest/Neo4jManifest.scala x: 60 # changes y: 2976 line churn backend/app/services/Config.scala x: 42 # changes y: 258 line churn backend/app/utils/controller/FailureToResultMapper.scala x: 35 # changes y: 217 line churn backend/conf/application.conf x: 49 # changes y: 251 line churn common/src/main/scala/utils/attempt/Failure.scala x: 32 # changes y: 98 line churn frontend/src/js/components/PageViewer/PageViewer.tsx x: 36 # changes y: 2719 line churn frontend/src/js/components/PageViewer/VirtualScroll.tsx x: 41 # changes y: 2929 line churn riff-raff.yaml x: 34 # changes y: 158 line churn backend/app/model/ingestion/RemoteIngest.scala x: 27 # changes y: 962 line churn backend/app/services/annotations/Neo4jAnnotations.scala x: 36 # changes y: 1023 line churn frontend/src/js/util/workspaceUtils.fixtures.ts x: 5 # changes y: 3028 line churn frontend/public/docs/UsingGiant.md x: 10 # changes y: 3644 line churn backend/app/utils/WorkerControl.scala x: 22 # changes y: 519 line churn frontend/src/js/components/PageViewer/Controls.tsx x: 24 # changes y: 1445 line churn postgres/cdk/package-lock.json x: 11 # changes y: 81100 line churn postgres/migrate-db/package-lock.json x: 12 # changes y: 36172 line churn postgres/migrate-db/build/index.js x: 2 # changes y: 211746 line churn
424707.0
line churn
  min: 2.0
  average: 1165.59
  25th percentile: 34.0
  median: 102.0
  75th percentile: 266.0
  max: 424707.0
0 117.0
# changes
min: 1.0 | average: 5.99 | 25th percentile: 2.0 | median: 3.0 | 75th percentile: 6.0 | max: 117.0

Number of Contributors vs. Line Churn: 536 points

backend/app/extraction/ocr/OcrMyPdfExtractor.scala x: 6 # contributors y: 547 line churn backend/app/extraction/ocr/OcrMyPdfImageExtractor.scala x: 6 # contributors y: 412 line churn backend/app/utils/Ocr.scala x: 7 # contributors y: 830 line churn frontend/src/js/actions/getFilters.ts x: 2 # contributors y: 88 line churn frontend/src/js/components/SearchSidebar/SearchFilter.jsx x: 2 # contributors y: 146 line churn frontend/src/js/components/SearchSidebar/SearchFilterOption.jsx x: 2 # contributors y: 352 line churn frontend/src/js/components/SearchSidebar/SearchFilterValue.jsx x: 2 # contributors y: 276 line churn frontend/src/js/reducers/filtersReducer.ts x: 2 # contributors y: 30 line churn frontend/src/js/types/redux/GiantActions.ts x: 9 # contributors y: 770 line churn frontend/src/js/types/redux/GiantState.ts x: 5 # contributors y: 293 line churn .devcontainer/devenv.yaml x: 2 # contributors y: 110 line churn frontend/src/index.jsx x: 2 # contributors y: 182 line churn frontend/src/js/actions/problems.ts x: 2 # contributors y: 122 line churn frontend/src/js/components/UtilComponents/ErrorBar.tsx x: 2 # contributors y: 248 line churn frontend/src/js/components/viewer/DownloadButton.tsx x: 2 # contributors y: 56 line churn frontend/src/js/components/UtilComponents/SelectionPopover.tsx x: 2 # contributors y: 316 line churn backend/app/extraction/ExternalDocumentTranslationExtractor.scala x: 1 # contributors y: 126 line churn backend/app/extraction/ExternalOcrTranslationExtractor.scala x: 1 # contributors y: 186 line churn backend/app/extraction/ExternalTranscriptionExtractor.scala x: 5 # contributors y: 1251 line churn backend/app/extraction/ExternalTranscriptionWorker.scala x: 4 # contributors y: 1498 line churn backend/app/extraction/ExternalTranslationExtractor.scala x: 1 # contributors y: 412 line churn backend/app/model/TranscriptionService.scala x: 1 # contributors y: 638 line churn frontend/src/js/components/UtilComponents/SearchLink.tsx x: 2 # contributors y: 214 line churn frontend/src/js/components/UtilComponents/TreeBrowser/index.tsx x: 3 # contributors y: 622 line churn frontend/src/js/components/UtilComponents/PageNavigator.tsx x: 2 # contributors y: 174 line churn frontend/src/js/components/UtilComponents/ProgressAnimation.tsx x: 2 # contributors y: 22 line churn project/TranscriptionSchemaFetcher.scala x: 1 # contributors y: 174 line churn project/TranscriptionWorkerInterfaceGenerator.scala x: 1 # contributors y: 900 line churn transcription-worker-interface/src/main/scala/com/gu/transcriptionservice/workerinterface/TranscriptionWorkerInterface.scala x: 1 # contributors y: 1304 line churn infra/cdk/eslint.config.mjs x: 1 # contributors y: 36 line churn backend/app/extraction/ocr/BaseOcrExtractor.scala x: 4 # contributors y: 434 line churn backend/app/services/ingestion/IngestionServices.scala x: 4 # contributors y: 572 line churn frontend/src/js/components/Header.jsx x: 1 # contributors y: 370 line churn frontend/src/js/components/IngestionEvents/IngestionEvents.tsx x: 3 # contributors y: 2588 line churn frontend/src/js/components/PageViewer/FindInput.tsx x: 4 # contributors y: 974 line churn frontend/src/js/components/PageViewer/SearchStepper.tsx x: 2 # contributors y: 232 line churn frontend/src/js/components/Search/Search.tsx x: 2 # contributors y: 758 line churn frontend/src/js/components/SearchResults/CompactResultsTable.jsx x: 1 # contributors y: 350 line churn frontend/src/js/components/SearchResults/SearchResult.jsx x: 1 # contributors y: 452 line churn frontend/src/js/components/Settings/Users.tsx x: 1 # contributors y: 490 line churn frontend/src/js/components/Uploads/CaptureFromUrl.tsx x: 3 # contributors y: 1642 line churn frontend/src/js/components/Uploads/UploadFiles.tsx x: 5 # contributors y: 1046 line churn frontend/src/js/components/UtilComponents/MenuChevron.tsx x: 1 # contributors y: 70 line churn frontend/src/js/components/UtilComponents/TreeBrowser/Node.tsx x: 2 # contributors y: 500 line churn frontend/src/js/components/viewer/DocumentFooter.tsx x: 2 # contributors y: 532 line churn frontend/src/js/components/viewer/DownloadModal.jsx x: 1 # contributors y: 674 line churn frontend/src/js/components/viewer/Preview.tsx x: 1 # contributors y: 544 line churn frontend/src/js/components/viewer/TextPopover.jsx x: 1 # contributors y: 230 line churn frontend/src/js/components/viewer/ViewerSidebar.jsx x: 1 # contributors y: 286 line churn frontend/src/js/components/workspace/WorkspacePublicInfoIcon.tsx x: 1 # contributors y: 48 line churn frontend/src/js/components/workspace/WorkspaceSummary.tsx x: 6 # contributors y: 1237 line churn frontend/src/js/components/workspace/Workspaces.tsx x: 7 # contributors y: 5635 line churn frontend/src/js/eui-components/GiantEuiLeftHandNav.tsx x: 1 # contributors y: 208 line churn frontend/src/stylesheets/components/_select.scss x: 1 # contributors y: 1008 line churn backend/app/commands/GetPages.scala x: 3 # contributors y: 50 line churn backend/app/controllers/api/PagesController.scala x: 7 # contributors y: 1143 line churn backend/app/extraction/ocr/TesseractPdfOcrExtractor.scala x: 5 # contributors y: 141 line churn backend/conf/custom-mimetypes.xml x: 1 # contributors y: 105 line churn frontend/src/js/components/IngestionEvents/AllIngestionEvents.tsx x: 4 # contributors y: 720 line churn frontend/src/js/components/IngestionEvents/MyUploads.tsx x: 3 # contributors y: 618 line churn frontend/src/js/components/VideoVerifier.tsx x: 2 # contributors y: 1536 line churn frontend/src/js/util/stylesheets/EUIStyles.tsx x: 1 # contributors y: 10 line churn frontend/src/js/App.jsx x: 1 # contributors y: 430 line churn frontend/src/js/components/Collections/CollectionsSidebar/CollectionsSidebar.jsx x: 1 # contributors y: 146 line churn frontend/src/js/components/EmailBrowser/Timeline.jsx x: 1 # contributors y: 754 line churn frontend/src/js/components/Login/Login.jsx x: 1 # contributors y: 600 line churn frontend/src/js/components/SearchSidebar/SearchSidebar.jsx x: 1 # contributors y: 332 line churn frontend/src/js/components/UtilComponents/InputSupper/index.jsx x: 1 # contributors y: 914 line churn frontend/src/js/components/users/CreateGenesisUser.jsx x: 1 # contributors y: 578 line churn frontend/src/js/components/viewer/EmailDetails.jsx x: 1 # contributors y: 252 line churn backend/app/AppComponents.scala x: 13 # contributors y: 828 line churn common/src/main/scala/utils/AwsCredentials.scala x: 3 # contributors y: 170 line churn backend/app/model/frontend/Chip.scala x: 4 # contributors y: 65 line churn backend/app/model/frontend/Resource.scala x: 4 # contributors y: 82 line churn backend/app/services/index/ElasticsearchResources.scala x: 7 # contributors y: 1618 line churn backend/app/services/index/HitReaders.scala x: 4 # contributors y: 374 line churn common/src/main/scala/model/Language.scala x: 5 # contributors y: 106 line churn frontend/src/js/components/PageViewerOrFallback.tsx x: 3 # contributors y: 1804 line churn frontend/src/js/components/viewer/PreviewSwitcher.tsx x: 1 # contributors y: 866 line churn frontend/src/js/components/viewer/TextPreview.tsx x: 2 # contributors y: 720 line churn frontend/src/js/components/viewer/Viewer.tsx x: 5 # contributors y: 1558 line churn frontend/src/js/services/CollectionsApi.ts x: 3 # contributors y: 244 line churn frontend/src/js/util/resourceUtils.ts x: 4 # contributors y: 344 line churn backend/app/extraction/ocr/ImageOcrExtractor.scala x: 3 # contributors y: 126 line churn backend/app/model/index/Document.scala x: 3 # contributors y: 22 line churn backend/app/services/index/Index.scala x: 5 # contributors y: 114 line churn backend/app/controllers/api/Workspaces.scala x: 12 # contributors y: 1075 line churn backend/app/services/manifest/Neo4jManifest.scala x: 9 # contributors y: 2976 line churn backend/app/services/index/Pages2.scala x: 7 # contributors y: 1028 line churn backend/app/extraction/TranscriptionExtractor.scala x: 2 # contributors y: 430 line churn backend/app/services/Config.scala x: 9 # contributors y: 258 line churn backend/app/services/ObjectStorage.scala x: 6 # contributors y: 378 line churn backend/app/utils/AwsDiscovery.scala x: 10 # contributors y: 525 line churn backend/app/utils/aws/S3Client.scala x: 3 # contributors y: 212 line churn backend/app/utils/controller/FailureToResultMapper.scala x: 8 # contributors y: 217 line churn common/src/main/scala/utils/attempt/Failure.scala x: 6 # contributors y: 98 line churn frontend/src/js/components/PageViewer/PageViewer.tsx x: 6 # contributors y: 2719 line churn frontend/src/js/components/PageViewer/VirtualScroll.tsx x: 7 # contributors y: 2929 line churn riff-raff.yaml x: 6 # contributors y: 158 line churn backend/app/extraction/MetadataEnrichment.scala x: 5 # contributors y: 63 line churn backend/app/model/annotations/Workspace.scala x: 7 # contributors y: 115 line churn backend/app/model/ingestion/RemoteIngest.scala x: 5 # contributors y: 962 line churn frontend/src/js/util/workspaceUtils.fixtures.ts x: 3 # contributors y: 3028 line churn frontend/src/stylesheets/components/_workspace.scss x: 3 # contributors y: 194 line churn cli/src/main/scala/com/gu/pfi/cli/Main.scala x: 6 # contributors y: 222 line churn cli/src/main/scala/com/gu/pfi/cli/Options.scala x: 5 # contributors y: 74 line churn util/nginx-mapping.yml x: 3 # contributors y: 23 line churn backend/app/services/annotations/Annotations.scala x: 6 # contributors y: 49 line churn frontend/src/stylesheets/components/_markdown-page.scss x: 1 # contributors y: 298 line churn backend/app/utils/WorkerControl.scala x: 6 # contributors y: 519 line churn frontend/src/js/components/viewer/CommentPanel/CommentPanel.tsx x: 2 # contributors y: 484 line churn frontend/src/js/components/PageViewer/Controls.tsx x: 5 # contributors y: 1445 line churn frontend/src/js/components/PageViewer/VirtualScroll.module.css x: 4 # contributors y: 121 line churn frontend/src/js/components/workspace/WorkspacesSidebarItem.tsx x: 2 # contributors y: 300 line churn backend/app/controllers/api/Blobs.scala x: 6 # contributors y: 568 line churn backend/app/services/MetricsService.scala x: 9 # contributors y: 389 line churn frontend/src/js/components/PageViewer/FindInput.module.css x: 4 # contributors y: 391 line churn frontend/src/js/components/PageViewer/model.ts x: 5 # contributors y: 402 line churn backend/app/extraction/email/eml/EmlParser.scala x: 8 # contributors y: 92 line churn backend/app/services/Tika.scala x: 6 # contributors y: 18 line churn backend/app/extraction/email/olm/OlmEmailExtractor.scala x: 5 # contributors y: 14 line churn backend/app/extraction/tables/ExcelTableExtractor.scala x: 3 # contributors y: 70 line churn frontend/src/js/util/workspaceNavigation.ts x: 2 # contributors y: 536 line churn frontend/src/js/components/PageViewer/PdfHelpers.ts x: 5 # contributors y: 594 line churn backend/app/controllers/api/Collections.scala x: 7 # contributors y: 548 line churn backend/app/services/ingestion/Neo4jRemoteIngestStore.scala x: 3 # contributors y: 1546 line churn backend/app/services/ingestion/RemoteIngestWorker.scala x: 4 # contributors y: 1212 line churn frontend/src/js/util/auth/authUploadWithProgress.ts x: 3 # contributors y: 553 line churn backend/app/utils/Neo4jHelper.scala x: 3 # contributors y: 268 line churn backend/app/model/annotations/Comment.scala x: 4 # contributors y: 10 line churn backend/app/model/frontend/email/EmailThread.scala x: 4 # contributors y: 41 line churn backend/app/model/manifest/Collection.scala x: 5 # contributors y: 38 line churn backend/app/services/users/Neo4jUserManagement.scala x: 5 # contributors y: 262 line churn frontend/src/js/components/UtilComponents/ModalAction.tsx x: 3 # contributors y: 342 line churn frontend/src/js/components/workspace/ShareWorkspaceModal.tsx x: 3 # contributors y: 266 line churn cli/src/main/scala/com/gu/pfi/cli/DeleteIngestions.scala x: 4 # contributors y: 108 line churn backend/app/ingestion/phase2/IngestStorePolling.scala x: 7 # contributors y: 346 line churn frontend/src/js/actions/workspaces/setNodesAsExpanded.ts x: 3 # contributors y: 92 line churn frontend/src/js/components/PageViewer/Page.tsx x: 4 # contributors y: 653 line churn frontend/src/js/components/PageViewer/PageCache.ts x: 4 # contributors y: 1257 line churn frontend/src/js/components/PageViewer/PageHighlight.tsx x: 4 # contributors y: 298 line churn frontend/src/js/components/viewer/DeleteButtonModal.tsx x: 3 # contributors y: 680 line churn frontend/src/js/components/viewer/PageViewer/PagePreview.tsx x: 3 # contributors y: 320 line churn frontend/src/js/components/viewer/PageViewer/PageViewer.tsx x: 4 # contributors y: 260 line churn frontend/src/js/components/viewer/PageViewer/pageViewerApi.ts x: 4 # contributors y: 205 line churn frontend/src/js/components/viewer/TranscriptViewer/TranscriptViewer.tsx x: 1 # contributors y: 662 line churn frontend/src/js/components/workspace/ConfirmModal.tsx x: 4 # contributors y: 708 line churn frontend/src/js/util/LruCache.ts x: 4 # contributors y: 402 line churn backend/app/controllers/api/Resource.scala x: 7 # contributors y: 59 line churn backend/app/services/observability/Models.scala x: 5 # contributors y: 911 line churn backend/app/services/observability/PostgresClient.scala x: 3 # contributors y: 1216 line churn backend/app/commands/DeleteResource.scala x: 4 # contributors y: 611 line churn backend/app/utils/PDFUtil.scala x: 5 # contributors y: 433 line churn
5635.0
line churn
  min: 2.0
  average: 238.86
  25th percentile: 32.0
  median: 88.0
  75th percentile: 259.5
  max: 5635.0
0 13.0
# contributors
min: 1.0 | average: 2.33 | 25th percentile: 1.0 | median: 2.0 | 75th percentile: 3.0 | max: 13.0

File Size vs. Line Churn: 536 points

backend/app/extraction/ocr/OcrMyPdfExtractor.scala x: 146 lines of code y: 547 line churn backend/app/extraction/ocr/OcrMyPdfImageExtractor.scala x: 86 lines of code y: 412 line churn backend/app/utils/Ocr.scala x: 244 lines of code y: 830 line churn frontend/src/js/actions/getFilters.ts x: 39 lines of code y: 88 line churn frontend/src/js/components/SearchSidebar/SearchFilter.jsx x: 63 lines of code y: 146 line churn frontend/src/js/components/SearchSidebar/SearchFilterOption.jsx x: 155 lines of code y: 352 line churn frontend/src/js/components/SearchSidebar/SearchFilterValue.jsx x: 118 lines of code y: 276 line churn frontend/src/js/reducers/filtersReducer.ts x: 13 lines of code y: 30 line churn frontend/src/js/services/FiltersApi.ts x: 11 lines of code y: 26 line churn frontend/src/js/types/SearchFilter.ts x: 34 lines of code y: 80 line churn frontend/src/js/types/redux/GiantActions.ts x: 305 lines of code y: 770 line churn frontend/src/js/types/redux/GiantState.ts x: 88 lines of code y: 293 line churn .devcontainer/devenv.yaml x: 20 lines of code y: 110 line churn frontend/src/index.jsx x: 38 lines of code y: 182 line churn frontend/src/js/actions/problems.ts x: 55 lines of code y: 122 line churn frontend/src/js/components/Settings/About.tsx x: 46 lines of code y: 96 line churn frontend/src/js/components/Settings/FeatureSwitches.tsx x: 83 lines of code y: 190 line churn frontend/src/js/components/UtilComponents/ErrorBar.tsx x: 110 lines of code y: 248 line churn frontend/src/js/components/viewer/DownloadButton.tsx x: 27 lines of code y: 56 line churn frontend/src/js/reducers/appReducer.ts x: 48 lines of code y: 114 line churn frontend/src/js/types/Config.ts x: 20 lines of code y: 50 line churn frontend/src/js/components/UtilComponents/SelectionPopover.tsx x: 123 lines of code y: 316 line churn backend/app/extraction/ExternalDocumentTranslationExtractor.scala x: 27 lines of code y: 126 line churn backend/app/extraction/ExternalOcrTranslationExtractor.scala x: 28 lines of code y: 186 line churn backend/app/extraction/ExternalTranscriptionExtractor.scala x: 75 lines of code y: 1251 line churn backend/app/extraction/ExternalTranscriptionWorker.scala x: 257 lines of code y: 1498 line churn backend/app/extraction/ExternalTranslationExtractor.scala x: 83 lines of code y: 412 line churn backend/app/model/TranscriptionService.scala x: 20 lines of code y: 638 line churn frontend/src/js/components/UtilComponents/HoverSearchLink.tsx x: 65 lines of code y: 186 line churn frontend/src/js/components/UtilComponents/KeyboardShortcut.ts x: 15 lines of code y: 54 line churn frontend/src/js/components/UtilComponents/Modal.tsx x: 52 lines of code y: 126 line churn frontend/src/js/components/UtilComponents/SearchLink.tsx x: 92 lines of code y: 214 line churn frontend/src/js/components/UtilComponents/SidebarSearchLink.tsx x: 32 lines of code y: 86 line churn frontend/src/js/components/UtilComponents/TreeBrowser/index.tsx x: 340 lines of code y: 622 line churn frontend/src/js/components/UtilComponents/Checkbox.tsx x: 40 lines of code y: 88 line churn frontend/src/js/components/UtilComponents/PageNavigator.tsx x: 72 lines of code y: 174 line churn frontend/src/js/components/UtilComponents/ProgressAnimation.tsx x: 10 lines of code y: 22 line churn frontend/src/js/components/UtilComponents/ProgressBar.tsx x: 23 lines of code y: 54 line churn frontend/src/js/util/UrlParameters.ts x: 68 lines of code y: 170 line churn frontend/src/js/util/buildLink.ts x: 29 lines of code y: 76 line churn frontend/src/js/util/history.ts x: 2 lines of code y: 6 line churn frontend/src/js/components/UtilComponents/documentTitle.ts x: 68 lines of code y: 200 line churn frontend/src/js/types/Resource.ts x: 95 lines of code y: 314 line churn frontend/src/js/util/parseDate.ts x: 112 lines of code y: 314 line churn project/TranscriptionSchemaFetcher.scala x: 61 lines of code y: 174 line churn project/TranscriptionWorkerInterfaceGenerator.scala x: 297 lines of code y: 900 line churn transcription-worker-interface/src/main/scala/com/gu/transcriptionservice/workerinterface/TranscriptionWorkerInterface.scala x: 548 lines of code y: 1304 line churn infra/cdk/eslint.config.mjs x: 17 lines of code y: 36 line churn backend/app/extraction/DocumentBodyExtractor.scala x: 58 lines of code y: 44 line churn backend/app/extraction/ocr/BaseOcrExtractor.scala x: 81 lines of code y: 434 line churn backend/app/services/ingestion/IngestionServices.scala x: 178 lines of code y: 572 line churn frontend/src/js/components/Header.jsx x: 145 lines of code y: 370 line churn frontend/src/js/components/IngestionEvents/IngestionEvents.tsx x: 502 lines of code y: 2588 line churn frontend/src/js/components/PageViewer/FindInput.tsx x: 137 lines of code y: 974 line churn frontend/src/js/components/PageViewer/SearchStepper.tsx x: 60 lines of code y: 232 line churn frontend/src/js/components/Search/Search.tsx x: 284 lines of code y: 758 line churn frontend/src/js/components/SearchResults/CompactResultsTable.jsx x: 158 lines of code y: 350 line churn frontend/src/js/components/SearchResults/SearchResult.jsx x: 207 lines of code y: 452 line churn frontend/src/js/components/Settings/Users.tsx x: 260 lines of code y: 490 line churn frontend/src/js/components/Uploads/CaptureFromUrl.tsx x: 355 lines of code y: 1642 line churn frontend/src/js/components/Uploads/UploadFiles.tsx x: 458 lines of code y: 1046 line churn frontend/src/js/components/UtilComponents/MenuChevron.tsx x: 14 lines of code y: 70 line churn frontend/src/js/components/UtilComponents/TreeBrowser/Node.tsx x: 343 lines of code y: 500 line churn frontend/src/js/components/viewer/AddToWorkspaceModal.tsx x: 179 lines of code y: 506 line churn frontend/src/js/components/viewer/DocumentFooter.tsx x: 194 lines of code y: 532 line churn frontend/src/js/components/viewer/DownloadModal.jsx x: 295 lines of code y: 674 line churn frontend/src/js/components/viewer/LazyTreeBrowser.tsx x: 256 lines of code y: 492 line churn frontend/src/js/components/viewer/PageViewer/PageViewerStatusBar.tsx x: 81 lines of code y: 186 line churn frontend/src/js/components/viewer/PagedBrowser.tsx x: 75 lines of code y: 184 line churn frontend/src/js/components/viewer/Preview.tsx x: 137 lines of code y: 544 line churn frontend/src/js/components/viewer/SidebarComments.tsx x: 210 lines of code y: 496 line churn frontend/src/js/components/viewer/StatusBar.jsx x: 208 lines of code y: 502 line churn frontend/src/js/components/viewer/TextPopover.jsx x: 92 lines of code y: 230 line churn frontend/src/js/components/viewer/ViewerSidebar.jsx x: 122 lines of code y: 286 line churn frontend/src/js/components/workspace/CreateWorkspaceModal.tsx x: 108 lines of code y: 510 line churn frontend/src/js/components/workspace/WorkspacePublicInfoIcon.tsx x: 14 lines of code y: 48 line churn frontend/src/js/components/workspace/WorkspaceSummary.tsx x: 235 lines of code y: 1237 line churn frontend/src/js/components/workspace/Workspaces.tsx x: 1364 lines of code y: 5635 line churn frontend/src/js/eui-components/GiantEuiLeftHandNav.tsx x: 194 lines of code y: 208 line churn frontend/src/js/eui-components/GiantEuiSearchResultNav.tsx x: 100 lines of code y: 216 line churn frontend/src/js/util/fileTypeIcon.ts x: 43 lines of code y: 340 line churn frontend/src/stylesheets/components/_search.scss x: 289 lines of code y: 196 line churn frontend/src/stylesheets/components/_select.scss x: 32 lines of code y: 1008 line churn backend/app/commands/GetPages.scala x: 72 lines of code y: 50 line churn backend/app/controllers/api/PagesController.scala x: 141 lines of code y: 1143 line churn backend/app/extraction/ocr/TesseractPdfOcrExtractor.scala x: 75 lines of code y: 141 line churn backend/app/extraction/tables/CsvTableExtractor.scala x: 34 lines of code y: 14 line churn backend/conf/custom-mimetypes.xml x: 34 lines of code y: 105 line churn frontend/src/js/components/IngestionEvents/AllIngestionEvents.tsx x: 178 lines of code y: 720 line churn frontend/src/js/components/IngestionEvents/MyUploads.tsx x: 137 lines of code y: 618 line churn frontend/src/js/components/VideoVerifier.tsx x: 366 lines of code y: 1536 line churn frontend/src/js/eui-components/GiantEuiSearchResults.tsx x: 158 lines of code y: 244 line churn frontend/src/js/util/stylesheets/EUIStyles.tsx x: 3 lines of code y: 10 line churn frontend/src/js/App.jsx x: 195 lines of code y: 430 line churn frontend/src/js/components/Collections/Collections.jsx x: 35 lines of code y: 84 line churn frontend/src/js/components/Collections/CollectionsSidebar/CollectionItem.jsx x: 20 lines of code y: 44 line churn frontend/src/js/components/EmailBrowser/Timeline.jsx x: 333 lines of code y: 754 line churn frontend/src/js/components/Login/Login.jsx x: 261 lines of code y: 600 line churn frontend/src/js/components/SearchResults/SearchResults.jsx x: 104 lines of code y: 224 line churn frontend/src/js/components/SearchSidebar/SearchSidebar.jsx x: 143 lines of code y: 332 line churn frontend/src/js/components/Settings/SettingsSidebar.jsx x: 108 lines of code y: 240 line churn frontend/src/js/components/UtilComponents/InputSupper/Chip.jsx x: 387 lines of code y: 896 line churn frontend/src/js/components/UtilComponents/InputSupper/InlineInput.jsx x: 141 lines of code y: 322 line churn frontend/src/js/components/UtilComponents/InputSupper/index.jsx x: 412 lines of code y: 914 line churn frontend/src/js/components/users/CreateGenesisUser.jsx x: 254 lines of code y: 578 line churn frontend/src/js/components/users/CreateNewUser.jsx x: 217 lines of code y: 492 line churn frontend/src/js/components/users/RegisterUser.jsx x: 288 lines of code y: 634 line churn frontend/src/js/components/viewer/DocumentMetadata.jsx x: 163 lines of code y: 366 line churn frontend/src/js/components/viewer/EmailDetails.jsx x: 115 lines of code y: 252 line churn frontend/src/js/components/viewer/ViewerActions.jsx x: 48 lines of code y: 108 line churn frontend/src/js/util/store.js x: 31 lines of code y: 100 line churn backend/app/AppComponents.scala x: 253 lines of code y: 828 line churn common/src/main/scala/utils/AwsCredentials.scala x: 28 lines of code y: 170 line churn backend/app/controllers/api/Ingestion.scala x: 22 lines of code y: 70 line churn backend/app/model/frontend/Chip.scala x: 93 lines of code y: 65 line churn backend/app/model/frontend/Resource.scala x: 170 lines of code y: 82 line churn backend/app/model/index/TranslationData.scala x: 45 lines of code y: 122 line churn backend/app/services/index/ElasticsearchResources.scala x: 940 lines of code y: 1618 line churn backend/app/services/index/HighlightFields.scala x: 112 lines of code y: 38 line churn backend/app/services/index/HitReaders.scala x: 324 lines of code y: 374 line churn common/src/main/scala/model/Language.scala x: 85 lines of code y: 106 line churn frontend/src/js/components/PageViewerOrFallback.tsx x: 343 lines of code y: 1804 line churn frontend/src/js/components/Uploads/LanguagePicker.tsx x: 39 lines of code y: 118 line churn frontend/src/js/components/viewer/PreviewSwitcher.tsx x: 255 lines of code y: 866 line churn frontend/src/js/components/viewer/TextPreview.tsx x: 161 lines of code y: 720 line churn frontend/src/js/components/viewer/Viewer.tsx x: 362 lines of code y: 1558 line churn frontend/src/js/services/CollectionsApi.ts x: 76 lines of code y: 244 line churn backend/app/model/Email.scala x: 178 lines of code y: 78 line churn backend/app/model/index/Document.scala x: 20 lines of code y: 22 line churn backend/app/services/ElasticsearchSyntax.scala x: 126 lines of code y: 52 line churn backend/app/services/index/Index.scala x: 35 lines of code y: 114 line churn backend/app/controllers/api/Workspaces.scala x: 394 lines of code y: 1075 line churn frontend/src/js/components/workspace/DownloadTextModal.tsx x: 232 lines of code y: 714 line churn frontend/src/js/services/WorkspaceApi.ts x: 228 lines of code y: 534 line churn infra/cdk/lib/constructs/GuStackWithGiantVPC.ts x: 18 lines of code y: 42 line churn infra/cdk/lib/postgres.ts x: 91 lines of code y: 252 line churn backend/app/services/manifest/Neo4jManifest.scala x: 1206 lines of code y: 2976 line churn backend/app/services/index/Pages2.scala x: 148 lines of code y: 1028 line churn frontend/src/js/components/PageViewer/resolveInitialPagedView.ts x: 30 lines of code y: 238 line churn frontend/src/js/components/PageViewer/useHighlightNavigation.ts x: 84 lines of code y: 214 line churn backend/app/extraction/TranscriptionExtractor.scala x: 68 lines of code y: 430 line churn backend/app/services/Config.scala x: 222 lines of code y: 258 line churn backend/app/services/ObjectStorage.scala x: 137 lines of code y: 378 line churn backend/app/services/manifest/Manifest.scala x: 72 lines of code y: 142 line churn backend/app/utils/AwsDiscovery.scala x: 226 lines of code y: 525 line churn backend/app/utils/aws/S3Client.scala x: 83 lines of code y: 212 line churn backend/app/utils/controller/FailureToResultMapper.scala x: 154 lines of code y: 217 line churn common/src/main/scala/utils/attempt/Failure.scala x: 99 lines of code y: 98 line churn frontend/src/stylesheets/components/_document.scss x: 319 lines of code y: 434 line churn common/src/main/scala/utils/AwsS3Clients.scala x: 55 lines of code y: 240 line churn frontend/src/js/components/PageViewer/PageNavInput.tsx x: 71 lines of code y: 194 line churn frontend/src/js/components/PageViewer/PageViewer.tsx x: 93 lines of code y: 2719 line churn frontend/src/js/components/PageViewer/VirtualScroll.tsx x: 335 lines of code y: 2929 line churn frontend/src/js/components/PageViewer/pageInput.ts x: 5 lines of code y: 26 line churn riff-raff.yaml x: 66 lines of code y: 158 line churn backend/app/extraction/MetadataEnrichment.scala x: 79 lines of code y: 63 line churn backend/app/model/annotations/Workspace.scala x: 179 lines of code y: 115 line churn backend/app/model/ingestion/RemoteIngest.scala x: 144 lines of code y: 962 line churn backend/app/services/annotations/Neo4jAnnotations.scala x: 708 lines of code y: 1023 line churn frontend/src/js/types/Workspaces.ts x: 51 lines of code y: 158 line churn frontend/src/js/util/workspaceUtils.fixtures.ts x: 955 lines of code y: 3028 line churn frontend/src/js/components/UtilComponents/TreeBrowser/Leaf.tsx x: 144 lines of code y: 270 line churn frontend/src/stylesheets/components/_workspace.scss x: 138 lines of code y: 194 line churn cli/src/main/scala/com/gu/pfi/cli/Main.scala x: 172 lines of code y: 222 line churn cli/src/main/scala/com/gu/pfi/cli/Options.scala x: 148 lines of code y: 74 line churn cli/src/main/scala/com/gu/pfi/cli/service/IngestionS3Client.scala x: 89 lines of code y: 278 line churn backend/app/commands/GetResource.scala x: 128 lines of code y: 14 line churn backend/app/services/annotations/Annotations.scala x: 47 lines of code y: 49 line churn backend/app/services/index/SearchContext.scala x: 94 lines of code y: 102 line churn frontend/src/js/actions/urlParams/updateSearchQuery.ts x: 40 lines of code y: 26 line churn frontend/src/js/components/Search/SearchBox.tsx x: 65 lines of code y: 144 line churn frontend/src/js/types/SuggestedFields.ts x: 9 lines of code y: 22 line churn frontend/src/stylesheets/components/_markdown-page.scss x: 116 lines of code y: 298 line churn frontend/src/js/components/Uploads/filterSystemFiles.ts x: 30 lines of code y: 146 line churn backend/app/utils/WorkerControl.scala x: 217 lines of code y: 519 line churn backend/app/model/frontend/SearchResult.scala x: 58 lines of code y: 60 line churn backend/app/utils/MimeDetails.scala x: 160 lines of code y: 448 line churn frontend/src/js/components/viewer/CommentPanel/CommentPanel.tsx x: 279 lines of code y: 484 line churn frontend/src/js/reducers/index.js x: 43 lines of code y: 100 line churn frontend/src/stylesheets/components/_sidebar-comments.scss x: 95 lines of code y: 226 line churn frontend/src/stylesheets/main.scss x: 21 lines of code y: 150 line churn frontend/src/js/components/PageViewer/Controls.tsx x: 37 lines of code y: 1445 line churn frontend/src/js/components/PageViewer/usePageFind.ts x: 28 lines of code y: 354 line churn frontend/src/js/components/PageViewer/VirtualScroll.module.css x: 21 lines of code y: 121 line churn backend/app/model/frontend/TreeEntry.scala x: 76 lines of code y: 26 line churn frontend/src/js/components/Uploads/FileApiHelpers.ts x: 83 lines of code y: 126 line churn frontend/src/js/components/Uploads/dropZoneUtils.ts x: 69 lines of code y: 326 line churn frontend/src/js/components/workspace/WorkspacesSidebarItem.tsx x: 78 lines of code y: 300 line churn backend/app/controllers/api/Blobs.scala x: 122 lines of code y: 568 line churn backend/app/services/MetricsService.scala x: 79 lines of code y: 389 line churn frontend/src/js/components/PageViewer/FindInput.module.css x: 82 lines of code y: 391 line churn backend/app/controllers/api/VideoVerifier.scala x: 47 lines of code y: 168 line churn backend/app/extraction/email/eml/EmlParser.scala x: 126 lines of code y: 92 line churn backend/app/services/IngestStorage.scala x: 160 lines of code y: 416 line churn backend/app/services/Tika.scala x: 84 lines of code y: 18 line churn backend/app/utils/aws/AwsErrors.scala x: 14 lines of code y: 16 line churn backend/app/utils/aws/CreateBuckets.scala x: 19 lines of code y: 8 line churn cli/src/main/scala/com/gu/pfi/cli/RunIngestion.scala x: 38 lines of code y: 18 line churn frontend/src/js/components/viewer/useSearchHighlightStepper.ts x: 69 lines of code y: 228 line churn backend/app/extraction/email/olm/OlmEmailExtractor.scala x: 143 lines of code y: 14 line churn backend/app/services/ScratchSpace.scala x: 43 lines of code y: 7 line churn backend/app/extraction/tables/ExcelTableExtractor.scala x: 129 lines of code y: 70 line churn backend/app/extraction/email/mbox/MBoxEmailDetector.scala x: 33 lines of code y: 52 line churn backend/app/extraction/Worker.scala x: 153 lines of code y: 300 line churn frontend/src/stylesheets/components/_file-browser.scss x: 121 lines of code y: 14 line churn frontend/src/js/util/workspaceUtils.ts x: 117 lines of code y: 200 line churn frontend/src/js/components/PageViewer/PdfHelpers.ts x: 75 lines of code y: 594 line churn frontend/src/js/components/PageViewer/layout.ts x: 43 lines of code y: 114 line churn backend/app/controllers/api/Collections.scala x: 241 lines of code y: 548 line churn backend/app/services/ingestion/Neo4jRemoteIngestStore.scala x: 214 lines of code y: 1546 line churn backend/app/services/ingestion/RemoteIngestWorker.scala x: 181 lines of code y: 1212 line churn frontend/src/js/util/auth/authUploadWithProgress.ts x: 170 lines of code y: 553 line churn frontend/src/js/components/ResourceBreadcrumbs/ResourceTrail.tsx x: 91 lines of code y: 214 line churn frontend/src/stylesheets/components/_buttons.scss x: 96 lines of code y: 16 line churn frontend/src/stylesheets/components/_resource-browser.scss x: 27 lines of code y: 2 line churn backend/app/utils/Neo4jHelper.scala x: 255 lines of code y: 268 line churn backend/app/model/annotations/Comment.scala x: 40 lines of code y: 10 line churn backend/app/model/frontend/email/EmailThread.scala x: 45 lines of code y: 41 line churn backend/app/model/manifest/MimeType.scala x: 17 lines of code y: 22 line churn backend/app/services/users/Neo4jUserManagement.scala x: 397 lines of code y: 262 line churn frontend/src/js/actions/workspaces/moveItem.ts x: 27 lines of code y: 180 line churn frontend/src/js/components/UtilComponents/ModalAction.tsx x: 116 lines of code y: 342 line churn frontend/src/js/components/workspace/ShareWorkspaceModal.tsx x: 105 lines of code y: 266 line churn frontend/src/js/components/workspace/TakeOwnershipOfWorkspaceModal.tsx x: 51 lines of code y: 272 line churn infra/migrate-db/esbuild-runner.config.js x: 6 lines of code y: 12 line churn infra/migrate-db/src/index.ts x: 106 lines of code y: 250 line churn frontend/src/stylesheets/base/_layout.scss x: 67 lines of code y: 40 line churn frontend/src/stylesheets/components/_sidebar.scss x: 119 lines of code y: 26 line churn backend/app/commands/MoveIngestion.scala x: 44 lines of code y: 300 line churn cli/src/main/scala/com/gu/pfi/cli/service/CliIngestionService.scala x: 120 lines of code y: 67 line churn backend/app/commands/IngestFile.scala x: 84 lines of code y: 60 line churn cli/src/main/scala/com/gu/pfi/cli/CommandValidator.scala x: 107 lines of code y: 276 line churn cli/src/main/scala/com/gu/pfi/cli/ConsoleColors.scala x: 27 lines of code y: 86 line churn cli/src/main/scala/com/gu/pfi/cli/DeleteIngestions.scala x: 70 lines of code y: 108 line churn cli/src/main/scala/com/gu/pfi/cli/ErrorFormatter.scala x: 78 lines of code y: 218 line churn cli/src/main/scala/com/gu/pfi/cli/ProgressTracker.scala x: 61 lines of code y: 154 line churn cli/src/main/scala/com/gu/pfi/cli/ingestion/CliIngestionPipeline.scala x: 130 lines of code y: 60 line churn backend/app/utils/auth/providers/PanDomainUserProvider.scala x: 88 lines of code y: 111 line churn backend/app/ingestion/phase2/IngestStorePolling.scala x: 165 lines of code y: 346 line churn frontend/src/js/actions/auth/getAuthToken.js x: 84 lines of code y: 114 line churn frontend/src/js/actions/auth/invalidateAuthToken.js x: 39 lines of code y: 56 line churn frontend/src/js/actions/collections/getCollection.js x: 37 lines of code y: 44 line churn frontend/src/js/actions/collections/getCollections.js x: 32 lines of code y: 44 line churn frontend/src/js/actions/email/getEmailThread.js x: 26 lines of code y: 38 line churn frontend/src/js/actions/resources/getResource.js x: 97 lines of code y: 148 line churn frontend/src/js/actions/resources/setSelection.ts x: 32 lines of code y: 50 line churn frontend/src/js/actions/search/getSuggestedFields.js x: 23 lines of code y: 36 line churn frontend/src/js/actions/search/performSearch.js x: 33 lines of code y: 32 line churn frontend/src/js/actions/users/createGenesisUser.js x: 60 lines of code y: 92 line churn frontend/src/js/actions/workspaces/addFolderToWorkspace.ts x: 29 lines of code y: 44 line churn frontend/src/js/actions/workspaces/addResourceToWorkspace.ts x: 40 lines of code y: 66 line churn frontend/src/js/actions/workspaces/copyItem.ts x: 44 lines of code y: 136 line churn frontend/src/js/actions/workspaces/deleteWorkspace.ts x: 29 lines of code y: 56 line churn frontend/src/js/actions/workspaces/getWorkspace.ts x: 62 lines of code y: 170 line churn frontend/src/js/actions/workspaces/setNodesAsExpanded.ts x: 14 lines of code y: 92 line churn frontend/src/js/components/Collections/CurrentCollection/CurrentCollection.tsx x: 83 lines of code y: 166 line churn frontend/src/js/components/Directory/Directory.tsx x: 77 lines of code y: 112 line churn frontend/src/js/components/IngestionEvents/types.ts x: 53 lines of code y: 215 line churn frontend/src/js/components/PageViewer/Page.module.css x: 9 lines of code y: 44 line churn frontend/src/js/components/PageViewer/Page.tsx x: 68 lines of code y: 653 line churn frontend/src/js/components/PageViewer/PageCache.ts x: 147 lines of code y: 1257 line churn frontend/src/js/components/PageViewer/PageHighlight.module.css x: 35 lines of code y: 224 line churn frontend/src/js/components/PageViewer/PageHighlight.tsx x: 40 lines of code y: 298 line churn frontend/src/js/components/ResourceBreadcrumbs/index.tsx x: 64 lines of code y: 130 line churn frontend/src/js/components/ResourceHandler/ResourceHandler.tsx x: 63 lines of code y: 110 line churn frontend/src/js/components/Settings/FileTypes/FileTypes.tsx x: 115 lines of code y: 274 line churn frontend/src/js/components/Uploads/FileList.tsx x: 175 lines of code y: 302 line churn frontend/src/js/components/Uploads/UploadTarget.ts x: 49 lines of code y: 142 line churn frontend/src/js/components/Uploads/Uploads.tsx x: 132 lines of code y: 364 line churn frontend/src/js/components/UtilComponents/Token.tsx x: 16 lines of code y: 88 line churn frontend/src/js/components/UtilComponents/TreeBrowser/ItemName.tsx x: 82 lines of code y: 110 line churn frontend/src/js/components/UtilComponents/TreeBrowser/MagicTextInput.tsx x: 47 lines of code y: 72 line churn frontend/src/js/components/viewer/CommentPanel/AddComment.tsx x: 76 lines of code y: 80 line churn frontend/src/js/components/viewer/DeleteButtonModal.tsx x: 104 lines of code y: 680 line churn frontend/src/js/components/viewer/EmbeddedPdfViewer.tsx x: 36 lines of code y: 134 line churn frontend/src/js/components/viewer/PageViewer/PageViewer.tsx x: 113 lines of code y: 260 line churn frontend/src/js/components/viewer/PageViewer/pageViewerApi.ts x: 103 lines of code y: 205 line churn frontend/src/js/components/viewer/TablePreview.tsx x: 36 lines of code y: 56 line churn frontend/src/js/components/viewer/TranscriptViewer/TranscriptViewer.tsx x: 188 lines of code y: 662 line churn frontend/src/js/components/viewer/TranscriptViewer/srt.ts x: 40 lines of code y: 138 line churn frontend/src/js/components/workspace/ConfirmModal.tsx x: 167 lines of code y: 708 line churn frontend/src/js/components/workspace/CopyOrMoveModal.tsx x: 23 lines of code y: 146 line churn frontend/src/js/components/workspace/WorkspacesSidebar.tsx x: 132 lines of code y: 302 line churn frontend/src/js/eui-components/GiantEuiHeader.tsx x: 132 lines of code y: 224 line churn frontend/src/js/eui-components/GiantEuiSettings.tsx x: 51 lines of code y: 96 line churn frontend/src/js/reducers/authReducer.js x: 88 lines of code y: 150 line churn frontend/src/js/reducers/pagesReducer.ts x: 124 lines of code y: 301 line churn frontend/src/js/reducers/searchReducer.js x: 5 lines of code y: 58 line churn frontend/src/js/reducers/urlParamsReducer.ts x: 89 lines of code y: 110 line churn frontend/src/js/reducers/usersReducer.js x: 67 lines of code y: 126 line churn frontend/src/js/reducers/workspacesReducer.ts x: 59 lines of code y: 108 line churn frontend/src/js/services/UserApi.js x: 79 lines of code y: 164 line churn frontend/src/js/types/Tree.ts x: 36 lines of code y: 92 line churn frontend/src/js/util/LruCache.ts x: 70 lines of code y: 402 line churn frontend/src/js/util/treeUtils.ts x: 127 lines of code y: 132 line churn frontend/src/stylesheets/base/_base.scss x: 32 lines of code y: 14 line churn frontend/src/stylesheets/base/_typography.scss x: 73 lines of code y: 24 line churn frontend/src/stylesheets/components/_checkbox.scss x: 60 lines of code y: 8 line churn frontend/src/stylesheets/components/_comments.scss x: 28 lines of code y: 8 line churn frontend/src/stylesheets/components/_input-supper.scss x: 111 lines of code y: 18 line churn frontend/src/stylesheets/components/_transcript-viewer.scss x: 119 lines of code y: 300 line churn backend/app/controllers/api/Comments.scala x: 49 lines of code y: 6 line churn backend/app/controllers/api/Resource.scala x: 77 lines of code y: 59 line churn backend/app/model/frontend/HighlightableText.scala x: 56 lines of code y: 106 line churn backend/app/model/ingestion/MediaDownload.scala x: 20 lines of code y: 219 line churn backend/app/services/events/Events.scala x: 131 lines of code y: 12 line churn backend/app/services/observability/Models.scala x: 184 lines of code y: 911 line churn cli/src/main/scala/com/gu/pfi/cli/service/CliHttpClient.scala x: 147 lines of code y: 12 line churn backend/app/services/observability/PostgresClient.scala x: 239 lines of code y: 1216 line churn backend/app/utils/Whisper.scala x: 37 lines of code y: 250 line churn backend/app/controllers/api/Search.scala x: 159 lines of code y: 37 line churn backend/app/commands/CreateIngestion.scala x: 50 lines of code y: 136 line churn backend/app/services/index/ElasticsearchPages.scala x: 227 lines of code y: 60 line churn backend/app/services/table/Table.scala x: 53 lines of code y: 10 line churn backend/app/commands/GetPagePreview.scala x: 19 lines of code y: 124 line churn backend/app/utils/RequestLoggingFilter.scala x: 78 lines of code y: 22 line churn backend/app/utils/auth/AuthActionBuilder.scala x: 88 lines of code y: 174 line churn backend/app/utils/BasicStdErrLogger.scala x: 12 lines of code y: 51 line churn backend/app/controllers/api/IngestionEvents.scala x: 36 lines of code y: 194 line churn backend/app/commands/DeleteResource.scala x: 63 lines of code y: 611 line churn backend/app/extraction/email/JakartaMail.scala x: 32 lines of code y: 124 line churn backend/app/extraction/email/msg/MsgEmailExtractor.scala x: 84 lines of code y: 26 line churn backend/app/utils/auth/providers/DatabaseUserProvider.scala x: 101 lines of code y: 46 line churn backend/app/utils/HtmlToPlainText.scala x: 93 lines of code y: 12 line churn common/src/main/scala/utils/Timing.scala x: 26 lines of code y: 90 line churn backend/app/extraction/email/pst/PstEmailExtractor.scala x: 98 lines of code y: 4 line churn backend/app/ingestion/IngestionContextBuilder.scala x: 55 lines of code y: 4 line churn backend/app/utils/PDFUtil.scala x: 91 lines of code y: 433 line churn common/src/main/scala/utils/attempt/Attempt.scala x: 135 lines of code y: 26 line churn backend/app/services/previewing/PreviewService.scala x: 137 lines of code y: 16 line churn backend/app/model/index/Page.scala x: 92 lines of code y: 317 line churn backend/app/controllers/api/Authentication.scala x: 57 lines of code y: 13 line churn
5635.0
line churn
  min: 2.0
  average: 238.86
  25th percentile: 32.0
  median: 88.0
  75th percentile: 259.5
  max: 5635.0
0 1364.0
lines of code
min: 1.0 | average: 88.11 | 25th percentile: 23.0 | median: 48.0 | 75th percentile: 110.75 | max: 1364.0