)]}'
{
  "log": [
    {
      "commit": "156248b949f3da7c8d0f4f46cb97ac7606464952",
      "tree": "ff52faf242a29f1916edad64bca6282f8030ee66",
      "parents": [
        "227c5cbbdd8f682b6e4d4cc661fa0d6e734206f2"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Jan 10 00:27:45 2025 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Fri Jan 10 20:13:30 2025 +0000"
      },
      "message": "treewide: format repo with buildifier\n\nChange-Id: Ia7aebeb7bba5b119c9157d1ad805cc477bcbb68a\nReviewed-on: https://review.monogon.dev/c/monogon/+/3774\nTested-by: Jenkins CI\nReviewed-by: Leopold Schabel \u003cleo@monogon.tech\u003e\n"
    },
    {
      "commit": "275facf8c7a5f3dc826e27e75a6122226acd5694",
      "tree": "a4f5068b0d1888e9c81757539bc52f0dcf8e5f89",
      "parents": [
        "a8938da203b9ecc42a61b4aa9e92b802bf0e4902"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Sep 24 00:24:29 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Nov 11 16:03:59 2024 +0000"
      },
      "message": "m/cli/metroctl/test: rename test file to fit naming scheme\n\nChange-Id: Ia4b93203d0da27ef171272bb9cb18ac7cdac5db0\nReviewed-on: https://review.monogon.dev/c/monogon/+/3511\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "b701df98b1706751142f29bee032321447886267",
      "tree": "27b650e77b9be17108f8e03aecfd535ec0366242",
      "parents": [
        "78567601398f4db5a8080fd30038ff7ac6affe0f"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Oct 31 14:15:33 2024 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 05 13:11:03 2024 +0000"
      },
      "message": "metropolis/metroctl: implement cluster configure\n\nThis is a framework for simple ClusterConfiguration changes via\nmetroctl. We only have one mutable field for now\n(kubernetes.node_labels_to_synchronize), but more fields can be\nsupported later.\n\nThis could also be extended to support operations like \u0027add\u0027 and\n\u0027remove\u0027 for repeated fields.\n\nFinally, there could be another CLI command that would drop you into a\nprototext editor, similar to `kubectl edit xxx`. But this solves the\nsimplest usecase for now.\n\nChange-Id: I2fc588a2a2249a5c4f0cf52acb162cac9ed3d9a4\nReviewed-on: https://review.monogon.dev/c/monogon/+/3595\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "beec27c6bdc2da730ffa2a2be6a68e1610148913",
      "tree": "d9c130b03107cdcbadcc50ff850d96d0c83b8dcb",
      "parents": [
        "2db687330d6c907bf31006730bdd161cd34cddaa"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Oct 31 12:27:08 2024 +0000"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Nov 05 13:11:03 2024 +0000"
      },
      "message": "metropolis/cli/metroctl: move takeownership under cluster subcommand tree\n\nThis is in preparation for having more cluster-wide commands (same as we\nkeep \u0027node\u0027 for all node-specific commands).\n\nChange-Id: I3fa5935e1d751261bf82a80cf61e811fa36effc9\nReviewed-on: https://review.monogon.dev/c/monogon/+/3593\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "82e6af71ad2b7927de8d754799271ee9f39506f9",
      "tree": "4da4ec95a6e4c5f58957c555d8646e46dbb25c6d",
      "parents": [
        "bceb1604c4d6ce1396c63083d2fd8aae98346cf3"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Jul 23 00:05:42 2024 +0000"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Aug 13 12:43:45 2024 +0000"
      },
      "message": "treewide: replace hardcoded runfiles paths\n\nWe hardcoded some of the runfiles paths to find specific files. This replaces the hardcoded paths by a call to rlocationpath. This prevents running a target without the correct dependencies at build time instead of at runtime\n\nChange-Id: I7ce56935ac80be6b28b824ccb0781ab401bd6521\nReviewed-on: https://review.monogon.dev/c/monogon/+/3301\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "9f21f5396aa18bc9f2f83c867ff883f49bbf02ae",
      "tree": "c232f42c84bd6b7ace576261a188134cb0c69771",
      "parents": [
        "f430fbfe35b70283090b6174cf5a920163c0148c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 07 15:14:20 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Thu Jul 04 12:19:37 2024 +0000"
      },
      "message": "treewide: introduce osbase package and move things around\n\nAll except localregistry moved from metropolis/pkg to osbase,\nlocalregistry moved to metropolis/test as its only used there anyway.\n\nChange-Id: If1a4bf377364bef0ac23169e1b90379c71b06d72\nReviewed-on: https://review.monogon.dev/c/monogon/+/3079\nTested-by: Jenkins CI\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "2b6dc312656035aedade6f368af1994bdb8b6021",
      "tree": "488e63bfdf22b6b389e160a01d4f731c3956e2f3",
      "parents": [
        "8111b901b88c8ef9ca5e113584c928de4bfdd24d"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jun 04 17:44:55 2024 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Jun 11 17:01:21 2024 +0000"
      },
      "message": "metropolis/test: create swtpm TPMs at runtime instead of compile time\n\nThe generated TPM data is random (it contains generated cryptographic\nkeys) so we really shouldn\u0027t be building it with Bazel.\n\nInstead, let\u0027s create it at runtime for e2e tests, and also actually\ngenerate separate TPM data per node with a common issuer for all.\n\nMoving the logic out of //metropolis/node also feels deserved, as this\nis all squarely in test territory.\n\nChange-Id: I257ee54c88ede685ba3faf573282b0f9228b10e8\nReviewed-on: https://review.monogon.dev/c/monogon/+/3132\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "5878603e42a090dca43467173a249d5a8be4533f",
      "tree": "ec164a6f23caf39dbbfbecd27f8abc2778a7bee1",
      "parents": [
        "f8baa3a161261f0906bb06825e49d7556a35376c"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 21 13:47:41 2024 +0200"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue May 21 12:55:58 2024 +0000"
      },
      "message": "metropolis/cli/metroctl: fix %v in cases where we should use %w\n\nChange-Id: I5504dd8d12fe09d4373df619a3cecbfa39c7587b\nReviewed-on: https://review.monogon.dev/c/monogon/+/3097\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "2a1d1b2e90a44e140dd95a492de0c857287e071f",
      "tree": "392015b9ffa5f6f38da494c0a2fc519f16883113",
      "parents": [
        "5d556cae21803212ac72a3713ed449b412f777af"
      ],
      "author": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Tue Feb 06 07:07:42 2024 +0100"
      },
      "committer": {
        "name": "Tim Windelschmidt",
        "email": "tim@monogon.tech",
        "time": "Mon Feb 12 14:11:04 2024 +0000"
      },
      "message": "treewide: replace datafile pkg with rules_go/runfiles pkg\n\nrules_go/runfiles provides the same functionality as our datafile\npackage. This change also contains some specifics for the now active\nbzlmod, which replaces all WORKSPACE related behaviour. As example the\nWORKSPACE name is now always set to _main.\n\n\nChange-Id: I1a69c72b479330a627b402135670f218c297906f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2745\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "7eeef0f448a4ec1737e2e63961f24f51eec5deae",
      "tree": "690afce7d61fed7284991d3622d2b4b7f5948c14",
      "parents": [
        "925ec3de7a8562ef478216c77dff68c8235aeabd"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Feb 05 14:40:15 2024 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Feb 08 11:10:07 2024 +0000"
      },
      "message": "m/c/metroctl: implement TOFU for CA certificates\n\nThis implements trust-on-first-use (TOFU) for connecting to a Metropolis\ncluster.\n\nIf no locally persisted CA is available, one will be retrieved from the\ncluster. If it is then accepted, it will be persisted for future use.\n\nTo retrieve the Cluster CA certificate we implement a new\nunauthenticated call in the CuratorLocal service. The alternative would\nbe to include the CA certificate in the served TLS chain, but that would\nlikely cause some backwards compatibility problems with existing client\nsoftware.\n\nFull TOFU (with an SSH style prompt) will be performed when the user\nfirst takes ownership of a cluster. Otherwise, user credentials\nincluding a certificate will be present, which allows the process to be\nsimplified by just retrieving a remote CA and checking it against the\nsignature of the credentials.\n\nChange-Id: I20002399935c2f13adc4526f5cceddad84b36a8f\nReviewed-on: https://review.monogon.dev/c/monogon/+/2743\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "0ccc85ba1eb4e067dc3eea0dd58b9ab0ebf48d29",
      "tree": "82ed8db26475204d2b73f44626b751a474763883",
      "parents": [
        "8d64a3bad1f73197398b28dacecef57266980c1a"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Nov 20 12:59:20 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Dec 21 14:46:59 2023 +0000"
      },
      "message": "metropolis/node: add version to status\n\nThis implements submitting the Node\u0027s version to its\u0027 Status report to\nthe control plane.\n\nThis version is then displayed to the user in metroctl.\n\nChange-Id: I70eadb9a7001b6e50931245e8a6274da2fbdc5bc\nReviewed-on: https://review.monogon.dev/c/monogon/+/2334\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "3a3c517696210f23f2c1d74d766ddf5750a3f4b8",
      "tree": "f20c99b0329b5895948e1cef5991dde8e5483a79",
      "parents": [
        "fd6d4ebffd699ed87cd8bb41dd7a74e40cbe519c"
      ],
      "author": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Thu Jun 01 19:54:17 2023 +0200"
      },
      "committer": {
        "name": "Lorenz Brun",
        "email": "lorenz@monogon.tech",
        "time": "Tue Jun 06 01:46:23 2023 +0000"
      },
      "message": "m/c/metroctl/test: deflake test\n\nThis test was flaky as the node picked to run takeownership against was\ndependent on map key order. Only the first node runs the relevant\ncontrol plane services, thus if the second node was iterated over first,\nthe test broke. Fix this by using the NodeIDs slice to get deterministic\nordering and always pick the first node.\n\nChange-Id: Id4ac162a8295be4e84ad439ac5b70ff5a968af04\nReviewed-on: https://review.monogon.dev/c/monogon/+/1784\nReviewed-by: Serge Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "e4a4ce1dbbc8abc8a0817f80fcb27437a9e6ca63",
      "tree": "1d2fc878f2e74e1e077dd8848c983c00e6ffcb6d",
      "parents": [
        "5df62bae21bd89f15321a54a33a2ff59f5cbdce8"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 18:29:54 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Apr 17 09:14:54 2023 +0000"
      },
      "message": "metropolis: finish implementing TPMMode\n\nThis wraps up the implementation of TPMMode in ClusterConfiguration,\nallowing operators to select whether nodes should or should not use\ntheir TPM, based on local availability.\n\nWe keep the default behaviour to require a TPM, as we\u0027d like to be\nsecure by default.\n\nChange-Id: Ic8ac76d88ecc9de51f58ca99c92daede79d78ad7\nReviewed-on: https://review.monogon.dev/c/monogon/+/1495\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "2cfafc9a4c34152dd93b58aa82df1720fb4dd6d6",
      "tree": "7a944999ab576f4b421651c2c4d513b0b572a1be",
      "parents": [
        "d0be371ea905c3729f98d91d255d775b7c5193d3"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Mar 21 16:42:47 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Thu Apr 13 14:03:02 2023 +0000"
      },
      "message": "metropolis/node/kubernetes: move worker services to KubernetesWorker nodes\n\nThis finalizes the Big Split. After this change, nodes will only run a\nkubelet (and related services) if they have a KubernetesWorker role\nattached.\n\nThe first node in a new cluster now starts out with KubernetesController\nand ConsensusMember. All joined nodes start with no roles attached.\n\nChange-Id: I25a059318450b7d2dd3c19f3653fc15367867693\nReviewed-on: https://review.monogon.dev/c/monogon/+/1380\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\n"
    },
    {
      "commit": "e012b728d98e51e6b5564873f10c06c4f4c81415",
      "tree": "65d21fa881c46451a2c8234ef10cd4283e2f85b5",
      "parents": [
        "cff8eb9db471c6dd85f92e1828ecd268c2737dda"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 29 17:49:04 2023 +0200"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Tue Apr 04 16:51:11 2023 +0000"
      },
      "message": "metropolis: implement NodeManagement.Logs\n\nThis takes the implementation from the debug service, dusts it off a\nbit, adds tests and moves eerything to the new node mgmt service.\n\nChange-Id: Id3b70126a2551775d8328c0c4e424ec0e675f40f\nReviewed-on: https://review.monogon.dev/c/monogon/+/1439\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "cfbbbdba0e7fa60c87ea6119697dff4e5e84a6ee",
      "tree": "30432c52dd18343481633e08806ee38305f2e6f1",
      "parents": [
        "504ea31137ab223b11d40469887ba7ab91f999ab"
      ],
      "author": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Wed Mar 22 17:48:08 2023 +0100"
      },
      "committer": {
        "name": "Serge Bazanski",
        "email": "serge@monogon.tech",
        "time": "Mon Mar 27 17:19:31 2023 +0000"
      },
      "message": "m/cli/metroctl: refactor, use tabular layout\n\nThis lays out the files to make it more obvious what command each file\nimplements, and uses the newly implemented tabular formatting for\nlisting/describing nodes.\n\nChange-Id: I90feeae67de0f78090dd5440cbad4cb9aa6bb6bc\nReviewed-on: https://review.monogon.dev/c/monogon/+/1392\nTested-by: Jenkins CI\nReviewed-by: Lorenz Brun \u003clorenz@monogon.tech\u003e\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": "e15fee1b7f2258fb677e824ad1e30fdf81279495",
      "tree": "c0b3ee3c658370a6e3922a4532b2fca8240266d5",
      "parents": [
        "b838e05983828a443390479691dba3de086bcb53"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Aug 12 18:48:40 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/c/metroctl: implement add, remove role commands\n\nThis adds commands accomodating node role modification.\n\nChange-Id: I3532081fa5e7ce521c3bd90cc4ebf46fec4bf168\nReviewed-on: https://review.monogon.dev/c/monogon/+/851\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "b838e05983828a443390479691dba3de086bcb53",
      "tree": "14eef15338691f9764f3e93452bc27fc0834f29c",
      "parents": [
        "9c315f1116567df934cf7fce5f3f341c70cb9b66"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Fri Aug 12 18:08:10 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/c/metroctl: implement the \"describe\" command\n\nThis implements metroctl\u0027s \"describe\".\n\ncmd.TerminateIfFound was adjusted to meet new test needs.\n\nChange-Id: If86f35bc648d99396e7d5be48ab459d6b13334ce\nReviewed-on: https://review.monogon.dev/c/monogon/+/850\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "db75e21d4826eac4e0177995dff64c9ff6a64064",
      "tree": "52199cdff810e06ca271a8d1e6f05a88b343277f",
      "parents": [
        "2f7790dfe7a93f5f048e914d0c1d61af61dbdfba"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 04 17:31:34 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/c/metroctl: implement the \"list\" command\n\nlist prints node IDs of existing nodes.\n\nIf no positional arguments are passed, or the only positional argument\nequals \"all\", all existing nodes will be processed.\n\nOtherwise, if any positional arguments are used, the output set will\nbe limited to node IDs matching the positional arguments. Nonexistent\nnodes will not be listed.\n\nThe node set can be further narrowed with an optional CEL node filter\nexpression, set with the new --filter flag.\n\nThe output format can be adjusted using the --format (-f) flag.\nCurrently, only plaintext output is available.\n\nThe output will be saved to a file, if a path is specified with the\n--output (-o) flag.\n\nChange-Id: I44d57ad52805924673354c70e54cd299a88ad75f\nReviewed-on: https://review.monogon.dev/c/monogon/+/848\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    },
    {
      "commit": "6cdc976f681edc51f68454a76e7d7af64417ca7e",
      "tree": "dfcfa01566c2c82f41616cdc654937a3fbee0e31",
      "parents": [
        "18a67b033fd8ccd5dacb7c7e1f0c1a9c21eb0a6b"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Wed Aug 03 17:15:01 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/p/cmd: use predicates in RunCommand\n\nThis generalizes RunCommand by making it accept any completion\npredicate function.\n\nChange-Id: Ic6b911244aaecd16c01000050fca618a8c8e09d7\nReviewed-on: https://review.monogon.dev/c/monogon/+/846\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\nTested-by: Jenkins CI\n"
    },
    {
      "commit": "fed8fe5222c929b9ac5d5ccc0c0b95a8532cf892",
      "tree": "fdff787672761a817889b204ca6686565e65484a",
      "parents": [
        "1846450067dc73e906f77a41e7e8f23095dc45e7"
      ],
      "author": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Jul 14 16:19:35 2022 +0200"
      },
      "committer": {
        "name": "Mateusz Zalega",
        "email": "mateusz@monogon.tech",
        "time": "Thu Aug 25 11:26:58 2022 +0000"
      },
      "message": "m/c/metroctl: exercise the takeownership command\n\nThis introduces a new test harness together with a test exercising\ntakeownership.\n\nChange-Id: I998506093c25e489d8cb2810e90b4c94530bf4a6\nReviewed-on: https://review.monogon.dev/c/monogon/+/839\nTested-by: Jenkins CI\nReviewed-by: Sergiusz Bazanski \u003cserge@monogon.tech\u003e\n"
    }
  ]
}
