)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6164b91720230816d572fc2ea34f3b7f5fe9653d",
      "old_mode": 33188,
      "old_path": "go/algorithm/toposort/toposort.go",
      "new_id": "0f395128c268c6d119d7adfa74d85a5f6fb59698",
      "new_mode": 33188,
      "new_path": "go/algorithm/toposort/toposort.go"
    },
    {
      "type": "modify",
      "old_id": "d2ec65a059c9f0661637a770fd3799fc6dab7081",
      "old_mode": 33188,
      "old_path": "go/algorithm/toposort/toposort_test.go",
      "new_id": "490ddbfee10b48fc231d3c07bb80e69c3d7436b9",
      "new_mode": 33188,
      "new_path": "go/algorithm/toposort/toposort_test.go"
    }
  ]
}
