)]}'
{
  "log": [
    {
      "commit": "e59db840207551430ac9f12be6ee4aa2a594fe66",
      "tree": "28e58cc731d2cb21a55a264d3d93e53626d2fbe2",
      "parents": [
        "ead61297f615123e44313a8c16b581fbccbae6ba"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Oct 23 08:04:06 2022 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Oct 23 11:51:34 2022 +0200"
      },
      "message": "fix: TemporalExtensions: Work around template extension type resolution wonkiness.\n\nChange-Id: I3e278bd1c8b03dd55d255fab1a0ca6d94cafbdde\n"
    },
    {
      "commit": "40e7925ca10f60357ec6161685499e2f12de99fe",
      "tree": "08555f24b6fe07841f46f7628dee64a281b1ff8a",
      "parents": [
        "264283c9021e6060e45453f59e0cd6f4d6e2138b"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Oct 23 08:00:31 2022 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Oct 23 08:00:31 2022 +0200"
      },
      "message": "refactor: Consolidate Qute extensions in a separate package.\n\nChange-Id: I03526ef4f5d99db202cbbf1045e52464e2d83a9a\n"
    },
    {
      "commit": "0b2aa3b52b97a6edeeb4a9b6b5d21a5b7df2ace2",
      "tree": "21fed7968a2cca6284888a42dbd653556b1308c1",
      "parents": [
        "ef313f51eedac844078157b24da3fcce059ccf11"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jun 06 09:42:35 2022 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jun 06 09:42:35 2022 +0200"
      },
      "message": "KB66 Post: Order comments by date ascending rather than descending.\n\nChange-Id: If3205486b9a2acbc5578479395237f2d41be0c40\n"
    },
    {
      "commit": "ef313f51eedac844078157b24da3fcce059ccf11",
      "tree": "c4f376ba6f722ce0069ecb9302e281efa680bf41",
      "parents": [
        "f435e6610289cd298c9e5e5c22f30479a3ef646a"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jun 06 09:40:02 2022 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jun 06 09:41:52 2022 +0200"
      },
      "message": "KB66 NewsletterSender: Only consider top-level posts.\n\nChange-Id: I8a57dbdbad27e01297263b382ce557859d9b462d\n"
    },
    {
      "commit": "f435e6610289cd298c9e5e5c22f30479a3ef646a",
      "tree": "6ebafe9e69b2cb355de1d0e946984a31f49d532a",
      "parents": [
        "8e885426b538674286675d2566ad057cc83bcab7"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Jun 05 16:27:10 2022 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jun 06 09:41:52 2022 +0200"
      },
      "message": "Upgrade to Quarkus 2.9.2.Final.\n\nChange-Id: I9cf42af869056b7c944c891d6dc008a640c82edc\n"
    },
    {
      "commit": "c980952cfbb7c14d36cdd1e4755615fd1eb3ff59",
      "tree": "82bb78095eec5b253adfe3d51711659198c330a0",
      "parents": [
        "bee2677e895eda5de109c103494791f73b56c256"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Jun 05 12:31:20 2022 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Jun 05 12:52:33 2022 +0200"
      },
      "message": "KB66 PostResource#postComment: Return Uni\u003cResponse\u003e.\n\nChange-Id: I58ea7a2abd24b2f45b80f401ad0506a698993a9b\n"
    },
    {
      "commit": "bee2677e895eda5de109c103494791f73b56c256",
      "tree": "8004ad3e1cd8d44acd1de7fc840603d2d9a79713",
      "parents": [
        "8dcc6ae4ee418cdfdc60c76709ad03b4814fb83a"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Jun 04 21:16:44 2022 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Jun 04 21:16:44 2022 +0200"
      },
      "message": "KB66 Assign comment owner if logged in.\n\nChange-Id: I63cb2c2350f5183b7fbca335df8a06425193e015\n"
    },
    {
      "commit": "8dcc6ae4ee418cdfdc60c76709ad03b4814fb83a",
      "tree": "6d7dbefe5bad6e47e324fc302e5bcde41181d768",
      "parents": [
        "1937e6a72594f98d1fa031d8220f10ccc798c2be"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Jun 04 16:02:25 2022 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Jun 04 16:24:24 2022 +0200"
      },
      "message": "KB66 Add comment count to post header.\n\nChange-Id: I98fd99327fdfebaddfebe3541e6b1ccb1d78fe3c\n"
    },
    {
      "commit": "1937e6a72594f98d1fa031d8220f10ccc798c2be",
      "tree": "5d78a7976b75f3196e50856577fb4a23d26617ce",
      "parents": [
        "0351a8fbbac6cfa671128513605288fb940ce94b"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Jun 04 09:06:31 2022 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Jun 04 16:24:24 2022 +0200"
      },
      "message": "KB66 Add comment notification email.\n\nChange-Id: I27feecfe2d4309397b116552856227eacb7e9600\n"
    },
    {
      "commit": "0351a8fbbac6cfa671128513605288fb940ce94b",
      "tree": "1613514bf7f539f6e55176e58c67885fcc91b141",
      "parents": [
        "14e59440fd5f03d046e4e329eec73560450f1467"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Thu May 26 08:05:00 2022 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Jun 04 16:24:24 2022 +0200"
      },
      "message": "KB66 Add comment box.\n\nChange-Id: I9bf140ded85045b09997145ed2a9fb421fedc7d4\n"
    },
    {
      "commit": "14e59440fd5f03d046e4e329eec73560450f1467",
      "tree": "d7babd441d7ecb24c5911690cff4fcfb17be75ef",
      "parents": [
        "34453241b6b7fd5159ef26c8268cbb5cc014e22c"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Tue May 24 22:19:29 2022 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Tue May 24 22:21:07 2022 +0200"
      },
      "message": "KB66 Add comment post form.\n\nChange-Id: Iac22d115f0d1c59eb273a26d720c07f6d1b11077\n"
    },
    {
      "commit": "98f6739b473be47161199189b2c21203f93d0b6b",
      "tree": "c60ba5920fa524296e4653716904b1ae1788d103",
      "parents": [
        "51025649ffce0fd68b794d28a1b073750f517a4d"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat May 07 21:01:41 2022 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat May 07 21:01:41 2022 +0200"
      },
      "message": "MarkdownConverter: Permit abbr, acronym tags.\n\nChange-Id: I5669fa48e0ff1521838ae62e2439a5feb6b1445b\n"
    },
    {
      "commit": "51025649ffce0fd68b794d28a1b073750f517a4d",
      "tree": "ccc6b22e91eed910087b285fd8eeb64e07f239a4",
      "parents": [
        "3b2d5a13fd5243d0f6422ff52eb3a9993eb1a197"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat May 07 04:51:40 2022 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat May 07 12:01:58 2022 +0200"
      },
      "message": "Format tables with a bit more spacing.\n\nChange-Id: Iba0dcabce7a0841dbb0f5cf795cb2d684faf7462\n"
    },
    {
      "commit": "3b2d5a13fd5243d0f6422ff52eb3a9993eb1a197",
      "tree": "3c10ae3a34edfbc55007976f9294d897d5e60cd1",
      "parents": [
        "64bf1091258477f505bf07939007440f86d33254"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Wed May 04 07:59:13 2022 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Wed May 04 07:59:13 2022 +0200"
      },
      "message": "MarkdownConverter: Add AbbreviationExtension.\n\nChange-Id: Ib718177935b05b35c4be2d9979975c261e774743\n"
    },
    {
      "commit": "64bf1091258477f505bf07939007440f86d33254",
      "tree": "42b35668daadc21655b4f54753aed9b12a710a46",
      "parents": [
        "6fca8dc89c370c7bc0318be956780c5b9f4096d6"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon May 02 20:29:56 2022 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Tue May 03 07:37:51 2022 +0200"
      },
      "message": "MarkdownConverter: Enable FootnoteExtension.\n\nChange-Id: I6c7018edfd4e41e54390c397a3ba675d30ccabc6\n"
    },
    {
      "commit": "6fca8dc89c370c7bc0318be956780c5b9f4096d6",
      "tree": "db30747c9d20fd42481b74a35cbeb03d79e419dc",
      "parents": [
        "1ef241ddce311ef419952f71ceedfc5cd195ec30"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Apr 09 07:12:57 2022 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Apr 09 07:13:42 2022 +0200"
      },
      "message": "Post: Fix typo in bookmarks query for logged-in users.\n\nChange-Id: Ibe6cd7cbdcf3abd9af189c9dd026a8562ad2b67c\n"
    },
    {
      "commit": "1ef241ddce311ef419952f71ceedfc5cd195ec30",
      "tree": "bf427fd16a6829758e0219f1bce1beb8cd4fedbe",
      "parents": [
        "ab36adbbc22fcd156ddce528a9ff5e5103623342"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Apr 03 15:11:37 2022 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Apr 03 20:02:40 2022 +0200"
      },
      "message": "Update dependencies.\n\nChange-Id: Id97c8c7f160e67fbf9f79b00482ebd558727a38e\n"
    },
    {
      "commit": "ab36adbbc22fcd156ddce528a9ff5e5103623342",
      "tree": "f70201b4d324a495f9c956ad39a7a4312477337c",
      "parents": [
        "0dfcd14064a1eaf55acf057e4cc65ee2e4f5ef0a"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Mar 20 16:10:42 2022 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Mar 20 20:41:08 2022 +0100"
      },
      "message": "Use Blaze Persistence for criteria queries.\n\nBlaze Persistence is more flexible, but also less type-safe than JPA\nCriteria.  This change explores what the changes look like and how\nefficient the resulting queries are.\n\nChange-Id: Ia47e4f0280d451e0381f58ece297c5bc06604289\n"
    },
    {
      "commit": "0dfcd14064a1eaf55acf057e4cc65ee2e4f5ef0a",
      "tree": "fe66da40015d00da72491d72ab864052bd686dbc",
      "parents": [
        "a3661f16dd1c6ff8b1c5cce79f0ac948990c190c"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Mar 19 13:19:20 2022 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Mar 19 13:27:07 2022 +0100"
      },
      "message": "Update dependencies.\n\nChange-Id: I94904259a5d8dd4b8011ae578632fb9cd646c93e\n"
    },
    {
      "commit": "a3661f16dd1c6ff8b1c5cce79f0ac948990c190c",
      "tree": "2595f02b0ac451e2675850b633d45fad48641586",
      "parents": [
        "95cc08732df33d5c6e748fe3f0e5c88eca3d1ba0"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Aug 01 10:41:22 2021 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Aug 01 10:41:22 2021 +0200"
      },
      "message": "KB66 LazychatMessage: Make LazychatReference into a @ManyToMany association.\n\nChange-Id: I6616c0e9dc6416abcc2e85c38924e5ca7045c062\n"
    },
    {
      "commit": "95cc08732df33d5c6e748fe3f0e5c88eca3d1ba0",
      "tree": "4d91f48e3fc88166c90d560822aa31f3a505bdcd",
      "parents": [
        "9307632512461bf56615ed1cd94b429104e88dae"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Jul 18 21:33:24 2021 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Jul 18 21:33:24 2021 +0200"
      },
      "message": "KB66 Sanitize HTML in posts.\n\nChange-Id: I4987c74e90befb226f1bf1f06129a665f32544bf\n"
    },
    {
      "commit": "ff1fc09f1c5d974d12fbc14f70bd43ea5469152e",
      "tree": "cd36f6e612e90f1cdbf878d83d4ea9671cbb2f65",
      "parents": [
        "46022abb71e2038a145cf54916e709b262ad8b90"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Jul 17 22:31:48 2021 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Jul 17 22:31:48 2021 +0200"
      },
      "message": "KB66 Use a MessageLogger for logging.\n\nChange-Id: Ice21e79d23725beb104a3dcf999f5e68960e9435\n"
    },
    {
      "commit": "46022abb71e2038a145cf54916e709b262ad8b90",
      "tree": "5522aa9f77107b0220fc471fcae91fa7ba4113af",
      "parents": [
        "181286a0e97aebbc910f883530a53f5ff1048a4c"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Jul 17 21:29:32 2021 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Jul 17 21:29:32 2021 +0200"
      },
      "message": "KB66 Upgrade to Quarkus 2.0.2, fix authentication.\n\nChange-Id: I251fbdbe915e32aaeb8daa087691853da17f4799\n"
    },
    {
      "commit": "49b01519bbfcd4219ce77ff9ef7497d4ab1458e0",
      "tree": "0be6ff32ffab41e5a20503b0aa68ec72fd943644",
      "parents": [
        "2f931dece84c0f3f974cbf0d8863046b9268277d"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jul 05 06:45:54 2021 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jul 05 07:46:10 2021 +0200"
      },
      "message": "KB66 Use type-safe templates everywhere.\n\nChange-Id: I879e76e5bbaf91349f6df4637d9dc15291a3ada1\n"
    },
    {
      "commit": "2f931dece84c0f3f974cbf0d8863046b9268277d",
      "tree": "3a03d9259a701992c2def8a4dc466de08aa33e5c",
      "parents": [
        "a50ac8daab5f90dbf329446cc20c9e9458f24402"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jun 28 20:56:50 2021 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Jul 04 18:38:53 2021 +0200"
      },
      "message": "KB66 Add editor role.\n\nChange-Id: Ibcf94b6532ccb1602bf169ffb434b75557767598\n"
    },
    {
      "commit": "a50ac8daab5f90dbf329446cc20c9e9458f24402",
      "tree": "81241eba77a1119201ded1ae07e3f2451643e153",
      "parents": [
        "d4df22db3db5a30c285a5c40f69d70ceae17ff80"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jun 28 19:58:36 2021 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jun 28 20:28:40 2021 +0200"
      },
      "message": "Update dependencies.\n\nChange-Id: Ibca1be39b37f76ad9dfe743087959559d3f65d2a\n"
    },
    {
      "commit": "d4df22db3db5a30c285a5c40f69d70ceae17ff80",
      "tree": "f2b4aab1290ebb730900fdf8f9182425c7995a2f",
      "parents": [
        "bee2f96bdf6562a1542a83f4afaea5ec648c4973"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Feb 06 11:31:27 2021 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Feb 06 11:31:27 2021 +0100"
      },
      "message": "Newsletter: Address to self.\n\nAn empty To: header is rejected by WEB.DE.  Therefore, adding a\nprimary recipient is necessary even if no obvious one exists.\n\nThis change makes the NewsletterSender\u0027s own address the primary\nrecipient, circumventing the problem.\n\nChange-Id: I78febdd1f57b3f5737d83334972867ec9e4781d8\n"
    },
    {
      "commit": "de46b2367752c693e4a849facca1c87d4131a844",
      "tree": "a28d4543cc3ab01204ea70fd235cf136d075b76e",
      "parents": [
        "be86a628e64acf33c694f8eda0e7d695fc51ec0f"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Feb 06 07:51:57 2021 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Feb 06 11:14:06 2021 +0100"
      },
      "message": "Replace raw-type uses of Post with Post\u003c?\u003e.\n\nChange-Id: I3ba2094ea9471d8d86af7c8d6a537d7eb43961de\n"
    },
    {
      "commit": "67c6067083d491f7e239fe0d73a6ed16c637fb3b",
      "tree": "5d98dfa415c3e97432e88f5135a5a583eed68c32",
      "parents": [
        "4712c1ded9eced00cf7a364d173a375cdfd4686e"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Jan 30 14:43:39 2021 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Jan 30 14:43:39 2021 +0100"
      },
      "message": "KB66 Post: Add scope field.\n\nThe scope field defines whether a post is a top-level post or a\ncomment and is used to select posts for the main feed.\n\nChange-Id: I44363e3e67acbecff9844730a513ddb1d554afaf\n"
    },
    {
      "commit": "46749035a770a3542db8d1a6bb1258ea591e7078",
      "tree": "d9009725981de1cf8dbadb5fbe3120de0e21504e",
      "parents": [
        "4db085417b5221c9fdd74f0c1ff704e1a827b193"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Thu Dec 17 18:15:32 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Thu Dec 17 18:16:46 2020 +0100"
      },
      "message": "Act as if everything was fine if an invalid registration key is used.\n\nChange-Id: I78066954fef2e6afd9e49d56bd4c4060ad59796c\n"
    },
    {
      "commit": "4db085417b5221c9fdd74f0c1ff704e1a827b193",
      "tree": "0d032eac1a3110b57b7ab0e760bd23d0c50eb1f9",
      "parents": [
        "a743872d30d72dfdc230cd72a1f529edd82e691e"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Thu Dec 17 18:10:51 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Thu Dec 17 18:10:51 2020 +0100"
      },
      "message": "Work around authentication check blocking-call bug in Quarkus 1.10.x.\n\nA bug causes authentication checks to fail when performed from inside\na reactive operation:\n\n    https://github.com/quarkusio/quarkus/issues/13835\n\nTo avoid such a reactive operation, we now render the HTML template\neagerly even in NewsletterResource#register, which is otherwise a\nreactive implementation.\n\nChange-Id: I26d6c1cc76eaa041a04c106b7cf06f024a0cded3\n"
    },
    {
      "commit": "5000f9a3b87bf7689cba3e03dca4ec8260d56fae",
      "tree": "0194ab6e27eb25c19954e257500243b77ce58769",
      "parents": [
        "db9a1988bc688407c7957c5e55782f33a76d3de3"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Tue Nov 03 07:09:42 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Tue Nov 03 07:09:42 2020 +0100"
      },
      "message": "KB68 Only put public posts into the newsletter.\n\nChange-Id: Iee7f4dfd14820c19179c43be71759f209caa9989\n"
    },
    {
      "commit": "db9a1988bc688407c7957c5e55782f33a76d3de3",
      "tree": "6b4078d5634cee3198a62b1226b3c4ae9e180008",
      "parents": [
        "ff358945f2b210f7f374d3e3e7e36170ee16aed5"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Tue Nov 03 06:49:57 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Tue Nov 03 06:50:27 2020 +0100"
      },
      "message": "KB68 Automatic expiry of unconfirmed newsletter subscriptions.\n\nChange-Id: Iae05f0cac1bacc7e1929a0b3a72d506241c2ece3\n"
    },
    {
      "commit": "ff358945f2b210f7f374d3e3e7e36170ee16aed5",
      "tree": "5f7300b2e3cc9686847b3495ae2b48c579eeb9a2",
      "parents": [
        "ba3e58c04e918723233dcc66996399eeeff24007"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Tue Nov 03 06:16:17 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Tue Nov 03 06:49:44 2020 +0100"
      },
      "message": "KB68 Newsletter registration and deregistration.\n\nChange-Id: Ic79fe64f03ce887879bffc7623e59cb697065ee6\n"
    },
    {
      "commit": "ba3e58c04e918723233dcc66996399eeeff24007",
      "tree": "ece716b5ff12e77ee2eaf0163912ebe49077f0e0",
      "parents": [
        "8ae23a7fa6202377f957919d763c618859cb0d74"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Nov 01 12:58:35 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "",
        "time": "Sun Nov 01 12:58:35 2020 +0100"
      },
      "message": "KB68 Implement newsletter sending.\n\nChange-Id: I1d56e40d7f35d6be77fde1a1e8519a91bd2dc3b8\n"
    },
    {
      "commit": "8ae23a7fa6202377f957919d763c618859cb0d74",
      "tree": "db8aa409316aba1a69af487d1f809ad305418921",
      "parents": [
        "c0ed9cca59eb36477c8efeb4b724fa4be320ff38"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Oct 31 19:59:24 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Oct 31 19:59:24 2020 +0100"
      },
      "message": "KB68 Add privacy policy.\n\nChange-Id: Ib55cd55b2c9f53211ea6c18c2890f715a61d9d9b\n"
    },
    {
      "commit": "8563a3c03538600ae148b75debd31af16047e2d5",
      "tree": "7ac292f7213bb6118552b94442533e9e685b11e1",
      "parents": [
        "b1192ac9ed515927642215dd3a1717fc13c9679c"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Wed Sep 16 17:57:24 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Thu Sep 17 11:03:14 2020 +0200"
      },
      "message": "KB73 Add full text search to post lists.\n\nChange-Id: Ib8333b39cef1d7035ab7fac0ff8a03b400adcb40\n"
    },
    {
      "commit": "685317fb4adab36e95558e0f3e7b1af9f94fdaf1",
      "tree": "846c88c189aa1fa298796e2151c95229460861b9",
      "parents": [
        "67107cd9458ff540be1be21d621c41cbca189b6a"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Sep 12 18:45:50 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Sep 12 18:45:50 2020 +0200"
      },
      "message": "Change post view page title.\n\nChange-Id: I01dc16df134a613f4c9d76e748e344f2e5837e97\n"
    },
    {
      "commit": "299f5a5ff90d35f705a5d59bf78ec066a05e9b1a",
      "tree": "71e95eba871c19a5c0c602b14fe9fa39a2f335c2",
      "parents": [
        "652bd2cd359acc81dd4c734ef49b9e3fd2168306"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Fri Sep 11 20:25:19 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Fri Sep 11 20:25:19 2020 +0200"
      },
      "message": "KB56 PostText: Inherit from PanacheEntityBase.\n\nPostText did not inherit from PanacheEntityBase.  This meant that\nautomatic setter and getter generation (and thus dirtiness tracking)\nwas not working, making updates to existing post texts impossible.\n\nChange-Id: I0901b15acc73827276322feb000831a8e93d5717\n"
    },
    {
      "commit": "cb6638a6ac312de603948abc081016179bf788b7",
      "tree": "4ca0da4902779fffaeb757443474e50183642b40",
      "parents": [
        "3000a6a7a1abe4792ea95f6611844be5b34c2fb5"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Thu Sep 10 16:00:54 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Thu Sep 10 16:01:08 2020 +0200"
      },
      "message": "KB56 Move AboutResource.java back to where it belongs.\n\nChange-Id: I13151679db9aa75c4e9cd04d0d8726b408b1ab3f\n"
    },
    {
      "commit": "4d8139fbbdcbaaac2d6b8e0b7ad379cc4d0eb62d",
      "tree": "244b42c98a4dfe548cff0dddcb0f0de8238f71ab",
      "parents": [
        "7bc7e70d76890141e5998ddfcf499ee5262c2302"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Thu Sep 10 15:39:10 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Thu Sep 10 15:39:10 2020 +0200"
      },
      "message": "KB56 Add login button and status box.\n\nChange-Id: I72658014b2198a1a01ffa02ad4bafcdf9d66ab2b\n"
    },
    {
      "commit": "d5498fcec7394d2b89667832853e239d5f496e1c",
      "tree": "3d9d6ee6c1c175c22026059f4b44b2d954fac6d9",
      "parents": [
        "e9b14f921cdaa0357aa58f4a72f930981b3042fb"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Aug 23 21:51:00 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Thu Aug 27 21:09:12 2020 +0200"
      },
      "message": "Add localized texts to Benki post model.\n\nChange-Id: I123cfe2ff06f85dc14c705b21d723d1c68fd2e00\n"
    },
    {
      "commit": "3f986ef2726c9103081d3782e9149dc11cdfa62e",
      "tree": "51c9ba5cf91c7009d2564b25310054fec5bffb20",
      "parents": [
        "7e71d1c86f44617cfd09caedff1107bdcf27b255"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Aug 22 13:28:33 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Aug 22 13:28:33 2020 +0200"
      },
      "message": "Add Scalafmt to Spotless configuration.\n\nChange-Id: I789221c34222c263507ade58efda3bf29a6a7fdb\n"
    },
    {
      "commit": "7e71d1c86f44617cfd09caedff1107bdcf27b255",
      "tree": "a5610b34b21dfbd1429937a5e6fbd2a9df534cbe",
      "parents": [
        "43d59d3bb3448cdd1b43b7ad0aa085ed143eb4ef"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Thu Apr 16 17:07:59 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Aug 22 13:28:21 2020 +0200"
      },
      "message": "Add Scala compiler.\n\nChange-Id: I68ffcf35b1b6ea2e42a479bdb71f868a486781db\n"
    },
    {
      "commit": "60c0892466c8e48faba3e7bbe2b462c47aa032fa",
      "tree": "9c64db24cfac03a62ef97a881d8cb6ba2737145c",
      "parents": [
        "80fc431853a7105b2f1921de61d06f0fbd0cc51a"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Jun 13 19:22:25 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Jun 13 19:22:25 2020 +0200"
      },
      "message": "Benki: Cache HTML renderings of posts in the database.\n\nChange-Id: I3367ceb8769d354f64165d23ec7ed1f2155c4c49\n"
    },
    {
      "commit": "43b20299733144766c49e04f0c3558e1e28364e3",
      "tree": "cb021aee34c1b37b231437ac5e18b25abd2b90fe",
      "parents": [
        "1fdf09bb7ec5570a42c84c54262e666c6503e269"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat May 02 17:01:49 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat May 02 17:11:47 2020 +0200"
      },
      "message": "Feed: Add alternate links to every post.\n\nChange-Id: I2abbccabe3d53b6efade8266e11ccc9071cc1a46\n"
    },
    {
      "commit": "e2a920026c2185f002287e1194436dd3fc438648",
      "tree": "0d6446b7d35a13193115099e754eecdc84f68f56",
      "parents": [
        "8001abb0147f7b976b1f46151f3ffbd3888a46e1"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat May 02 16:44:34 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat May 02 16:45:06 2020 +0200"
      },
      "message": "Feed: Add generated titles to lazy chat messages.\n\nChange-Id: I691cbc0a1440960a5dc8a46863d7291927ff3390\n"
    },
    {
      "commit": "8001abb0147f7b976b1f46151f3ffbd3888a46e1",
      "tree": "5bea6c852890ee5685f4217df7927d91b139c01e",
      "parents": [
        "0a739446a6d2042b3f07a864cf38c511e03df852"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat May 02 16:34:01 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat May 02 16:34:01 2020 +0200"
      },
      "message": "URL-encode URI fields in the news feed.\n\nChange-Id: I69ff4dfea602f17dbbdbd72366c7647aba00e105\n"
    },
    {
      "commit": "369e698b0761a0c0abb460e92d680ae441374422",
      "tree": "e1fb9358f85fe07bf28fcea8923dafb573d6aca3",
      "parents": [
        "b3ff7ac842c385bb7c1a99d794a0c57830f58ea7"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Apr 26 13:14:21 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Apr 26 18:38:45 2020 +0200"
      },
      "message": "KB54 Group posts by date, use floating to make style sheet even more compact.\n\nChange-Id: I41346eb51481d4c2c4e7066373fba5b7073e3e4f\n"
    },
    {
      "commit": "1c2a8a70eed63a6b59dde22bdcb1d029e8485089",
      "tree": "c3df25d8f9ff64daaeb27b19530eb13fc9e0b6b3",
      "parents": [
        "95d29a00d3f37d64f5256cea4e7308f5a975c86c"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Apr 26 06:09:57 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Apr 26 06:12:43 2020 +0200"
      },
      "message": "KB54 Put posts in date buckets for templating.\n\nChange-Id: Ic17b2dede722f5962a55b9c4d3b4663a71480e9c\n"
    },
    {
      "commit": "bbac0c7d90986f95e93a473c7228021ab726e464",
      "tree": "6a5807e3c026017ad1f8e37f492b415a65ee3f31",
      "parents": [
        "3c4911e9a87702fcf199d410a5502775b02e9947"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Apr 19 19:38:49 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Apr 19 19:56:20 2020 +0200"
      },
      "message": "KB53 Support bookmark edition.\n\nChange-Id: Ieacbb5c448b9afa4bc9524167e0c73618de6db48\n"
    },
    {
      "commit": "3c4911e9a87702fcf199d410a5502775b02e9947",
      "tree": "c4ffd10cf0c3ab1d5ec3995e92c3b464dc923879",
      "parents": [
        "c5b99755e529bb3e5de04584115598e81a23eeb9"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Apr 19 18:53:20 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Apr 19 18:53:20 2020 +0200"
      },
      "message": "PostResource: Rearrange methods.\n\nChange-Id: I1066712c9230688e672a84fc2cfe03e91f88e3a1\n"
    },
    {
      "commit": "c5b99755e529bb3e5de04584115598e81a23eeb9",
      "tree": "4b4d9cdf0de46f54b914d8f8135f096e0d113638",
      "parents": [
        "cf0fe88a5f1b0c53fb84b016128878db329141fc"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Apr 19 18:43:15 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Apr 19 18:43:15 2020 +0200"
      },
      "message": "KB49 Vary feed URI based on resource type rendered.\n\nChange-Id: I02025bc5ce86aa6cda1b083c7a542cefb561c25d\n"
    },
    {
      "commit": "cf0fe88a5f1b0c53fb84b016128878db329141fc",
      "tree": "49d2a25fb621ecc7a269c01adbdd541734172b69",
      "parents": [
        "593765de7fbd38c44f514363d0f3e0d4e82e6523"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Apr 19 18:33:37 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Apr 19 18:33:37 2020 +0200"
      },
      "message": "KB49 Add private news feeds.\n\nChange-Id: Ib9488351b9734795e02ddaeb26aa81eeb79c0b4d\n"
    },
    {
      "commit": "593765de7fbd38c44f514363d0f3e0d4e82e6523",
      "tree": "79535b55a6d7df3d50ae2426a2183b27501ed214",
      "parents": [
        "1e7674cf4880e21b24442c01914c2bcf9c00cb7b"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Apr 18 20:44:07 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Apr 18 20:44:07 2020 +0200"
      },
      "message": "Fix problems found by static analysis.\n\nChange-Id: I02c51279f18f629b2d2fb1095692a6ae98b0e25e\n"
    },
    {
      "commit": "1e7674cf4880e21b24442c01914c2bcf9c00cb7b",
      "tree": "cd6909813d3118131717c152c542513503764ea7",
      "parents": [
        "98e63f0244dfd9e90d4888f86ccad59c0dc3996c"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Apr 18 20:28:51 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Apr 18 20:28:51 2020 +0200"
      },
      "message": "Add nullability constraints everywhere.\n\nChange-Id: I80577b7784006070f29ce11af4e6fd87c10363bf\n"
    },
    {
      "commit": "09914e3fe1fbb3cd6c5227c0ea93b77cae43ca05",
      "tree": "184be057803a57ba13525b1f0270ed30555a0a61",
      "parents": [
        "b6081275edefe500b8dd8b5239e7ab3dd7d633a2"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Apr 18 15:52:05 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Apr 18 15:52:05 2020 +0200"
      },
      "message": "Fix feed links.\n\nChange-Id: I1c04bdbbef852b65a23375d6725714bbc06b95e8\n"
    },
    {
      "commit": "b6081275edefe500b8dd8b5239e7ab3dd7d633a2",
      "tree": "68cbdedee388a238d906484a20dd572eeb4accbf",
      "parents": [
        "6cfe16b3bf3e5c576956f4cb9d9b5d8a30cc1e87"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Apr 18 15:48:04 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Apr 18 15:48:04 2020 +0200"
      },
      "message": "KB51 Add handler for post links.\n\nChange-Id: Icb36da42fcf085ec541ba70c1421e8635d295974\n"
    },
    {
      "commit": "6cfe16b3bf3e5c576956f4cb9d9b5d8a30cc1e87",
      "tree": "c30a838a631cae23f85e9a77df9da3986bafc219",
      "parents": [
        "ca4d7942f23d67f538b470b93a9dd0ffecee5f00"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Apr 18 15:36:04 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Apr 18 15:38:17 2020 +0200"
      },
      "message": "KB51 Promote LazychatResource#getMessage \u003d\u003e PostResource#getPost, handle null login.\n\nChange-Id: I31601b00f1d72ec2282b6f6deedf971644b93a15\n"
    },
    {
      "commit": "ca4d7942f23d67f538b470b93a9dd0ffecee5f00",
      "tree": "c55b3b1b2d53a5424344a8069436d17cd503f26a",
      "parents": [
        "5794b9062d1dd94415757c2236bdfc766921f97f"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Apr 18 14:13:41 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Apr 18 14:13:41 2020 +0200"
      },
      "message": "KB46 Post#queryViewable: Fix visible posts query logic for Post.class.\n\nChange-Id: Ic7f16a9dec8e639133ab266540b5f25d8f1594c9\n"
    },
    {
      "commit": "5794b9062d1dd94415757c2236bdfc766921f97f",
      "tree": "77315f1c90117c7d12a9e785bf679938c54ae217",
      "parents": [
        "baf0f964721a3a1b5a78a9e5b13b1a6f76b17915"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Apr 18 14:00:39 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Apr 18 14:02:53 2020 +0200"
      },
      "message": "KB46 Add All Posts resource.\n\nChange-Id: Ifc8ae0693d7e17addf4a84ed4eedcb43d5ea2f57\n"
    },
    {
      "commit": "d1c953115e62512276d43925cff533758c7e666a",
      "tree": "8b0c9f12bae9e78736901a44f267cbc5843bab7e",
      "parents": [
        "06e6c81c77f8098693473e49c11557820541dd15"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Apr 13 17:13:37 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Apr 13 17:13:53 2020 +0200"
      },
      "message": "Bookmark: Implement stubbed methods.\n\nChange-Id: I2f159cb7ea068f7d1fb26680b89aa9d3be1f46c2\n"
    },
    {
      "commit": "06e6c81c77f8098693473e49c11557820541dd15",
      "tree": "90093ef738927496a5c3f48540ed62871b565bbb",
      "parents": [
        "7f4daccab9dc21cfd95be219e5c8c86545d47125"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Apr 13 17:01:35 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Apr 13 17:01:35 2020 +0200"
      },
      "message": "Lazy Chat: Implement editing of messages.\n\nChange-Id: I291201da1fbc7c2b6563f0837f7ce3e2f7f8555c\n"
    },
    {
      "commit": "d5ae0d54398d57fabe84271223fa80a565f726b6",
      "tree": "0636c5cec6bc31a3d611a7af026f8fc1616be649",
      "parents": [
        "4940b29dbe78cc9ff8baea0ede775aee37745a33"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Mar 29 18:57:22 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Mar 29 18:57:22 2020 +0200"
      },
      "message": "Implement news feed for Lazy Chat.\n\nChange-Id: I3621b77da5277f38c5f50fab24ff7bea580f11cd\n"
    },
    {
      "commit": "4940b29dbe78cc9ff8baea0ede775aee37745a33",
      "tree": "a5f2ff608446c54bde0aee66357def4c1a39f726",
      "parents": [
        "a3762dc8398f83e0112b7833a6259d2c041617db"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Mar 29 18:41:07 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Mar 29 18:44:25 2020 +0200"
      },
      "message": "Factor common parts of BookmarkResource and LazychatResource into PostResource.\n\nChange-Id: I6e5e123c67340e564c47448cf43b803f7d0cc809\n"
    },
    {
      "commit": "a3762dc8398f83e0112b7833a6259d2c041617db",
      "tree": "05c1b82a48ce7b486e7d1538a31349b2f7ec8661",
      "parents": [
        "85b5e266cbed1093e1440ee0ac50087697a96108"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Mar 29 17:49:20 2020 +0200"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Mar 29 17:49:20 2020 +0200"
      },
      "message": "Show bookmark and lazy chat submission forms if and only if logged in.\n\nWith the recent session cookie fix, this now works as it should and\ncan therefore be enabled.\n\nChange-Id: I96cfdcd99952e7f91ae468de80d6445a024c74b5\n"
    },
    {
      "commit": "12c7cac4bd9abf55f379cbe7d9cf59b518052e51",
      "tree": "9b25dda95b09e40cb4beb9c034780270516a69b1",
      "parents": [
        "e31da4f1523e0e5bfbc9ef1ae0378b90ef530400"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Thu Mar 26 07:19:45 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Thu Mar 26 07:19:45 2020 +0100"
      },
      "message": "Enable lazy chat message submission.\n\nChange-Id: I9e9060e29bb63a78591f618cc54acdfb5b49575f\n"
    },
    {
      "commit": "e31da4f1523e0e5bfbc9ef1ae0378b90ef530400",
      "tree": "192356fa536a7b71e1bd7b06a7ce34a0f5d90591",
      "parents": [
        "371164a188b93b24f33cb5badb0362ac2544d33d"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Mar 23 06:24:23 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Mar 23 06:24:23 2020 +0100"
      },
      "message": "Make various fields final.\n\nChange-Id: I115ca235d66f70d1429c28c2fe49af3231f70734\n"
    },
    {
      "commit": "371164a188b93b24f33cb5badb0362ac2544d33d",
      "tree": "2b19582c04a50ecddc2357e2a895613f9d041519",
      "parents": [
        "573f806676a7ebc2a62aa39d742127fbf74fbb3c"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Mar 23 06:21:25 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Mar 23 06:21:25 2020 +0100"
      },
      "message": "Use generic page template for bookmark and lazy chat lists.\n\nChange-Id: I86cc78c8164d6672d8b5cfbc2a3433954068967e\n"
    },
    {
      "commit": "573f806676a7ebc2a62aa39d742127fbf74fbb3c",
      "tree": "1c7fc50b116c9a1d2fe6302a1cbe64e8a1d91b94",
      "parents": [
        "3d399f3e0b150064b778a64ebfd495da2640bb4f"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Mar 22 09:23:07 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Mar 22 09:23:07 2020 +0100"
      },
      "message": "Lazychat: Add paging.\n\nChange-Id: I1db0b0733397d5e7a77b925ba185a39a72041f3e\n"
    },
    {
      "commit": "3d399f3e0b150064b778a64ebfd495da2640bb4f",
      "tree": "64fbcdaffb3795257bf6e0c426409ba1be8dd52b",
      "parents": [
        "f5999553827e64d1ea9b51d8bff573382e64eeb9"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Mar 22 07:23:07 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Mar 22 07:29:45 2020 +0100"
      },
      "message": "Make paged post queries generic over Bookmark and LazychatMessage.\n\nChange-Id: Ie0ac96bfc80c3c31bb948681ef90a9a50a512cf4\n"
    },
    {
      "commit": "f5999553827e64d1ea9b51d8bff573382e64eeb9",
      "tree": "8302ff88f4015499b702e8ec691c88a88b594b8b",
      "parents": [
        "43831d18f2d504c93a07ad3c32f52e2a887ed97f"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Mar 22 06:52:06 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Mar 22 07:02:05 2020 +0100"
      },
      "message": "Move post list query method to Post class.\n\nChange-Id: I8dbb664d2522a3012a477b850b67cb642bae9aa8\n"
    },
    {
      "commit": "43831d18f2d504c93a07ad3c32f52e2a887ed97f",
      "tree": "e539a590432c87a3befbfa8dafa96ee3c7080293",
      "parents": [
        "82c342dd6d9c45f8ca17e2c08517170ee36998c3"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Mar 22 06:47:48 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Mar 22 06:47:48 2020 +0100"
      },
      "message": "Make post list querying generic over all subtypes of Post.\n\nChange-Id: I41d1c2e75675ba0ae2176a9d02ea76fb0bb0d76c\n"
    },
    {
      "commit": "3f8a26c6fb88757cd3f5646838c177e711fcab76",
      "tree": "2ed647f18054aa5ce013c25aa8af01621b434417",
      "parents": [
        "84db379e6806b7c4603a9f86452ee3d8a1fd7e0b"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Mar 16 11:13:54 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Mar 16 11:13:54 2020 +0100"
      },
      "message": "Bookmarks: Add paging.\n\nChange-Id: Icd53dd04a74b94e1fa80f23703348070d598c413\n"
    },
    {
      "commit": "aa659da0337ea13c6add4117fd7bbd9b158f63a7",
      "tree": "fa741bd3946fe566a41a32d31c25db53ef059fdf",
      "parents": [
        "781dcbb406a5e0ad93ab746abee021e750699d43"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Mar 01 12:04:14 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Mar 01 12:04:14 2020 +0100"
      },
      "message": "Add contact information.\n\nChange-Id: If94f79fa2e51c8cb7a9c8b63524ff992395aa96f\n"
    },
    {
      "commit": "a04b3973a674b9851a0a8ce3294556fa6a0aeed8",
      "tree": "046906a74dbbf5a4e070e0df450dcd3ccbfec34e",
      "parents": [
        "0312ec75cdb4284ff55dbc5d310263d9d78111ea"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 23 07:07:42 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 23 07:07:42 2020 +0100"
      },
      "message": "BookmarkResource: Add missing selection to authenticated bookmark list query.\n\nChange-Id: I965dba4ae0027e2a9f24836b16aa4614c713cca6\n"
    },
    {
      "commit": "35d8d09a2a0b2a64e134b60e113a05da5de16bfa",
      "tree": "5052a3209635fb140b0fe7bb4e34a677cfb97ef7",
      "parents": [
        "cb226699d09467e1036a06298df61628ccc6f829"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Feb 22 12:51:54 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Feb 22 12:51:54 2020 +0100"
      },
      "message": "BookmarkResource: Fix user feed IDs and links.\n\nChange-Id: If5238caf54334f6ac47eeefae04f2134dc4de856\n"
    },
    {
      "commit": "cb226699d09467e1036a06298df61628ccc6f829",
      "tree": "dd7ecf3381eff8f52abd198de5898959671f7d77",
      "parents": [
        "404ac1d20d5126c7ac5467171531d5e4a9936fc1"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Feb 22 11:30:53 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Feb 22 11:30:53 2020 +0100"
      },
      "message": "BookmarkResource: Remove code duplication.\n\nChange-Id: I63cc5452b6690e6ef9a5a0d080d97e03a6952b13\n"
    },
    {
      "commit": "404ac1d20d5126c7ac5467171531d5e4a9936fc1",
      "tree": "22259e345231e62c363fc584de2309b7399267b5",
      "parents": [
        "088a21f23554624b79bf4bda58ddc11d4cf7c23c"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Feb 22 11:29:37 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Feb 22 11:29:37 2020 +0100"
      },
      "message": "BookmarkResource: Use JPA metamodel for type-safe Criteria queries.\n\nChange-Id: I7571a749275d733c9738eed01dad9fb2de7d77ba\n"
    },
    {
      "commit": "088a21f23554624b79bf4bda58ddc11d4cf7c23c",
      "tree": "31bffd5764b5688d5da7ae5e5bb3ead54ad9dfcf",
      "parents": [
        "04a50e6aaf2ca436b42387e423a1c414ecf6cce6"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Feb 22 10:52:11 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Feb 22 10:52:11 2020 +0100"
      },
      "message": "Bookmarks: Add owner bookmark pages (~{user}, ~{user}/feed).\n\nChange-Id: I04395a6454d8c187e23683db72100f49b80fc655\n"
    },
    {
      "commit": "04a50e6aaf2ca436b42387e423a1c414ecf6cce6",
      "tree": "cf7ea367366b9c3c34ac39f48dda2356398399f8",
      "parents": [
        "981f27984005c49605114c4ff0f2f1bb24bbd034"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 16 19:08:38 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 16 19:18:33 2020 +0100"
      },
      "message": "Bookmarks: Add Atom feed.\n\nChange-Id: I902473b6bffa10afa0cb2295d365d50335de9021\n"
    },
    {
      "commit": "fc427e26493d4bd070c09e5dbc348a1355c00e38",
      "tree": "df04f0b158373549c6cc333f0de834f3e2be9f80",
      "parents": [
        "6991257cd67631efae78e141b8ae7794129483c1"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Thu Feb 13 05:00:54 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Thu Feb 13 05:00:54 2020 +0100"
      },
      "message": "Add /bookmarks/new endpoint.\n\nChange-Id: I903dbf5f918e1478fff82e5ebf6f3e3e2766572d\n"
    },
    {
      "commit": "65fab823eb9f6556f6cc68989e2cc7b672a711ba",
      "tree": "6921d075a4e49468e96ca78b2b48a31472546e8e",
      "parents": [
        "35e14e4f5e98719d5db1ac9cba46cdeefc3d3f00"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Wed Feb 12 06:20:49 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Wed Feb 12 06:20:49 2020 +0100"
      },
      "message": "Reformat code.\n\nChange-Id: Ic3ee55d3264e02765eaa0ae965253c2dd2d6330a\n"
    },
    {
      "commit": "35e14e4f5e98719d5db1ac9cba46cdeefc3d3f00",
      "tree": "b40fe3155e6562b838b5cfd1bd9f0763ca950aa1",
      "parents": [
        "22f623c810297467da2d8662c5d4b90ae8e84dae"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Wed Feb 12 06:20:05 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Wed Feb 12 06:20:05 2020 +0100"
      },
      "message": "Bookmark submission: Fetch page info through back end.\n\nCORS prevents us from fetch the target page directly.  This patch\nmakes the front end use the back end to fetch it instead.\n\nChange-Id: I2d33a68d00b6ce1bb7a7b8dfcb7687f0bd1fdebd\n"
    },
    {
      "commit": "f20e9b98f1a5d7012ebb493cb756a339bb69b6e1",
      "tree": "4b6169b7c249ca37cddcc41787f14260a5dd148f",
      "parents": [
        "79f23b7e603cb649f395c852d656d791a2105c4e"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Feb 10 21:14:57 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Feb 10 21:14:57 2020 +0100"
      },
      "message": "Make bookmark submission authenticated.\n\nChange-Id: I8bb41a106b7b0cc925beac968053f1d5811a652d\n"
    },
    {
      "commit": "bca94613c19acf02ea333d57090e535b28afd2b4",
      "tree": "c753136015c276d389ca05ecba4306f02ce9b699",
      "parents": [
        "ee5d99727cfad928cdf9013f71f7439d54a70bb6"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Feb 10 20:58:13 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Feb 10 21:01:53 2020 +0100"
      },
      "message": "Book Marx: Implement bookmark submission.\n\nChange-Id: Ieb1fef8565ed0e17de9590d5207ba11ebfe6f177\n"
    },
    {
      "commit": "9d9e07b4064c7cca4fc6d15dadf50e6f6a509639",
      "tree": "87456f5ffcb140b5e5b3e520b49484b36544f2c1",
      "parents": [
        "19e0584c60c3c3b3814771c97415f046e37e375a"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 09 20:05:43 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 09 20:05:43 2020 +0100"
      },
      "message": "Fix HQL typo.\n\nChange-Id: I81b012588628acaeab43a3a8a4d85bc187e38c0f\n"
    },
    {
      "commit": "94b5e7b4c85a4bde4848bf3d85c1adc7cd73acc6",
      "tree": "4d6ddb89267a18bf935acc195fe0ca1922835ab5",
      "parents": [
        "62416de64d7fa2dda4dd12777a7698a7a5d0c199"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 09 20:02:20 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 09 20:02:20 2020 +0100"
      },
      "message": "Lafargue: Implement basic viewer.\n\nChange-Id: If24f58aa069a14139454708d02ac40109c2181ef\n"
    },
    {
      "commit": "62416de64d7fa2dda4dd12777a7698a7a5d0c199",
      "tree": "7c94a4a2078e9dd344e82ac84dfdb345aa251e46",
      "parents": [
        "424e16e8d27f8e7459089554f5036a07d7ea252e"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 09 19:05:22 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 09 19:05:22 2020 +0100"
      },
      "message": "Wiki: Make /wiki main resource unauthenticated.\n\nChange-Id: I6a2356a6c77110947e5b0e5fd65a70ed7ee96c9b\n"
    },
    {
      "commit": "424e16e8d27f8e7459089554f5036a07d7ea252e",
      "tree": "e145b4f178cee555af15e8beb9178b72a289bd3b",
      "parents": [
        "51abccb96af42153c1e01a0914d27a6f93638ed5"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 09 18:29:56 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 09 18:29:56 2020 +0100"
      },
      "message": "Book Marx: Properly format bookmarks.\n\nChange-Id: Idd6f2c4622d4b1a16c74b2d3af02e637625732fc\n"
    },
    {
      "commit": "51abccb96af42153c1e01a0914d27a6f93638ed5",
      "tree": "b907e16332cd1c96d088e7eedc9419195b0412e0",
      "parents": [
        "2d4f92ef2685da8f43c970345513ec9d0107dffc"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 09 18:29:25 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 09 18:29:25 2020 +0100"
      },
      "message": "Web: Increase active menu item overlap from 1px to 3px.\n\nChange-Id: I977c6cd7252935645e07585ef3c4328987b02f73\n"
    },
    {
      "commit": "2d4f92ef2685da8f43c970345513ec9d0107dffc",
      "tree": "5f10fd9345a9d631aeb4ddd8f0ab9c8f204b8252",
      "parents": [
        "e28673d659e1b1f7a5b1a6a9c00aec18503d84a6"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 09 16:15:07 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 09 16:15:07 2020 +0100"
      },
      "message": "Book Marx: Implement basic viewer.\n\nChange-Id: I5a878ca82d8489c6a87c86f66a49a085f168f86c\n"
    },
    {
      "commit": "e28673d659e1b1f7a5b1a6a9c00aec18503d84a6",
      "tree": "2d06f10923a062a3b64659697a59b32b614b108d",
      "parents": [
        "310e71fd6e88cb41ddd4d448cee96a72554db177"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 09 10:51:24 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 09 10:51:24 2020 +0100"
      },
      "message": "Rename bookmarx \u003d\u003e bookmarks, lafargue \u003d\u003e lazychat.\n\nChange-Id: I0938267d9b7e8c9685f18a5e217b62df1bcab49b\n"
    },
    {
      "commit": "521718d5ef2d7a18497bc525fb15d245f6827180",
      "tree": "7cca084c323dcd96365597be3f2a7a9371f3d5ab",
      "parents": [
        "c275812ffa1382f350c24cf3967aa3fc5cdebcdb"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 09 06:47:05 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 09 06:47:05 2020 +0100"
      },
      "message": "Wiki: Add top-level redirect to Home.\n\nChange-Id: Ide7605daf4b86d71181875b25ca8a7fb747b0beb\n"
    },
    {
      "commit": "944c0b663340a6cea517d0ee1542fbb6ad4c94e6",
      "tree": "e1dc3cb9f455c77a03545c86af1a6585b98a7651",
      "parents": [
        "9aab180b33c16ae56d79c9e67b258588505f0962"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 02 13:17:48 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 02 13:17:48 2020 +0100"
      },
      "message": "Remove the JWT cookie filters again.\n\nThey were pointless: quarkus-oidc\u0027s CodeAuthenticationMechanism\nalready takes care of setting a session cookie, which it uses in\npreference over an IdP redirect.\n\nThe reason the cookie did not stick before is still unclear, but it\nwas fixed by tweaking the Keycloak settings for the MulkCMS client.\n\nChange-Id: Ie547ee0af23b6532515a990c2699ba9ffa686a5a\n"
    },
    {
      "commit": "9aab180b33c16ae56d79c9e67b258588505f0962",
      "tree": "f14fff16a77b6ba6cc3e6cdcfb8a043c20a92fe4",
      "parents": [
        "578c8657b1d7b47671644a316358872218f0f8a4"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 02 11:40:27 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sun Feb 02 11:40:27 2020 +0100"
      },
      "message": "Make the JwtCookieLoginFilter an IdentityProvider instead of a filter.\n\nChange-Id: I0107d66affe438739d5405bc33960a02e3bb9828\n"
    },
    {
      "commit": "2a1383f2865dff780d435e9d2a897e57879748df",
      "tree": "09716bfe1759082f88dc6df79f01b7794fb6ec3a",
      "parents": [
        "1f79d1db101b706649aed93ed36092477db7d357"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Feb 01 23:53:17 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Sat Feb 01 23:53:17 2020 +0100"
      },
      "message": "Implement an alternate JWT security filter.\n\nChange-Id: Ie46b6efc24d045f90f45f7b16f17e4b84ae886c5\n"
    },
    {
      "commit": "2f5374598fbdfbf5ccdf44930706133bc7986e83",
      "tree": "ee9aa69ab33c0e7b9f2e615e0cfa675614491cd9",
      "parents": [
        "0178fa352d2045cdd27ffa2a965794684fc2d665"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jan 27 21:23:00 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jan 27 21:25:21 2020 +0100"
      },
      "message": "Wiki: Provide feedback after editing.\n\nChange-Id: I6530be803f5f4218008c07d00ad3c6f739a1eb7a\n"
    },
    {
      "commit": "97130f95f04bd5cf8363b35994e3c44f11d70f0c",
      "tree": "97a31afc7213ae64ae1a82b85d09f96865ad4d28",
      "parents": [
        "0c1536469d7e3e286bd72df8e09ac7e4a7a0c4ae"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jan 27 21:03:39 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jan 27 21:03:39 2020 +0100"
      },
      "message": "Wiki: Render WikiWord links and autolinks on the server side.\n\nChange-Id: I46f972bcebf765a3d9fb55b7b35f40deb978dc5d\n"
    },
    {
      "commit": "0c1536469d7e3e286bd72df8e09ac7e4a7a0c4ae",
      "tree": "7407da8826afb21f4ebc4886e98298a9423d8176",
      "parents": [
        "4ad837d587db9bb2b52a617ce4804c3be7b74e02"
      ],
      "author": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jan 27 06:29:51 2020 +0100"
      },
      "committer": {
        "name": "Matthias Andreas Benkard",
        "email": "code@mail.matthias.benkard.de",
        "time": "Mon Jan 27 06:29:51 2020 +0100"
      },
      "message": "JPA: Make all element collections sets.\n\nChange-Id: I01360f982259608ba214e360d3189ac43ba59966\n"
    }
  ],
  "next": "4ad837d587db9bb2b52a617ce4804c3be7b74e02"
}
