Feb 18, 3-4 AM (17)
Feb 18, 4-5 AM (6)
Feb 18, 5-6 AM (6)
Feb 18, 6-7 AM (16)
Feb 18, 7-8 AM (17)
Feb 18, 8-9 AM (31)
Feb 18, 9-10 AM (39)
Feb 18, 10-11 AM (38)
Feb 18, 11-12 PM (43)
Feb 18, 12-1 PM (52)
Feb 18, 1-2 PM (21)
Feb 18, 2-3 PM (42)
Feb 18, 3-4 PM (48)
Feb 18, 4-5 PM (48)
Feb 18, 5-6 PM (18)
Feb 18, 6-7 PM (22)
Feb 18, 7-8 PM (16)
Feb 18, 8-9 PM (25)
Feb 18, 9-10 PM (10)
Feb 18, 10-11 PM (3)
Feb 18, 11-12 AM (15)
Feb 19, 12-1 AM (9)
Feb 19, 1-2 AM (4)
Feb 19, 2-3 AM (6)
Feb 19, 3-4 AM (4)
Feb 19, 4-5 AM (4)
Feb 19, 5-6 AM (11)
Feb 19, 6-7 AM (17)
Feb 19, 7-8 AM (44)
Feb 19, 8-9 AM (39)
Feb 19, 9-10 AM (36)
Feb 19, 10-11 AM (43)
Feb 19, 11-12 PM (31)
Feb 19, 12-1 PM (18)
Feb 19, 1-2 PM (26)
Feb 19, 2-3 PM (25)
Feb 19, 3-4 PM (62)
Feb 19, 4-5 PM (10)
Feb 19, 5-6 PM (32)
Feb 19, 6-7 PM (10)
Feb 19, 7-8 PM (2)
Feb 19, 8-9 PM (4)
Feb 19, 9-10 PM (9)
Feb 19, 10-11 PM (2)
Feb 19, 11-12 AM (3)
Feb 20, 12-1 AM (3)
Feb 20, 1-2 AM (1)
Feb 20, 2-3 AM (1)
Feb 20, 3-4 AM (1)
Feb 20, 4-5 AM (1)
Feb 20, 5-6 AM (1)
Feb 20, 6-7 AM (3)
Feb 20, 7-8 AM (2)
Feb 20, 8-9 AM (33)
Feb 20, 9-10 AM (2)
Feb 20, 10-11 AM (3)
Feb 20, 11-12 PM (2)
Feb 20, 12-1 PM (2)
Feb 20, 1-2 PM (2)
Feb 20, 2-3 PM (6)
Feb 20, 3-4 PM (5)
Feb 20, 4-5 PM (2)
Feb 20, 5-6 PM (5)
Feb 20, 6-7 PM (3)
Feb 20, 7-8 PM (1)
Feb 20, 8-9 PM (1)
Feb 20, 9-10 PM (2)
Feb 20, 10-11 PM (1)
Feb 20, 11-12 AM (1)
Feb 21, 12-1 AM (4)
Feb 21, 1-2 AM (1)
Feb 21, 2-3 AM (2)
Feb 21, 3-4 AM (4)
Feb 21, 4-5 AM (3)
Feb 21, 5-6 AM (4)
Feb 21, 6-7 AM (1)
Feb 21, 7-8 AM (4)
Feb 21, 8-9 AM (5)
Feb 21, 9-10 AM (2)
Feb 21, 10-11 AM (4)
Feb 21, 11-12 PM (3)
Feb 21, 12-1 PM (3)
Feb 21, 1-2 PM (3)
Feb 21, 2-3 PM (7)
Feb 21, 3-4 PM (5)
Feb 21, 4-5 PM (8)
Feb 21, 5-6 PM (2)
Feb 21, 6-7 PM (4)
Feb 21, 7-8 PM (3)
Feb 21, 8-9 PM (3)
Feb 21, 9-10 PM (1)
Feb 21, 10-11 PM (1)
Feb 21, 11-12 AM (5)
Feb 22, 12-1 AM (7)
Feb 22, 1-2 AM (4)
Feb 22, 2-3 AM (5)
Feb 22, 3-4 AM (8)
Feb 22, 4-5 AM (30)
Feb 22, 5-6 AM (9)
Feb 22, 6-7 AM (24)
Feb 22, 7-8 AM (11)
Feb 22, 8-9 AM (18)
Feb 22, 9-10 AM (20)
Feb 22, 10-11 AM (26)
Feb 22, 11-12 PM (22)
Feb 22, 12-1 PM (51)
Feb 22, 1-2 PM (5)
Feb 22, 2-3 PM (28)
Feb 22, 3-4 PM (15)
Feb 22, 4-5 PM (16)
Feb 22, 5-6 PM (18)
Feb 22, 6-7 PM (18)
Feb 22, 7-8 PM (12)
Feb 22, 8-9 PM (14)
Feb 22, 9-10 PM (13)
Feb 22, 10-11 PM (12)
Feb 22, 11-12 AM (12)
Feb 23, 12-1 AM (8)
Feb 23, 1-2 AM (16)
Feb 23, 2-3 AM (35)
Feb 23, 3-4 AM (13)
Feb 23, 4-5 AM (7)
Feb 23, 5-6 AM (11)
Feb 23, 6-7 AM (13)
Feb 23, 7-8 AM (18)
Feb 23, 8-9 AM (44)
Feb 23, 9-10 AM (33)
Feb 23, 10-11 AM (32)
Feb 23, 11-12 PM (31)
Feb 23, 12-1 PM (27)
Feb 23, 1-2 PM (32)
Feb 23, 2-3 PM (48)
Feb 23, 3-4 PM (24)
Feb 23, 4-5 PM (35)
Feb 23, 5-6 PM (24)
Feb 23, 6-7 PM (15)
Feb 23, 7-8 PM (23)
Feb 23, 8-9 PM (12)
Feb 23, 9-10 PM (25)
Feb 23, 10-11 PM (9)
Feb 23, 11-12 AM (8)
Feb 24, 12-1 AM (14)
Feb 24, 1-2 AM (15)
Feb 24, 2-3 AM (14)
Feb 24, 3-4 AM (14)
Feb 24, 4-5 AM (18)
Feb 24, 5-6 AM (8)
Feb 24, 6-7 AM (17)
Feb 24, 7-8 AM (7)
Feb 24, 8-9 AM (43)
Feb 24, 9-10 AM (25)
Feb 24, 10-11 AM (22)
Feb 24, 11-12 PM (31)
Feb 24, 12-1 PM (18)
Feb 24, 1-2 PM (32)
Feb 24, 2-3 PM (30)
Feb 24, 3-4 PM (36)
Feb 24, 4-5 PM (38)
Feb 24, 5-6 PM (46)
Feb 24, 6-7 PM (23)
Feb 24, 7-8 PM (17)
Feb 24, 8-9 PM (14)
Feb 24, 9-10 PM (8)
Feb 24, 10-11 PM (35)
Feb 24, 11-12 AM (7)
Feb 25, 12-1 AM (10)
Feb 25, 1-2 AM (6)
Feb 25, 2-3 AM (15)
Feb 25, 3-4 AM (8)
2,647 commits this week Feb 18, 2021 - Feb 25, 2021
Improve domain modelling
- Model a lower-level "weakly-typed" metadata, which is essentially
  just a JSON object.
- Model a level above this layer that translates from the
  "weakly-typed" metadata into a "strongly-typed" metadata.
- Use the "weakly-typed" metadata type in all lower-level areas:
  - The database/storage layer
  - The server layer
  - The webhook layer
  - All these layers don't care much about what form the metadata is
  in, and so the weak type is more appropriate here.
- Use the "strongly-typed" metadata type in the PR validator.
  - This is the only area where we want the stronger types.
- Shuffle tests around accordingly, write new tests.
- Cleanup the codebase a bit.