)]}'
{
  "commit": "2930e9966deca2ebcb9b497d4d133ffb6258ed87",
  "tree": "f992bedb41005e2430ae768e83ef8d62c51298ae",
  "parents": [
    "312a2274d58020ef8afdc6f83d9c4e76ce8c59c2"
  ],
  "author": {
    "name": "Mateusz Zalega",
    "email": "mateusz@monogon.tech",
    "time": "Mon Apr 25 12:52:35 2022 +0200"
  },
  "committer": {
    "name": "Mateusz Zalega",
    "email": "mateusz@monogon.tech",
    "time": "Tue May 03 12:11:19 2022 +0000"
  },
  "message": "m/n/c/{cluster,roleserve}: implement Join Flow\n\nThis implements Join Flow for:\n- Registered nodes attempting to re-join the cluster.\n- Nodes bootstrapping the cluster.\n\nSee: Cluster Lifecycle and Integrity design document\n\nChange-Id: I74ab98fdec650c4f6aa59e34a16c0f95745dc0e9\nReviewed-on: https://review.monogon.dev/c/monogon/+/556\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "78078bb253452062443a59779c7dc4d1fd6c9069",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/cluster/BUILD.bazel",
      "new_id": "e8c7ff2289b6c5c3180fe4612256ddf92a275974",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/cluster/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "d51d7d901e5477d9c44d9dbaa0d4c77f77eecef9",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/cluster/cluster.go",
      "new_id": "1de24f3f26a254facdac8b563676a6ff1a2f0ddc",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/cluster/cluster.go"
    },
    {
      "type": "modify",
      "old_id": "d40f1793e3a8c199bc7ed0128ccbd467ea4d6437",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/cluster/cluster_bootstrap.go",
      "new_id": "9de5339fb51a47f6c9f956bdc97deae102d5ca6f",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/cluster/cluster_bootstrap.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0cb68bb3bbfd1aec37b37e8ef4c79653e985ac36",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/cluster/cluster_join.go"
    },
    {
      "type": "modify",
      "old_id": "3acb7d7c25e7bc37def7d5c6141248eeb2aaedf6",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/cluster/cluster_register.go",
      "new_id": "c348c32ffe7835a928b16f9f5b0bdc79298cb60c",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/cluster/cluster_register.go"
    },
    {
      "type": "modify",
      "old_id": "215bfb74b763786aa8ca4ab1b381b15fde87f56c",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/bootstrap.go",
      "new_id": "4b0b743b1a5349354a0be4e6bb3c4a8de1dab445",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/bootstrap.go"
    },
    {
      "type": "modify",
      "old_id": "1c7221f720c7e8ec17fe53b485cccc7671033c68",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/impl_leader_curator.go",
      "new_id": "6f48d457be5340ff4afe3e15597629ffab33d3ba",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/impl_leader_curator.go"
    },
    {
      "type": "modify",
      "old_id": "13564c40e155ab6f570d27ebca85cbc63f0c05cf",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/impl_leader_test.go",
      "new_id": "2894b290ef8165e224fb6f81e4ecd75dc7e6fed2",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/impl_leader_test.go"
    },
    {
      "type": "modify",
      "old_id": "82f9859c09e92a20fa6afd04043894098924a577",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/state_node.go",
      "new_id": "99899875225c3576add8a0e043aaded60cd78ca7",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/state_node.go"
    },
    {
      "type": "modify",
      "old_id": "862e794c3f99bf513b72b41b21e0f989d76843d9",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/identity/identity.go",
      "new_id": "8749b6d8c6c67ce98e4c1189e1fc4e99eb4a908f",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/identity/identity.go"
    },
    {
      "type": "modify",
      "old_id": "41882027609a1d89e98dec7d498381701e59aecf",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/roleserve/BUILD.bazel",
      "new_id": "413d9a0d137c4e091f68965e2803bff3357d9869",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/roleserve/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "2c2e885e2b6a63822f96ff2bc5459ee006c8cad0",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/roleserve/roleserve.go",
      "new_id": "667564da1995e31486b2ba4103bcf21ad6263c63",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/roleserve/roleserve.go"
    },
    {
      "type": "modify",
      "old_id": "4ab1250722fbb387566822f5298f6dc2a5a7c31e",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/roleserve/value_bootstrapdata.go",
      "new_id": "85618bc7da9747c24a4ed1bd008e5ccae133b155",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/roleserve/value_bootstrapdata.go"
    },
    {
      "type": "modify",
      "old_id": "aa5b4a3995042d8a302a77e609757be0e83efc5e",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/roleserve/worker_controlplane.go",
      "new_id": "f1ddadfbc77824e36de256b862d16b87148228d2",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/roleserve/worker_controlplane.go"
    },
    {
      "type": "modify",
      "old_id": "a09b0d3c5df7d04b6d2b02849ec23bb65155e705",
      "old_mode": 33188,
      "old_path": "metropolis/proto/private/private.proto",
      "new_id": "c682311ad4d6199bc92df4b90d80bad463bd8aed",
      "new_mode": 33188,
      "new_path": "metropolis/proto/private/private.proto"
    }
  ]
}
