)]}'
{
  "log": [
    {
      "commit": "5fdca5678df575870c5c2def673669e894b5158e",
      "tree": "c4a02abab427e96b568ff5b22f8c77c0882c33ea",
      "parents": [
        "9d2f3c681fee76b54dc202da6ca140151f588be8"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 14 11:33:29 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 06:55:58 2025 +0000"
      },
      "message": "metropolis: use new OS image format for install\n\nThis switches the USB and SSH installation methods to the new OS image\nformat based on OCI artifacts.\n\nWhen stored on disk, the new format consists of a directory containing\nan OCI layout, instead of a single file. This means that all steps which\ncopy or upload an image now need to handle a tree of files.\n\nChange-Id: I526d32f5c50bd74f513f785118768a56b2655fa0\nReviewed-on: https://review.monogon.dev/c/monogon/+/4090\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "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"
    },
    {
      "commit": "ec61a478161002b8cba1a21d152f3285355fa667",
      "tree": "055a6294ef297b8e992941c92d27968e9592194f",
      "parents": [
        "f07d1b373463bb30a068a1186176277a12a975bc"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Mar 24 18:54:00 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Mar 25 11:48:25 2025 +0000"
      },
      "message": "m/cli/takeover/e2e: test with metroctl\n\nThis extends the starting end of the takeover end-to-end test by\nexecuting metroctl instead of duplicating some of the logic in the test.\n\nVM logs are now printed with %q such that that terminal escape codes are\nprinted escaped instead of raw. Without this, parts of the logs are\nobscured after a new kernel boots.\n\nChange-Id: I05de3eb2ce142a99815eba6b978dad92772fe10f\nReviewed-on: https://review.monogon.dev/c/monogon/+/4034\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "551a7373e295b30eb7453d51d71b21a5f8bac108",
      "tree": "4039f95ddebafeeadb2547484cdf09df4b5f7668",
      "parents": [
        "a0684409400aa22f39b44a125dc07729e98c4908"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Mar 12 19:13:26 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Mar 13 14:38:51 2025 +0000"
      },
      "message": "treewide: remove rlocationpath workaround\n\nIt is apparently no longer necessary to hardcode these paths.\n\nCloses: https://github.com/monogon-dev/monogon/issues/316\nChange-Id: Ic7ff23266bfab3c4d32e54dfcbabf104c5f524c4\nReviewed-on: https://review.monogon.dev/c/monogon/+/4010\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "6d33a4342a16200d628f30ff91b169927fc2867a",
      "tree": "e65ad23cb6d0b795420b5ec625a757784d4c3e3b",
      "parents": [
        "7887f758de8f9106a484ca59d9734304aa919e36"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 04 14:34:25 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 06 17:03:43 2025 +0000"
      },
      "message": "treewide: add license header and enable haslicense linter\n\nChange-Id: I873a8d4082d75e8f813d8a726a41187eea7a065e\nReviewed-on: https://review.monogon.dev/c/monogon/+/3825\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "156248b949f3da7c8d0f4f46cb97ac7606464952",
      "tree": "ff52faf242a29f1916edad64bca6282f8030ee66",
      "parents": [
        "227c5cbbdd8f682b6e4d4cc661fa0d6e734206f2"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Jan 10 00:27:45 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Jan 10 20:13:30 2025 +0000"
      },
      "message": "treewide: format repo with buildifier\n\nChange-Id: Ia7aebeb7bba5b119c9157d1ad805cc477bcbb68a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3774\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "7a1b27df41a9729dd9669cdaabd6864afc5e85b7",
      "tree": "fe32eee491bd556f3379ac2fba779d56314f045c",
      "parents": [
        "d0e39cbad2e12cbb23caa7d36ccbd4821285ac51"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 22 23:54:58 2024 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Sep 18 19:39:51 2024 +0000"
      },
      "message": "metropolis/cli/metroctl: implement install ssh\n\nThis implements another way of installing metropolis via ssh. It does\nthis by uploading the files to the target machine and then doing a kexec\ninto the install environment. If it fails at any point it will print the\nerror and reboot.\n\nChange-Id: I1ac6538896709c386b053a84903fa04940c1f012\nReviewed-on: https://review.monogon.dev/c/monogon/+/2079\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    }
  ]
}
