)]}'
{
  "log": [
    {
      "commit": "d0d5d9dd04574305cf86bf1eb3e787549100ea28",
      "tree": "e685757c85066ce4671e125374725093577ea986",
      "parents": [
        "b554dd389e51718d5acf084cd706d32e16f3994d"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Mar 26 22:07:11 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jun 02 18:57:29 2025 +0000"
      },
      "message": "treewide: use Fatal in tests instead of Error\n\nError doesn\u0027t return the goroutine, but these cases are final and should end the test case.\n\nChange-Id: I9d87e268b56acd7d1ff5883bb82bf3d74c309176\nReviewed-on: https://review.monogon.dev/c/monogon/+/4044\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "6d33a4342a16200d628f30ff91b169927fc2867a",
      "tree": "e65ad23cb6d0b795420b5ec625a757784d4c3e3b",
      "parents": [
        "7887f758de8f9106a484ca59d9734304aa919e36"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 04 14:34:25 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 06 17:03:43 2025 +0000"
      },
      "message": "treewide: add license header and enable haslicense linter\n\nChange-Id: I873a8d4082d75e8f813d8a726a41187eea7a065e\nReviewed-on: https://review.monogon.dev/c/monogon/+/3825\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "8ac3e566eda3f968966fbe712be5c9158b04d0c3",
      "tree": "87087014d39a6f00788c4868ebd16f9e3fcfebb6",
      "parents": [
        "4a472882b3e35a630922279579201ae6fcbeb081"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed May 29 14:16:27 2024 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jun 20 12:04:53 2024 +0000"
      },
      "message": "g/a/toposort: add deterministic version\n\nAdds a slower, but deterministic version of TopologicalOrder. To make\nimplementation easier, the visit recursive function is slightly\nrefactored.\nBoth implementations look very similar, but it adds more lines to keep a\ncommon implementation versus just having two separate functions.\n\nChange-Id: Ife4cbda128cf476005b75e216352b522b949d6a2\nReviewed-on: https://review.monogon.dev/c/monogon/+/3137\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d5f851bb477638436826adec756fe562db526865",
      "tree": "d981b1c62d613b45fb55023da289098d7e377705",
      "parents": [
        "69fec522d5db79d07bb1f227c2ab39c57fdf2831"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 23 14:59:37 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 13:15:14 2024 +0000"
      },
      "message": "treewide: replace error comparisons and assertions with errors.Is\n\nChange-Id: Id2424eb155f2c6842c72c5fafd124d428ef901f2\nReviewed-on: https://review.monogon.dev/c/monogon/+/2994\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "de097947a7c54f1d5e0abb30b18539637a3245d2",
      "tree": "579a5de8cd4cb379d708f676bb6897acee00dffc",
      "parents": [
        "d69848409ba4f34102f709f591e1432e6b458856"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jun 27 13:55:10 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jun 27 19:40:23 2023 +0000"
      },
      "message": "go/algorithm/cartesian: implement cartesian product\n\nChange-Id: I9553266ce64a104f5b8bab2e83d9d7234994cd4b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1863\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "9ae5f77a472650a9f43186c585e395387cfc1f91",
      "tree": "29c4609795005a6ea517821013aef6b2e910d5ad",
      "parents": [
        "b565cc679cd5af598dc863890a3e1cce98eb1c57"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Apr 06 15:26:55 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Apr 06 14:26:08 2023 +0000"
      },
      "message": "g/a/toposort: add bad reference validation\n\nIn a lot of cases where toposort is used to build dependency trees it\nmight be necessary to validate that the edges which make up the tree\ndo not reference nodes which are not present.\n\nThis is implemented by still implicitly creating nodes when AddEdge is\ncalled, which allows arbitrary ordering of AddEdge/AddNode calls, but\non explicit calls to AddNode the node is also marked as being explicitly\nadded.\nThis information is later used to implement ImplicitNodeReferences which\nreturns all invalid references in the graph.\n\nChange-Id: Ia19560b98d00dcc10b5d0ad0e12b212bea586c04\nReviewed-on: https://review.monogon.dev/c/monogon/+/1507\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "0b3aac94581f63b3024b261fa6a9f298d0cca52b",
      "tree": "5d08ccdc172f131c99b7acaabb108d2d4d4ce53b",
      "parents": [
        "cf33f6805a7842a1aa7fac377468d9ca54f8d05b"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 16 16:49:56 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Mar 20 11:23:46 2023 +0000"
      },
      "message": "g/a/toposort: add topological sorting pkg\n\nThis adds a package which implements topological sorting.\nThere are existing Go packages out there which do this, but all of\nthem have various shortcomings, either in the API or in\nperformance or stability.\n\nThis uses a fairly simple DFS-based algorithm for doing the majority\nof the work. It uses generics for the nodes to allow for flexibility and\nis covered by a fuzz test to check for correctness.\n\nChange-Id: I4ae3f0b97ef801350b87cdae3a3d9a1ba63830e3\nReviewed-on: https://review.monogon.dev/c/monogon/+/1351\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    }
  ]
}
