)]}'
{
  "commit": "76003f807b24a22476b14bc308939fc62e1ad6a2",
  "tree": "24fc636b5c47569aa8e64119bd4b1f81a794c9ab",
  "parents": [
    "e30d7d08548fe233cacff5870971f08318ff9646"
  ],
  "author": {
    "name": "Serge Bazanski",
    "email": "serge@nexantic.com",
    "time": "Thu Jun 17 16:39:01 2021 +0200"
  },
  "committer": {
    "name": "Sergiusz Bazanski",
    "email": "serge@nexantic.com",
    "time": "Wed Jun 30 12:29:59 2021 +0000"
  },
  "message": "m/n/core/curator: implement leader election\n\nThis implements the leader election functionality subset of the curator.\nIt does not yet implement any business logic, just the switchover\nbetween acting as a leader and a follower.\n\nTest plan: implements an integration test for the leader election with\nan in-memory etcd cluster.\n\nChange-Id: Id77ecc35a9f2b18e716fffd3caf2de193982d676\nReviewed-on: https://review.monogon.dev/c/monogon/+/184\nReviewed-by: Lorenz Brun \u003clorenz@nexantic.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "24200d8eecc79b882cdbde1c0cc419cb979209a4",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/BUILD.bazel",
      "new_id": "be34ea0f21711e5aac74c8a35b55d7656b24991b",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "eede40f69e257a47f7fd2d64cb333d6de6d51a01",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/cluster/manager.go",
      "new_id": "cc98d8e31eb6e8f590dd983c20c6ddd4e3a34d42",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/cluster/manager.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7ff9a0e3bee90241a662ee034b8a56bb2581b5f0",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fe7aabf790378a855f753ef7e45cbdae02c3b42e",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/curator.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6ce489d9ae0e8f818b4b560316aadc4997109dbe",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/curator_test.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d926d560ea9efa8e6f1f78c72978796a4eef42c0",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/proto/private/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e7d7c202bfe71a4607cf5ac84a577e96794eb9a0",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/proto/private/lock.proto"
    },
    {
      "type": "modify",
      "old_id": "eb4c6c7dd9f169d12578e496a1140ba0e110a334",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/main.go",
      "new_id": "d9f408ef00c78106e53633503ff9871ce42000e0",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/main.go"
    }
  ]
}
