)]}'
{
  "log": [
    {
      "commit": "cdb325ee1cd0b3f3e6db46d8d933d0ab519a5d14",
      "tree": "2eb92316a7168f5854a85d73e7c1c2faae47c475",
      "parents": [
        "00343808fb93a070f99c259e4ad9b7294e22e767"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Apr 19 15:36:38 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Apr 24 09:00:34 2023 +0000"
      },
      "message": "cloud/bmaas: add extra provider tags\n\nChange-Id: I403451f452a7c94a7661e49df06f4046f9f91422\nReviewed-on: https://review.monogon.dev/c/monogon/+/1577\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "f984e1eaea94cfdbd6bc23ab438f02028800fb9c",
      "tree": "dc627288a4205590e3f441e9b0a4199f1d480834",
      "parents": [
        "213d90c4f27478bcdac4a9429422cf496f989431"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Wed Apr 19 23:12:38 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Apr 20 11:47:57 2023 +0000"
      },
      "message": "c/b/b/webug: add tag count table\n\nChange-Id: I9662f00629335a656c401f66c798575f7db57842\nReviewed-on: https://review.monogon.dev/c/monogon/+/1583\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "3ea40da4d6642593f7535dc71084b3367c6eb35e",
      "tree": "93e73362243369578733bd3755a8d059dadd7ae3",
      "parents": [
        "20312b40ed4644c64581b4cc8d93a0fc0035fc71"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Apr 19 14:32:37 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Apr 19 15:42:44 2023 +0000"
      },
      "message": "cloud/bmaas: test and document upgrades across migrations\n\nChange-Id: I1c405b0f2ecc10331b79d02deb8a63f3b148f502\nReviewed-on: https://review.monogon.dev/c/monogon/+/1566\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "20312b40ed4644c64581b4cc8d93a0fc0035fc71",
      "tree": "5b812982e0b5bfd7ef0c10659393d37ad0062d62",
      "parents": [
        "ff619354a126df5acffd78ee2f072a17d074e7ab"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Apr 19 13:49:47 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Apr 19 15:42:44 2023 +0000"
      },
      "message": "cloud/bmaas: implement exponential backoffs\n\nThis lets work fail with a proper exponential backoff. This is important\nnot just to not hammer external systems, but also to not end up with\nexteremely long and verbose historical logs for repeatedly failing\nprocesses.\n\nTo implement these, we have to slightly alter our model: instead of\nalways persisting backoffs for a given machine, we only persist them as\nlong as the last work for a given process has failed, deleting pertinent\nbackoffs (if any) on success. Then, the existence of a backoff item is\nused to calculate the value of the next backoff.\n\nThe change also introduces and explicit period, in seconds, to the\nbackoff item. It is currently implemented as a nullable field, but a\nfuture migration/update might make them non-nullable (and delete any\nstraggling backoffs that still don\u0027t have the period set).\n\nChange-Id: I958fcd957dae1156349224f07fb8d4836955d375\nReviewed-on: https://review.monogon.dev/c/monogon/+/1565\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "ae00468363b0006ecf1ae90ed3833bbe54820df5",
      "tree": "3dff4cdf264bed17e66f7aed2c8085b67738104d",
      "parents": [
        "86a714d6e81bb524dc59fda7baa63b45e7180489"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Apr 18 13:28:48 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Apr 19 13:55:01 2023 +0000"
      },
      "message": "cloud/shepherd/equinix: implement recoverer\n\nThis implements basic recovery functionality for \u0027stuck\u0027 agents. The\nshepherd will notice machines with a agent that either never sent a\nheartbeat, or stopped sending heartbeats, and will remove their agent\nstarted tags and reboot the machine. Then, the main agent start logic\nshould kick in again.\n\nMore complex recovery flows can be implemented later, this will do for\nnow.\n\nChange-Id: I2c1b0d0465e4e302cdecce950a041581c2dc8548\nReviewed-on: https://review.monogon.dev/c/monogon/+/1560\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "86a714d6e81bb524dc59fda7baa63b45e7180489",
      "tree": "1d1cadea7a23d82d40144e3d9988d31fbe26270f",
      "parents": [
        "42f13465aa2a2b57c2971d20219f15aeb2a21f3e"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Apr 17 15:54:21 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Apr 19 13:55:01 2023 +0000"
      },
      "message": "cloud/shepherd/equinix: split out control loop logic\n\nThis is in preparation for implementing the recoverer/rebooter inside\nthe shepherd.\n\nIn the future this will likely be split away from from the shepherd and\nend up as a generic bmdb library. But let\u0027s first wait for concrete\nusages outside of the shepherd component.\n\nChange-Id: I69b9a2e913dcefa2c6558e271b6853285c6120b3\nReviewed-on: https://review.monogon.dev/c/monogon/+/1559\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "42f13465aa2a2b57c2971d20219f15aeb2a21f3e",
      "tree": "39a77fc69f1ee325edad029bf15eb4277b1f30be",
      "parents": [
        "0d58cb9592852ddb9cc767a33958c65b5eab8deb"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Apr 19 15:00:06 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Apr 19 13:42:17 2023 +0000"
      },
      "message": "cloud/bmaas/server: do not start BMDB session per RPC\n\nFixes https://github.com/monogon-dev/monogon/issues/198\n\nChange-Id: Ia99b9a47bfc9ae6de0b9e12e13add891dea289a5\nReviewed-on: https://review.monogon.dev/c/monogon/+/1567\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "ae7e3ed68433bc63fa038b8aa6499dff7ee12378",
      "tree": "78277ced320474a4b0ca06f62cf9cd034b41750e",
      "parents": [
        "51350b0cc10f2647be9831832eabc3030f9181af"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Apr 17 23:15:39 2023 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Apr 18 11:59:09 2023 +0000"
      },
      "message": "cloud/bmaa/reflection: add ORDER BY machine_id\n\nChange-Id: Icfaf0f21ac4a1591c73a5fd3cc3d4a2cac01a8f6\nReviewed-on: https://review.monogon.dev/c/monogon/+/1550\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "10b2154450b4e43d2b959137f47bceeaf9c9f1f3",
      "tree": "610ba665e92e7763bf191fcbf7e04eddcfd85d86",
      "parents": [
        "1a38b8accc638a56704899e6e21238379511c5da"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Apr 13 12:12:05 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Apr 17 09:14:47 2023 +0000"
      },
      "message": "cloud/bmaa/reflection: render known protos as prototext\n\nThis extends the type and value structures of the reflection code to\nsupport arbitrary Protobuf serialized messages. We currently identify\nwhat message type is contained in a column by a hardcoded lookup table.\n\nChange-Id: I31a260b7ed5582678803d27bf6ba30028cbea266\nReviewed-on: https://review.monogon.dev/c/monogon/+/1539\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "1a38b8accc638a56704899e6e21238379511c5da",
      "tree": "ea057482cd8987628f99747c25fa9221da3dbd85",
      "parents": [
        "5cd7ddf9b4f0b3f1bbc588af5d3c47d232385520"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Apr 13 12:11:15 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Apr 17 09:14:47 2023 +0000"
      },
      "message": "cloud/bmaas/webug: render multiline tags correctly in machine view\n\nChange-Id: Ibaee208e01131a3b34d59368bb4718127a5f0d8a\nReviewed-on: https://review.monogon.dev/c/monogon/+/1538\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "5cd7ddf9b4f0b3f1bbc588af5d3c47d232385520",
      "tree": "5592f7c4f59d0a860335d1e9dbf9df85397fd43b",
      "parents": [
        "2cfafc9a4c34152dd93b58aa82df1720fb4dd6d6"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Apr 13 12:09:53 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Apr 17 09:14:47 2023 +0000"
      },
      "message": "cloud/bmdb/reflection: copy byte slices\n\nThe pq driver doesn\u0027t allocate unique backing buffers for each slice\nhanded out as part of scanning, so we need to do a copy. Otherwise we\nend up with junk being written to the reflected field data if another\nSQL operation is performed later.\n\nChange-Id: I8f5a135ef3c5a3bb365098e1727e26572ddedcce\nReviewed-on: https://review.monogon.dev/c/monogon/+/1537\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "c09cca0e59c56f054a2f47872e54f83cad288c31",
      "tree": "2bffc8eb4799fa63d1d74279d600e34f962dbabe",
      "parents": [
        "6963c63bace3dbc4c4f95d2837ac4cf271be8d78"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Apr 06 15:09:27 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Apr 06 13:17:22 2023 +0000"
      },
      "message": "c/bmaas/bmdb/webug: fix links to providers\n\nChange-Id: I606d368675dad4a46fa0b276ff8a109d08a745b6\nReviewed-on: https://review.monogon.dev/c/monogon/+/1506\nTested-by: Jenkins CI\nReviewed-by: Tim Windelschmidt \u003ctim@monogon.tech\u003e\n"
    },
    {
      "commit": "6963c63bace3dbc4c4f95d2837ac4cf271be8d78",
      "tree": "ed45420a15af2e326cb864d80d890ec6496b02f3",
      "parents": [
        "77b11d3b440efb95cd29cbca5d56e63e5951ca17"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Apr 06 14:55:49 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Apr 06 13:12:28 2023 +0000"
      },
      "message": "cloud/lib/component: regression test for review/1502\n\nChange-Id: I8050ce31d7e5c6bd3e85a3d085052442a473881d\nReviewed-on: https://review.monogon.dev/c/monogon/+/1504\nReviewed-by: Tim Windelschmidt \u003ctim@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": "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": "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": "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": "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": "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": "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": "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": "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"
    }
  ]
}
