)]}'
{
  "log": [
    {
      "commit": "8f1efe9a47240058ae639528cb3ced8adfe8b708",
      "tree": "d0605e8dd69c1e3e03a249daf545b34e3ded4997",
      "parents": [
        "3a7a67e3cc2d35d698b8a0dcaef1c52d5e92c173"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 01 01:28:43 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 01 10:52:37 2025 +0000"
      },
      "message": "treewide: migrate to qemu-kvm in toolchain-bundle\n\nChange-Id: I42a10a9adf7bdccb83ef997c6d554140ffaade4b\nReviewed-on: https://review.monogon.dev/c/monogon/+/4052\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "daf9e959b0ac976596640eab6a6ce79bbbccd1e7",
      "tree": "23df07623e9a878e4a2bbd1ddeafecc0b94923fe",
      "parents": [
        "e19d27912839df47bdba0934b079f0a7d75b733c"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jun 23 13:28:16 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jun 25 15:37:52 2025 +0000"
      },
      "message": "m/installer/install: take OCI image in Params\n\ninstall.Params now takes an OCI image. This avoids some duplicate code\nto extract info from the OCI image in all places which create\ninstall.Params.\n\nChange-Id: I2430ce1101befaa1b1a4781f592d06ee015a0f99\nReviewed-on: https://review.monogon.dev/c/monogon/+/4297\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e19d27912839df47bdba0934b079f0a7d75b733c",
      "tree": "8e70b78561b7dbb4d3d3988f0b77541e6409e2b3",
      "parents": [
        "e053036c16678261471539e425c59df0dd251603"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jun 23 12:37:58 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Jun 25 15:37:52 2025 +0000"
      },
      "message": "m/installer/install: move from osbase/build/mkimage/osimage\n\nMove the package osbase/build/mkimage/osimage to\nmetropolis/installer/install. The package contains \"metropolis\" in\nvarious strings, so it fits better in //metropolis than in //osbase.\nThe parent package mkimage no longer exists.\n\nThe rename also removes the name clash with osbase/oci/osimage.\n\nChange-Id: Ia228ab94c937f4c7a5b6eb1fcc77993a594d64b6\nReviewed-on: https://review.monogon.dev/c/monogon/+/4296\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "e08c16075bd39da9194aff89e4e9f479740ae56d",
      "tree": "29ed52fd7a3c76cb0a9d18248bac098ae61e97fa",
      "parents": [
        "a0bd93fa37ccabae99b81bdd604cef1aee7d481d"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jun 17 19:19:33 2025 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jun 19 10:49:00 2025 +0000"
      },
      "message": "m/n/core/network: implement LLDP transmission\n\nImplements simple LLDP transmission-only support for Monogon OS. It\nadvertises enough to do topology discovery through LLDP. Currently it\nsupports MAC address, interface name, node name and product\nname/version. More information can be added in the future.\n\nTested using Wireshark on launch-cluster node/switch traffic.\n\nChange-Id: If5777bc042ef87bd8d26c548324c6de6f14f7270\nReviewed-on: https://review.monogon.dev/c/monogon/+/4282\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "d4817496c23ab0b39b94ffc5a47ba63be0cf23ed",
      "tree": "b21338c9e3adbd055c72fd5000b7c9f1a9799d10",
      "parents": [
        "2caadc7b37bca50bb50d74fd1f181c8e77915f38"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jun 16 15:03:12 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jun 18 12:34:13 2025 +0000"
      },
      "message": "treewide: bump dependencies\n\nChange-Id: Ibe397cb7eb2f2c591cb1affa5272616197a6c31c\nReviewed-on: https://review.monogon.dev/c/monogon/+/4281\nTested-by: Jenkins CI\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\n"
    },
    {
      "commit": "4b8882699a307857c52e2faa3d4dfa544b188cd1",
      "tree": "c6fcc0c145d95d9b5b86feb27a655c040f9dd8af",
      "parents": [
        "b86917b2bdb755de8106aea08841c914d52d3347"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue May 13 09:12:03 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jun 16 15:41:59 2025 +0000"
      },
      "message": "treewide: use architecture-specific UEFI boot path\n\nThe default UEFI boot path depends on the architecture. This change is\nneeded for aarch64 support.\n\nChange-Id: I69916ac5063e963b67ecdcdd814b0678c61da9fb\nReviewed-on: https://review.monogon.dev/c/monogon/+/4195\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "6df40aaf96ec4bcd5567b448109ec0a73cc5b2c8",
      "tree": "d412bad375fa031b3663aefe1b3364f0547734b4",
      "parents": [
        "163525e321a41724b1e457315c5003603957b3c6"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu May 22 15:35:44 2025 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jun 11 19:46:15 2025 +0000"
      },
      "message": "t/linux: use toolchain and platforms\n\nThis allows us to do builds for different platforms consistent with how\nBazel does them. Also uses our own LLVM toolchain instead of the\n\"ambient\" GCC. As bzImages only exist for x86, rename everything to\nImage which is the cross-platform name. For us this is fine as we use\nthe PE entry point which exists for all of these.\n\nBinary path generation is a hack as not all of the ones Linux needs are\nactually available in the rules-based toolchain and we need a special\ncalling convention to work around a bug in LLVM when compiling assembly\nwith preprocessor macros.\n\nChange-Id: I8ed8fa7c1514b9ffbfaedf235e32250e4af40aa4\nReviewed-on: https://review.monogon.dev/c/monogon/+/4215\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "b21bdf9e01a4211cc0b8f91fc7beb113a9ed86c3",
      "tree": "4b5be2005cb81ca338fde86ae0706d935c67b6aa",
      "parents": [
        "d0d5d9dd04574305cf86bf1eb3e787549100ea28"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed May 28 18:37:35 2025 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jun 02 20:51:18 2025 +0000"
      },
      "message": "treewide: delete cloud/ except cloud/agent\n\nbmdb is no longer used in production and would be hard to maintain. The only non-stub provider is Equinix Metal, which is shutting down in 2026, and we are moving away from CockroachDB. Keep the agent, which we\u0027ll need for Monogon Cloud.\n\nChange-Id: If8b35c3ac8cdeed96a2b1814c0de7607e8acec63\nReviewed-on: https://review.monogon.dev/c/monogon/+/4235\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "d0d5d9dd04574305cf86bf1eb3e787549100ea28",
      "tree": "e685757c85066ce4671e125374725093577ea986",
      "parents": [
        "b554dd389e51718d5acf084cd706d32e16f3994d"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Mar 26 22:07:11 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jun 02 18:57:29 2025 +0000"
      },
      "message": "treewide: use Fatal in tests instead of Error\n\nError doesn\u0027t return the goroutine, but these cases are final and should end the test case.\n\nChange-Id: I9d87e268b56acd7d1ff5883bb82bf3d74c309176\nReviewed-on: https://review.monogon.dev/c/monogon/+/4044\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "69b7687c6a755ea017974c7318409970c2822e91",
      "tree": "9fb6c6ffcbb8822a2a943e85ebfd00601bb01fa1",
      "parents": [
        "549b1d3549b05b589d697a53ce2e663f9d87f8e3"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed May 14 16:39:47 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon May 19 08:37:47 2025 +0000"
      },
      "message": "metropolis/node: move misplaced packages out of core\n\nabloader, bios_bootcode and minit don\u0027t run as part of the core process,\nso it doesn\u0027t make sense to have them in //metropolis/node/core.\nThis changes moves these three to //metropolis/node.\n\nChange-Id: I908efb311a138f07a9f1de8e3c23437ff00131ee\nReviewed-on: https://review.monogon.dev/c/monogon/+/4196\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "778cc33e311ab1578b3e1447c10b7d40612a774e",
      "tree": "78e166c6522ab612967f0cf9cde7d4318808873e",
      "parents": [
        "1b6cd6feb2ea0ee9940e59ec787803dae0071b22"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 16:31:40 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Apr 30 10:17:21 2025 +0000"
      },
      "message": "m/n/c/abloader: fix duplicate build\n\nPreviously, the abloader was built twice with different\n@io_bazel_rules_go//go/config:static setting.\n\nChange-Id: I41ebac22613b895fe85f14367bdf0f31c817cafe\nReviewed-on: https://review.monogon.dev/c/monogon/+/4163\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "1b6cd6feb2ea0ee9940e59ec787803dae0071b22",
      "tree": "8fd33a9dd8da12a7524bb24fceef24350663d603",
      "parents": [
        "8ffa54e80544005e0f779c681a8c9dfc6afecfa7"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 15:30:22 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Apr 30 10:17:21 2025 +0000"
      },
      "message": "treewide: replace platform_transition_binary\n\nplatform_transition_binary changes the platform, but does not set\n@io_bazel_rules_go//go/config:static. Instead, build_static_transition\nis now used, which sets both.\n\nA second benefit of this change is that we have fewer places where the\namd64 architecture is mentioned, which should make it easier to enable\nmulti-platform builds.\n\nChange-Id: Id01e0d942a12770b8b34b0e6825f314128149b40\nReviewed-on: https://review.monogon.dev/c/monogon/+/4162\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "4cc3d4d23485f5144f1ee34877c5cc4ae693755f",
      "tree": "c7b8ae03805540f8c78ac99688ba59d2ce9aaa64",
      "parents": [
        "5fdca5678df575870c5c2def673669e894b5158e"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 14 11:46:47 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Tue Apr 29 06:55:58 2025 +0000"
      },
      "message": "cloud/agent: use new OS image format for install\n\nThis switches the Agent installation method to the new OS image format\nbased on OCI artifacts. OS images are now fetched from an OCI registry.\n\nChange-Id: Icd59a2c808fd607b95d8aaa8e60022a27fd2d091\nReviewed-on: https://review.monogon.dev/c/monogon/+/4091\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0175d7ab5a5f0414fa4a472b7cf0e066fe8e5f66",
      "tree": "6c519e0d656373c0fbe273f4e6eeb5747fa329c7",
      "parents": [
        "997faa44e945697717b2eaf22786ba803f741a1e"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Mar 26 12:57:23 2025 +0000"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Apr 07 10:21:53 2025 +0000"
      },
      "message": "osbase/net/sshtakeover: refactor package\n\nThis is an extensive refactoring of the sshtakeover package.\n\nThe package is renamed from //go/net/ssh to //osbase/net/sshtakeover,\nto make it more clear what the package is for and avoid clashes with\ngolang.org/x/crypto/ssh.\n\nThe previous Client type was removed, and Dial is now a top-level\nfunction which takes an ssh.ClientConfig. The previous Connection type\nwas renamed to Client, which makes the naming match ssh.Client.\n\nThe Client interface type was moved to //cloud/shepherd/manager. This\nallows us to add more functions to sshtakeover.Client without breaking\nconsumers of the package, which would need to add dummy implementations\nfor functions which they don\u0027t need.\n\nThe Upload function was renamed to UploadExecutable, and the new Upload\nfunction can be used for files that don\u0027t need to be executable.\n\nThe sftp client is now created at the same time as the client, instead\nof creating a new one for each uploaded file.\n\nChange-Id: I3be9c346713cb4e5c2b33f9c8c9a6f11ca569a75\nReviewed-on: https://review.monogon.dev/c/monogon/+/4047\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\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": "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": "9bd9bd45d58fd615c0c240226e6fb74e406b0d17",
      "tree": "18961f688d41f4098e34231c201f2e96ac35d864",
      "parents": [
        "ffd8c7bb37da9b72eb66a0555e319ca2290ea761"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Feb 14 17:08:52 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 27 07:43:17 2025 +0000"
      },
      "message": "treewide: replace deprecated grpc.Dial with grpc.NewClient\n\nChange-Id: I925912ca1ee01d547fd9c1813eb083a2cd9a590a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3858\nReviewed-by: Jan Schär \u003cjan@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "bed76d97e58becd2aa314a6132c9968efabc16b5",
      "tree": "d9e862bcddf77a913e8bdd3bb361f2fbcd949be5",
      "parents": [
        "8eb0244ed3653b6bcb80a29acb4f9e6b66a272f4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 18 03:04:14 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 25 21:36:11 2025 +0000"
      },
      "message": "osbase/build: move efi.bzl, split and move def.bzl to their corresponding action\n\nThis is a small reorganization to make the osbase/build less dependent on each other.\n\nChange-Id: I8c12f04f3bdc98128c5424f142f452c2e094f2e8\nReviewed-on: https://review.monogon.dev/c/monogon/+/3903\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "24bf6fdd43f3abb5a96d3081753fbdcc6bd3c1de",
      "tree": "f1d31a396adfe2489659ac0743a3e173d44c2a4c",
      "parents": [
        "632049b3e6ffda1039ef569ec2c234a7eadceae4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Feb 12 04:48:24 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 17 13:53:17 2025 +0000"
      },
      "message": "osbase/build: replace label_keyed_string_dict with string_keyed_label_dict\n\nBefore bazel 7.4 the string_keyed_label_dict attribute type wasn\u0027t available. fsspec_core_impl was using a label_keyed_string_dict which is structurally wrong but there was no alternative for it. This replaces that usage.\n\nChange-Id: I36c02c84e6aa2557cd2beb09c07d3ceca501553d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3853\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "5ffa636e48f42aef08bd8d186db2213fc8d0d665",
      "tree": "6c40f21e3e1c52567734de5aa574b92c5ba10e20",
      "parents": [
        "de57e6f273b05ebf9f58bf4a4ca9734038bcad9f"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 28 19:20:06 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 10 16:11:22 2025 +0000"
      },
      "message": "treewide: Fix RPC_REQUEST_STANDARD_NAME and RPC_RESPONSE_STANDARD_NAME\n\nChange-Id: I190ade92c04313961edd4787196568216d028ba8\nReviewed-on: https://review.monogon.dev/c/monogon/+/3818\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@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": "99e15117227f5663d390536118c02fbcc0e71834",
      "tree": "00f534ca904605a66e6ccfa988bfa6a4744db367",
      "parents": [
        "7c0bd0b18e0c857a8af930607b61bde0b68fb55f"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Feb 05 17:38:16 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 06 14:04:05 2025 +0000"
      },
      "message": "treewide: run gofmt -s and enable linter\n\nChange-Id: I90b8ef48c955dccfddc5bbc0a57205b7da844b60\nReviewed-on: https://review.monogon.dev/c/monogon/+/3828\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "f525fa74802d2ea61577b188476bea2d54f816d7",
      "tree": "9603a1111df362b72286e12dc6a0f8f685a349bf",
      "parents": [
        "b51ecdff88528652297cdaeefa9fd94e7d63f093"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 28 15:31:42 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Feb 05 15:45:47 2025 +0000"
      },
      "message": "treewide: Unmark SERVICE_SUFFIX rule exception as todo\n\nWe can\u0027t rename the services as it would be a breaking change.\n\nChange-Id: Ib6db1692e80ddff74819df62824b0d1311f11d7d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3817\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f4d38759600c2f308c4d4c79cfd9b4215d56b34a",
      "tree": "ea31800f2baa3bd6a6db28ca6d106abdf103058c",
      "parents": [
        "3eb7d033642ebaaddccde287d5ad3c8c59f7a576"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 22 21:59:59 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 28 15:44:58 2025 +0000"
      },
      "message": "treewide: Unmark ENUM_ZERO_VALUE_SUFFIX rule exception as todo\n\nWe don\u0027t really have a policy for these, they are chosen arbitrarily.\n\nChange-Id: I705ad309c2a36d794665de2482441858850a1893\nReviewed-on: https://review.monogon.dev/c/monogon/+/3805\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "a10d0cb2c85c0ede60be6cc6d2dc7a66750ddecb",
      "tree": "540bc92832ea12cc8427c0bcd785498dfcc30119",
      "parents": [
        "f408e8123a3919a27d51983973a1bd41eaac1162"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jan 13 14:44:15 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 23 20:14:58 2025 +0000"
      },
      "message": "treewide: Fix ENUM_VALUE_PREFIX rule exception\n\nChange-Id: Ibc2fd66711f6aa347e88e2379c12db1898373700\nReviewed-on: https://review.monogon.dev/c/monogon/+/3804\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "f408e8123a3919a27d51983973a1bd41eaac1162",
      "tree": "2b547a7f492136a810ea6c1391eb3ee9a619f3e8",
      "parents": [
        "20c2ff08e3ec38d2388c80b580a129fc8a851add"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sat Jan 11 08:48:26 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 23 20:13:46 2025 +0000"
      },
      "message": "cloud/agent/api: Unmark MESSAGE_PASCAL_CASE rule exception as todo\n\nCurrently we cannot mark exemptions on a per-line basis. This is tracked by rules-proto-grpc/rules_proto_grpc#398\n\nChange-Id: Ie9ece6539b69edccf1b6b4078977e65e7ffb0b01\nReviewed-on: https://review.monogon.dev/c/monogon/+/3803\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "3b62407486d2c1fe7cd24a5f38e86fb19d1e2fa3",
      "tree": "bfe8bbebd74234a135aa48bb72d071097120c487",
      "parents": [
        "15c46ccb52bc2544d35eee9a80b3c2fb5c0756e2"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Sat Jan 11 07:16:35 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 23 19:05:38 2025 +0000"
      },
      "message": "treewide: add buf_proto_lint_test to all proto_library targets\n\nChange-Id: Iaf6dc22fdbef6fcfd0bedff755bcdb06b56a6631\nReviewed-on: https://review.monogon.dev/c/monogon/+/3800\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": "0996ea85ca6200e1729941d316f7891835871938",
      "tree": "7e570810e91743d5b689aa87118fce7fb56a3cb2",
      "parents": [
        "16ebf144db82c8a57869456d159352e5aa2f4392"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 09 20:57:23 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jan 09 21:19:31 2025 +0000"
      },
      "message": "cloud/shepherd/provider/equinix: fix data race\n\nThis directly accesses the map without using the lock. Adding that fixes\nthe data race\n\nChange-Id: I7d7f8aa59cfa2d564d2702926b05831f7c7ffa87\nReviewed-on: https://review.monogon.dev/c/monogon/+/3770\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "681d5157b955f6b942c620837d1a9e90bdefc983",
      "tree": "254905b461e1545d960fafbdad1ec2c250fc383f",
      "parents": [
        "2edb96aeded0f67904ac9630088454fb12a62317"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 08 00:19:33 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jan 08 20:54:21 2025 +0000"
      },
      "message": "treewide: clean up test static binary targets\n\nThis removes some intermediate targets only used for transitions by\nconsolidating them into a single one.\n\nChange-Id: I46dcbcb731038edd2b67259de1811018f5ba43da\nReviewed-on: https://review.monogon.dev/c/monogon/+/3753\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "8eeae7b7fb8f98497caa5c69f9d6528fbdd81281",
      "tree": "ca22c3af862b7f6641922b9878d3632c1fd561e4",
      "parents": [
        "5241968495198eb1957b893071eac3d2bb7ca1b4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Dec 09 22:52:55 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Jan 03 15:40:32 2025 +0000"
      },
      "message": "cloud/shepherd/manager: fix data race\n\nChange-Id: I74dfe7ebd274a2014df827ae804d02cded3af090\nReviewed-on: https://review.monogon.dev/c/monogon/+/3689\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "1f51cf42fcd4d7bb7f4b103c797c438bfa7b0098",
      "tree": "8baeed7e76e82440e9217ea7055d04af0ba14435",
      "parents": [
        "39f4f5c360e7a286bff4adaeabc52393dc28dc22"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Oct 01 17:04:28 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Oct 31 14:09:31 2024 +0000"
      },
      "message": "treewide: update rules_rust to v0.53.0\n\nThis updated our patches for rules_rust, removes a transition as it can\nbe replaced with the \"platform\" field in the rust_binary rule. This then\nallows us to correctly reference it in all targets that depend on it.\nAdditionally the -target parameter is replaced inside the llvm-efi\ntoolchain with --target\u003d.\n\nChange-Id: Ie98753e505736c9ef28ff92fa1c5aa5b3612aec3\nReviewed-on: https://review.monogon.dev/c/monogon/+/3473\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@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"
    },
    {
      "commit": "d0e39cbad2e12cbb23caa7d36ccbd4821285ac51",
      "tree": "7d233926774a9af8ca065a7dacc533f22f6a5a85",
      "parents": [
        "e4b1d20497b31ce639b6d8d8fb7079ea49686144"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Sep 16 16:14:00 2024 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Sep 18 19:39:51 2024 +0000"
      },
      "message": "go/net/ssh: allow multiple AuthMethods\n\nChange-Id: Icdd8c12bc959f87271db4abba3219edd0ea1b7ca\nReviewed-on: https://review.monogon.dev/c/monogon/+/3434\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "3c5d0635f855f16780792a6be311f71b4d59f20b",
      "tree": "4a48292bf17a874f2d627901ee4f7e9145c5b040",
      "parents": [
        "a036c4e792e4b497c512991291b0cc18bc12b5e3"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Sep 12 10:49:12 2024 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Sep 16 14:03:22 2024 +0000"
      },
      "message": "osbase/logtree.LeveledLogger -\u003e go/logging.Leveled\n\nThis factors out the common leveled logger interface out of the logtree.\nWe want to use the same interface outside of logtree/supervisor usage\nwithin the resolver code, which will be exposed to clients.\n\nChange-Id: I299e76d91e8cefddf8f36f1e58432418c4694df2\nReviewed-on: https://review.monogon.dev/c/monogon/+/3411\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "58321127dc8e4c44cfb0eee372a313b277857a2e",
      "tree": "2cc12cfba716bd5b2501603602a299907dc66394",
      "parents": [
        "154e6d90cd52d48d274e0fe14f070342a6c5b2b8"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Sep 10 02:26:03 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Sep 12 13:56:56 2024 +0000"
      },
      "message": "cloud/agent: migrate to bringup package\n\nChange-Id: Ibe89c37cae058395723c9ed5ad5914d62a9af891\nReviewed-on: https://review.monogon.dev/c/monogon/+/3392\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "10ef8f93d9c3acc3307819b679578f50c6798559",
      "tree": "aa957dd6625fac3c0afc62f17b9d8332fd3473d0",
      "parents": [
        "1b1d95d14cb8727cd8c6a1b3efe88cef98b7bd0a"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Aug 13 15:35:10 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Aug 22 12:05:26 2024 +0000"
      },
      "message": "treewide: move //net to //osbase/net\n\nThe net package contains the utility to dump a network configuration in\nproto format. It should be in osbase.\n\nChange-Id: I4d25d9c7d600f4a04b9b79bd1ba98286bf9daec3\nReviewed-on: https://review.monogon.dev/c/monogon/+/3313\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "91bf1c89cbb61cf9f8183306196bfda97dd852a5",
      "tree": "6c2c49d69e6db68917f2170055ddae5496664093",
      "parents": [
        "a48bd3c3220063ed6beecf0b36ef6959f79f3790"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Mon Jul 29 17:31:33 2024 +0200"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@monogon.tech",
        "time": "Wed Aug 21 11:10:01 2024 +0000"
      },
      "message": "treewide: integrate new DNS server\n\nThis integrates the new DNS server into the network service, replacing \nCoreDNS.\n\nChange-Id: I1d2e0fd3315dc2c602a8f805ed701633799e9986\nReviewed-on: https://review.monogon.dev/c/monogon/+/3260\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "c2290c2e21ee5615d341d56799516829c2fea540",
      "tree": "fdbf849c7e459508b844c7aff2a33e79f4c1b12e",
      "parents": [
        "be0b4c9158371b29c21badc5702ee50ed8179935"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Aug 15 19:56:00 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Aug 20 13:03:42 2024 +0000"
      },
      "message": "treewide: move build helper to more fitting places\n\nChange-Id: I3d0cfe9283222d403ae369ec9db09201ad511e15\nReviewed-on: https://review.monogon.dev/c/monogon/+/3327\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "6920c47bdd3cd6a0f78b4815bc6378c98c9d159e",
      "tree": "a0cae7630c3e3e3250660e25c4514b12c02a3092",
      "parents": [
        "cc27faac73b1bff4b0d31ffacb0d938022db75ea"
      ],
      "author": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Sat Aug 10 19:40:35 2024 +0200"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Aug 19 13:11:09 2024 +0000"
      },
      "message": "Document top-level directories\n\nChange-Id: I52889e4823cbeb841c7dc9da12b5fe4c6a79d663\nReviewed-on: https://review.monogon.dev/c/monogon/+/3310\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "cc27faac73b1bff4b0d31ffacb0d938022db75ea",
      "tree": "d081a0655a5cebd62fc19e4ce9d67515e939e626",
      "parents": [
        "5748bd9df1a0c92c1fb04056a6c2d88809741026"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Aug 01 02:18:35 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Aug 13 14:39:14 2024 +0000"
      },
      "message": "m/n/b/mkimage/osimage: rename osimage.Create to osimage.Write\n\nWe aren\u0027t creating an osimage, we are writing it to a disk.\n\nChange-Id: If3769e18dbe988556b0c607ad82b734f21637836\nReviewed-on: https://review.monogon.dev/c/monogon/+/3294\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "82e6af71ad2b7927de8d754799271ee9f39506f9",
      "tree": "4da4ec95a6e4c5f58957c555d8646e46dbb25c6d",
      "parents": [
        "bceb1604c4d6ce1396c63083d2fd8aae98346cf3"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 23 00:05:42 2024 +0000"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Aug 13 12:43:45 2024 +0000"
      },
      "message": "treewide: replace hardcoded runfiles paths\n\nWe hardcoded some of the runfiles paths to find specific files. This replaces the hardcoded paths by a call to rlocationpath. This prevents running a target without the correct dependencies at build time instead of at runtime\n\nChange-Id: I7ce56935ac80be6b28b824ccb0781ab401bd6521\nReviewed-on: https://review.monogon.dev/c/monogon/+/3301\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "93ba80788f4599aa4afbf9937224046e96dd1713",
      "tree": "dc3c66f241b8487c71233960a2fbcbd8e0bc2ad7",
      "parents": [
        "194c871cdcdbc3a84cd19ae22d14cacff5495a09"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 22 20:58:20 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jul 24 11:52:55 2024 +0000"
      },
      "message": "treewide: fix \"could not merge expression\" from gazelle\n\nThis isn\u0027t any real bugfix, but more of a style thing. Gazelle can\u0027t work with select or glob statements (bazelbuild/bazel-gazelle#1735), but will work fine with them and even ignore them if set to # keep. This adds that directive to make gazelle less verbose when running.\n\nChange-Id: I7c638867d6b566e1d398eef37aff2316bf90a00f\nReviewed-on: https://review.monogon.dev/c/monogon/+/3241\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "5285c278b21745b2186fd91ed95af0877c9929c7",
      "tree": "d5efe2135e51103608496d2a1de0939efb5032ac",
      "parents": [
        "afeb4c4e3080228015e4bcae85269c69ad8b49dd"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jul 17 21:37:59 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 22 21:25:58 2024 +0000"
      },
      "message": "cloud/bmaas/server/api: fix placeholder content\n\nThis just removes a small annoying error message from gazelle output.\n\nChange-Id: I7678013aa0dc324423a0c5607dfd559a45756b83\nReviewed-on: https://review.monogon.dev/c/monogon/+/3229\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "3325b4b940370ad4282fdaa6027a5672ff8fdc2a",
      "tree": "7308d80e86a0d0ea34a5d2d5c8dac8cb2dd8efeb",
      "parents": [
        "41b244857ee793cbf74552ec39f2ff614a686a56"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 15 19:19:49 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 22 21:25:58 2024 +0000"
      },
      "message": "workspace: bump bazel_gazelle to v0.37.0\n\nChange-Id: I45a7769d80781075fdfb1c438240a75629dd572a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3220\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "44fdf7fee72fd7f0e179974f6245edc31620a7ae",
      "tree": "e045a3d3a50efdfc1b778a53b19e9833ef68e582",
      "parents": [
        "94209ed222310ff8c56652dffe53723274878190"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Jul 03 20:30:43 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jul 11 12:01:48 2024 +0000"
      },
      "message": "cloud: add multirun for cloud image push\n\nThis change adds multirun as dependency to allow us to push\nmultiple images with one bazel target.\n\nChange-Id: Ie151286be6c2c254d4e87657787bb76a57faa129\nReviewed-on: https://review.monogon.dev/c/monogon/+/3204\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "9f21f5396aa18bc9f2f83c867ff883f49bbf02ae",
      "tree": "c232f42c84bd6b7ace576261a188134cb0c69771",
      "parents": [
        "f430fbfe35b70283090b6174cf5a920163c0148c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 07 15:14:20 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jul 04 12:19:37 2024 +0000"
      },
      "message": "treewide: introduce osbase package and move things around\n\nAll except localregistry moved from metropolis/pkg to osbase,\nlocalregistry moved to metropolis/test as its only used there anyway.\n\nChange-Id: If1a4bf377364bef0ac23169e1b90379c71b06d72\nReviewed-on: https://review.monogon.dev/c/monogon/+/3079\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "327cdbaec24fe9eddf6cb7589acbe7e8612eb6a4",
      "tree": "c2f3a0ee4dec46da45708da7547b71e094cfb993",
      "parents": [
        "966f5eae18326ca6efd6ca9f90013ba8d2d25ac0"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 21 13:51:32 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu May 30 18:38:30 2024 +0000"
      },
      "message": "cloud: fix %v in cases where we should use %w\n\nChange-Id: I161fe87fbc2bf8c4c2c7756074fc1050f268121e\nReviewed-on: https://review.monogon.dev/c/monogon/+/3099\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "3b5a917c5a1ac49acad50eeacb5cf275efc3631e",
      "tree": "1da59c672acf3b68aab81fae38c6b6e5929b82a2",
      "parents": [
        "988403453448d27f6df6eea0a232e97c2a2e739b"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu May 23 13:33:52 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu May 23 12:44:02 2024 +0000"
      },
      "message": "treewide: initialize empty structs with var\n\nChange-Id: I72d3993eaf5fe57c77b1dda8218e36a8cc11813d\nReviewed-on: https://review.monogon.dev/c/monogon/+/3108\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "de12c7ef5833ae349d8f39c8116431a286838fd7",
      "tree": "4d379b1e6c0851b646f983cdb4c6f61b16588992",
      "parents": [
        "d20ddccddf601c2a34cc5238bd82b6a4a1744502"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 25 18:00:40 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 14 21:12:21 2024 +0000"
      },
      "message": "cloud/equinix/cli: add list command\n\nThis also replaces the packngo library with our fork\n\nChange-Id: I7ef23b840ce0de01109ab5764ed2c23feff72e49\nReviewed-on: https://review.monogon.dev/c/monogon/+/3060\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b765f24f8f1c93b817c8a3f4f1eef2514562b140",
      "tree": "1afe10327fcbbefa99de0bf3bfcb0d28ca77abca",
      "parents": [
        "da1c950d5099b7384d9239d3590393080e9bc8f4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed May 08 01:40:02 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon May 13 10:07:41 2024 +0000"
      },
      "message": "metropolis/cli/pkg/context: replace with signal.NotifyContext\n\nChange-Id: I457ccb83c7e25988755bb9463a8c83fc328a722b\nReviewed-on: https://review.monogon.dev/c/monogon/+/3081\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "513df18bf6ae7ad0cc17807674ee561c518d0654",
      "tree": "2f9ce2af2964680376b62b183d65a93ae615c2e9",
      "parents": [
        "a21783f4a1c8f67eea0ca354e31f73ccfd682688"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 18 23:44:50 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 22:29:11 2024 +0000"
      },
      "message": "treewide: errors variables should be prefixed with Err\n\nChange-Id: Ic277f98ebcd03356500ce7daba199738e701e81c\nReviewed-on: https://review.monogon.dev/c/monogon/+/3025\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "73e9882a907654dbecfb55ea0f30030e0fedbb1e",
      "tree": "b69ef493fcdf76614ed82d64f1a9ec8c79bb0375",
      "parents": [
        "07541ae311e9477cf1e5a20af82a81ee77840afe"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 18 23:13:49 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 22:29:11 2024 +0000"
      },
      "message": "treewide: cleanup error string formatting\n\nChange-Id: I9012ba58dded916984468219b214200144a439b9\nReviewed-on: https://review.monogon.dev/c/monogon/+/3023\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "2d5ae8fda8eb566280ec81a8368cc524b809a8b4",
      "tree": "a0a6165fc87599fdd9dc198d9ad35604fc7fcc0b",
      "parents": [
        "096654adb312a1bc858a0f886b8fba755eab52b4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 18 23:11:53 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 22:29:11 2024 +0000"
      },
      "message": "treewide: add nolint after t.Skip/log.Fatal to make staticcheck happy\n\nChange-Id: I8b3dcff93fcb1d11673f327252693e6aba26c239\nReviewed-on: https://review.monogon.dev/c/monogon/+/3020\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "096654adb312a1bc858a0f886b8fba755eab52b4",
      "tree": "bb753ba3a24eab6a63b7f7c1757f35f0540b880a",
      "parents": [
        "a355821fa06a7f68ff8ddca6050f71e92e4939a5"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 18 23:10:19 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 22:29:11 2024 +0000"
      },
      "message": "treewide: add missing error handling\n\nChange-Id: I55ccf3ff490b58f6af93e665c668428acddc8d65\nReviewed-on: https://review.monogon.dev/c/monogon/+/3019\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "2d0230524e96bdca53354fe191554342674c5fc4",
      "tree": "43f1a485803af9bd44ea4cf69ae56effce0bbdb8",
      "parents": [
        "e4c60f9f823202d3703a2d1e393c15ed036796a2"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 18 23:05:51 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 22:29:11 2024 +0000"
      },
      "message": "cloud/bmaas/bmdb/reflection: don’t use fmt.Sprintf for string types\n\nChange-Id: Ic5a0619fe3a83ba0852770c46277e0804295ada7\nReviewed-on: https://review.monogon.dev/c/monogon/+/3014\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0cf8944e8539a575ce280d70d54bf4ecf16b8228",
      "tree": "31a87285fcdbc782a00a8378ae3208f701106c86",
      "parents": [
        "e1acfe37a1249543b9b3180d602db79539468696"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 18 23:05:03 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 22:29:11 2024 +0000"
      },
      "message": "treewide: remove redundant returns\n\nChange-Id: I15f3f94273ffbb199dd47d7869de56196e1f4bd1\nReviewed-on: https://review.monogon.dev/c/monogon/+/3012\nVouch-Run-CI: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "5538121358e94f82dfe465ae318f7f52ec00c74a",
      "tree": "afae8687a7682f8287640de97ebaaae40beed646",
      "parents": [
        "6e5b8a5b7ad46cc519ba3ca6166cee160b536185"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 17 02:42:31 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 14:22:13 2024 +0000"
      },
      "message": "cloud/agent: remove unnecessary convertions\n\nChange-Id: Ia67bbc3d80e499267a6c39211eea8c1b7c4da28a\nReviewed-on: https://review.monogon.dev/c/monogon/+/2998\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "6250705e0fb83cc9c92a50b3a87f95d7089effee",
      "tree": "605e229a9fc68fef7ee9759438c4ec90f6b4d6b4",
      "parents": [
        "3215ee8eb6a096a0d310cb0f465584783435e4ad"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 23 15:06:14 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 13:15:18 2024 +0000"
      },
      "message": "cloud/shepherd/provider/equinix: fix wrong usage of slices.DeleteFunc\n\nChange-Id: I736dc4ebde844d602ea84c5660c583e881538b16\nReviewed-on: https://review.monogon.dev/c/monogon/+/3041\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "d5f851bb477638436826adec756fe562db526865",
      "tree": "d981b1c62d613b45fb55023da289098d7e377705",
      "parents": [
        "69fec522d5db79d07bb1f227c2ab39c57fdf2831"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 23 14:59:37 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 24 13:15:14 2024 +0000"
      },
      "message": "treewide: replace error comparisons and assertions with errors.Is\n\nChange-Id: Id2424eb155f2c6842c72c5fafd124d428ef901f2\nReviewed-on: https://review.monogon.dev/c/monogon/+/2994\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "6b20781437269c2d7a2497896bf396f9ecd3c184",
      "tree": "7cf726bde966a9e8945a82fc32619aa508708142",
      "parents": [
        "690511d310507c9435916256869b7a0ead6fa8cf"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Apr 22 19:13:15 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 23 19:37:31 2024 +0000"
      },
      "message": "treewide: replace fmt.Errorf with fmt.Sprintf in panic calls\n\nSince we are inside a panic anyway, let\u0027s not use Errorf as we only need\na string.\n\nChange-Id: Id43e403124e0fa60e038397d3153f96181c916e2\nReviewed-on: https://review.monogon.dev/c/monogon/+/3034\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "690511d310507c9435916256869b7a0ead6fa8cf",
      "tree": "231546df18030f4d989ad58668cbdd1baf5ea5b3",
      "parents": [
        "13b83f704367d9dd32359ff29b51b90cfbc4b361"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Apr 22 19:10:29 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 23 19:37:31 2024 +0000"
      },
      "message": "treewide: fix %w in cases where only %v is supported\n\nChange-Id: I24ae051e960b0e4ad003bb48e34b038debf6d79b\nReviewed-on: https://review.monogon.dev/c/monogon/+/3033\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "13b83f704367d9dd32359ff29b51b90cfbc4b361",
      "tree": "9524284335194acc67f88368821a044e10e60c1f",
      "parents": [
        "ee8c81bebb610af692db594dfbb848c506a5fd6a"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 11 23:10:16 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 23 12:07:38 2024 +0000"
      },
      "message": "metropolis/node/core: fix invalid write in console setup\n\nWhen configuring the console writers, we are iterating over a slice of\nconsole structs, this is fine by itself, but we are also storing a\nreference to the logtree reader. Since we are iterating over a struct\nvalue and aren\u0027t using a pointer, this write won\u0027t persist into the\nunderlying slice and we cannot close the reader anymore. By using a\npointer to a struct instead of the raw value the issue is fixed.\n\nChange-Id: Iaf753345cd275a03aecf9748b344c60eefcf9d69\nReviewed-on: https://review.monogon.dev/c/monogon/+/2973\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "88049727772bb3ad1f00307919da67c6d2743402",
      "tree": "13b0015edb805c3c39f7f77e0bead11436f68713",
      "parents": [
        "2006753ea2e8f51cdfc51ad085663fdae4ff8782"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 11 23:09:23 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 17 15:04:59 2024 +0000"
      },
      "message": "treewide: fix t.Fatal calls in non-test goroutines\n\nFunctions that abruptly terminate a test, such as the\nFatal, Fatalf, FailNow, and Skip{,f,Now} methods of *testing.T,\nmust be called from the test goroutine itself, as they call\nruntime.Goexit internally to stop the calling goroutine, not the\ntest.\n\nChange-Id: I4926c802bfbb11aeec6e130b0f4fb2407879cbd4\nReviewed-on: https://review.monogon.dev/c/monogon/+/2972\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "0c57d34190434556847345072371a42a9e1c3154",
      "tree": "adb53fda3b8b6e6d996e1696c9dadd2d506ef545",
      "parents": [
        "3810567012959d2871400ce2ecd39f53b9072bc3"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 11 01:38:47 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Apr 15 21:31:42 2024 +0000"
      },
      "message": "treewide: cleanup function receiver names\n\nChange-Id: I0575175ea249a2bd39b4b7769e49a9995fae6f6d\nReviewed-on: https://review.monogon.dev/c/monogon/+/2959\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "3810567012959d2871400ce2ecd39f53b9072bc3",
      "tree": "d1821ba3db669deec3a240dceb9bbf544b68c611",
      "parents": [
        "2a74e58ac02d0bf6ae25ae1ec4d8f187dd7db5ba"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 11 01:37:29 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Apr 15 21:31:42 2024 +0000"
      },
      "message": "treewide: remove shadowing of stdlib functions\n\nChange-Id: Iaccb22769d53568f6a4004924c218b9929090d89\nReviewed-on: https://review.monogon.dev/c/monogon/+/2957\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "2a74e58ac02d0bf6ae25ae1ec4d8f187dd7db5ba",
      "tree": "60ea3bc21fa7646cfbc157831c378c433a5d703d",
      "parents": [
        "6b6428da110db384cad1f1d65c81f1874c8cecae"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 11 01:37:49 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Apr 15 21:31:42 2024 +0000"
      },
      "message": "cloud/bmaas/bmdb: check for transaction error\n\nChange-Id: I438a3badd37aa029bd0be21b3a01165a7ad1d7e0\nReviewed-on: https://review.monogon.dev/c/monogon/+/2958\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "6b6428da110db384cad1f1d65c81f1874c8cecae",
      "tree": "f44e7d1ffcc410893a9851e76e81939b178853df",
      "parents": [
        "5e460a92353ec619f4f12fffbe3281d40c85cf61"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 11 01:35:41 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Apr 15 21:31:42 2024 +0000"
      },
      "message": "treewide: remove redundant loop vars\n\nChange-Id: I61bada9e3df38e6a94cd6c8fe2d0d8f3ba41c1af\nReviewed-on: https://review.monogon.dev/c/monogon/+/2955\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "5e460a92353ec619f4f12fffbe3281d40c85cf61",
      "tree": "193a72608c05ad45f3a60a4ac84a8f5d731d7f73",
      "parents": [
        "438ae2e52cb0aa8dea021419d921c687330e7d3b"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 11 01:33:09 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Apr 15 21:19:50 2024 +0000"
      },
      "message": "treewide: remove unnecessary types and conversions\n\nChange-Id: Ifcaa9ceeec243b3646c9b6e0a6fad7ef2db8fd90\nReviewed-on: https://review.monogon.dev/c/monogon/+/2954\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "438ae2e52cb0aa8dea021419d921c687330e7d3b",
      "tree": "62326ef9a361cefb7745a88a6565956045dc7eb8",
      "parents": [
        "a27272c3219b22cf8470c81eaf529234e744332c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 11 23:23:12 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Apr 15 21:19:50 2024 +0000"
      },
      "message": "treewide: replace always true switch condition with default\n\nChange-Id: I6c2089f2499ab7d5dd55ad1a8d8a97e7276e171e\nReviewed-on: https://review.monogon.dev/c/monogon/+/2974\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "65bf311fbf47fec70019477237f6411123ef5727",
      "tree": "daaa15a7c708f746e16301a2ea8e8175ebeff466",
      "parents": [
        "37cfcc109508d5370900228d5f20f2183ed2d65b"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Apr 08 21:32:14 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 11 19:21:02 2024 +0000"
      },
      "message": "third_party: expose firmware and ucode targets\n\nThat way we don\u0027t have to redefine it with every target that does\nany kind of takeover.\n\nChange-Id: I816b42a87c755da7b42944b2768f71b53d8d77f3\nReviewed-on: https://review.monogon.dev/c/monogon/+/2929\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "0af4dab5326f7aa7cef1b8cc36e7324d784fc237",
      "tree": "49c976c5c6a9206b9806d5d0c8aa223d86ee1477",
      "parents": [
        "0ea961c0d2ba446b99852a8f32719c0dfab23b2e"
      ],
      "author": {
        "name": "Jan Schär",
        "email": "jan@jschaer.ch",
        "time": "Thu Apr 11 15:04:12 2024 +0200"
      },
      "committer": {
        "name": "Jan Schär",
        "email": "jan@jschaer.ch",
        "time": "Thu Apr 11 14:55:24 2024 +0000"
      },
      "message": "treewide: increase test timeouts\n\nThese tests often time out in CI.\n\nChange-Id: Ifd8e6be958923bdbb90faf1aa3627ee77a33267d\nReviewed-on: https://review.monogon.dev/c/monogon/+/2967\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nVouch-Run-CI: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "5f5f3300dec2d65eb0321a19f789cfdd65c12c17",
      "tree": "2bc9ab9c6b9a50dfec88838ec48272a7b78075bf",
      "parents": [
        "543756fdf954fc09f032bb91a59916a784b21cff"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 22 23:50:24 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Mar 05 18:39:44 2024 +0000"
      },
      "message": "cloud/shepherd: move ssh client to own package\n\nChange-Id: I56ad16f8f2f355243c5c0414656bbfbbff1faef5\nReviewed-on: https://review.monogon.dev/c/monogon/+/2791\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "79ffbbe040d0db6c4ff6f8cdc84fe13d537e2bfe",
      "tree": "c187ae1162f232707d835fcf507e8b88c6f5d452",
      "parents": [
        "1dd0c6591533bf63389e81a2104bca3c8326e871"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Feb 22 19:15:51 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 27 15:41:41 2024 +0000"
      },
      "message": "cloud: move takeover to agent/takeover\n\nThe takeover package is tightly coupled with the agent, so lets move it\nthere.\n\nChange-Id: I38ae69d4f4e7a4f6a04b0fefb5f127ebc71f5961\nReviewed-on: https://review.monogon.dev/c/monogon/+/2790\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "c4dd0032736567ca7873a11588f3a64d1dddea88",
      "tree": "e5485ef011f7f2e1d17fb4e5f4bf0f6686b6fa75",
      "parents": [
        "fdd87abdd1d3bc7a87594a463344b1542e2650b4"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 19 13:13:31 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 19 14:00:17 2024 +0000"
      },
      "message": "cloud/shepherd: rename shepherd.State to shepherd.Availability\n\nChange-Id: I8e1fa243317bf4f97af98303b10b979b98943156\nReviewed-on: https://review.monogon.dev/c/monogon/+/2779\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "fdd87abdd1d3bc7a87594a463344b1542e2650b4",
      "tree": "ac4b5a1bf2584611256c3a8903168bf33a05e799",
      "parents": [
        "968d72095a54aabed1a59cccf3591c4f32a7b70a"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Dec 07 18:03:21 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 19 14:00:17 2024 +0000"
      },
      "message": "cloud/shepherd: skip machines in failed state\n\nCurrently we are not ignoring machines that are in failed state, which\nbrings the provider to a stop as soon as a provision request fails. We\nshould ignore such machines.\n\nChange-Id: I7be64c710cc15428f4d8d4e75b6df1e816d453f8\nReviewed-on: https://review.monogon.dev/c/monogon/+/2417\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b40b918b88971002fd82f4e172ee347b435e41f5",
      "tree": "e225e83ee1cc281b8ba8728efa0a4c1029559faf",
      "parents": [
        "2a1d1b2e90a44e140dd95a492de0c857287e071f"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 06 07:08:35 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 12 14:11:09 2024 +0000"
      },
      "message": "treewide: replace deprecated qemu short-form option \u0027readonly\u0027\n\nChange-Id: Id9fb95ab8b975cdbe76fc711ab20c16e3a91592a\nReviewed-on: https://review.monogon.dev/c/monogon/+/2746\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "2a1d1b2e90a44e140dd95a492de0c857287e071f",
      "tree": "392015b9ffa5f6f38da494c0a2fc519f16883113",
      "parents": [
        "5d556cae21803212ac72a3713ed449b412f777af"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 06 07:07:42 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 12 14:11:04 2024 +0000"
      },
      "message": "treewide: replace datafile pkg with rules_go/runfiles pkg\n\nrules_go/runfiles provides the same functionality as our datafile\npackage. This change also contains some specifics for the now active\nbzlmod, which replaces all WORKSPACE related behaviour. As example the\nWORKSPACE name is now always set to _main.\n\n\nChange-Id: I1a69c72b479330a627b402135670f218c297906f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2745\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "0c2801516b5191472bd4bc1a07ab6f414a805b27",
      "tree": "ddcffa8351f934c0a7066a6341b8bc6888e90ab3",
      "parents": [
        "ad86a55c9c507478e2c4989f50912d7869164066"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 05 14:33:19 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 08 11:10:07 2024 +0000"
      },
      "message": "m/n/core/rpc: limit API footgun availability\n\nThis unifies the interface of the\nNew{Ephemeral,Authenticated}Credentials calls. They now use the same set\nof CredentialsOpt options which allows both calls to request a\nparticular verification of the remote side of the connection.\nNewEphemeralCredentials also now requires an explicit WantInsecure\noption which surfaces attempts to dial the cluster without CA/node\nverification.\n\nChange-Id: Ibb65cb0952f6ff2092a3f55fe1c5a31bd2b72b36\nReviewed-on: https://review.monogon.dev/c/monogon/+/2741\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "0974b2275edc21ce3b76606ba7f8eed84e5cc9f0",
      "tree": "b9bd73528dc6823168273fb8eb58d02054e90047",
      "parents": [
        "c834b7dd62f20188f3ffd7cbb092e2536403474b"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 16 14:04:15 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jan 23 15:52:54 2024 +0000"
      },
      "message": "treewide: replace rules_docker with rules_oci\n\nrules_docker is not maintained anymore and recommends migration to\nrules_oci\n\nChange-Id: I089f3cf44888b3c3c0baa2c84a319b04b1a7dec4\nReviewed-on: https://review.monogon.dev/c/monogon/+/2712\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "30494c151b8dee3e20f681f800376a04e8f3965b",
      "tree": "ea622a06ea15ad4892d51896ef79002639c6cff6",
      "parents": [
        "0ccc85ba1eb4e067dc3eea0dd58b9ab0ebf48d29"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Nov 28 16:27:24 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Dec 21 14:46:59 2023 +0000"
      },
      "message": "build/status: remove old compatibility fields for metropolis/cloud\n\nChange-Id: I5e314714b02e87b5f955798dd2bcf497de699ac9\nReviewed-on: https://review.monogon.dev/c/monogon/+/2405\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b6308cd63854e3ef48e6afcc4c1f51e0c6ac1203",
      "tree": "ca6a5e292e05e420b7f04250c1e189511a6de3f7",
      "parents": [
        "a85c86f5b2d80251811f3a659fe9570694dd6056"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Oct 10 21:19:03 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Nov 16 18:09:16 2023 +0000"
      },
      "message": "cloud: split shepherd up\n\nChange-Id: I8e386d9eaaf17543743e1e8a37a8d71426910d59\nReviewed-on: https://review.monogon.dev/c/monogon/+/2213\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "62f1d3680947e1d78bacf2a7277fb4b2007ebacb",
      "tree": "38c2fe1d57b68788f79ae018075b246f228310cc",
      "parents": [
        "60461b2b23eb57319525a3e00d7ae57e51598ebc"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 14 16:18:24 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 14 16:44:03 2023 +0000"
      },
      "message": "treewide: stop using LZ4 for initrd compression\n\nThere are two issues at play here: One is a bug in pierrec/lz4 when\nusing the legacy framing format [1]. This bit us when we hit a broken\nsize region with CL:2130, taking hours to debug.\n\nThe other is the fact that the Linux LZ4 frame format has significant\ndesign issues [2], especially with concatenanted initrds.\n\nThe first issue could be fixed by switching to a different LZ4\nimplementation (we do even have the reference impl in the monorepo) but\nthere is no API to generate the legacy frame format and things like [3],\na patch carried by Ubuntu to fix more edge cases just do not inspire\nconfidence in such a solution.\n\nThus, this CL switches over to using zstd for compressing initrds.\n\nZstd is slower than LZ4 for decompressing, but it still decompresses at\nmultiple GB/s per core while having a much better compression ratio.\nIt also doesn\u0027t have any Linux-specific bits and Linux uses the\nreference implementation for decoding, which should make it much more\nrobust. So overall I think this is a good tradeoff.\n\n[1] https://github.com/pierrec/lz4/issues/156\n[2] https://github.com/lz4/lz4/issues/956#issuecomment-736705712\n[3] https://launchpadlibrarian.net/507407918/0001-unlz4-Handle-0-size-chunks-discard-trailing-padding-.patch\n\nChange-Id: I69cf69f2f361de325f4b39f2d3644ee729643716\nReviewed-on: https://review.monogon.dev/c/monogon/+/2313\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "d0424439e5c6637afa5b8156464d14933d955404",
      "tree": "98a243e7e4612b6db6271c3ef9c5ef1036d1f519",
      "parents": [
        "60fab1cd31c77234e4840f95d12e2062ca7f0a5c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Nov 08 15:12:54 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Nov 13 13:53:51 2023 +0000"
      },
      "message": "cloud/bmaas/bmdb/webug: Add provider ip address to webug\n\nChange-Id: Ic0b2767ef6b8dd86b158119e6e109c5acb406121\nReviewed-on: https://review.monogon.dev/c/monogon/+/2297\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "60fab1cd31c77234e4840f95d12e2062ca7f0a5c",
      "tree": "9ba6f87941285551ae62e3e165e622f148196511",
      "parents": [
        "246f2fe5d8139b167550b957365118d62ad8f4a9"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jun 13 20:41:07 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Nov 06 18:35:37 2023 +0000"
      },
      "message": "cloud/bmaas/scruffy: add nodes per region metric\n\nChange-Id: If9edcdd4a486fd2f141bfcd89dd1a2b60424ab4c\nReviewed-on: https://review.monogon.dev/c/monogon/+/2281\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "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"
    },
    {
      "commit": "3c6306ba6b146171f122bdf50f7a8daf63816b5b",
      "tree": "2eb99779ec1157a919938a5d5e5bb7f5081dd0c7",
      "parents": [
        "f0ae33180b59b25d236199e1b874f0dce7aa1e41"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Sep 19 11:48:44 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Sep 20 09:55:16 2023 +0000"
      },
      "message": "cloud/b/b/reflection: add single-line HumanValue rendering, Index\n\nThis is in preparation for printing fields in bmcli.\n\nChange-Id: I1aa178da1a50e8dd0c572a238f92daa536f9fcd9\nReviewed-on: https://review.monogon.dev/c/monogon/+/2170\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "efa381fa9e8a3850ca1332ce617778d330d5e3ba",
      "tree": "6fd0db26eab500ba19d7dd6c92b3f9b2cffb6646",
      "parents": [
        "431acaa53ad0914eaf8bc89366b693640acbde13"
      ],
      "author": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Wed Aug 09 17:43:06 2023 +0200"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Wed Aug 09 18:11:25 2023 +0000"
      },
      "message": "Set flaky flag on all known flakes\n\nBazel will retry tests marked as flaky up to three times. This has\nthe obvious downside of making the flakes less visible, but popping\nup as unrelated build failures is not the best way to surface them.\n\nChange-Id: I0c97450b17f2e8a56275d3b738e7d34b89be44f6\nReviewed-on: https://review.monogon.dev/c/monogon/+/2047\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "0e74961fc03de5a439484ea5ec33e0fc52a22edd",
      "tree": "79097191057579098832aaafe30fceb2572a3bdc",
      "parents": [
        "9563673b5913420e143518b53d3134d4f29b404b"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Aug 07 17:42:59 2023 +0000"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Aug 08 12:06:53 2023 +0000"
      },
      "message": "cloud/bmaas/bmdb: Filter for machines based on provider\n\nCurrently the equinix shepherd tries to initialize our nodes from lumen,\nwhich of course is not correct. This change adds another parameter to\nthe queries and prevents that.\n\nChange-Id: Ib3f65e68403cb1b1282b80c1d494fb030a6d17b1\nReviewed-on: https://review.monogon.dev/c/monogon/+/2039\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "35fcf0397be02883ace364e650b3e8d9a2281e24",
      "tree": "cb1297a2e4a34eeebb9faf09b44c3b95cf603f7f",
      "parents": [
        "ad131883747f73e51526dd6f163df23b913f69ed"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jun 29 04:15:58 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jul 27 13:58:35 2023 +0000"
      },
      "message": "metropolis: implement A/B updates\n\nThis implements an A/B update mechanism using two slots, A and B.\nThis is realized with two system partitions as well as two EFI\nloaders/kernels.\n\nThe A/B system relies on two EFI loader entries. This has the advantage\nthat there is no preloader required, which makes the system more\nreliable as well as avoiding the complexity of having an un-updatable\npreloader (CoreOS has this issue where their GRUB2 crashed booting newer\nkernels, sadly the issue seems lost with the migration to Fedora\nCoreOS). It also means that the operator can easily override the slot\nbeing booted via the boot loader entries. Primary disadvantage is that\nit relies on EFI working somewhat to spec.\n\nNew versions are booted into only once by setting NextBoot, if the\nbootup doesn\u0027t succeed, i.e. if the boot doesn\u0027t get to a cluster rejoin\nthe next boot will be the old slot. Once it gets to this stage the\npermanent BootOrder is changed.\n\nThe EFI loaders don\u0027t know if they are slot A or B because they are\nidentical and relying on OptionalData in the boot entry to indicate the\nslot means that if the EFI boot entries go away, recovering is very hard.\nThus the loaders look at their own file name to determine what slot they\nare in. If no slot could be determined, they default to booting slot A.\nIt is planned to eventually use Authenticode Stamping (passing data in\nfake certificates) to stamp the slot into the loader without affecting\nthe TPM hash logged.\n\nChange-Id: I40de2df8ff7ff660c17d2c97f3d9eb1bd4ddf5bc\nReviewed-on: https://review.monogon.dev/c/monogon/+/1874\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "ad131883747f73e51526dd6f163df23b913f69ed",
      "tree": "e5dee1d605cf4df4c507529185a82b49dbb841b3",
      "parents": [
        "cb9f3d3d495b12e26772271e368340a38244d586"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Jun 28 16:42:20 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jul 27 13:58:35 2023 +0000"
      },
      "message": "treewide: port everything to blockdev\n\nThis gets rid of most ad-hoc block device code, using blockdev for\neverything. It also gets rid of diskfs for everything but tests. This\nenables Metropolis to be installed on non-512-byte block sizes.\n\nChange-Id: I644b5b68bb7bed8106585df3179674789031687a\nReviewed-on: https://review.monogon.dev/c/monogon/+/1873\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "9933ef0d18cf42a604fc7ed25cec3e05f8ab6368",
      "tree": "484c711598ccef01f2218564a79a8352c657958b",
      "parents": [
        "394b67e4208e1b2f06e61ab7e69ae58f444a56d8"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jul 06 18:28:29 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jul 20 11:48:17 2023 +0000"
      },
      "message": "m/p/efivarfs: BootOrder fixes\n\nThis doesn\u0027t need to be a pointer as it\u0027s a slice.\nThere was also a bug left in here because it previously skipped over\nthe attributes field which we now treat separately.\n\nChange-Id: Icc80496e9bc826ae11201f96a703fb80f97c478a\nReviewed-on: https://review.monogon.dev/c/monogon/+/1913\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "0553f885b84ca97384ffdb942b30c67d23166a16",
      "tree": "aacfd7d09e462de3c5cfc4cb5cb23840e0b5f6c3",
      "parents": [
        "93910e666218954def8e1e3b304909f7dbb7a1b5"
      ],
      "author": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Sat Jul 08 22:13:30 2023 +0200"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jul 10 11:33:56 2023 +0000"
      },
      "message": "webug: shrink tabs in monospace areas\n\nThis makes prototxt output more readable by saving\nsome horizontal space.\n\nChange-Id: Ia0703f280dfb8c8dd9e3899cc20cefc81773d1e1\nReviewed-on: https://review.monogon.dev/c/monogon/+/1921\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "a2ee88d585b9b8603f47544c95f09b380b92b5e2",
      "tree": "c92d30b80722b0c47130e35fde86c20875471659",
      "parents": [
        "f83f5037ab5e09b7c57a01fe7ff3c2eba3b69f4c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 04 14:58:10 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 04 18:58:45 2023 +0000"
      },
      "message": "cloud: package scruffy into the cloud container bundle\n\nChange-Id: Ic82e2d530dd4a3f97c4985427754d38ad4afcfc1\nReviewed-on: https://review.monogon.dev/c/monogon/+/1896\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "5308730b6181304ae1d34acf0f2bea6c4cb65339",
      "tree": "f54596d0c24dd78aa64a97c72d24763b8892e818",
      "parents": [
        "12c814085ac4b58922ca5d88ee571b8ee5ee7ece"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jun 27 16:36:31 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 04 10:47:13 2023 +0000"
      },
      "message": "cloud/bmaas/bmdb: correctly handle installation report\n\nPreviously we ignored the result of an installation report.\nThe bmdb does now store the result and correctly triggers\na recovery flow of the installation fails.\n\nChange-Id: Ie8445cf9178ba84c6362b61ef8fa47208ab690be\nReviewed-on: https://review.monogon.dev/c/monogon/+/1865\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "12c814085ac4b58922ca5d88ee571b8ee5ee7ece",
      "tree": "a392fb27ca7e53b9e528e1b1bba7125dcf7e3ac0",
      "parents": [
        "72a903fb7b60d629a8f25a2eadf34c7fa1948c10"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 03 02:16:08 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 03 13:55:41 2023 +0000"
      },
      "message": "cloud/shepherd/equinix/cli: replace old argument handling and wrong loop\n\nChange-Id: I1c1657432296170a6a214d4a5907c86c8a3daeec\nReviewed-on: https://review.monogon.dev/c/monogon/+/1883\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "72a903fb7b60d629a8f25a2eadf34c7fa1948c10",
      "tree": "1189b483e1984a0e26fc20aac901d32264f3b1fc",
      "parents": [
        "521a83591361c7c0353944a1e742eb70e013cf9b"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jun 27 15:49:36 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Jul 03 13:50:27 2023 +0000"
      },
      "message": "cloud/shepherd/equinix/cli: Rename servers before deletion\n\nThis avoids collisions when redeploying servers\n\nChange-Id: I94c8c5e0b1b601ee6513f7baddb251053ce9430b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1864\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "ca1cff0f214a1ed5ee967d421f5fe1fd5afa756d",
      "tree": "7ea16e63681ad4695f7d7cd1115c0168fc553d4b",
      "parents": [
        "4599aa2dfa42a7b694ad295bc700db03de96d7f5"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Jun 26 17:52:44 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jun 29 10:41:38 2023 +0000"
      },
      "message": "m/p/efivarfs: refactor\n\nThis accomplishes three things:\n\nFirst, split out the variable access layer from the rest of the code.\nThis cleans up the attribute handling, which is now done centrally as\nwell as making the high-level functions very short and clean. They now\nalso return better errors.\n\nSecond this introduces proper types for LoadOption, which can now also\nbe unmarshaled which was a requirement for A/B updates. This required\nimplementation of EFI\u0027s DevicePath structure.\nWhile refactoring the higher-level functions for this, this also\nfixes a bug where the variable index (the 4 hex nibbles at the end) were\nimproperly generated as lowercase hex.\n\nThird, this adds new high-level functions for interacting with more\nboot-related variables needed for the A/B effort.\n\nChange-Id: I53490fa4898a5e7a5498ecc05a9078bd2d66c26e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1855\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "6f5995153827f2b191cc2faebe21ca58764af33b",
      "tree": "e80d2e3c933116c3488145949d9114de8576511f",
      "parents": [
        "de097947a7c54f1d5e0abb30b18539637a3245d2"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Apr 26 19:08:19 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jun 27 19:40:23 2023 +0000"
      },
      "message": "cloud/bmaas/bmdb/scruffy: initialize, implement BMDB metrics\n\nThis creates a new BMaaS component, Scruffy the Janitor.\n\nScruffy will run a bunch of housekeeping jobs that aren\u0027t tied to a\nparticular provider or even region. Currently Scruffy just collects BMDB\nmetrics by periodically polling the BMDB SQL database.\n\nChange-Id: Icafa714811757eaaf31fed43184ded8512bde067\nReviewed-on: https://review.monogon.dev/c/monogon/+/1819\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "e1a4ac5eaec848a8b1d883c3963cfe399c71cb7d",
      "tree": "ef289013336335c69407d780bbccb614fb258282",
      "parents": [
        "7e1c489409345f7212efdfcdfb105a5bbfd365c2"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jun 20 12:17:54 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jun 20 12:33:09 2023 +0000"
      },
      "message": "cloud/agent: generate hwreport only if a first heartbeat was successful\n\nThis is mostly a hack but as we dont have a way (yet) to know when all devices\nare registered, we just wait until the first heartbeat was sent and only after\nthat sent a hwreport. This should at least make sure that all important network\ninterfaces are registered.\n\nChange-Id: Icdfc43c212470dcc37a2f916524b5f29ee42ae42\nReviewed-on: https://review.monogon.dev/c/monogon/+/1823\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    }
  ],
  "next": "7e1c489409345f7212efdfcdfb105a5bbfd365c2"
}
