)]}'
{
  "log": [
    {
      "commit": "fe5192dc5369ab47be1552a6935f9cb745d9f837",
      "tree": "f41853b28d396a6fb1fbd9b6a9f5d16e679d0c59",
      "parents": [
        "356cbf3e49af75d9cccf92fd8d0a3236727f6761"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 11:33:56 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:23:27 2023 +0000"
      },
      "message": "m/n/core/cluster: clean up\n\nThe cluster.Manager structure got heavily refactored over its life, and\nwe ended up with a whole bunch of stuff that wasn\u0027t even being used.\nLet\u0027s clean that up.\n\nWe also change the oneway logic to use a channel instead of a locked\nboolean.\n\nChange-Id: I3e8158ad5938be1636efc9d7fad7eb6d6e953ccf\nReviewed-on: https://review.monogon.dev/c/monogon/+/1354\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "356cbf3e49af75d9cccf92fd8d0a3236727f6761",
      "tree": "a8865bc1422fdde0d8f5a63f8e7e100156dccfeb",
      "parents": [
        "f9bdf3126488a2728e265a2b28cba564c8072e04"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:52:20 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:22:24 2023 +0000"
      },
      "message": "m/n/kubernetes: run reconciler before starting more services\n\nThis makes sure we successfully ran the reconciler at least once before\nattempting to running more than the apiserver. It saves us from a whole\nbunch of services complaining about not having the right permissions to\n(yet) access the cluster.\n\nChange-Id: I605eae9d6bbcc16a9dcb971caa26ee56a06e5d5b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1358\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f9bdf3126488a2728e265a2b28cba564c8072e04",
      "tree": "fb0c4b0b1de6bf314c397ddf264fe9338e5aaec7",
      "parents": [
        "53a85f7e9f68cfc50721e94de717b1973be2b858"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:54:49 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:05:05 2023 +0000"
      },
      "message": "m/installer/test: undo leftover test comment\n\nThis was introduced by review/1365, and it was just done for testing.\nUndoing this should not undo the flakiness fix.\n\nChange-Id: I7e3096f6b09b2cbd3f3f75dfb4b3602ddfae0959\nReviewed-on: https://review.monogon.dev/c/monogon/+/1367\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "53a85f7e9f68cfc50721e94de717b1973be2b858",
      "tree": "2e5aca3dfa152cd9860fc199527fce5c8176af7a",
      "parents": [
        "b76b8d19c05e5df546e2b2dc08f6cdbec2a9ead0"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:53:32 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:04:59 2023 +0000"
      },
      "message": "third_party/go: patch embedded etcd to prevent spurious panics\n\nThis channel double-close tends to panic etcd if we end up calling\nserver.Close more than once. It seems like a programming bug in etcd\nupstream, this function should be otherwise safe to call more than once.\n\nChange-Id: Iba93dc58202f22f966af251b7424d5d4c4e10612\nReviewed-on: https://review.monogon.dev/c/monogon/+/1353\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b76b8d19c05e5df546e2b2dc08f6cdbec2a9ead0",
      "tree": "d04ffe4c6866be5139dbc87424d14cac2baea6cd",
      "parents": [
        "05f813bf2d311f94dbc8021a85b37ff7c2e33242"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 00:46:56 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:04:59 2023 +0000"
      },
      "message": "m/n/core/consensus: work around etcd dial timeout\n\nObserved in an E2E test:\n\n  consensus  ready to serve client requests\n  supervisor Runnable root.role.controlplane.launcher.consensus died: returned\n             error when NODE_STATE_NEW: bootstrap failed: when getting bootstrap\n             client: context deadline exceeded\n  supervisor rescheduling supervised node root.role.controlplane.launcher.consensus\n             with backoff 681.402139ms\n  consensus  data absent, bootstrapping.\n  consensus  Bootstrapping PKI: starting etcd...\n  supervisor Runnable root.role.controlplane.launcher.consensus died: returned\n             error when NODE_STATE_NEW: bootstrap failed: failed to start etcd:\n             listen tcp127.0.0.1:7834: bind: address already in use\n\nI\u0027m not sure what caused the original timeout of the client. Let\u0027s bump\nit to two seconds instead of one.\n\nIn addition, let\u0027s also properly stop the bootstrap etcd server on\nfailure, instead of letting it run forever and preventing any subsequent\netcd server from starting up.\n\nChange-Id: Icbcc31cb1e0b9e619360cbd71c5ee81396c79724\nReviewed-on: https://review.monogon.dev/c/monogon/+/1352\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "05f813bf2d311f94dbc8021a85b37ff7c2e33242",
      "tree": "861772847ef842bbdc362224c442a7679b8b10f2",
      "parents": [
        "cc4e96aed59648a3c4ac3faf3755deff4bb7f656"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:58:39 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "m/test/e2e: use concise-style logging\n\nMaking our test logs look like LogEntry.ConciseString() means we have\nsignificantly more readable test logs.\n\nChange-Id: I0b1eab6a5a837bb2001f3b32779c23df2feaa381\nReviewed-on: https://review.monogon.dev/c/monogon/+/1362\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "cc4e96aed59648a3c4ac3faf3755deff4bb7f656",
      "tree": "95f6ddc310733ba68f457c95bae3a329c9328ebe",
      "parents": [
        "3b098239a4b40f7082d56f888590c2942990e72c"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:57:14 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "m/test/nanoswitch: use concise logging\n\nChange-Id: I89a355a771140a5e8726603c2171bd4822ce1308\nReviewed-on: https://review.monogon.dev/c/monogon/+/1361\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "3b098239a4b40f7082d56f888590c2942990e72c",
      "tree": "1df2cc725de2bb912923fe266ec532b216f19642",
      "parents": [
        "367ee27b50654bc37358d9172aed7c3d19a32dac"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:57:02 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "metropolis/node: use concise logging in tty0/ttyS1\n\nChange-Id: I28ad4418a05a7962d61160583b2e210f73ff8c51\nReviewed-on: https://review.monogon.dev/c/monogon/+/1360\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "367ee27b50654bc37358d9172aed7c3d19a32dac",
      "tree": "354e4e01616adbf92be250eacd28e66e2e97dd4e",
      "parents": [
        "ce4af2b7dbae61a81c791c30fe0a161b3ff8b7d9"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:50:39 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "m/pkg/logtree: implement concise stringification\n\nThis adds a new method on LogEntry: ConciseString(). It\u0027s designed to\nbe used in cases where we want to display the log line on some\nlimited-width (and likely non-interactive) log console, like TTY\nconsoles in Metropolis.\n\nThis is a bit too Metropolis-specific to my liking (we hardcode some\nlogic related to the layout of root.role.*), but it\u0027ll do for now.\n\nChange-Id: I1079b8b19a3c304fcc5077ce6b4c69887a34d7ae\nReviewed-on: https://review.monogon.dev/c/monogon/+/1359\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "ce4af2b7dbae61a81c791c30fe0a161b3ff8b7d9",
      "tree": "72b83aba36088c2f34f5d7d2e272cf271f99e11a",
      "parents": [
        "05cf33dbfcc86f26f3771a5f489bfd6c78b8cdcf"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 21:23:39 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "c/bmaas/bmdb: fix flaky parallel test\n\nWe weren\u0027t handling an expected error properly, which sometimes just\npops up in normal operation.\n\nChange-Id: I45f3011236fbce41dc5e139e39f60c0002fd6cec\nReviewed-on: https://review.monogon.dev/c/monogon/+/1366\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "05cf33dbfcc86f26f3771a5f489bfd6c78b8cdcf",
      "tree": "623584088f8922fc37f1662d1c957c1e1ad2d169",
      "parents": [
        "f2f85f5827b9df558606403d9451087873249265"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:50:59 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 20:52:16 2023 +0000"
      },
      "message": "m/installer/test: attempt to fix heisenbug\n\nChange-Id: Ib4dae5bec7c99b88d5b9d4e5ac90ece09fdc7c77\nReviewed-on: https://review.monogon.dev/c/monogon/+/1365\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "f2f85f5827b9df558606403d9451087873249265",
      "tree": "646fff1411bff4f9a294f347d6576305171412f7",
      "parents": [
        "0164c717e7ca2420f86043283f4c56867734ecce"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 11:51:19 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 18:10:14 2023 +0000"
      },
      "message": "m/n/core: make startup errors more readable\n\nPreviously, fatal startup errors in the cluster manager/enrolment would\nget logged as general supervisor runnable errors, which is not very\nuser friendly.\n\nThis reworks error handling in main.go to switch over logging to an\nalternative \u0027fatal\u0027 channel as soon as an error is detected, and use it\nto clearly log that error.\n\nFixes issues/77\n\nChange-Id: Id73ee49f6bc5b4306dd67ede3a588f08dd2b33da\nReviewed-on: https://review.monogon.dev/c/monogon/+/1355\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "0164c717e7ca2420f86043283f4c56867734ecce",
      "tree": "f75f52391d5db410cb081f04f372d34da26bf30b",
      "parents": [
        "9dd92d90074fbab1a15b07da9ccc0afab70a5f30"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:54:07 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 18:10:01 2023 +0000"
      },
      "message": "m/p/supervisor: provide more concise logs on runnable exit\n\nChange-Id: Iba99bdf5d516e0edad6da40951d61894acf0b70b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1357\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "9dd92d90074fbab1a15b07da9ccc0afab70a5f30",
      "tree": "4914a511ce3cfc2afa7143b75cedae2a46f2b11b",
      "parents": [
        "37110c360f012c10f3b9456a0eb282eefd3275b3"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 01 14:29:07 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 17:27:36 2023 +0000"
      },
      "message": "m/pkg/event: implement Pipe helper\n\nThis simplifies some of the roleserver code, and is possible now that\nevent values are strongly typed.\n\nChange-Id: I0a22ff97fe4304d35cc9cee105e98bc224d1433b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1323\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "37110c360f012c10f3b9456a0eb282eefd3275b3",
      "tree": "0d8ade7c95d54a576d88e53fb5e8ca9ee76c8f29",
      "parents": [
        "5456a3c4f14f7f73eb49dbfbb3de0bc009c970fe"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 01 13:57:27 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 16:55:28 2023 +0000"
      },
      "message": "m/pkg/event: make type-safe\n\nThis is a fairly large change which makes use of Go type parameters\n(“generics”) to make the event library (and its memory/etcd\nimplementations) type safe.\n\nSince we now have the event.Value interface strongly typed, we also move\noptions which were implementation-specific (like BacklogOnly)\nto be part of that interface, instead of the previously type-asserted\nspecific implementations. Use of options that are not handled by a\nparticular implementation is a runtime error. Expressing this in the\ntype system is probably not worth the effort.\n\nWe also implement Filter to allow offloading some of the functionality previously implemented in type assertion wrappers into the library itself.\n\nIn the end, this ends up removing a bunch of type assertion code, at\nthe cost of a fairly sweeping change. Unfortunately, some of this is due\nto IntelliJ suddenly deciding to reformat comments.\n\nChange-Id: I1ca6d93db1b5c4055a21af3fb9e5e3d425c0d86e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1322\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "5456a3c4f14f7f73eb49dbfbb3de0bc009c970fe",
      "tree": "f71839e80a77bb094c9836a399ebc2e0f99e4854",
      "parents": [
        "591d808678b9770bd579509928997dc5494806e8"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 00:29:17 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 13:41:02 2023 +0000"
      },
      "message": "m/p/logtree: do not emit broken klog entries\n\nAny invalid line parsed to the klog parser would turn into a big INVALID\nbeing emitted to the console, as the emitted log entry had neither a\nleveled nor raw logline attached.\n\nChange-Id: Ia6d620ea56d2112d11e2d3edcd6c762c58de6c50\nReviewed-on: https://review.monogon.dev/c/monogon/+/1339\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "591d808678b9770bd579509928997dc5494806e8",
      "tree": "3afd01fdd280f279610160141c6ef1b02debb119",
      "parents": [
        "cf23ebc1afc53f93d56a0fd33209db7b033a991a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 00:26:59 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 16 13:41:02 2023 +0000"
      },
      "message": "m/test/e2e: stop downloading container images\n\nHaving tests rely on The Internet isn\u0027t great, having tests rely on the\nDockercorp registry is even worse. Instead, let\u0027s test everything using\nthe preseed_test image.\n\nChange-Id: Ib82ce266592e9c6d2f0d4597abcc114c12746b1f\nReviewed-on: https://review.monogon.dev/c/monogon/+/1338\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "cf23ebc1afc53f93d56a0fd33209db7b033a991a",
      "tree": "23395adcd31b1ec31377de20ca46f5e98b9ff242",
      "parents": [
        "bfc280739cdbae950611e5d35a1adb5cd0f58feb"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 14 17:02:04 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 15 16:36:18 2023 +0000"
      },
      "message": "m/cli/metroctl: factor out some helper functions\n\nWe will need these to create metroctl-compatible configs from\n//metropolis/cluster/launch.\n\nChange-Id: I2705afefb62b7e1b35c87d9753c4ca9c7f534c26\nReviewed-on: https://review.monogon.dev/c/monogon/+/1324\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "bfc280739cdbae950611e5d35a1adb5cd0f58feb",
      "tree": "8e86b9bcaa33f3cb3dd5950a556ecf0641f58c02",
      "parents": [
        "15f7f637d6885b471f52fd0aa04d04998366a7f9"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 01 13:56:27 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 15 09:29:09 2023 +0000"
      },
      "message": "m/node/core: fix up resolver keepalives\n\nWe set up keepalives in the resolver to quickly detect that a Curator is\nnot longer available.\n\nThis fixes two bugs related to their use:\n\n 1. When the resolver\u0027s curator connection dies (eg. when we get kicked\n    off by the curator for keepaliving too often), we recreate it fully\n    and thus lose any \u0027keepalive backoff\u0027 state that the client\n    connection carries, thereby not letting that keepalive bachoff\n    mechanism kick in as intended.\n 2. The server-side limits for client keepalives were simply too low\n    compared to what the resolver library wants to use.\n\nChange-Id: If2e53e20a1462e9f71a3723b92d346aff795d84c\nReviewed-on: https://review.monogon.dev/c/monogon/+/1321\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "15f7f637d6885b471f52fd0aa04d04998366a7f9",
      "tree": "b1884808d565ce0736993939f4f6b482aab0874d",
      "parents": [
        "e00a89da1c62e20c2528dadb0543a4578680b073"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 14 17:17:20 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 14 20:07:36 2023 +0000"
      },
      "message": "metropolis: rename KubernetesWorker to KubernetesController, add no-op KubernetesWorker\n\nThis is in preparation for actually splitting the Kubernetes service\ninto a control plane and data plane / worker. The new Worker service is\na no-op: it can be enabled/disabled, but has no practical effect.\n\nSince we plan on keeping the control plane stuff mostly as is, and add\nsplit worker functionality as a new codebase, it makes sense to rename\nthe existing role to Controller, and createa brand new Worker one (to\nmake future diffs smaller).\n\nChange-Id: I79de3219f3c190d38469a0a8d7371820471c100d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1325\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e00a89da1c62e20c2528dadb0543a4578680b073",
      "tree": "61d9fb147393d3324e66318eaf79e136da9075bc",
      "parents": [
        "60ded32ef9a324e540237a2ca29bd6342ed482a6"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Mar 14 13:24:11 2023 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Mar 14 17:32:12 2023 +0000"
      },
      "message": "third_party/sandboxroot: bump\n\nIt also includes a third_party/go change because gazelle is unhappy\n\nChange-Id: I45178b4827f012d23be9618cbcbd21565555adce\nReviewed-on: https://review.monogon.dev/c/monogon/+/1299\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "60ded32ef9a324e540237a2ca29bd6342ed482a6",
      "tree": "5e45b35c802782936bec85e6168aea12cd26b5f0",
      "parents": [
        "5b8b86069584664f8be69467290d7cae7d000b8d"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 18:07:45 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 20:09:06 2023 +0000"
      },
      "message": "third_party/sandboxroot: bump\n\nChange-Id: I59c3a9baeeb2eddf79ada52539869612bdb1eacd\nReviewed-on: https://review.monogon.dev/c/monogon/+/1264\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "5b8b86069584664f8be69467290d7cae7d000b8d",
      "tree": "9eae59a652bcafb11e017a61db58e41c67f42977",
      "parents": [
        "2d284b5718ad0948e7ef5afc5905f36701f4a3ab"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 17:22:21 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 20:09:06 2023 +0000"
      },
      "message": "cloud: use machine_id for all agent communication\n\nThe original proto used provider-scoped provider_ids, these are being\nreplaced by  a single machine_id, assigned by the BMaaS service.\nIts API works in terms of machine_id, not provider_id (see\nAgentHeartbeatRequest), so this needs to be changed.\n\nChange-Id: If13942d02a8ac0e2901c549a92a67b6b10a1e196\nReviewed-on: https://review.monogon.dev/c/monogon/+/1263\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "2d284b5718ad0948e7ef5afc5905f36701f4a3ab",
      "tree": "1525231844ed4fb336e9cf3b0b252008f4f44393",
      "parents": [
        "7922d41e98a28458e17e4ff33c9ece0d9ff6578a"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Mar 08 17:05:12 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 20:09:06 2023 +0000"
      },
      "message": "c/takeover/e2e: add takeover end-to-end test\n\nThis adds an end-to-end test to the takeover system.\nIt launches a QEMU VM running a Debian Cloud Image which is configured\nvia cloud-init to accept SSH access from the test.\nIt connects to that VM via SSH, copies the takeover binary under test\nto it via SFTP and launches it.\nIt passes a test TakeoverInit message to it, performs basic sanity\nchecking on the response and then looks on the serial port for a flag\nmesage that the agent has started.\n\nChange-Id: I8edce6163259da305bb43660a2d70474f7f11612\nReviewed-on: https://review.monogon.dev/c/monogon/+/1262\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "7922d41e98a28458e17e4ff33c9ece0d9ff6578a",
      "tree": "f9258008879a4cfae6c97b5a76d52788e896a0ec",
      "parents": [
        "6da0f614b42ce9e82edba885222fc5ed59eb4338"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 21 20:47:39 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 20:09:06 2023 +0000"
      },
      "message": "c/takeover: init\n\nAdd takeover, a tool which is used to take over machines running any\npretty much any Linux distribution as long as it has kexec support and\none can run the takeover binary on it.\n\nAfter takeover it launches the cloud agent which can then perform\nfurther work on the machine.\n\nChange-Id: If26015f626f439c44be473221c98b5e9a8fa9adc\nReviewed-on: https://review.monogon.dev/c/monogon/+/1143\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "6da0f614b42ce9e82edba885222fc5ed59eb4338",
      "tree": "e87a769409b72366d51122e24f9f4ffd5f21324d",
      "parents": [
        "595dfe95bd3dd0d4e7eb81b3d9552fc981073fc2"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 21 20:44:28 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 20:09:06 2023 +0000"
      },
      "message": "c/agent: add initramfs build\n\nThe agent will be used directly on top of a Monogon kernel as an\ninitamfs. Add build rules for generating said initramfs.\n\nChange-Id: I960fb3d82d4a7f227db48ca0714c48c63958d31f\nReviewed-on: https://review.monogon.dev/c/monogon/+/1142\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "595dfe95bd3dd0d4e7eb81b3d9552fc981073fc2",
      "tree": "981234291526796596d324c3abf0eece634d3940",
      "parents": [
        "8733950f8ee7a47141c92b5ad82e2fe87471a7a2"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 21 19:13:02 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 20:09:06 2023 +0000"
      },
      "message": "c/a/api: reorganize and add AgentInit\n\nMove hardware reporting-related data into a separate file for better\norganization.\n\nAlso add an AgentInit message which will be used to pass data to the\nAgent.\n\nChange-Id: I1eecbd5a78da03170651f76f9f24e134dddaca4f\nReviewed-on: https://review.monogon.dev/c/monogon/+/1140\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "8733950f8ee7a47141c92b5ad82e2fe87471a7a2",
      "tree": "5f2db2aa219f73e17df7e17e5cbca0f6436da03c",
      "parents": [
        "0672ecc35bca207fce8ede33da6542a880eb89c5"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Mar 07 15:49:42 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Mar 09 20:09:06 2023 +0000"
      },
      "message": "net/dump: init\n\nThis adds netdump, a library which dumps the network configuration of a\nLinux host via netlink and generates a Net specification from it.\n\nChange-Id: I78007df1da4fbf24ba9128eb2e966df0dea9274e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1231\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "0672ecc35bca207fce8ede33da6542a880eb89c5",
      "tree": "152cbee5e749eb9d8decdf0b4fac9185f6c86c18",
      "parents": [
        "b033b380387a999b7ad19f9d001c42ec570c8945"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 21 11:00:59 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Mar 08 16:10:21 2023 +0000"
      },
      "message": "net/proto: add network configuration spec\n\nThis adds a network configuration specification which will be used for\nthe Monogon Network component in case autoconfiguration cannot be used\nbecause of environmental constraints.\n\nIt will also be used by netdump, which is capable of deriving such a\nspec from a running system.\n\nIt\u0027s currently a bit bare-bones, but is designed to be easily extensible to\nmore complex needs.\n\nChange-Id: Ib444ac26251884c640a0dbec089d0d1787df556b\nReviewed-on: https://review.monogon.dev/c/monogon/+/1139\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "b033b380387a999b7ad19f9d001c42ec570c8945",
      "tree": "6093a955f5c08f29e6590fb71781849d100a3e0e",
      "parents": [
        "d8290c8082f752f52d0ba1c765f668e2992bc5d4"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 07 20:06:36 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 07 22:29:46 2023 +0000"
      },
      "message": "*: fix gomodproxy compatibility\n\nThis is necessary for the source to be fetchable from third-party Go\nprojects (currently via a replace directive, as source.monogon.dev isn\u0027t\ngo-getable). Otherwise, `go mod tidy` complains:\n\nreading https://sum.golang.org/lookup/github.com/monogon-dev/monogon@v0.0.0-20230223122556-665b10937eb8: 404 Not Found\n\tserver response:\n\tnot found: create zip: build/analysis/BUILD.bazel: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/BUILD.bazel: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/classify.go: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/importsort.go: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/importsort_test.go: case-insensitive file name collision: \"BUILD\" and \"build\"\n\tbuild/analysis/importsort/testdata/README.md: case-insensitive file name collision: \"BUILD\" and \"build\"\n\t[Truncated: too long.]\n\nChange-Id: If5947be74f7dfcf4ba4bd79c4dc37589f324b891\nReviewed-on: https://review.monogon.dev/c/monogon/+/1223\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "d8290c8082f752f52d0ba1c765f668e2992bc5d4",
      "tree": "98c8dc9875488ba03314ef660406ae70909501c8",
      "parents": [
        "6af91052f33c881c402012038c2f3fd8ee254cdd"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Mar 06 18:31:49 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Mar 07 11:02:15 2023 +0000"
      },
      "message": "t/go: add netlink patch for permanent HW address\n\nThis adds a patch to the netlink dependency which adds a field\ncontaining the permanent hardware address to the Link struct which\ncan be used to reliably identify interface hardware addresses even\nif they have been changed for operational reasons.\n\nThe patch has already been sent upstream at\nhttps://github.com/vishvananda/netlink/pull/850 but has not been\nreviewed or accepted.\n\nChange-Id: I9562d32643f5b3a5dcf9f1930b951b75ccc30da1\nReviewed-on: https://review.monogon.dev/c/monogon/+/1228\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "6af91052f33c881c402012038c2f3fd8ee254cdd",
      "tree": "62dc7cfe94006831ff3d81eea1d96d76a90827ba",
      "parents": [
        "0f1939a2f68eb848cca7971808dc451528b47b4f"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 23 09:36:27 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 06 10:47:29 2023 +0000"
      },
      "message": "BUILD: add stub_shebangs to py_runtimes for NixOS\n\nThis is needed as otherwise NixOS bazel will happily use hardcoded\n/nix/store paths here.\n\nChange-Id: Ia32268fd6cb249c05c0ec8f550d761444616adbf\nReviewed-on: https://review.monogon.dev/c/monogon/+/1147\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "0f1939a2f68eb848cca7971808dc451528b47b4f",
      "tree": "390d92222a1ce1ebefce752329c6f24ff36aae2e",
      "parents": [
        "665b10937eb85c5602f34b3195dbeece066b4247"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 23 09:36:10 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Mar 02 12:05:24 2023 +0000"
      },
      "message": "third_party/sandboxroot: regenerate, add patch tool\n\nChange-Id: Idf6ef8c38f9cd2afea67230a6d60fe37258eaf13\nReviewed-on: https://review.monogon.dev/c/monogon/+/1144\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "665b10937eb85c5602f34b3195dbeece066b4247",
      "tree": "195975f290b949200abc69796ae40e7563a03bee",
      "parents": [
        "7448f28cad048a5a7c2fad432dbe31ef91a73867"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 23 09:36:17 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 23 12:25:56 2023 +0000"
      },
      "message": "third_party/qemu: fix tracetool-cli invocation\n\nThis makes the call actually go through the py_binary wrapper instead of\nthe source, making sure we execute with whatever shebang line is\nappropriate per rules_python and not whatever happens to be in the\nscript already.\n\nChange-Id: I1c12faef897ecae8c5f7621f34e113eea5db0a69\nReviewed-on: https://review.monogon.dev/c/monogon/+/1145\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "7448f28cad048a5a7c2fad432dbe31ef91a73867",
      "tree": "17581107a23c8b0002b33b44015ba90ab0a886bf",
      "parents": [
        "9eb903d18540192d22c626e80745eed0630930e6"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 14:15:51 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 23 09:37:40 2023 +0000"
      },
      "message": "cloud/equinix/wrapngo: implement configurable parallelism\n\nSetting this to a value higher than \u00271\u0027 is beneficial in case we want to\ncall some fast endpoints while we\u0027re executing a long-standing hardware\nreservation list call. This can happen in the Equinix Shepherd.\n\nChange-Id: I57cf416de1e5fe23cb28248ddf8bb1b2ad73b6a8\nReviewed-on: https://review.monogon.dev/c/monogon/+/1134\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "9eb903d18540192d22c626e80745eed0630930e6",
      "tree": "55c135fe20ef12988b4efa992d30fa89d2e1edf7",
      "parents": [
        "1038313b7a4f929dcd942a3ac24d371877ee8ce7"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 14:28:19 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 23 09:01:29 2023 +0000"
      },
      "message": "cloud/shepherd/equinix: implement initializer parallelism\n\nThis adds a flag which allows starting multiple initializers in\nparallel, sharing the same SSH key/config and API rate limiting.\n\nChange-Id: I415e855d9b649fac258e25d884cac17f895c91c0\nReviewed-on: https://review.monogon.dev/c/monogon/+/1135\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "1038313b7a4f929dcd942a3ac24d371877ee8ce7",
      "tree": "7d0233b57288509591d1df4f4d5d3ab3e3ac595e",
      "parents": [
        "48e9bab7237448c7fabfef1721f2ac48e6b77822"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 15:39:45 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Feb 21 09:15:20 2023 +0000"
      },
      "message": "cloud: rename ShepherdInstall to ShepherdAccess and clean up other \u0027installation\u0027 references\n\nShepherdInstall should\u0027ve been called ShepherdAgentStart from the\nbeginning, but got named incorrectly because of a momentary lapse of\nreason.\n\nInstead of doing a rename, we widen that Process to anything that\ninvolved the Shepherds directly accessing the underlying provider\nmachines, be it starting the agent, trying to fix the machine, or\nrebooting a machine. This wide meaning makes sure no two shepherds work\non the same machine ever, regardless of the actual workflow each one is\nperforming.\n\nChange-Id: Ic247919d1bcf1c5ec9fcf7125f17b90413068ed5\nReviewed-on: https://review.monogon.dev/c/monogon/+/1138\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "48e9bab7237448c7fabfef1721f2ac48e6b77822",
      "tree": "165b4e9b78acdbbd4ac0521721acfed1f1dad578",
      "parents": [
        "c8fc902aab9fb7a00a4241ebd31df31b00d9a1d1"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 15:28:59 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Feb 21 09:15:14 2023 +0000"
      },
      "message": "cloud/bmdb: add up/down migration test\n\nThis isn\u0027t very exhaustive, but it\u0027s enough to catch migration issues\nwhich we already had.\n\nChange-Id: Ie26b7646bb8b051a613e75cb69a1708f9288a0cc\nReviewed-on: https://review.monogon.dev/c/monogon/+/1137\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "c8fc902aab9fb7a00a4241ebd31df31b00d9a1d1",
      "tree": "ac814e6133006b3d0617d33ad05c67dae6c9ffb6",
      "parents": [
        "7762831b4c4d68f77bdc9fbf1f812390d970a4b3"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 15:28:12 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Feb 21 09:15:14 2023 +0000"
      },
      "message": "cloud/bmdb: always setup default migration source, even if we\u0027re not migrating on startup\n\nChange-Id: I05501d1d04e7c19e766dad9cad84b62ad9571618\nReviewed-on: https://review.monogon.dev/c/monogon/+/1136\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "7762831b4c4d68f77bdc9fbf1f812390d970a4b3",
      "tree": "bc89893327ed28301aaf53cfb31560ba56e39db7",
      "parents": [
        "9e7875c98f78c2ee0419c043211785159e1539de"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Feb 15 23:33:22 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 14:45:38 2023 +0000"
      },
      "message": "cloud/bmaas: implement webug\n\nWebug (pronounced: /wɛbʌɡ/, not /wiːbʌɡ/) is a web debug interface for\nBMDB, inspired by the great web debug interfaces of old.\n\nIt uses the new BMDB reflection API to access most\nmachine/tag/work/backoff information, plus sqlc queries to access\nsession information.\n\nChange-Id: If0e65b6fc33ad92baef9c6d98333f90a02efa1b3\nReviewed-on: https://review.monogon.dev/c/monogon/+/1132\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "9e7875c98f78c2ee0419c043211785159e1539de",
      "tree": "d71d9bc3ee2759aba5e0098c7d6523aef14a2752",
      "parents": [
        "caa1208a769351f70e55369e908fa3e823f72090"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 13:55:58 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 14:45:29 2023 +0000"
      },
      "message": "bmdb/reflection: expose Tags as pointers, as its methods have pointer receivers\n\nChange-Id: I6ab972f37735409e089b8a3c3c088375c4b210c6\nReviewed-on: https://review.monogon.dev/c/monogon/+/1133\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "caa1208a769351f70e55369e908fa3e823f72090",
      "tree": "47f3c8bd9174b3b610e07f0e3b0cd2a62151e1a8",
      "parents": [
        "6a058e7e0c84306cb0470f2641102a284f98fc0b"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 16 14:54:04 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 12:12:19 2023 +0000"
      },
      "message": "cloud/shepherd/equinix/manager: init\n\nThis adds implementation managing Equinix Metal server lifecycle as\npart of the BMaaS project.\n\nCo-authored-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\nSupersedes: https://review.monogon.dev/c/monogon/+/990\nChange-Id: I5537b2d07763985ad27aecac544ed19f933d6727\nReviewed-on: https://review.monogon.dev/c/monogon/+/1129\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "6a058e7e0c84306cb0470f2641102a284f98fc0b",
      "tree": "13b4ef9a4db8275a51bbaa5026f5d926efe67b3f",
      "parents": [
        "424e201b27ce334714d870c0ad0c6e9046a14981"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Wed Nov 30 18:03:07 2022 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 12:12:19 2023 +0000"
      },
      "message": "cloud/shepherd/equinix/wrapngo: init\n\nThis adds a wrapper extending packngo for use with the upcoming\nShepherd implementation.\n\nSupersedes: https://review.monogon.dev/c/monogon/+/989\nChange-Id: I55d1a609a8b5241704c5fe4ce8c2294122cfa0c8\nReviewed-on: https://review.monogon.dev/c/monogon/+/1128\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "424e201b27ce334714d870c0ad0c6e9046a14981",
      "tree": "4aa923d5e9ae25fec2a437967c8d97f301485443",
      "parents": [
        "de4e841682bb0afbd4865f9e24239f3e228e643f"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Feb 15 23:31:49 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 12:12:19 2023 +0000"
      },
      "message": "cloud/bmaas: implement BMDB reflection\n\nThis is the foundation for runtime introspection of BMDBs, to be used in\ndebug and operator tooling.\n\nChange-Id: Id1eb0cd1dfd94c5d4dafde82448695497525e24f\nReviewed-on: https://review.monogon.dev/c/monogon/+/1131\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "de4e841682bb0afbd4865f9e24239f3e228e643f",
      "tree": "84e64deb0bb74e4177d8094937d618026d438d49",
      "parents": [
        "e643fd65d3ad308054f064bf0df7f95fc21af4d9"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Feb 15 23:28:04 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 20 10:24:02 2023 +0000"
      },
      "message": "cloud/bmaas: clean up bmdb package\n\nEverything living in sessions.go made this a bit unreadable.\n\nWe also drive-by add some extra metadata fields to Connection. This will\ncome in handy in an upcoming change.\n\nChange-Id: Ibabec9e3bd0b29b727638b9450a53ba28c33e678\nReviewed-on: https://review.monogon.dev/c/monogon/+/1130\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e643fd65d3ad308054f064bf0df7f95fc21af4d9",
      "tree": "ac00c6230b05da3f6df1c6d38c52ec6a7e6e5826",
      "parents": [
        "1cf17953163089f6b90d0922bff0994e06c95e29"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Feb 14 00:01:38 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 16 12:09:02 2023 +0000"
      },
      "message": "c/l/sinbin: init\n\nThis adds a sinbin library, useful for temporarily timing out some\nprocessed elements in-memory. We\u0027ll use this in the Equinix Shepherd\nprovisioner loop to keep note of bad hardware reservations.\n\nChange-Id: If68b2c0856364cde70cee68729cfc0203c5a8446\nReviewed-on: https://review.monogon.dev/c/monogon/+/1127\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1cf17953163089f6b90d0922bff0994e06c95e29",
      "tree": "cfcef14d8530761d9b0a18adf266262898ede7c6",
      "parents": [
        "d026b37c2a27d414821f860ccd0effb522be1ce4"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 13 17:41:59 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Feb 14 10:03:25 2023 +0000"
      },
      "message": "pkg/bootparam: add bootparam pkg\n\nThis adds the bootparam package which can marshal and unmarshal the Linux\nkernel command line into boot parameters and a rest section passed to\ninit.\n\nThis is a very quirky format, thus there is a fuzz testing harness\nagainst the reference implementation from the kernel included to verify\ncorrectness.\n\nA set of weird edge cases is rejected by Unmarshal instead of parsing\nto nonsensical data as the reference implementation does to save on\ncomplexity in the parser.\n\nChange-Id: I6debfa67e69ae8db4e0356f34ecb127ea27d18de\nReviewed-on: https://review.monogon.dev/c/monogon/+/1125\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "d026b37c2a27d414821f860ccd0effb522be1ce4",
      "tree": "223512570e3c0857d7f34e3ee588d21163b213b0",
      "parents": [
        "a01b4ee048e27dc05452912d25d6f718fb263c61"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 13 19:38:45 2023 +0100"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Feb 13 21:01:06 2023 +0000"
      },
      "message": "m/n/build: fix incorrect device number\n\nThe device node major number for our console device is wrong.\nThe major number for the console device is 5, not 1 as seen in\nDocumentation/admin-guide/serial-console.rst.\n\nI stumbled upon this when looking at this spec as a reference for an\nissue with an unrelated device.\n\nChange-Id: Icbae264d2b4a5dc8770cb1e15e33d56c504a50c5\nReviewed-on: https://review.monogon.dev/c/monogon/+/1126\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "a01b4ee048e27dc05452912d25d6f718fb263c61",
      "tree": "0634e398a88a63801763554a0a55af102ea13bf1",
      "parents": [
        "3ccf69641de62c68a5740d8194d4f0776052dd63"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Mon Feb 13 12:49:50 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Feb 13 12:04:07 2023 +0000"
      },
      "message": "third_party/sandboxroot: fix base URL and bump\n\nThis only ever worked by accident.\n\nChange-Id: Ic669081b8a4ad5f378d1e199b97674db4d0ec7a0\nReviewed-on: https://review.monogon.dev/c/monogon/+/1123\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "3ccf69641de62c68a5740d8194d4f0776052dd63",
      "tree": "8a35f1aa01076a35890862f90c186da7fe4ebeda",
      "parents": [
        "d266812c63eb25cf9a586297785add76f5b1f073"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Mon Jan 23 17:01:40 2023 +0000"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Feb 09 12:00:00 2023 +0000"
      },
      "message": "go/net/psample: init\n\nThis adds a minimal golang implementation facilitating network packet\nsampling based on \u0027psample\u0027 kernel module.\n\nMetropolis kernel configuration was modified both in order for this\nchange to be testable in a ktest, as well as to make sure Metropolis\nwill be able to run the included code.\n\nChange-Id: Ie6a4721455f26644b6be01aa6190cf87f21355f3\nReviewed-on: https://review.monogon.dev/c/monogon/+/1102\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "d266812c63eb25cf9a586297785add76f5b1f073",
      "tree": "6ff59931dce0fefd49e0b6af20e732eef2a8968b",
      "parents": [
        "f220b2923c0d8bcf760d1c86af51041371633617"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Wed Feb 01 15:15:59 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Feb 02 13:59:14 2023 +0000"
      },
      "message": "tools/bazel: remove .bazelrc.sandbox from checksum\n\nThis avoids recreating the sandbox on the second run on a clean\ncheckout. The file is autogenerated by tools/bazel, if the user\nchooses to modify it manually, that\u0027s on them.\n\nShould fix half of https://github.com/monogon-dev/monogon/issues/172.\n\nChange-Id: Id43d4c351f69c78ff7a4cd25b5bef84a632ff2b2\nReviewed-on: https://review.monogon.dev/c/monogon/+/1116\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f220b2923c0d8bcf760d1c86af51041371633617",
      "tree": "21a7b7915b25f2ee619de0973720068da9f72072",
      "parents": [
        "68961c3e99c5045bd50f6b91fca9469e47475f2e"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Tue Jan 31 16:52:53 2023 +0000"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Wed Feb 01 18:08:48 2023 +0000"
      },
      "message": "*: use a vishvananda/netlink fork by Monogon\n\nThis switches Metropolis over to a Monogon-maintained fork of\nvishvananda/netlink.\n\nThe package was modified to support the \u0027sample\u0027 action in packet\nfilters. This is required for the upcoming change enabling network\nanalytics through local packet capture.\n\nMetropolis\u0027 dhcp4c had to be modified to match the vishvananda/netlink\nversion referenced by this change.\n\nChange-Id: I2dd0799a009618f8543904252b85ff63ddd560c7\nReviewed-on: https://review.monogon.dev/c/monogon/+/1109\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "68961c3e99c5045bd50f6b91fca9469e47475f2e",
      "tree": "9e6f72f6335dc202d34be3ff239219ab9dd5cb8b",
      "parents": [
        "d6397766915e4427f74d59656718acffc92d872c"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Wed Feb 01 13:53:08 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Wed Feb 01 14:16:16 2023 +0000"
      },
      "message": "third_party/sandboxroot: bump\n\nChange-Id: I2ecae3b86b310dc74e11cca28841dc2ee2210a85\nReviewed-on: https://review.monogon.dev/c/monogon/+/1111\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "d6397766915e4427f74d59656718acffc92d872c",
      "tree": "a3ca53093fb6f0caa39b5b252c1530a76ce64a47",
      "parents": [
        "52c261e956bc48b538f15b64d89a39f5f567ceaa"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Tue Jan 31 18:16:07 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Tue Jan 31 17:56:09 2023 +0000"
      },
      "message": "build/ci: add \"go mod tidy\" step\n\nThis ensures that go.{mod,sum} are up to date and that there\naren\u0027t any missing placeholders.\n\nChange-Id: I2ebc60a8f43f62bf8b70df66e68fafd7026b6148\nReviewed-on: https://review.monogon.dev/c/monogon/+/1107\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "52c261e956bc48b538f15b64d89a39f5f567ceaa",
      "tree": "def8c9282d45ee2b59554cb8f0ab6a1f40d989d4",
      "parents": [
        "506b88652ae57ca4f85a51b9f51641bb50d875af"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Tue Jan 31 18:13:51 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Tue Jan 31 17:56:09 2023 +0000"
      },
      "message": "cloud/agent/api: add missing placeholder\n\nChange-Id: Ia21dc413264d1b4d772869d6db1aff25e2a8e586\nReviewed-on: https://review.monogon.dev/c/monogon/+/1106\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "506b88652ae57ca4f85a51b9f51641bb50d875af",
      "tree": "3c9f18d07b1c925a814a090b9d446dd18e457d88",
      "parents": [
        "97f212c1d25424a099b6a2ff52e0464a2755f11e"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Tue Jan 31 14:54:13 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Tue Jan 31 17:13:14 2023 +0000"
      },
      "message": "commentwrap: ignore lines with URIs in them\n\nChange-Id: Iad0234ff59d74845bda35213deecf9719439d1aa\nReviewed-on: https://review.monogon.dev/c/monogon/+/1105\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "97f212c1d25424a099b6a2ff52e0464a2755f11e",
      "tree": "f5da74b0ac98113b684f51c98946d405fbeacb77",
      "parents": [
        "6294854ace5e06e3b731878544eb39f5351de66d"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sat Jan 21 19:06:34 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Tue Jan 24 16:16:59 2023 +0000"
      },
      "message": "build/ci: mark supervisor and e2e tests as flaky\n\nChange-Id: I56459eac238d3ecc5c8429226cab1c32ceb2e0c4\nReviewed-on: https://review.monogon.dev/c/monogon/+/1088\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "6294854ace5e06e3b731878544eb39f5351de66d",
      "tree": "1281485cc669a4d77f9bc87684fb5539d0595e8a",
      "parents": [
        "7eeec65b849695e7bb1be072e6911694b8a02f54"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 10 13:28:44 2023 +0000"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jan 24 13:39:54 2023 +0000"
      },
      "message": "c/agent: add hardware report\n\nThis adds an agent which currently just gathers hardware information and\ndumps it to stdout.\n\nChange-Id: Idb8518d3e40096dd3dd881808bc6ac98082083a0\nReviewed-on: https://review.monogon.dev/c/monogon/+/1067\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "7eeec65b849695e7bb1be072e6911694b8a02f54",
      "tree": "affecceb6edb6eb561a0970eb762684930b5e53e",
      "parents": [
        "a9580a7970010d14ccbfe86c22483eeae9b7c05c"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Fri Jan 20 21:16:08 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 23 11:03:52 2023 +0000"
      },
      "message": "third_party/sandboxroot: stabilize repo URLs\n\nMetalink output is not stable, pin mirrors instead. We need to\nset up our own caching proxy next, but this will do for now.\n\nChange-Id: Ibc6ea9672890d88022a9310afb92db824226351d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1087\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "a9580a7970010d14ccbfe86c22483eeae9b7c05c",
      "tree": "237a68cba739f4cc29b97bacd602412336a2372c",
      "parents": [
        "60a00a9b08b416be8a29a5d2a19f44e3ab3192d5"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Jan 12 14:44:35 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Jan 23 09:53:32 2023 +0000"
      },
      "message": "c/bmaas/bmdb: implement backoff and history\n\nThis augments the existing Work mechanism with a Fail outcome/method\nwhich allows insertion of a machine \u0026 process backoff until a deadline\nexpires.\n\nWe also add a history/audit table which contains information about the\nwork history of a machine - when some work started, finished, failed or\ngot cancelled.\n\nChange-Id: If890a412977c1d3c7ff3baa69987fb74932818a0\nReviewed-on: https://review.monogon.dev/c/monogon/+/1086\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "60a00a9b08b416be8a29a5d2a19f44e3ab3192d5",
      "tree": "82c4213a532cd68c6939ebe2b469d0e331443a67",
      "parents": [
        "2aa8b184fcbc713d99bb7c3d868d1ab9df6f5b71"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jan 03 13:45:20 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Jan 23 09:53:32 2023 +0000"
      },
      "message": "c/bmaas/bmdb/model: split query files\n\nThis was starting to become slightly unwieldy.\n\nChange-Id: I8f9d63ff6f844f1452fca2a98d253a9582a3ee8d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1085\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "2aa8b184fcbc713d99bb7c3d868d1ab9df6f5b71",
      "tree": "6ee292c36be2008e8d2fc4d7af23157c17c0c981",
      "parents": [
        "bc93c2b50690e66712d80e4da5837554588ca065"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sat Jan 14 23:31:43 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 19 19:07:21 2023 +0000"
      },
      "message": "third_party/rust: update rules_rust and deps\n\nThis is required for rules_rust to work with CC toolchains.\n\nChange-Id: I15f20c7bde09697fda248f7107be8bcd00e24d57\nReviewed-on: https://review.monogon.dev/c/monogon/+/1073\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "bc93c2b50690e66712d80e4da5837554588ca065",
      "tree": "68842095e93b11649cdc23da3bb4a6ef24f9dc8a",
      "parents": [
        "e1ebf729194f3673ea0638f0aceb90cb70de23aa"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sat Jan 14 13:12:23 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 19 19:07:21 2023 +0000"
      },
      "message": "*: migrate to CC toolchains and Bazel 5.4.0\n\nChange-Id: Iff3c0ddda4413dd0c5fa657a5b7813223e98611e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1079\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e1ebf729194f3673ea0638f0aceb90cb70de23aa",
      "tree": "a50df2419e2826889a14781534bdace22cee732b",
      "parents": [
        "e2a302a9062d3ebfc33ad83dd382653e067ca009"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 08 14:18:15 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 19 19:07:21 2023 +0000"
      },
      "message": "README.md: improve developer setup instructions\n\nChange-Id: I3bd188efe774967d3aea512a2d5eb29d0114eafd\nReviewed-on: https://review.monogon.dev/c/monogon/+/1069\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e2a302a9062d3ebfc33ad83dd382653e067ca009",
      "tree": "55165c3da49a1f7b4604c4db85b59bb305011718",
      "parents": [
        "7fbf10455fd61b4c34182be5cdb3a53fd9897d4b"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 15 15:39:18 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 19 19:07:21 2023 +0000"
      },
      "message": "metropolis/test/launch: convert :launch to a test\n\n\"bazel run\" simply executes the binary outside the sandbox, so swtpm\nand other dependencies from the sandbox sysroot won\u0027t be available.\n\nIf swtpm is installed on the host, running the _bin target still works,\nbut it\u0027s better to point contributors to something that works\nout of the box.\n\nThis is a temporary workaround. Tests have timeouts and take the global\nBazel server lock. The correct solution is a static swtpm build\nwhich can run outside the sandbox.\n\nChange-Id: Icf7bf5cc44825df676d37a75ea9c1e135de14fef\nReviewed-on: https://review.monogon.dev/c/monogon/+/1078\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "7fbf10455fd61b4c34182be5cdb3a53fd9897d4b",
      "tree": "02ead12ee79b10abfdd624071802acc771f6bb3e",
      "parents": [
        "bffdda85d7750c9a9a34289a79281edeae1d73ef"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Fri Jan 06 19:57:37 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 19 19:07:21 2023 +0000"
      },
      "message": "*: bring our own sandbox root\n\nThis change removes the build container and replaces it with a\nBazel-built Fedora 37 sysroot which is bind-mounted into the Bazel\nsandbox using --sandbox_add_mount_pair. The tools/bazel wrapper script\nautomatically (re-)generates the sysroot when needed.\n\nBoth Bazelisk and Bazel\u0027s native wrapper automatically run the\ntools/bazel script, which means that our build should now work without\nextra steps on any machine with a working Bazelisk setup and unpriv ns.\n\nThis fixes all kinds of weirdness caused by the previous podman setup\n(\"bazel run\"/container pushes, log access, weird podman bugs,\nbreaking the IDE plugin for any non-Monogon workspaces...).\n\nUsing the sandbox hash as an action var also ensures that the cache\nis invalidated whenever the ambient environment changes. Previously,\nBazel did not invalidate build steps when any host dependency changed.\nTo my knowledge, this was the only remaining cause for stale builds.\n\nIt also means we cannot depend on the host toolchain since it\nwon\u0027t be accessible in the sandbox, and anything that inspects the\nhost during analysis stage will fail. This currently means that\nrunning on a non-Fedora host won\u0027t work - we fix this next.\n\nAll RPMs are pinned and the sysroot is fully reproducible.\n\nOnce we upgrade to Bazel 5.x, we can take it further by enabling\n--experimental_use_hermetic_linux_sandbox and fully remove the\nremaining host paths from the sandbox for full hermeticity.\n\nIn a follow-up, we can clean up the CI image to only contain the\nminimum dependencies needed for Bazelisk and the agent.\n\nExisting IntelliJ users need to remove the -Dbazel.bep.path flag\nfrom their VM options.\n\nHandbook/Rust rules are disabled temporarily to keep CI green\n(requires a more recent rules_rust version).\n\nChange-Id: I1f17d57d985ff9d749bf3359f259d8ef52247c18\nReviewed-on: https://review.monogon.dev/c/monogon/+/1033\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "bffdda85d7750c9a9a34289a79281edeae1d73ef",
      "tree": "09bd64e59e1ed5a2dd3db9e4336b449158ba8fa0",
      "parents": [
        "6c9535b36d033ac647b1cf4fca2a29e8c260a79f"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 10 05:00:36 2023 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 19 17:32:52 2023 +0000"
      },
      "message": "m/p/scsi: add SCSI package\n\nThis adds a SCSI package to interact with SCSI devices.\nIt implements a subset of commands from the SPC-5 and SBC-4 standard\nuseful for discovery and health assessment.\nA follow-up will add SAT (SCSI-to-ATA translation) support.\n\nChange-Id: I7f084d26f11d9c951f51051040160e351cf5594c\nReviewed-on: https://review.monogon.dev/c/monogon/+/1066\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "6c9535b36d033ac647b1cf4fca2a29e8c260a79f",
      "tree": "1ede72b62493211ebda15975d29edcfea83af3f1",
      "parents": [
        "be326c24068009a0f8aa039f1fb5a004fbacae6a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jan 03 13:17:42 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Jan 18 10:09:29 2023 +0000"
      },
      "message": "c/bmaas/bmdb: implement OS installation flow\n\nThis adds two new tags: OSInstallationRequest and\nOSInstallationResponse. It also implements interacting with these tags\nfrom the agent side.\n\nThis doesn\u0027t yet implement any admin/user-facing API to actually request\nOS installation, for now we just exercise this in tests.\n\nChange-Id: I2e31a8369a3a8670bb92bcacfb8231a0d5e1b9fd\nReviewed-on: https://review.monogon.dev/c/monogon/+/1011\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "be326c24068009a0f8aa039f1fb5a004fbacae6a",
      "tree": "04bb044ad4aa292ac51ba7e8a402b519ad266fe6",
      "parents": [
        "acfad5b4d130084d58235a1eae54f4c51f936e44"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Wed Jan 04 20:42:59 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 16 21:45:48 2023 +0000"
      },
      "message": "*: add bazeldnf dependency\n\nThis adds https://github.com/rmohr/bazeldnf, a pure-Go RPM dependency\nresolver. Requires a dummy import for proper Go dependency resolution.\n\nChange-Id: I4d4e7716bfd7da7e3157f06dc1f1612c9e39c17e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1028\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "acfad5b4d130084d58235a1eae54f4c51f936e44",
      "tree": "ecfbf0e9635fa4a6ef49b524c914834eb195f986",
      "parents": [
        "af5086bfe505940699203d158ffa89307f28ebde"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 15 14:05:25 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 16 13:54:47 2023 +0000"
      },
      "message": "m/test/launch/cluster: add pcap dump\n\nDump all network traffic by default to help debug failed tests.\n\nChange-Id: I5466639fa00501373690bd95452b85b61fb5b172\nReviewed-on: https://review.monogon.dev/c/monogon/+/1076\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "af5086bfe505940699203d158ffa89307f28ebde",
      "tree": "3ec03923903f2a5f9262f1b9ee79b6e80158520b",
      "parents": [
        "20a036ee94d0999ab632de4f9c2d1feff192d72b"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 15 14:12:42 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 16 12:44:48 2023 +0000"
      },
      "message": "m/test/launch: print qemu options at startup\n\nChange-Id: I35b234301e7c06a910127a4cf2c1573d23af45a9\nReviewed-on: https://review.monogon.dev/c/monogon/+/1077\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "20a036ee94d0999ab632de4f9c2d1feff192d72b",
      "tree": "47b90debe3873ee1d8075ffac1995f3769bdae31",
      "parents": [
        "afb925b446e4f13a05a36f1d87e6b8a1f5a2e27a"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 15 00:17:19 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 16 12:37:51 2023 +0000"
      },
      "message": "Fix some typos/grammar/variable shadows\n\nChange-Id: I43e78ec7931399c4f60f431d659953f084db7172\nReviewed-on: https://review.monogon.dev/c/monogon/+/1074\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "afb925b446e4f13a05a36f1d87e6b8a1f5a2e27a",
      "tree": "f0b4cd6185a5d55273b33d0d5952db35204a86f7",
      "parents": [
        "94695969085cb2df182f58ee06443c5d7cf233ec"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Sun Jan 08 16:57:28 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 16 12:37:40 2023 +0000"
      },
      "message": ".bazelrc: remove hardcoded resource constraints\n\nLet Bazel figure out the appropriate number of jobs and RAM by itself.\nThis should improve default build performance on large machines.\n\nOne possible caveat: we use genrules that consume excessive CPU\non their own (i.e. edk2, kernel...), and removing the jobs limit\nmight cause worse resource contention in some scenarios - but\nfrom limited testing, this does not appear to be a problem.\n\nChange-Id: Ib96d7953b6530fe202f8b7b0aa160cc7e2f2c35c\nReviewed-on: https://review.monogon.dev/c/monogon/+/1070\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "94695969085cb2df182f58ee06443c5d7cf233ec",
      "tree": "76f807a250c74d4c47dd6a723b1e7b65e677e2f1",
      "parents": [
        "be6c3ad293eb15e49c859a28718b0643d2e4f507"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 12 17:33:17 2023 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jan 12 17:52:21 2023 +0000"
      },
      "message": "c/agent/api: add takeover API\n\nThis adds two messages to interact with the takeover process in an\nautomated way.\n\nChange-Id: I866d418ae18d86e0b8be40c73d49b86a3ddfe242\nReviewed-on: https://review.monogon.dev/c/monogon/+/1071\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "be6c3ad293eb15e49c859a28718b0643d2e4f507",
      "tree": "6017d1fd231442b370af6e60928a18e85b5e3e71",
      "parents": [
        "79c13a296a51fc3765fc1857698575621052150d"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Dec 12 15:11:39 2022 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Jan 12 12:11:07 2023 +0000"
      },
      "message": "c/bmaas/bmdb: rework Work API into working form\n\nThe Work API within the BMDB library wasn\u0027t quite working for purely\nBMDB-directed control loops. We fix that by turning Work into a\nthree-phase process of retrieval, side-effect causing work and\ncommitting.\n\nWe also add a test that exercises this functionality alongside the Agent\ntags and installation retrieval queries.\n\nChange-Id: I43af0c02af034e402dadb3e3a1fd10e5a8fe680a\nReviewed-on: https://review.monogon.dev/c/monogon/+/998\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "79c13a296a51fc3765fc1857698575621052150d",
      "tree": "746398d651c94f4dc5d48ebfe4c8679fdb8fa1de",
      "parents": [
        "20f68b68006bc85ecf873316c1ec4415fb7d2ce6"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Wed Jan 04 23:15:13 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Mon Jan 09 10:04:15 2023 +0000"
      },
      "message": "build/toolchain: fix a few typos while driving by\n\nChange-Id: I7e0dd8bea122990143619d69e312f0f67f3b3a7f\nReviewed-on: https://review.monogon.dev/c/monogon/+/1032\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "20f68b68006bc85ecf873316c1ec4415fb7d2ce6",
      "tree": "9be902cfced3a59f64f9f5440aef18b4b753fa0f",
      "parents": [
        "294002872b79dff7f91538a45ac50a12d33607de"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Wed Jan 04 20:39:56 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 05 13:17:26 2023 +0000"
      },
      "message": "cloud/bmaas/server/api: add gomod placeholder for go mod tidy\n\nChange-Id: Iae1b568db08947b9314b735fa404cf43a2d37445\nReviewed-on: https://review.monogon.dev/c/monogon/+/1027\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "294002872b79dff7f91538a45ac50a12d33607de",
      "tree": "ac03b2a5147e83d7ad2e767ebfa69a1f60221149",
      "parents": [
        "06f51944c154f10756796323b1cbde1ce5376c47"
      ],
      "author": {
        "name": "Leopold",
        "email": "leo@monogon.tech",
        "time": "Wed Jan 04 17:12:46 2023 +0100"
      },
      "committer": {
        "name": "Leopold Schabel",
        "email": "leo@monogon.tech",
        "time": "Thu Jan 05 13:17:22 2023 +0000"
      },
      "message": "tools/bazel: add wrapper script\n\nThis causes recent versions of Bazelisk (and native Bazel) to use\nour wrapper script automatically.\n\nIe74b9ecd removes the internal wrapper, which used to the same\njob but much less elegantly.\n\nChange-Id: Iabf0988c8d9ce2fa759ea81e6853380b56ffed2e\nReviewed-on: https://review.monogon.dev/c/monogon/+/1024\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "06f51944c154f10756796323b1cbde1ce5376c47",
      "tree": "cb616c969928dd53b79eaf6d81afef58edc189c1",
      "parents": [
        "12450d28a5a841994df41bb7c37c24d53a2c80d2"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Dec 20 13:06:53 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 03 18:16:07 2023 +0000"
      },
      "message": "third_party/linux: add memory hotplug\n\nWe need this for hardware reporting (and for running in VMs).\n\nChange-Id: I52dff73e0c945dcfde59b014a46c4efe15a133c2\nReviewed-on: https://review.monogon.dev/c/monogon/+/1001\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "12450d28a5a841994df41bb7c37c24d53a2c80d2",
      "tree": "4d986fcb759755fa81ebb4a6ef9bf98db916a3bb",
      "parents": [
        "fba5da0d552a7406276be9bacc87c79108698669"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Dec 20 13:06:19 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 03 18:16:07 2023 +0000"
      },
      "message": "pkg/smbios: fix error calculating memory size\n\nThere were two errors in the memory size calculation.\nOne was that if the high bit is set the unit is KiB, otherwise MiB, not\nthe other way around.\nThe other one was that I extracted the bit, but failed to shift it to\nthe right position. So I took the time to stop this bit twiddling and\nadded some constants and a good old-fashioned if.\n\nChange-Id: I0bce8f7607981e62120365374458425f3c663b51\nReviewed-on: https://review.monogon.dev/c/monogon/+/1000\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "fba5da0d552a7406276be9bacc87c79108698669",
      "tree": "fbb6f9eb26f86bfb3e7aa8ba524a29bafe76ec12",
      "parents": [
        "189495ac490e93770a88affdce25b8f2087cb193"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Dec 15 11:20:47 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 03 18:16:07 2023 +0000"
      },
      "message": "pkg/nvme: add NVMe package\n\nThis adds a NVMe package for performing various low-level operations on\nNVMe devices. Only the most important (to us) calls are implemented as\nNVMe has a vast API surface.\n\nChange-Id: I532894c3c2eb780309993a1688226c92c91cdedf\nReviewed-on: https://review.monogon.dev/c/monogon/+/999\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "189495ac490e93770a88affdce25b8f2087cb193",
      "tree": "63055d30158a084d6853ccd796316d1578b87024",
      "parents": [
        "4abeb13b0c1f26148daf14f430de17cd5eacf351"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 08 12:59:36 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jan 03 18:16:07 2023 +0000"
      },
      "message": "c/a/a: add initial API for HW report\n\nThis adds an initial API for the hardware report to be implemented in\nthe agent.\n\nChange-Id: If9781169cd98c730a5f471e622b3511b46dd1e4f\nReviewed-on: https://review.monogon.dev/c/monogon/+/964\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "4abeb13b0c1f26148daf14f430de17cd5eacf351",
      "tree": "1e27894c1fa0b93a9345800df370c8e5e2156c17",
      "parents": [
        "f9c65e9e588c44e019d6b8836275493abe298a2e"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Oct 11 11:32:19 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Dec 20 11:28:11 2022 +0000"
      },
      "message": "cloud/bmaas/server: init\n\nThis adds the BMaaS server alongside its first functionality: serving an\nAgent heartbeat API.\n\nThis allows (untrusted) Agents to communicate with the rest of the\nsystem by submitting heartbeats which may include a hardware report.\n\nThe BMaaS server will likely grow to implement further functionality as\ndescribed in its README.\n\nChange-Id: I1ede02121b3700079cbb11295525f4c167ee1e7d\nReviewed-on: https://review.monogon.dev/c/monogon/+/988\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f9c65e9e588c44e019d6b8836275493abe298a2e",
      "tree": "623c0d0e36c62d0593dbd6cc73ed3c629bf0466a",
      "parents": [
        "68ca370db4bb8314ac7598ce3b9c90194bde47a8"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 22 12:50:56 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 29 12:22:31 2022 +0000"
      },
      "message": "pkg/smbios: add SMBIOS package\n\nThis adds a new SMBIOS package which contains common structures from\nSMBIOS as well as corresponding parsers.\nI originally explored an approach where I manually designed optimized Go\ntypes for each structure, but that would have led to a huge amount of\ncode that reading a structure of this type would cause if done\nliterally. I also considered code generation, but if the generated types\nare to be close to the manually-designed ones it would be an incredibly\ncomplex piece of code as well.\nFinally I went with a design based on reflection which is much more\ncompact than the first two and consists of plain Go code at the expense\nsome niceness in the types.\nI called the current types SomeTypeRaw in case I want to come back later\nintroduce a small layer mapping the current structures into nicer ones.\nBut for our current purposes the raw ones are good enough already.\n\nThis has been tested against our deployment targets, but as the SMBIOS\ndata contains uniquely identifying information these small tests are not\npart of this CL. Sadly I haven\u0027t found any public SMBIOS test-cases.\n\nChange-Id: I55d746ada0801de456f2a0eb961821abd9d58fa2\nReviewed-on: https://review.monogon.dev/c/monogon/+/983\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "68ca370db4bb8314ac7598ce3b9c90194bde47a8",
      "tree": "57cc8b6ad0a1b1a781acb89484ce1f4bb9ab34a4",
      "parents": [
        "0123a1c948100c040c1924e50dc1e05a9cd523a7"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Nov 02 17:30:44 2022 +0100"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Nov 08 12:59:27 2022 +0000"
      },
      "message": "c/bmaas/bmdb: add Agent{Started,Heartbeat} tags and queries\n\nThis should be the required tags and queries for the first interactions\nwith the Shepherd subsystem.\n\nChange-Id: I8c663803cfd936b11c59bce7db5abc94b99dd1db\nReviewed-on: https://review.monogon.dev/c/monogon/+/962\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "0123a1c948100c040c1924e50dc1e05a9cd523a7",
      "tree": "0e99c3903f18cca4e97c60f3595b4fee5924ca1d",
      "parents": [
        "35e8d79e695b290d371d82dbcc5b15cea429d424"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Oct 24 18:41:48 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Oct 26 15:46:46 2022 +0000"
      },
      "message": "m/p/kexec: add auxiliary EFI handling\n\nThis makes kexec do auxiliary handling related to EFI. If a system is\nbooted using EFI and has an ACPI Root System Description Pointer (RDSP)\ni.e. just about every modern system, the pointer to that structure needs\nto be passed to the kexec\u0027ed kernel on its command line.\nOtherwise various EFI-related functionality breaks, like accessing\nEFI variables which causes a kernel crash.\n\nLogically I think this functionality belongs to kexec as callers\nshouldn\u0027t need to be aware of kexec specifics and every caller\npotentially running on EFI needs this functionality.\n\nChange-Id: Iec7ad4c3c0a7e5c31d738d307ff0e10aac02ab11\nReviewed-on: https://review.monogon.dev/c/monogon/+/960\nTested-by: Jenkins CI\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "35e8d79e695b290d371d82dbcc5b15cea429d424",
      "tree": "7bd2a6707cb34b0ae20742f5182df88f1cb2e226",
      "parents": [
        "ee17d8303258980270587755f75dc4b6412e3a31"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Oct 11 11:32:30 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Oct 25 13:16:12 2022 +0000"
      },
      "message": "cloud/bmaas/bmdb: init\n\nThis adds the initial Bare Metal Database structure. This change focuses\non a session/work mechanism which is the foundation on which we will\nbuild worker components. It allows lease-like mechanics on machines,\nletting us not have to use \u0027standard\u0027 work queues in the BMaaS project.\n\nChange-Id: I42c3f4384c64fd90dbeab8ff9652a6f611be81d4\nReviewed-on: https://review.monogon.dev/c/monogon/+/953\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "ee17d8303258980270587755f75dc4b6412e3a31",
      "tree": "25e30e22a95527592b8d596dc8da5e6f7b6b63ab",
      "parents": [
        "ce3d810f4fde5e00aba7539a4d12ebe82d65b672"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Oct 18 12:02:45 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Oct 24 16:30:56 2022 +0000"
      },
      "message": "m/p/gpt: add GPT package\n\nThis introduces our own GPT package. It will be used for provisioning\nand Metropolis images.\n\nChange-Id: I905cd5d540673fd4b69c01d8975f98b88e24edd4\nReviewed-on: https://review.monogon.dev/c/monogon/+/956\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "ce3d810f4fde5e00aba7539a4d12ebe82d65b672",
      "tree": "115369420532871a70e28e6985baf486321ecde8",
      "parents": [
        "a5baa87a6ca09502afb077b5fd74f0b374fecaf4"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Oct 18 12:04:43 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Wed Oct 19 20:30:58 2022 +0000"
      },
      "message": "third_party/linux: add bonding\n\nFor our provisioning project we need bonding support, enable it in\nour kernel.\n\nChange-Id: I46c348c7c855be3a2c3a5db88840f4a7611a49fe\nReviewed-on: https://review.monogon.dev/c/monogon/+/957\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "a5baa87a6ca09502afb077b5fd74f0b374fecaf4",
      "tree": "fbad865ebf68d5244fd5573f573248ab5143b5c1",
      "parents": [
        "9cdec58c06b7eb5b8b532ccf5e6babb060992276"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Sep 15 18:49:35 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Sep 16 11:30:15 2022 +0000"
      },
      "message": "cloud/{apigw,lib/component}: add cockroachdb client, sample schema\n\nThis sets up some boilerplate to connect to CockroachDB servers,\nincluding test in-memory servers.\n\nWe also add a first pass apigw user table schema, as the first user of\nthis new functionality. We exercise that, in turn, in a test.\n\nWe also rename component.Configuration to component.ComponentConfig.\nThere\u0027s a stutter in there, but it makes sense with\ncomponent.CockroachConfig alongside.\n\nChange-Id: I76691146b87ce135d60db179b3f51eee16525df7\nReviewed-on: https://review.monogon.dev/c/monogon/+/912\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nVouch-Run-CI: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "9cdec58c06b7eb5b8b532ccf5e6babb060992276",
      "tree": "d2fa7915a7995f434cf6b4a8e930c68d4759b1f5",
      "parents": [
        "1e9d7d875a7bd10ab30d4b193badab9f76936aca"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Sep 15 18:48:27 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Sep 16 11:30:15 2022 +0000"
      },
      "message": "build/sqlc: remove bindata machinery for migrations\n\nThis wasn\u0027t great to use, mostly because of the amount of symbols that\ngo-bindata generates. Instead, for now expect downstream users to use\ngo:embed.\n\nThe mentioned example will come in a follow-up CL.\n\nChange-Id: I74c0cef691af54a87a5170f63b57356999841379\nReviewed-on: https://review.monogon.dev/c/monogon/+/911\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "1e9d7d875a7bd10ab30d4b193badab9f76936aca",
      "tree": "aa51445504663ebe1ec348ec37d6f22bbb59be2b",
      "parents": [
        "bee272f2240dd33f9ec74666205349ced91d3f0a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Sep 15 18:45:44 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Fri Sep 16 11:30:15 2022 +0000"
      },
      "message": "third_party: add lib/pq, cockroachdb and cockroachdb test server\n\nChange-Id: I0e32635fd9a9e063e53877213ff87ef6d881403d\nReviewed-on: https://review.monogon.dev/c/monogon/+/910\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "bee272f2240dd33f9ec74666205349ced91d3f0a",
      "tree": "afffbe99f7d0407ed37cd9c710d1622573b58746",
      "parents": [
        "a9590fe2dcde11eed3b6e8cf1f7ac42a85c9854e"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Sep 13 13:52:42 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Sep 14 11:45:15 2022 +0000"
      },
      "message": "cloud: init with apigw\n\nThis adds a first component to the cloud project, the apigw (API\nGateway), which listens on a public gRPC-Web socket.\n\nIt\u0027s not truly a gateway - it will actually contain most of the\nIAM/Project logic for the cloud system. A better name should be picked\nlater.\n\nWe implement a minimum internal/public gRPC(-Web) listener and some\nboilerplate for the parts that are gonna pop up again. Notably, we add\nsome automation around generating developer TLS certificates for the\ninternal gRPC listener.\n\nCurrently the apigw serves a single, demo RPC which returns\n\u0027unimplemented\u0027.\n\nChange-Id: I9164ddbd9a20172154ae5a3ffad676de5fe4927d\nReviewed-on: https://review.monogon.dev/c/monogon/+/906\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "a9590fe2dcde11eed3b6e8cf1f7ac42a85c9854e",
      "tree": "ee7dca479c50df02a2eb39729d49ce402fd70924",
      "parents": [
        "f054486ae95df87cb0811df488bb47aebdac14da"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Sep 13 13:51:41 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Sep 14 11:45:15 2022 +0000"
      },
      "message": "third_party/go: add improbable-eng/grpc-web and klog\n\nThis is in preparation of implementing the cloud service boilerplate.\n\nChange-Id: I393057dfc3c0a5a4f0392e66b1be9eff306496cf\nReviewed-on: https://review.monogon.dev/c/monogon/+/905\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "f054486ae95df87cb0811df488bb47aebdac14da",
      "tree": "195657113c01909686a9de30aa36d1ebc5014353",
      "parents": [
        "5486a9cf8c7092a213bfda0b52681c156fe87cbb"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Sep 12 17:05:54 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Sep 13 11:33:35 2022 +0000"
      },
      "message": "third_party/linux: improve kernel configuration\n\nThese configuration changes are required to boot the Metropolis kernel\nvia kexec on a PowerEdge R750.\n\nkexec needs to be enabled even if we\u0027re not using it as just using kexec\nto launch a kernel on an EFI machine requires a fixup performed only if\nthe target kernel is built with kexec enabled. Otherwise it crashes\nimmediately after mounting efivars by dereferencing a null pointer.\n\nbpfilter should be disabled because it needs a userspace helper (the\n.ko actually runs in userspacee) and we ship none of that, causing an\nerror-level log message on every boot.\nUntil we actually ship the required infrastructure disable it.\n\nirq_remap is required for x2apic, without it\nthe kernel can\u0027t even boot on that platform.\n\nintel_iommu is just a drive-by enable because the AMD IOMMU is already\nenabled and we want the protection.\n\nChange-Id: Iaf0012e8c0427114c56fc5d90a9748ebeb800a54\nReviewed-on: https://review.monogon.dev/c/monogon/+/904\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "5486a9cf8c7092a213bfda0b52681c156fe87cbb",
      "tree": "458c972750c2a47ff4697ac11fe3c27b421fb8ff",
      "parents": [
        "d1bc4a61ebcebe25fc45fbaba577867a6f293b97"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Sep 12 16:49:30 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Sep 13 11:32:54 2022 +0000"
      },
      "message": "m/p/kexec: add minimal kexec library\n\nThis adds a minimal kexec library which wraps the kexec_file_load\nsyscall in a Go-style interface.\n\nChange-Id: Ia69b47ec6a305b19b238f30a7515aabdccb44bb9\nReviewed-on: https://review.monogon.dev/c/monogon/+/903\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "d1bc4a61ebcebe25fc45fbaba577867a6f293b97",
      "tree": "373e0119dca4af4b8d3002008296ec1e7e8da0e6",
      "parents": [
        "4c50f99747ed78f74924e7ff9724fe4486ca2ec9"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Mon Sep 12 16:45:18 2022 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Sep 13 11:32:54 2022 +0000"
      },
      "message": "m/n/build: fix fsspec rules duplicating specs\n\nCurrently if a rule which outputs an fsspec outputs both a DefaultInfo\nas well as an FSSpecInfo provider and both are propulated, the fsspec\ncore implementation will use both instead of only using the FSSpecInfo.\nThis leads to spurious errors when the fsspec consumers detect duplicate\nfiles.\nThis change makes the fsspec rule ignore the DefaultInfo provider if a\nFSSpecInfo provider exists on an input label.\n\nChange-Id: Iec8975200380889732c840ff16d17f791fa1ba83\nReviewed-on: https://review.monogon.dev/c/monogon/+/902\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "4c50f99747ed78f74924e7ff9724fe4486ca2ec9",
      "tree": "c14cf22e92ea70b109b067997ca152cf0ff3b68a",
      "parents": [
        "1b28e1b92989e827087bc6b594a411e10328e00a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Sep 05 18:43:01 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Sep 07 13:44:53 2022 +0000"
      },
      "message": "m/c/metroctl: reformat\n\nThis appeases my IntelliJ.\n\nChange-Id: I61fa3bea6d5e79eafc25a94880a630fad99c0524\nReviewed-on: https://review.monogon.dev/c/monogon/+/885\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nReviewed-by: Mateusz Zalega \u003cmateusz@monogon.tech\u003e\n"
    },
    {
      "commit": "1b28e1b92989e827087bc6b594a411e10328e00a",
      "tree": "6f15262ff5bbbc09b48e184ba59289ff5379ec92",
      "parents": [
        "46e72abb01d6bd4b39fd720680602bd6914e545a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Sep 05 18:41:18 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Sep 07 13:44:24 2022 +0000"
      },
      "message": "build/sqlc: implement simple sqlc/bindata rules\n\nThis is a first pass at implementing rules to generate sqlc stubs from\n.sql files and embed relevant migration files into bindata.\n\nThis is not yet used. The Go API is subject to change - especially the\nway migrations are laid out in the generated package will probably\nchange.\n\nChange-Id: I0873031603957a176ad4664c3b10768b791e0dd5\nReviewed-on: https://review.monogon.dev/c/monogon/+/884\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "46e72abb01d6bd4b39fd720680602bd6914e545a",
      "tree": "6b5b740ecc003b62db432f5b2b6b13a88dcb3c8a",
      "parents": [
        "bd2ce6dcffa271d8ef00bceda1a89fc34d1d0f3d"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Sep 05 15:13:22 2022 +0200"
      },
      "committer": {
        "name": "Sergiusz Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Sep 07 13:44:24 2022 +0000"
      },
      "message": "third_party: add libpg_query and sqlc\n\nThis adds sqlc, a SQL query code generator for Go (and other languages).\nIt in turn requires pganalyze\u0027s libpg_query, which is a C library for\nparsing PostgreSQL queries.\n\nTo test:\n\n   $ bazel build @com_github_kyleconroy_sqlc//cmd/sqlc\n\nIn the future this will be used by Bazel rules to generate sources at\nbuild time.\n\nChange-Id: I369c9ab503e8ce6952fd3f73c233dd3d59922358\nReviewed-on: https://review.monogon.dev/c/monogon/+/882\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    }
  ],
  "next": "bd2ce6dcffa271d8ef00bceda1a89fc34d1d0f3d"
}
