guardian/grid
Temporal Dependencies A temporal dependency occurs when developers change two or more files at the same time (i.e. they are a part of the same commit). |
Dependencies between components in same commits (primary)
The number on the lines shows the number of shared commits.
flowchart TB
n0["kahuna"]
n1["media-api"]
n2["common-lib"]
n3["image-cache-purger"]
n4["cdk"]
n5["ROOT"]
n6["dev"]
n7["scripts"]
n8["image-loader"]
n9["usage"]
n0 ---|"57"| n0
n1 ---|"13"| n1
n1 ---|"8"| n0
n0 ---|"8"| n2
n3 ---|"7"| n4
n3 ---|"7"| n3
n5 ---|"7"| n4
n5 ---|"7"| n3
n1 ---|"7"| n6
n2 ---|"7"| n2
n2 ---|"6"| n1
n6 ---|"5"| n4
n3 ---|"5"| n6
n0 ---|"5"| n6
n1 ---|"5"| n4
n1 ---|"5"| n3
n5 ---|"5"| n6
n5 ---|"5"| n1
n7 ---|"5"| n1
n6 ---|"4"| n2
n8 ---|"4"| n2
n8 ---|"4"| n8
n0 ---|"4"| n8
n7 ---|"4"| n0
n7 ---|"3"| n4
n7 ---|"3"| n6
n7 ---|"3"| n3
n7 ---|"3"| n5
n9 ---|"3"| n0
n9 ---|"3"| n1
n9 ---|"3"| n9
n7 ---|"3"| n2
n4 ---|"2"| n0
n2 ---|"2"| n4
n6 ---|"2"| n6
n3 ---|"2"| n0
n3 ---|"2"| n2
n5 ---|"2"| n0
n5 ---|"2"| n2
n8 ---|"2"| n1
n7 ---|"2"| n8
n9 ---|"1"| n4
n9 ---|"1"| n2
n9 ---|"1"| n6
n9 ---|"1"| n3
n9 ---|"1"| n5
n9 ---|"1"| n7
n8 ---|"1"| n4
n8 ---|"1"| n6
n8 ---|"1"| n3
classDef default fill:#00b2ee,stroke:#ffffff,color:#000000;
classDef highlighted fill:#00b2ee,stroke:#ffffff,color:#000000;
linkStyle 0 stroke:#a0a0a0FF,stroke-width:10px
linkStyle 1 stroke:#a0a0a070,stroke-width:2px
linkStyle 2 stroke:#00688b5E,stroke-width:1px
linkStyle 3 stroke:#00688b5E,stroke-width:1px
linkStyle 4 stroke:#00688b5E,stroke-width:1px
linkStyle 5 stroke:#a0a0a05E,stroke-width:1px
linkStyle 6 stroke:#00688b5E,stroke-width:1px
linkStyle 7 stroke:#00688b5E,stroke-width:1px
linkStyle 8 stroke:#00688b5E,stroke-width:1px
linkStyle 9 stroke:#a0a0a05E,stroke-width:1px
linkStyle 10 stroke:#00688b5E,stroke-width:1px
linkStyle 11 stroke:#00688b4C,stroke-width:1px
linkStyle 12 stroke:#00688b4C,stroke-width:1px
linkStyle 13 stroke:#00688b4C,stroke-width:1px
linkStyle 14 stroke:#00688b4C,stroke-width:1px
linkStyle 15 stroke:#00688b4C,stroke-width:1px
linkStyle 16 stroke:#00688b4C,stroke-width:1px
linkStyle 17 stroke:#00688b4C,stroke-width:1px
linkStyle 18 stroke:#00688b4C,stroke-width:1px
linkStyle 19 stroke:#00688b4C,stroke-width:1px
linkStyle 20 stroke:#00688b4C,stroke-width:1px
linkStyle 21 stroke:#a0a0a04C,stroke-width:1px
linkStyle 22 stroke:#00688b4C,stroke-width:1px
linkStyle 23 stroke:#00688b4C,stroke-width:1px
linkStyle 24 stroke:#00688b4C,stroke-width:1px
linkStyle 25 stroke:#00688b4C,stroke-width:1px
linkStyle 26 stroke:#00688b4C,stroke-width:1px
linkStyle 27 stroke:#00688b4C,stroke-width:1px
linkStyle 28 stroke:#00688b4C,stroke-width:1px
linkStyle 29 stroke:#00688b4C,stroke-width:1px
linkStyle 30 stroke:#a0a0a04C,stroke-width:1px
linkStyle 31 stroke:#00688b4C,stroke-width:1px
linkStyle 32 stroke:#00688b4C,stroke-width:1px
linkStyle 33 stroke:#00688b4C,stroke-width:1px
linkStyle 34 stroke:#a0a0a04C,stroke-width:1px
linkStyle 35 stroke:#00688b4C,stroke-width:1px
linkStyle 36 stroke:#00688b4C,stroke-width:1px
linkStyle 37 stroke:#00688b4C,stroke-width:1px
linkStyle 38 stroke:#00688b4C,stroke-width:1px
linkStyle 39 stroke:#00688b4C,stroke-width:1px
linkStyle 40 stroke:#00688b4C,stroke-width:1px
linkStyle 41 stroke:#00688b4C,stroke-width:1px
linkStyle 42 stroke:#00688b4C,stroke-width:1px
linkStyle 43 stroke:#00688b4C,stroke-width:1px
linkStyle 44 stroke:#00688b4C,stroke-width:1px
linkStyle 45 stroke:#00688b4C,stroke-width:1px
linkStyle 46 stroke:#00688b4C,stroke-width:1px
linkStyle 47 stroke:#00688b4C,stroke-width:1px
linkStyle 48 stroke:#00688b4C,stroke-width:1px
linkStyle 49 stroke:#00688b4C,stroke-width:1px
Download:
Mermaid (.mmd)
(open online Mermaid editor)
Open 2D force graph (file dependencies)... Open 3D force graph (file dependencies)...
Dependencies between files in same commits
The number on the lines shows the number of shared commits.
Files Most Frequently Changed Together (Top 50)
| Pairs | # same commits | # commits 1 | # commits 2 | latest commit |
|---|---|---|---|---|
| kahuna/public/js/search/query.js kahuna/public/js/search/index.js |
13 | 300 (4%) | 282 (4%) | 2026-10-06 |
| kahuna/public/stylesheets/main.css kahuna/public/js/search/results.html |
13 | 1209 (1%) | 416 (3%) | 2026-10-06 |
| kahuna/public/js/search/results.js kahuna/public/js/search/results.html |
12 | 473 (2%) | 416 (2%) | 2026-10-06 |
| kahuna/public/js/types/image.ts kahuna/public/js/takedown/takedown-page.tsx |
12 | 14 (85%) | 12 (100%) | 2026-10-06 |
| kahuna/public/js/takedown/takedown-page.tsx kahuna/app/lib/KahunaConfig.scala |
10 | 12 (83%) | 153 (6%) | 2026-10-06 |
| kahuna/public/js/takedown/takedown-page.tsx kahuna/public/js/takedown/index.ts |
10 | 12 (83%) | 10 (100%) | 2026-10-06 |
| kahuna/public/js/types/image.ts kahuna/app/lib/KahunaConfig.scala |
10 | 14 (71%) | 153 (6%) | 2026-10-06 |
| kahuna/public/js/types/image.ts kahuna/app/views/main.scala.html |
10 | 14 (71%) | 286 (3%) | 2026-10-06 |
| kahuna/public/js/types/image.ts kahuna/public/js/takedown/index.ts |
10 | 14 (71%) | 10 (100%) | 2026-10-06 |
| kahuna/public/js/util/constants/standThemeOverride.ts kahuna/public/js/takedown/takedown-page.tsx |
10 | 10 (100%) | 12 (83%) | 2026-10-06 |
| kahuna/public/js/util/constants/standThemeOverride.ts kahuna/public/js/types/image.ts |
10 | 10 (100%) | 14 (71%) | 2026-10-06 |
| kahuna/public/js/window.ts kahuna/app/views/main.scala.html |
10 | 38 (26%) | 286 (3%) | 2026-10-06 |
| kahuna/public/js/window.ts kahuna/public/js/types/image.ts |
10 | 38 (26%) | 14 (71%) | 2026-10-06 |
| kahuna/public/stylesheets/main.css kahuna/public/js/search/results.js |
10 | 1209 (<1%) | 473 (2%) | 2026-10-06 |
| kahuna/public/js/takedown/takedown-page.tsx kahuna/public/js/takedown/takedown-context.tsx |
9 | 12 (75%) | 9 (100%) | 2026-10-06 |
| kahuna/public/js/types/image.ts kahuna/public/js/takedown/delete-from-content-step.tsx |
9 | 14 (64%) | 9 (100%) | 2026-10-06 |
| kahuna/public/js/types/image.ts kahuna/public/js/takedown/takedown-context.tsx |
9 | 14 (64%) | 9 (100%) | 2026-10-06 |
| kahuna/public/js/search/index.js kahuna/public/js/components/gr-permissions-filter/gr-permissions-filter.tsx |
8 | 282 (2%) | 42 (19%) | 2026-10-06 |
| kahuna/public/js/search/query.js kahuna/public/js/components/gr-permissions-filter/gr-permissions-filter.tsx |
8 | 300 (2%) | 42 (19%) | 2026-10-06 |
| kahuna/app/views/main.scala.html kahuna/app/lib/KahunaConfig.scala |
8 | 286 (2%) | 153 (5%) | 2026-10-06 |
| kahuna/public/js/takedown/controller.ts kahuna/app/lib/KahunaConfig.scala |
8 | 8 (100%) | 153 (5%) | 2026-10-06 |
| kahuna/public/js/takedown/controller.ts kahuna/app/views/main.scala.html |
8 | 8 (100%) | 286 (2%) | 2026-10-06 |
| kahuna/public/js/takedown/index.ts kahuna/app/lib/KahunaConfig.scala |
8 | 10 (80%) | 153 (5%) | 2026-10-06 |
| kahuna/public/js/takedown/index.ts kahuna/app/views/main.scala.html |
8 | 10 (80%) | 286 (2%) | 2026-10-06 |
| kahuna/public/js/takedown/index.ts kahuna/public/js/takedown/controller.ts |
8 | 10 (80%) | 8 (100%) | 2026-10-06 |
| kahuna/public/js/takedown/takedown-page.tsx kahuna/app/views/main.scala.html |
8 | 12 (66%) | 286 (2%) | 2026-10-06 |
| kahuna/public/js/takedown/takedown-page.tsx kahuna/public/js/takedown/controller.ts |
8 | 12 (66%) | 8 (100%) | 2026-10-06 |
| kahuna/public/js/takedown/view.html kahuna/app/lib/KahunaConfig.scala |
8 | 8 (100%) | 153 (5%) | 2026-10-06 |
| kahuna/public/js/takedown/view.html kahuna/app/views/main.scala.html |
8 | 8 (100%) | 286 (2%) | 2026-10-06 |
| kahuna/public/js/takedown/view.html kahuna/public/js/takedown/controller.ts |
8 | 8 (100%) | 8 (100%) | 2026-10-06 |
| kahuna/public/js/takedown/view.html kahuna/public/js/takedown/index.ts |
8 | 8 (100%) | 10 (80%) | 2026-10-06 |
| kahuna/public/js/takedown/view.html kahuna/public/js/takedown/takedown-page.tsx |
8 | 8 (100%) | 12 (66%) | 2026-10-06 |
| kahuna/public/js/types/image.ts kahuna/public/js/takedown/controller.ts |
8 | 14 (57%) | 8 (100%) | 2026-10-06 |
| kahuna/public/js/types/image.ts kahuna/public/js/takedown/view.html |
8 | 14 (57%) | 8 (100%) | 2026-10-06 |
| kahuna/public/js/util/constants/standThemeOverride.ts kahuna/app/lib/KahunaConfig.scala |
8 | 10 (80%) | 153 (5%) | 2026-10-06 |
| kahuna/public/js/util/constants/standThemeOverride.ts kahuna/public/js/takedown/index.ts |
8 | 10 (80%) | 10 (80%) | 2026-10-06 |
| kahuna/public/js/window.ts kahuna/app/lib/KahunaConfig.scala |
8 | 38 (21%) | 153 (5%) | 2026-10-06 |
| kahuna/public/js/window.ts kahuna/public/js/takedown/controller.ts |
8 | 38 (21%) | 8 (100%) | 2026-10-06 |
| kahuna/public/js/window.ts kahuna/public/js/takedown/index.ts |
8 | 38 (21%) | 10 (80%) | 2026-10-06 |
| kahuna/public/js/window.ts kahuna/public/js/takedown/takedown-page.tsx |
8 | 38 (21%) | 12 (66%) | 2026-10-06 |
| kahuna/public/js/window.ts kahuna/public/js/takedown/view.html |
8 | 38 (21%) | 8 (100%) | 2026-10-06 |
| kahuna/public/js/takedown/delete-from-grid-step.tsx kahuna/public/js/takedown/crops-and-usages.tsx |
7 | 22 (31%) | 7 (100%) | 2026-10-06 |
| image-cache-purger/src/main/scala/com/gu/mediaservice/FastlyApiKeyProvider.scala cdk/lib/image-cache-purger.ts |
7 | 7 (100%) | 7 (100%) | 2026-10-06 |
| image-cache-purger/src/main/scala/com/gu/mediaservice/FastlyPurger.scala cdk/lib/image-cache-purger.ts |
7 | 7 (100%) | 7 (100%) | 2026-10-06 |
| image-cache-purger/src/main/scala/com/gu/mediaservice/FastlyPurger.scala image-cache-purger/src/main/scala/com/gu/mediaservice/FastlyApiKeyProvider.scala |
7 | 7 (100%) | 7 (100%) | 2026-10-06 |
| image-cache-purger/src/main/scala/com/gu/mediaservice/ImageCachePurger.scala cdk/lib/image-cache-purger.ts |
7 | 7 (100%) | 7 (100%) | 2026-10-06 |
| image-cache-purger/src/main/scala/com/gu/mediaservice/ImageCachePurger.scala image-cache-purger/src/main/scala/com/gu/mediaservice/FastlyApiKeyProvider.scala |
7 | 7 (100%) | 7 (100%) | 2026-10-06 |
| image-cache-purger/src/main/scala/com/gu/mediaservice/ImageCachePurger.scala image-cache-purger/src/main/scala/com/gu/mediaservice/FastlyPurger.scala |
7 | 7 (100%) | 7 (100%) | 2026-10-06 |
| image-cache-purger/src/main/scala/com/gu/mediaservice/LocalRun.scala cdk/lib/image-cache-purger.ts |
7 | 7 (100%) | 7 (100%) | 2026-10-06 |
| image-cache-purger/src/main/scala/com/gu/mediaservice/LocalRun.scala image-cache-purger/src/main/scala/com/gu/mediaservice/FastlyApiKeyProvider.scala |
7 | 7 (100%) | 7 (100%) | 2026-10-06 |
Files from Different Folders Most Frequently Changed Together (Top 20)
| Pairs | # same commits | # commits 1 | # commits 2 | latest commit |
|---|---|---|---|---|
| kahuna/public/stylesheets/main.css kahuna/public/js/search/results.html |
13 | 1209 (1%) | 416 (3%) | 2026-10-06 |
| kahuna/public/js/types/image.ts kahuna/public/js/takedown/takedown-page.tsx |
12 | 14 (85%) | 12 (100%) | 2026-10-06 |
| kahuna/public/js/takedown/takedown-page.tsx kahuna/app/lib/KahunaConfig.scala |
10 | 12 (83%) | 153 (6%) | 2026-10-06 |
| kahuna/public/js/types/image.ts kahuna/app/lib/KahunaConfig.scala |
10 | 14 (71%) | 153 (6%) | 2026-10-06 |
| kahuna/public/js/types/image.ts kahuna/app/views/main.scala.html |
10 | 14 (71%) | 286 (3%) | 2026-10-06 |
| kahuna/public/js/types/image.ts kahuna/public/js/takedown/index.ts |
10 | 14 (71%) | 10 (100%) | 2026-10-06 |
| kahuna/public/js/util/constants/standThemeOverride.ts kahuna/public/js/takedown/takedown-page.tsx |
10 | 10 (100%) | 12 (83%) | 2026-10-06 |
| kahuna/public/js/util/constants/standThemeOverride.ts kahuna/public/js/types/image.ts |
10 | 10 (100%) | 14 (71%) | 2026-10-06 |
| kahuna/public/js/window.ts kahuna/app/views/main.scala.html |
10 | 38 (26%) | 286 (3%) | 2026-10-06 |
| kahuna/public/js/window.ts kahuna/public/js/types/image.ts |
10 | 38 (26%) | 14 (71%) | 2026-10-06 |
| kahuna/public/stylesheets/main.css kahuna/public/js/search/results.js |
10 | 1209 (<1%) | 473 (2%) | 2026-10-06 |
| kahuna/public/js/types/image.ts kahuna/public/js/takedown/delete-from-content-step.tsx |
9 | 14 (64%) | 9 (100%) | 2026-10-06 |
| kahuna/public/js/types/image.ts kahuna/public/js/takedown/takedown-context.tsx |
9 | 14 (64%) | 9 (100%) | 2026-10-06 |
| kahuna/public/js/search/index.js kahuna/public/js/components/gr-permissions-filter/gr-permissions-filter.tsx |
8 | 282 (2%) | 42 (19%) | 2026-10-06 |
| kahuna/public/js/search/query.js kahuna/public/js/components/gr-permissions-filter/gr-permissions-filter.tsx |
8 | 300 (2%) | 42 (19%) | 2026-10-06 |
| kahuna/app/views/main.scala.html kahuna/app/lib/KahunaConfig.scala |
8 | 286 (2%) | 153 (5%) | 2026-10-06 |
| kahuna/public/js/takedown/controller.ts kahuna/app/lib/KahunaConfig.scala |
8 | 8 (100%) | 153 (5%) | 2026-10-06 |
| kahuna/public/js/takedown/controller.ts kahuna/app/views/main.scala.html |
8 | 8 (100%) | 286 (2%) | 2026-10-06 |
| kahuna/public/js/takedown/index.ts kahuna/app/lib/KahunaConfig.scala |
8 | 10 (80%) | 153 (5%) | 2026-10-06 |
| kahuna/public/js/takedown/index.ts kahuna/app/views/main.scala.html |
8 | 10 (80%) | 286 (2%) | 2026-10-06 |