)]}'
{
  "commit": "e306d780504ae3ddfad3eb852c7adc5ec9757d89",
  "tree": "3e8e2c7a21430777db525c9ed4717a2cab1c114a",
  "parents": [
    "d7d6e0284de38cbeeb185ca17c0853b4b2c10ee9"
  ],
  "author": {
    "name": "Lorenz Brun",
    "email": "lorenz@monogon.tech",
    "time": "Wed Sep 01 13:01:06 2021 +0200"
  },
  "committer": {
    "name": "Lorenz Brun",
    "email": "lorenz@monogon.tech",
    "time": "Mon Sep 06 09:05:40 2021 +0000"
  },
  "message": "m/n/time: add time service\n\nThis adds a bare-minimum time service based on chrony/NTP for keeping\nthe system clock and RTC on Metropolis nodes accurate.\n\nIt also introduces a UID/GID registry in the Metropolis node code\nas this is the first unprivileged service to run on the node itself.\n\nIt does not yet use a secure time source, this is tracked as #73.\n\nChange-Id: I873971e6d3825709bc8c696e227bece4cfbda93a\nReviewed-on: https://review.monogon.dev/c/monogon/+/319\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ee86523fa32aec467bf340fb9fc00b2ac6cc6a6e",
      "old_mode": 33188,
      "old_path": "metropolis/node/BUILD.bazel",
      "new_id": "feade244edfd6f3ddcb55112f0e4dd7bebb27816",
      "new_mode": 33188,
      "new_path": "metropolis/node/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "e0d6d87408c38bd2e828f59286f89b4f88491401",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/BUILD.bazel",
      "new_id": "c1d48ae5dcdc2693a48a684b6529ca25a91be791",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "d37893478fee01933ba14cf72d65c1ae2e1cae38",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/main.go",
      "new_id": "9ed2bebe665d984337662895d1a77440f631662f",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/main.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "05a938a3b7971e82069526a62b98d99416b361a7",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/time/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6c2e90648e731038d77445978434fc4a3b714afc",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/time/time.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b4ddf84f66e53d413f4ffe1070460c095ce4a2d9",
      "new_mode": 33188,
      "new_path": "metropolis/node/ids.go"
    },
    {
      "type": "modify",
      "old_id": "e269c41009bb950bcb02bc471c2215b27c1067a4",
      "old_mode": 33188,
      "old_path": "third_party/chrony/external.bzl",
      "new_id": "64b4f47c6bb1c0a836b59ab9a7ad1b37829a233b",
      "new_mode": 33188,
      "new_path": "third_party/chrony/external.bzl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "third_party/chrony/patches/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2a3dacf546ed3c8e62ba5dc8c8d059c017aa4b64",
      "new_mode": 33188,
      "new_path": "third_party/chrony/patches/disable_defaults.patch"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f9aecb75571cd1746e2a0c336e04670c6a4b0c57",
      "new_mode": 33188,
      "new_path": "third_party/chrony/patches/support_fixed_uids.patch"
    }
  ]
}
