)]}'
{
  "commit": "99f477412a2e701f89f7698be1dd432adcfff17c",
  "tree": "43c088e34cfa9171a5587573f4d824f9d09e0a69",
  "parents": [
    "9d6c4c78bca9da0db7e40e5de776528f3d83a7dd"
  ],
  "author": {
    "name": "Serge Bazanski",
    "email": "serge@monogon.tech",
    "time": "Wed Aug 04 20:21:42 2021 +0200"
  },
  "committer": {
    "name": "Sergiusz Bazanski",
    "email": "serge@monogon.tech",
    "time": "Thu Aug 19 10:20:55 2021 +0000"
  },
  "message": "curator: provisions for implementing multiple gRPC services\n\nWe want to run some other gRPC services on the Curator leader/follower\nimplementations other than just the Curator gRPC service.\n\nThis decouples the local types from implementing a particular gRPC\nservice (instead proxying through an interface) and splits out the\nimplementation of the Curator gRPC service from the main leader objects.\n\nThis should allow us to add an implementation of eg. a Management gRPC\nservice in a testable manner (the only thing we have to dependency\ninject is the leadership struct, and that\u0027s trivial to do with a simple\netcd test server).\n\nChange-Id: Ia0ea65e40a775bf49661d0b99c0185aa83547ed0\nReviewed-on: https://review.monogon.dev/c/monogon/+/260\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "aa9eb95d6dd29342979c0dfd6c7511156a232573",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/BUILD.bazel",
      "new_id": "594989dea8c8949ab74e65148ded3fef101a1511",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "d90727be749f033f6f5d4aa21e7f53e2cf208b74",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/impl_leader.go",
      "new_id": "f42da615db5d42fd0836b969c3cdd6b2e91f2cda",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/impl_leader.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "34dd62b6d68a40e834708ad027430e1caff5cbb8",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/impl_leader_curator.go"
    },
    {
      "type": "modify",
      "old_id": "ae158b937fe6ee9e344306e97336043e89421af8",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/listener.go",
      "new_id": "f2a76f51f9488d085784f7ca6435257c03b88fca",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/listener.go"
    },
    {
      "type": "modify",
      "old_id": "7e998da640828b273f6ff60acaf2da27dde694f2",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/curator/listener_test.go",
      "new_id": "95afe85e4040a87d523180b83e2cd6bc1088842f",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/curator/listener_test.go"
    },
    {
      "type": "modify",
      "old_id": "e15cd6c6cfd48e9379fca40196be49afaa7f5067",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/main.go",
      "new_id": "106bc23c37255cb73a9ecba8630bc2bc0089a19b",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/main.go"
    }
  ]
}
