)]}'
{
  "commit": "c1b6df499c0e03d8d65b6570c2dcddb908752f7a",
  "tree": "17d045c8f96dd2d77aef785653ac1f937142c714",
  "parents": [
    "e4c48544e908e78efdb00c8c507c251be26c4ab9"
  ],
  "author": {
    "name": "Jan Schär",
    "email": "jan@monogon.tech",
    "time": "Thu Mar 20 08:52:18 2025 +0000"
  },
  "committer": {
    "name": "Jan Schär",
    "email": "jan@monogon.tech",
    "time": "Mon Apr 07 10:21:53 2025 +0000"
  },
  "message": "osbase/fat32: adopt structfs\n\nChange the external interface of the FAT32 writer to take a\nstructfs.Tree instead of a FAT32-specific data structure. Producers of\nfile system data are no longer specific to FAT32.\n\nWith these changes, the blkio package becomes obsolete. The\nLazyFileReader did not actually work as intended when used with\nosbase/fat32, because fat32 copies data with io.CopyN and thus stops\nreading before reaching EOF, so the LazyFileReader is never closed. The\nnew Blob interface requires the consumer to explicitly Open and Close.\n\nChange-Id: I9a71a5f0bddf36ac38c656659e6dcfe520b88fb0\nReviewed-on: https://review.monogon.dev/c/monogon/+/4037\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7e7614d68dd593fb11c1b06f3f3b9cabe3551415",
      "old_mode": 33188,
      "old_path": "cloud/agent/BUILD.bazel",
      "new_id": "3d342aea3a78d03b084218aacc4f283d61a4db18",
      "new_mode": 33188,
      "new_path": "cloud/agent/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "cdc8fa54b142aa7ca9301509865eb8159f51edf7",
      "old_mode": 33188,
      "old_path": "cloud/agent/install.go",
      "new_id": "914b0be19d818db6fb11219464ac075c935a4d04",
      "new_mode": 33188,
      "new_path": "cloud/agent/install.go"
    },
    {
      "type": "modify",
      "old_id": "bfa7baaba32f2bee8fa2a9b8f7e2b25d4879a978",
      "old_mode": 33188,
      "old_path": "cloud/agent/takeover/e2e/BUILD.bazel",
      "new_id": "b83b13144201e1ea8e61281b1a3498e37a9d88f6",
      "new_mode": 33188,
      "new_path": "cloud/agent/takeover/e2e/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "9ab6769a0d948e150e46d063aafb554fc0aa00dd",
      "old_mode": 33188,
      "old_path": "cloud/agent/takeover/e2e/main_test.go",
      "new_id": "756eb40efb7b946f7eacdb47af3746b7d8028c7c",
      "new_mode": 33188,
      "new_path": "cloud/agent/takeover/e2e/main_test.go"
    },
    {
      "type": "modify",
      "old_id": "f4c5c15af627cbb5a21f568c79af285231d7277d",
      "old_mode": 33188,
      "old_path": "metropolis/cli/metroctl/BUILD.bazel",
      "new_id": "bd7ab70b557549a806499b6cc90b8bc543cc065e",
      "new_mode": 33188,
      "new_path": "metropolis/cli/metroctl/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "a34e470c0982888535dfcceb03c5a96a46557783",
      "old_mode": 33188,
      "old_path": "metropolis/cli/metroctl/cmd_install.go",
      "new_id": "1b9b8cbf2bf7db9b0c0d1398d2a183780bea3ba5",
      "new_mode": 33188,
      "new_path": "metropolis/cli/metroctl/cmd_install.go"
    },
    {
      "type": "modify",
      "old_id": "efd1fd769866bf85974ff69295d1182753e2e22b",
      "old_mode": 33188,
      "old_path": "metropolis/cli/metroctl/cmd_install_ssh.go",
      "new_id": "f0a537962f4d6e28907376828af206977e345404",
      "new_mode": 33188,
      "new_path": "metropolis/cli/metroctl/cmd_install_ssh.go"
    },
    {
      "type": "modify",
      "old_id": "3a599a70e7f61dd0cfd781bf109d84035cb381c1",
      "old_mode": 33188,
      "old_path": "metropolis/cli/metroctl/core/BUILD.bazel",
      "new_id": "73527d561ffb33a988ab8165296cbdf9156bbe71",
      "new_mode": 33188,
      "new_path": "metropolis/cli/metroctl/core/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "190f66a2e991db9faeb272af93ec4fbc67287a95",
      "old_mode": 33188,
      "old_path": "metropolis/cli/metroctl/core/install.go",
      "new_id": "5d43a893cf09b4f076d61b9a0f4313badad08689",
      "new_mode": 33188,
      "new_path": "metropolis/cli/metroctl/core/install.go"
    },
    {
      "type": "modify",
      "old_id": "fe58518978b4739c2dea7068fa04a8625b87abdd",
      "old_mode": 33188,
      "old_path": "metropolis/cli/takeover/BUILD.bazel",
      "new_id": "c262164a5e8d8530975a220f918dc6caf5629204",
      "new_mode": 33188,
      "new_path": "metropolis/cli/takeover/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "b0859474d7f140ae0cf306f6b2c5b51c97d27cb1",
      "old_mode": 33188,
      "old_path": "metropolis/cli/takeover/e2e/BUILD.bazel",
      "new_id": "ae4810b6ea6179a7292d3cdd5b1ee2daa824a331",
      "new_mode": 33188,
      "new_path": "metropolis/cli/takeover/e2e/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "1ba5354d4392710f7a4f13d173382befa6da620a",
      "old_mode": 33188,
      "old_path": "metropolis/cli/takeover/e2e/main_test.go",
      "new_id": "afce5156070834d427c28fe180c12be473f9ba3c",
      "new_mode": 33188,
      "new_path": "metropolis/cli/takeover/e2e/main_test.go"
    },
    {
      "type": "modify",
      "old_id": "005b590b741fc7ba80f59d04b751781e85c436a2",
      "old_mode": 33188,
      "old_path": "metropolis/cli/takeover/install.go",
      "new_id": "2b760956a2a7e9c889be985893cae20da39bcd23",
      "new_mode": 33188,
      "new_path": "metropolis/cli/takeover/install.go"
    },
    {
      "type": "modify",
      "old_id": "5792326729bc960945e8c2aa9737b23e6c6d19c9",
      "old_mode": 33188,
      "old_path": "metropolis/installer/BUILD.bazel",
      "new_id": "fe80669d94416a308f3f47dbc438300936d9bba2",
      "new_mode": 33188,
      "new_path": "metropolis/installer/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "e9956fd7b3cefae4087da8acf4eda69930936d82",
      "old_mode": 33188,
      "old_path": "metropolis/installer/main.go",
      "new_id": "216f99cf47ac484b93c3377efea6289ae01734e2",
      "new_mode": 33188,
      "new_path": "metropolis/installer/main.go"
    },
    {
      "type": "modify",
      "old_id": "7f7ad54329ab687e8a2d1be81407eec555a26400",
      "old_mode": 33188,
      "old_path": "metropolis/installer/test/BUILD.bazel",
      "new_id": "7b7828d139430d1ee008532c4ccc45479d4ea999",
      "new_mode": 33188,
      "new_path": "metropolis/installer/test/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "766c839c3253e1eaaf1431db0a0164aeabf5eecf",
      "old_mode": 33188,
      "old_path": "metropolis/installer/test/run_test.go",
      "new_id": "cd8785230d5aff3889b2cc8f0ac3023984d2dcd2",
      "new_mode": 33188,
      "new_path": "metropolis/installer/test/run_test.go"
    },
    {
      "type": "modify",
      "old_id": "3f6aa66fa1a95703a66a124e3aa46c3f0aa96621",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/update/e2e/BUILD.bazel",
      "new_id": "83716d16c5bf7f571d22376bb85047284f54d935",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/update/e2e/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "f7d0e363dc26458b132c83ae84f59dbc3bdd08ed",
      "old_mode": 33188,
      "old_path": "metropolis/node/core/update/e2e/e2e_test.go",
      "new_id": "4a1c6a2b7695323d7ba970360295837d1c5f247d",
      "new_mode": 33188,
      "new_path": "metropolis/node/core/update/e2e/e2e_test.go"
    },
    {
      "type": "delete",
      "old_id": "8b23a34e4357a025e77bd8896566a3186d901a26",
      "old_mode": 33188,
      "old_path": "osbase/blkio/BUILD.bazel",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "a4669abe959078180beaecfadad0abf593f92966",
      "old_mode": 33188,
      "old_path": "osbase/blkio/blkio.go",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "a822c62450ea3a75e36494a563fa73a35f0cd45a",
      "old_mode": 33188,
      "old_path": "osbase/build/mkimage/BUILD.bazel",
      "new_id": "aba561ecf3ce3dd21689df12fce95e9ffcce7e37",
      "new_mode": 33188,
      "new_path": "osbase/build/mkimage/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "79e2920fdf5536b23a84e99ccdc8c0c4498b9745",
      "old_mode": 33188,
      "old_path": "osbase/build/mkimage/main.go",
      "new_id": "bef75174691937903ea7f4ac3254c3e32d07931a",
      "new_mode": 33188,
      "new_path": "osbase/build/mkimage/main.go"
    },
    {
      "type": "modify",
      "old_id": "cfcf096ad44067de564875aea17db63a78e71148",
      "old_mode": 33188,
      "old_path": "osbase/build/mkimage/osimage/BUILD.bazel",
      "new_id": "f85fa2098447aacf19e044f0aea783ee5ecd8695",
      "new_mode": 33188,
      "new_path": "osbase/build/mkimage/osimage/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "71b54995e90e580c7bb09df0c43e81c797b732d2",
      "old_mode": 33188,
      "old_path": "osbase/build/mkimage/osimage/osimage.go",
      "new_id": "4cd3952b2713cb6538f2f7a79340d0c1e9987bb8",
      "new_mode": 33188,
      "new_path": "osbase/build/mkimage/osimage/osimage.go"
    },
    {
      "type": "modify",
      "old_id": "1e0e909eab57ee8f7dac236e7f5ad754ad9cef27",
      "old_mode": 33188,
      "old_path": "osbase/fat32/BUILD.bazel",
      "new_id": "ac3eb96f9e6530846d0bd5a5b13a0ec9c90c3e3a",
      "new_mode": 33188,
      "new_path": "osbase/fat32/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "1d988bef4d14a45111de86aff799aaef505a8168",
      "old_mode": 33188,
      "old_path": "osbase/fat32/dos83.go",
      "new_id": "b8d219dd68f8a91db1f57ff07ad5504631f1524f",
      "new_mode": 33188,
      "new_path": "osbase/fat32/dos83.go"
    },
    {
      "type": "modify",
      "old_id": "e5c2e586fa79152548903ca8f36efcf77358ad58",
      "old_mode": 33188,
      "old_path": "osbase/fat32/fat32.go",
      "new_id": "340bb454a95a9b57aa0523006c08b6645e4d1f3d",
      "new_mode": 33188,
      "new_path": "osbase/fat32/fat32.go"
    },
    {
      "type": "modify",
      "old_id": "d4908bee43dfa941064e078ace8c46b6a6a57c90",
      "old_mode": 33188,
      "old_path": "osbase/fat32/fsck_test.go",
      "new_id": "5043003abdf778758e54b67a26ae2328670f3e3e",
      "new_mode": 33188,
      "new_path": "osbase/fat32/fsck_test.go"
    },
    {
      "type": "modify",
      "old_id": "ffe767281690b3ad1c5bde5c170483e8bbe6d3c3",
      "old_mode": 33188,
      "old_path": "osbase/fat32/linux_test.go",
      "new_id": "002ac2c4807ee93f207498fa96ee28d79527d74f",
      "new_mode": 33188,
      "new_path": "osbase/fat32/linux_test.go"
    }
  ]
}
