)]}'
{
  "commit": "54a5a053f2250c03d8476293ecb98fdb458ee5fd",
  "tree": "acfde3ff61c5181ca89998d725001071f86d9356",
  "parents": [
    "4811e70b3cd8f237c1b57ac85cc4c02b57c82535"
  ],
  "author": {
    "name": "Lorenz Brun",
    "email": "lorenz@monogon.tech",
    "time": "Mon Oct 02 16:40:11 2023 +0200"
  },
  "committer": {
    "name": "Lorenz Brun",
    "email": "lorenz@monogon.tech",
    "time": "Tue Oct 10 15:14:57 2023 +0000"
  },
  "message": "metropolis: implement and use A/B preloader\n\nThis switches over from using the EFI built-in bootloader for A/B\nupdates to using our own EFI preloader due to significant issues with\nin-the-wild EFI implementations.  It is a very minimal design relying\non a single Protobuf state file instead of EFI variables.\n\nChange-Id: Ieebd0a8172ebe3f44c69b3e8c278c53d3fe2eeb4\nReviewed-on: https://review.monogon.dev/c/monogon/+/2203\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "20cf3cd6eb79e9e34bd9a9050e7b0ef12c365452",
      "old_mode": 33188,
      "old_path": "build/platforms/BUILD.bazel",
      "new_id": "4025c0a39b709bfd6fb9cfb72f0ef0405ae2122a",
      "new_mode": 33188,
      "new_path": "build/platforms/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "793f15bfd2a172eaead9bb7be3789bbac881dc7e",
      "old_mode": 33188,
      "old_path": "cloud/agent/BUILD.bazel",
      "new_id": "96e3a38b790072b2030062f0db89ef3ca22e5225",
      "new_mode": 33188,
      "new_path": "cloud/agent/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "c8583ac3fd53f68b8937bc1a67424ad37e3cd343",
      "old_mode": 33188,
      "old_path": "cloud/agent/install.go",
      "new_id": "f209ce3a9dc2fd70b92943f80c9ab4f177765974",
      "new_mode": 33188,
      "new_path": "cloud/agent/install.go"
    },
    {
      "type": "modify",
      "old_id": "17fd8c7c7553d36b915151f01c9d7b303d32748b",
      "old_mode": 33188,
      "old_path": "metropolis/installer/BUILD.bazel",
      "new_id": "400b98e32ff298472382f35e1dba7037b475da46",
      "new_mode": 33188,
      "new_path": "metropolis/installer/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "5481c3ff524effa1fe0ad21b0669732e69f3d6dd",
      "old_mode": 33188,
      "old_path": "metropolis/installer/main.go",
      "new_id": "8aa8836719c83bcb57cd3e20e7cf44d96ead5f7d",
      "new_mode": 33188,
      "new_path": "metropolis/installer/main.go"
    },
    {
      "type": "modify",
      "old_id": "7baa16b82e263126a1ff8a32622d8b13cccc5cc8",
      "old_mode": 33188,
      "old_path": "metropolis/node/build/def.bzl",
      "new_id": "d71279c973185f8fef47a3f4618cf181575db28d",
      "new_mode": 33188,
      "new_path": "metropolis/node/build/def.bzl"
    },
    {
      "type": "modify",
      "old_id": "2c7d699ff10b89658161e233ee465095d8e40822",
      "old_mode": 33188,
      "old_path": "metropolis/node/build/mkimage/BUILD.bazel",
      "new_id": "ad88acba6502a4b8b1c361ca365bbbb57f625c6c",
      "new_mode": 33188,
      "new_path": "metropolis/node/build/mkimage/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "077348e684e68a3cd7ed4cfd877b635785352cb0",
      "old_mode": 33188,
      "old_path": "metropolis/node/build/mkimage/main.go",
      "new_id": "7de951ee5303d48bf2ea0895b6fb8fb05a38ca08",
      "new_mode": 33188,
      "new_path": "metropolis/node/build/mkimage/main.go"
    },
    {
      "type": "modify",
      "old_id": "01c13ac3f024309a9821acb581dbead8603d2ef7",
      "old_mode": 33188,
      "old_path": "metropolis/node/build/mkimage/osimage/osimage.go",
      "new_id": "a09f5d10f3d137eeab774688c4fe957b2e11122c",
      "new_mode": 33188,
      "new_path": "metropolis/node/build/mkimage/osimage/osimage.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2e382fa8f7a4ce41c5feaadfbf0bc528e5e5ca1f",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/abloader/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0068f95ccfdb999da321ea6eacadbb2f3b2a29bb",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/abloader/main.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "54d96cc724eeb9b49400a7d5d81f4228b7c007b1",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/abloader/spec/BUILD.bazel"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "aeaacd5bb987c4692abaed0cf0d972830059e52b",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/abloader/spec/abloader.proto"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f09cd57a1b53b27895263ba3d8d0836b4310056d",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/abloader/spec/gomod-generated-placeholder.go"
    },
    {
      "type": "modify",
      "old_id": "e5069843051b1feca0a1e10ff29fc0d4dcf7e4af",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/update/BUILD.bazel",
      "new_id": "3be122e5c472a2dbf7612b1529056e5b02856d1a",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/update/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "3905036ad0d4b47a4ad9dec8090df2eef3594b8f",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/update/e2e/BUILD.bazel",
      "new_id": "5f2b15fc76a134e0556eec448e0998f556b9284f",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/update/e2e/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "491259ab226612f38eebf541408ecc4c674c54c0",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/update/e2e/e2e_test.go",
      "new_id": "b5de3da366e6fbf6583b8009f4b75d83beece215",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/update/e2e/e2e_test.go"
    },
    {
      "type": "modify",
      "old_id": "75fe752096d08600a3c9899851a0eb6010c937e4",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/update/update.go",
      "new_id": "64867682eade22254e9fde206f9832ddef10d6fe",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/update/update.go"
    },
    {
      "type": "delete",
      "old_id": "8206a221f721d3d005bd0d7d19bfb19db738ecaf",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/update/update_test.go",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    }
  ]
}
