)]}'
{
  "log": [
    {
      "commit": "5be6f78135341869b3b395429a25ebeeea4c0710",
      "tree": "b1b3c90a9f25fc28fc002c93b098ba02254edfba",
      "parents": [
        "b0dc2d17ad60e6e306c29daefed479a5de1cf59f"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 07 17:42:00 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 07 19:21:20 2025 +0400"
      },
      "message": "AppRunner: Reload app on configuration change\n\nChange-Id: I2c5ea0eaf3453815c8c89c9290edba250ca4fbaa\n"
    },
    {
      "commit": "8edf6c7753525fb9680c90ef09a6fdd16bfb818b",
      "tree": "7bbeefe00f82e8896416ff899b1c7256c74bbac4",
      "parents": [
        "8a5f12fc0a4a44ba221305eb6a58fcb3a7f40db7"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Jul 05 13:15:55 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Jul 05 13:17:09 2025 +0400"
      },
      "message": "DodoApp: Pass agent node it\u0027s name as a DODO_AGENT_NAME env var\n\nChange-Id: I1cf13d1c971e886bf494643c5dd39d34f7c5068a\n"
    },
    {
      "commit": "4745b3fec208c81e4e694a11cb41d827239b8872",
      "tree": "2c8d643aacafd5bacb4d7793bf51f2ea6550f019",
      "parents": [
        "34193053a2bfdd685fd3844d0a5c484669ee5a26"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 03 10:29:09 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 03 08:07:37 2025 +0000"
      },
      "message": "DodoApp: Support Anthropic Claude based AI agent\n\nChange-Id: I57c902c8e6fc7528df48013dc0dd61f9b74d0686\n"
    },
    {
      "commit": "3aba30926494639c5617e5a25822f8802d1b6876",
      "tree": "dcc06eb2497f2e39c087536ffd48b67b649d60c5",
      "parents": [
        "40c0c999eb85dbbb0f5c470a51bfdb647bde5f37"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 02 18:49:44 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 02 18:49:44 2025 +0400"
      },
      "message": "DodoApp: Use service name as container image name\n\nThis avoids clashes between multiple service definitions.\n\nChange-Id: I379111dba1ed5265bf1b1b17975a4219c45261d8\n"
    },
    {
      "commit": "8f8b086c368c7c2c7fe24c3c11fb1393f6f1b83f",
      "tree": "4223685146764a2e561d420c6f650495bcb8530c",
      "parents": [
        "dbf4a85c936183a0e01d0fe45afc1d7531ad0ee7"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 01 13:31:42 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 01 16:48:45 2025 +0400"
      },
      "message": "DodoApp: Pass lowercased port names to app-runner\n\nUse Debian based Deno container image\n\nChange-Id: I90300af78fe55ac6504c352c62e0f1d48adf89da\n"
    },
    {
      "commit": "be95f05ed937bd1b944999ad3ba45ae0abe84350",
      "tree": "e4be45d29cad26d3dd4b98def19b86cf6487215b",
      "parents": [
        "1037ee2f7f2f64f007e0480009297cad78b5c456"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Jun 29 23:18:56 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Jun 29 19:25:20 2025 +0000"
      },
      "message": "Jenkins: Upgrade from 2.452 to 2.454\n\nChange-Id: I2b94aecb42538642c6ef71504495a7d2a7493229\n"
    },
    {
      "commit": "85ddcdf7453f8f222654136116e856a64b4eae7c",
      "tree": "56f63b1f0dc147cc6c9d230ea6c5b0f71c8152c6",
      "parents": [
        "cefb3b500ad84268b0f999023c4d37e4fbb328c3"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 25 07:51:16 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 25 07:51:16 2025 +0400"
      },
      "message": "AppManager: Include agentName in HTTPS access\n\nChange-Id: I8c6329f0c1225d49da0c66af20fb30a7a664e426\n"
    },
    {
      "commit": "379ff06c5691795c2a65032e9cc28e25c8b27d5d",
      "tree": "1f970e6315094a73bec65b1abeac792c6f4d0308",
      "parents": [
        "691483264b84abdbee3d889fd3c0ae2754b99fa5"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jun 24 13:09:47 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jun 24 13:22:09 2025 +0400"
      },
      "message": "DodoApp: Discriminate between Agent access endpoint and regular HTTPS\n\nChange-Id: I063a33328b27004cf4e9c7020c2a93c1b52ffb73\n"
    },
    {
      "commit": "7f293f399a6b0e4310b3a0cd229cfaaa355bc3d1",
      "tree": "285da46f913d0e9d9c4594d3c250a7cd22133063",
      "parents": [
        "e65d9a934c8d6bab4d16358132f73f8396041e97"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jun 24 09:03:46 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jun 24 09:03:46 2025 +0400"
      },
      "message": "DodoApp: Fix env handling\n\nChange-Id: I836c2037a58463d07a31c61e3e31a52e80be1cbd\n"
    },
    {
      "commit": "e65d9a934c8d6bab4d16358132f73f8396041e97",
      "tree": "3e220983f618fd40162f0b6ec7db964951b065ee",
      "parents": [
        "9b7421ac7ad75ad949e32d1606afcd685443ef8c"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 19 09:02:32 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jun 20 07:21:12 2025 +0400"
      },
      "message": "dodo: Support Sketch agent\n\nChange-Id: I4dcd6aab7d7a2c2e86aaf1ad8d36d30a649ab31d\n"
    },
    {
      "commit": "dbabb10be6f6211d630e526d45aa54eae59756c9",
      "tree": "fe39f57e482fdc9fb8329ea543c2d0298a3a8d89",
      "parents": [
        "b63594259c27151030c80857caa19c3e1bd9be0a"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 18 14:22:53 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 18 10:48:28 2025 +0000"
      },
      "message": "AppManager: Cache helm charts locally during update\n\nChange-Id: I663e923bc6560c9a75318025178d5701e969074d\n"
    },
    {
      "commit": "b63594259c27151030c80857caa19c3e1bd9be0a",
      "tree": "f8ad8da6e91088e8a8706cace6217882a7ffc194",
      "parents": [
        "c31bf14971e228b03f738dde4cbfc8ae34f88f9d"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 18 13:35:09 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 18 14:24:24 2025 +0400"
      },
      "message": "dodoapp: add optional nodeId to output objects\n\nChange-Id: I9e254dac9170000be81decee23954cd0c8f4a6bb\n"
    },
    {
      "commit": "842db3f5be99c6b700072911c49c7c03f48daca6",
      "tree": "f914b4c4377fe6658fb1a5c944bd848fc3e58745",
      "parents": [
        "8fad76ab737dff9fc24d17b3b88ae491ed9af8b7"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 30 11:57:20 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 30 13:02:42 2025 +0400"
      },
      "message": "AppManager: Fix derived value calculation\n\nChange-Id: I97c429437b5df4ea782883190f420f9f60111ff4\n"
    },
    {
      "commit": "ea6d912dbfd4fbee839cc0d869347e707f19b132",
      "tree": "0486302c80abf30016d7aeea672428a3bdb83503",
      "parents": [
        "4bfed00a3f4078c8d85eab8fe9d956cef6a58503"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 22 17:57:18 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 23 07:41:48 2025 +0000"
      },
      "message": "AppManager: Implement ingress monitoring\n\nChange-Id: I156236c3f062a616cfd5de9821aeccbf686e0c22\n"
    },
    {
      "commit": "6481c9095aef7c7d2a0554b1d1af8a55171a89c3",
      "tree": "c82ca1b5f49c7a3247a8f0abb45092f763506673",
      "parents": [
        "b45b1866d422a31135a5d9af73ebc79381d0a0cb"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 16:16:30 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 21:55:58 2025 +0400"
      },
      "message": "DodoApp: Introduce password role\n\nAuto generate passwords for PostgreSQL and MongoDB.\n\nChange-Id: Ibd9fb900ddc8dd505c60ae4dfba73f1c951e3470\n"
    },
    {
      "commit": "6a49afc86b5d9626874146cb91225e4f941ae37b",
      "tree": "489a36b4cb95860110c7f1e294af1db49e959a68",
      "parents": [
        "ec744fab02aea72142ad3f17b38c68957039e437"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 12:48:45 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 13:06:52 2025 +0400"
      },
      "message": "Canvas: Fix INTERNAL_API_ADDR\n\nChange-Id: I1079a5db68b1d850ab36314018b6c5a96dee1bc2\n"
    },
    {
      "commit": "ec744fab02aea72142ad3f17b38c68957039e437",
      "tree": "532df83dcbb820050067488a71c58f17e5a3a9c6",
      "parents": [
        "a3cc4bf0cf6547328774cda51a81dfb5e23d13ce"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 12:47:03 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 12:47:27 2025 +0400"
      },
      "message": "AppRunner: Support Nodejs 24.0.2\n\nChange-Id: I37659d91d8211d5cfb4240a885da5a51ef43774a\n"
    },
    {
      "commit": "a3cc4bf0cf6547328774cda51a81dfb5e23d13ce",
      "tree": "f9f331d0cec15250684f3ed12f9b88998fa102c7",
      "parents": [
        "376a81d467d707eb2bd98a35c16c0b784e5c2eb3"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 11:31:21 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 12:47:27 2025 +0400"
      },
      "message": "DodoApp: Fix volume handling\n\nChange-Id: I84c6ea063bbd97ee6d2c4b11693b4a43df889c3c\n"
    },
    {
      "commit": "82afef1887f8ee11e84e27bdc7e435a98ef35ecf",
      "tree": "ba6225e9ced8ff792cdfc4f5f670b955fa22489b",
      "parents": [
        "b58cd0578991c7b4b56a4fd6f4b9f564d19d5d38"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 17:20:06 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 18:01:12 2025 +0400"
      },
      "message": "DodoApp: User service name when port forwarding\n\nChange-Id: Iaa5049917980f0095178c5ac14294b904430e714\n"
    },
    {
      "commit": "b58cd0578991c7b4b56a4fd6f4b9f564d19d5d38",
      "tree": "76150275bd4d4149361d4a00b8605ada1c727ee3",
      "parents": [
        "6d8b71c93b719eafeae28ad6fadc9165fe66a419"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 16:33:08 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 18:01:12 2025 +0400"
      },
      "message": "AppManager: Fix port reservation during update\n\nChange-Id: I5262f13b1dcd9f0ac192c9e80f43e40409ae4182\n"
    },
    {
      "commit": "6ce4481b19e87a2b010ca9dd7247f894eea32448",
      "tree": "8e1531b7a50520bc4617df14f6d5d893e8719ebc",
      "parents": [
        "fd8202a598472da514ee9b220e6f2127daeac385"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat May 17 07:31:54 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 13:44:35 2025 +0400"
      },
      "message": "DodoApp: Output access points\n\nChange-Id: I078adfd43bd254e260bf63113a2fb3ab059c7706\n"
    },
    {
      "commit": "fd8202a598472da514ee9b220e6f2127daeac385",
      "tree": "26ac8b94765301d9d950c46fd5e0349fb3240125",
      "parents": [
        "3304672099846c2323de7bdb26d8df9e14b5eaff"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat May 17 07:03:12 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat May 17 07:03:12 2025 +0400"
      },
      "message": "DodoApp: Fix nodejs version\n\nChange-Id: I93dacfd5fd88febf559afec5e2658b76f139f56f\n"
    },
    {
      "commit": "838bcb82ed8d7358aa35a7fb26cb98c82ba4b6c8",
      "tree": "b69f3f31581fe08727376c5214fb5720ba3f52fc",
      "parents": [
        "451d40de49ab60f492e797d835934541f6fcba86"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 15 19:39:04 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 15 19:39:04 2025 +0400"
      },
      "message": "AppManager: Handle new port forwards during app update\n\nChange-Id: I72a4c5b7ec4bd5ba6ddd32cd3f33dce023d7d9ea\n"
    },
    {
      "commit": "451d40de49ab60f492e797d835934541f6fcba86",
      "tree": "2b44dad25461114f6849067cd64257641d89008a",
      "parents": [
        "bd37a2ba4b803524f80e07394666c046f86a8cd4"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 15 13:13:41 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 15 13:28:11 2025 +0400"
      },
      "message": "DodoApp: Merge dev enabled/disabled images and charts\n\nChange-Id: Idf5b10640e32848fa31ce726dd8e0cf7bed033be\n"
    },
    {
      "commit": "b1d3bd7a965316f19df79af9abc6f09c0a5cf682",
      "tree": "2533c13270c441bd6e6f018db58fdd5f75e38ff4",
      "parents": [
        "3ed59599dde16dd593805dd41192efb7e9591d36"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 15 07:20:06 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 15 09:20:19 2025 +0400"
      },
      "message": "DodoApp: VM optionally takes ssh key as an input\n\nChange-Id: I1557dff32a622762c42fa7947723caa5d810d1ed\n"
    },
    {
      "commit": "a1f29474e3457e969c798f86402ea27e7f390334",
      "tree": "e3ad6cebcbf861193d7cab7f39b5fa04acdafe21",
      "parents": [
        "48fde051ffe863cb452d770e915bc314e43150f2"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 14 13:05:05 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 14 15:27:54 2025 +0000"
      },
      "message": "DodoApp: Individually configure dev-vm code-server, ssh, vpn\n\nRefactor openPortMap handling a bit.\n\nChange-Id: I2ea4d4c9b090f2791700149dda6cc8dcd8ab6820\n"
    },
    {
      "commit": "bcd25e9ea44bd300e36f7fd6ed1b52ce0a46380d",
      "tree": "7cc8d741a23205fc7ee2fdbe35befcffa5c847b5",
      "parents": [
        "d2d2df05c004c448ff62021ad2ea184b4987c871"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat May 03 19:14:10 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat May 03 20:06:29 2025 +0400"
      },
      "message": "DodoApp: Run commands using `/bin/sh -c ...`\n\nChange-Id: I58b4943c7819649f7589dfc7f9488e6abaf6f65c\n"
    },
    {
      "commit": "d2d2df05c004c448ff62021ad2ea184b4987c871",
      "tree": "eb18d3765416b89c599614a2cff0f6eab20401fa",
      "parents": [
        "a6024622a8f30cce101bf3ddca0e64e552f1e91c"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat May 03 19:15:17 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat May 03 19:15:17 2025 +0400"
      },
      "message": "AppManager: Format cue config files\n\nChange-Id: I36b7cccdf3b786d4d8de6b741b695bc2927e882d\n"
    },
    {
      "commit": "a6024622a8f30cce101bf3ddca0e64e552f1e91c",
      "tree": "332afbbef76f84c3fa5e075c14b1e5aa1e91f9e2",
      "parents": [
        "0af17d672d23334362010dcbcfe5c5cb0938759a"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 01 18:37:16 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat May 03 18:22:40 2025 +0400"
      },
      "message": "DodoApp: Abstract away service definition\n\nTODO(gio): There seems to be a performance degradation evaluating cue files.\n\nChange-Id: Ib157dfaa1c108f06f3026032e8fad79c06f42d3a\n"
    },
    {
      "commit": "0af17d672d23334362010dcbcfe5c5cb0938759a",
      "tree": "5cd4473ad0a0061d2ce49b7ab6d9a4cf77018b23",
      "parents": [
        "01ed36f84b3edabe038f53dc8ef7d572e11415f5"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 01 15:36:00 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 01 15:36:00 2025 +0400"
      },
      "message": "AppManager: Monitor volumes\n\nChange-Id: I0f1e007099b660dc055371fdf5dea7ba700ed485\n"
    },
    {
      "commit": "da7086581dc83be65c3ed7d38e8fef8ae3b30738",
      "tree": "d69e419ea63fb4710a70cf284468d9f6922ad6ae",
      "parents": [
        "f8acc61632105a2ccc99c8a9b5897f2cb41ce44a"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 30 14:57:38 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 01 12:29:06 2025 +0400"
      },
      "message": "AppManager: Recursively monitor dodo resources\n\nChange-Id: I23f3014e416f5b68f8909dbfbcba27db66eaee3f\n"
    },
    {
      "commit": "f8acc61632105a2ccc99c8a9b5897f2cb41ce44a",
      "tree": "2abe511ac444b46a5eadbd6967fb284c504a1fab",
      "parents": [
        "aba9a968f7d5f9dba7859834a0510c00f03e1127"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Apr 26 08:20:55 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 30 09:59:04 2025 +0400"
      },
      "message": "AppManager: App installation status monitoring\n\nChange-Id: I64f4ae0d27892b74f8827a275907cb75da09a758\n"
    },
    {
      "commit": "268787aa0dc98f3fa5388bd71b453552a8c57d34",
      "tree": "4d66c9f69c22d8cc13db7068e67d97c4b9713363",
      "parents": [
        "f96ffb8fbd65d47c6f7a91f112a8df5731b7b3db"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 24 21:18:06 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 24 21:18:06 2025 +0400"
      },
      "message": "AppManager: Implement task status API\n\nChange-Id: I70c895d7461ffe4afc45868ca6bf754d37072a0f\n"
    },
    {
      "commit": "4e3b24d8aa1e06d9e0bcc00e645195006206df27",
      "tree": "c01fabf64afeedce01a42f3156b25232ff7bd9cf",
      "parents": [
        "b7a3e1299ed7be6fc088b389c8841eb479ae3acb"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 23 15:29:13 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 23 17:59:02 2025 +0400"
      },
      "message": "DodoApp: Support env aliases\n\nChange-Id: I7567935df8615c03089cb27d46852c0fb8ea5877\n"
    },
    {
      "commit": "63a1a825ee40d8c21f05c633cead681d0b4190e8",
      "tree": "fdaa1637f07966534f9754bc8119bff8bd6fa4ea",
      "parents": [
        "a6de205efb8dd7ad4fa4457d7cf61aed1e14127e"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 23 12:59:40 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 23 13:01:40 2025 +0400"
      },
      "message": "AppManager: Let client override config files during update\n\nTake old input and merge with the new one.\n\nChange-Id: I2d8ad0e5f0cef97a3efa23aa9ca0c7f9163e703b\n"
    },
    {
      "commit": "a6de205efb8dd7ad4fa4457d7cf61aed1e14127e",
      "tree": "211bdd2a85f85e9d3e02c68922dfaf88dc5f3354",
      "parents": [
        "cbbcf05490a30ad6ba46b5026a1a0891eca7fc4f",
        "218e81323ccf3ce1ec70de849ea42dde8d7dc43b"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Apr 22 17:48:55 2025 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "gerrit@v1.dodo.cloud",
        "time": "Tue Apr 22 17:48:55 2025 +0000"
      },
      "message": "Merge \"Canvas: Organize back and front components\" into main"
    },
    {
      "commit": "218e81323ccf3ce1ec70de849ea42dde8d7dc43b",
      "tree": "4ed8738fac63d66b87ffa13f8dde6c94f15d592a",
      "parents": [
        "a421b06990b7c323b4ef5fe84f7415a4fab820de"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Apr 22 17:11:58 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Apr 22 17:44:09 2025 +0000"
      },
      "message": "Canvas: Organize back and front components\n\nChange-Id: I0f2c0bbe47b2693127a367a72321b24eb1af7796\n"
    },
    {
      "commit": "cbbcf05490a30ad6ba46b5026a1a0891eca7fc4f",
      "tree": "3bb9bbbd23100131e2e57bdf5796de5745a40902",
      "parents": [
        "a421b06990b7c323b4ef5fe84f7415a4fab820de"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Apr 22 16:49:44 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Apr 22 16:49:44 2025 +0400"
      },
      "message": "DodoApp: Add Deno 2.2.0 support\n\nChange-Id: I3e683cda2dd18e9a3dce87b8eb1f65ea11dd5f14\n"
    },
    {
      "commit": "a421b06990b7c323b4ef5fe84f7415a4fab820de",
      "tree": "097fc6c5fe420a2a0c0d48c9d9e341a4d1cdde69",
      "parents": [
        "24128f3c1fe47c5892f9e74fabd8ef1816c03f5c"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Apr 21 09:45:04 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Apr 21 09:59:29 2025 +0400"
      },
      "message": "AppManager: Unify regular and dodo app installation logic\n\nChange-Id: I4c18bbebc6499e8dfe38eb8ac18536bc6017f673\n"
    },
    {
      "commit": "24128f3c1fe47c5892f9e74fabd8ef1816c03f5c",
      "tree": "5146611aba18c48f1239e4cc2bbf5aab36a875b5",
      "parents": [
        "f60724b4f325b9619215821429733f4ca3736101"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Apr 21 06:40:40 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Apr 21 06:40:40 2025 +0400"
      },
      "message": "Ingress: Fix chart port value\n\nChange-Id: Ic03c05be92fc1f2d3324c662f4b2400c17e64d1d\n"
    },
    {
      "commit": "f60724b4f325b9619215821429733f4ca3736101",
      "tree": "4a4f1067ebb551a9987fa1f8c7db677500837bad",
      "parents": [
        "24312ccf16d9e777e238594ca7911e361895b766"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Apr 20 15:53:15 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Apr 20 16:32:13 2025 +0400"
      },
      "message": "AppManager: Actually pass service port to the auth-proxy\n\nChange-Id: I836ba0c4feefad29022f6fef611c9dfd4c998d23\n"
    },
    {
      "commit": "24312ccf16d9e777e238594ca7911e361895b766",
      "tree": "bb0ae020f40d5b9cbb7b8b6a95f4e5dd8166d9c1",
      "parents": [
        "74e73e99d32fd0a47e3f75de4a349bef458d4d3e"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Apr 20 15:53:15 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Apr 20 15:53:15 2025 +0400"
      },
      "message": "AppManager: Use port numbers in ingress definitions\n\nChange-Id: I6d69566667490aac70597387c59cecbb8601a5a8\n"
    },
    {
      "commit": "74e73e99d32fd0a47e3f75de4a349bef458d4d3e",
      "tree": "2f3e754829eade16987485b009f4f386a3a0145c",
      "parents": [
        "9bd87caa14964f78d9eee6d1b95ced5e873c9cec"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Apr 20 11:57:44 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Apr 20 11:57:44 2025 +0400"
      },
      "message": "DodoApp: Auto generate SSH key to access source repositories\n\nChange-Id: I5caaed03ecb52b24c7d30fb121c15d7739607e99\n"
    },
    {
      "commit": "9bd87caa14964f78d9eee6d1b95ced5e873c9cec",
      "tree": "02c4f7cd8cc11c3f49bc983ddaa6bc9e83332771",
      "parents": [
        "af7e6439158c990ff15eb804ff755954a188a6a2"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Apr 20 08:05:34 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Apr 20 08:05:34 2025 +0400"
      },
      "message": "AppManager: Format cue files\n\nChange-Id: Ia37908797b0227ab3b66e0faab08dcc2379e5282\n"
    },
    {
      "commit": "af7e6439158c990ff15eb804ff755954a188a6a2",
      "tree": "3880acc8d56efa5cc3aa2c28763a3327656c2ae9",
      "parents": [
        "c555e0a1dfc50d079e8dc128a1804289c779563c"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 17 18:46:05 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Apr 20 07:50:36 2025 +0400"
      },
      "message": "VirtualMachines: Support auto creation of the config files\n\nMount using virtiofs\n\nChange-Id: I77c5282b7bb1ad55df6ddfe0e4e53757b94f11e8\n"
    },
    {
      "commit": "c555e0a1dfc50d079e8dc128a1804289c779563c",
      "tree": "8a1ab0e0acf7f8f637df389cf438ae660c1dfaa2",
      "parents": [
        "be9ce3f10a66c70ffbe8156e69efb1a8e5edca00"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 17 11:03:45 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 17 16:44:05 2025 +0400"
      },
      "message": "DodoApp: Deprecate managerAddr and appId optional\n\nFix dev VM ingress.\n\nChange-Id: If1242eca53dd5919c632a543434b7e329f2e0409\n"
    },
    {
      "commit": "be9ce3f10a66c70ffbe8156e69efb1a8e5edca00",
      "tree": "4554a8f6068332d148647410bbe844b8e2ad7570",
      "parents": [
        "4fa7eb316a34f2e5320d8e06b4c682acbae61e4e"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 17 08:30:28 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 17 08:30:28 2025 +0400"
      },
      "message": "AppManager: Uninstall k3s from the last server without draining it\n\nChange-Id: If824b95875ce9e4114a1c5d9b354b1935e566b52\n"
    },
    {
      "commit": "4fa7eb316a34f2e5320d8e06b4c682acbae61e4e",
      "tree": "8b70cc841b87408f1d85d083527a1d766c6575f9",
      "parents": [
        "f55ab36eb75967020b08fa078dfad313cd2ee449"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 16 17:23:06 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 16 17:48:03 2025 +0400"
      },
      "message": "DodoApp: Support multiple ingresses per service\n\nChange-Id: I76fbf92c152a7c8e12bbded51cb8fea07ea9c045\n"
    },
    {
      "commit": "f55ab36eb75967020b08fa078dfad313cd2ee449",
      "tree": "0608dac568a5a637ef34b917d3bc3204814b2966",
      "parents": [
        "cbd8909ed7d8f3bdb17abd679173c137ec62169b"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 11 17:48:17 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 16 16:57:09 2025 +0400"
      },
      "message": "Ingress: Improve port opening\n\nUpdate nginx replica counts and rollout strategy.\nWhat proxy-backend configmap changes and reload auto proxy nginx.\nMake ingress optional.\nUse \u003cPREFIX\u003e.\u003cCLUSTER_NAME\u003e.clusters.p.\u003cDOMAIN\u003e addresses for remote\ncluster services.\n\nChange-Id: Ideb146a8c0275822ee5cd28311c00a817f4202aa\n"
    },
    {
      "commit": "2446de060590098b8e00a49d758553a7433d065b",
      "tree": "91d6d16adc3c92ad49e5c0fa99fe62f4c63552ba",
      "parents": [
        "d78896a1f93805c7f699d2f0cfaae68e6abeb6c0"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 11 11:20:39 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 11 12:58:40 2025 +0400"
      },
      "message": "Build: Fix multi-arch docker builds\n\nChange-Id: I3968065215b696256ee819e2062ab1d3cadfcbcf\n"
    },
    {
      "commit": "d78896a1f93805c7f699d2f0cfaae68e6abeb6c0",
      "tree": "a0aa2d879fad1ddddfbd05a77058af7d438d96f5",
      "parents": [
        "7c34c6c07c5a3f5409be8c6b0cfa09cce467b7ec"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 10 07:42:13 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 10 16:38:23 2025 +0400"
      },
      "message": "AppManager: Reuse cross-cluster port forwarding logic\n\nServices define single open port with optional cluster and\nouter layer converts it to cross cluster bindings.\n\nChange-Id: I2f83270d19aaa367789d19a3ffbdf3a2158c1cf8\n"
    },
    {
      "commit": "7c34c6c07c5a3f5409be8c6b0cfa09cce467b7ec",
      "tree": "526ce62f0f95dad1df941579598e0a18e39c3d54",
      "parents": [
        "b4704ac44f7675fbd84d58b3c573d5f00615fb24"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 09 22:29:41 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 09 22:29:41 2025 +0400"
      },
      "message": "Matrix: Upgrade to v1.126.0\n\nChange-Id: Id5d8d9ee3cb308f18898d44ac8327c4b4659c25b\n"
    },
    {
      "commit": "b4704ac44f7675fbd84d58b3c573d5f00615fb24",
      "tree": "a4d7d8f7ce91250cb8cf6abcc7e550e464d8402f",
      "parents": [
        "2aa289c120493e51ca8e9a506a07bad182b31d61"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Apr 08 22:30:03 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 09 22:14:33 2025 +0400"
      },
      "message": "AppManager: Support inter-cluster proxy for MongoDB\n\nChange-Id: I2434e8d0118214447bd5ede2f6623d2d922b0a9a\n"
    },
    {
      "commit": "2aa289c120493e51ca8e9a506a07bad182b31d61",
      "tree": "2c749f15c08abd53a65db0d5635997aa866282f0",
      "parents": [
        "f434463cc5feacf48057ea730f1c8f4639ea1b64"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 09 08:13:40 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 09 08:13:40 2025 +0400"
      },
      "message": "Headscale: Upgrade to 0.25.1\n\nUpdate configuration template.\n\nChange-Id: I3029e6eda0f5f049e28e9418ec1e596c78d25a57\n"
    },
    {
      "commit": "f434463cc5feacf48057ea730f1c8f4639ea1b64",
      "tree": "f85693b3e1fa3c5fb99433c9cfa89a9cea1594cc",
      "parents": [
        "721c004cdfea0c7a13ffc61010a1b41fc3e1abfc"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Apr 08 20:04:35 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Apr 08 20:04:54 2025 +0400"
      },
      "message": "AppManager: Support exposing ports on public networks\n\nSets up [public ingress -\u003e private ingress -\u003e remote cluster] proxy chain\n\nChange-Id: I6376a006b2692c31f3cb895bbfd6e373182e8824\n"
    },
    {
      "commit": "721c004cdfea0c7a13ffc61010a1b41fc3e1abfc",
      "tree": "a7f5123efd5c71c215d13d659a83e108b4833956",
      "parents": [
        "997af63f2dbf8bfa423e51e04bdb284791cc34c0"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 03 11:56:36 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Apr 08 15:37:40 2025 +0400"
      },
      "message": "AppManager: Support exposing cross-cluster ports\n\nChange-Id: I4bdb3573209935f6777656ec2f3481e79d84a9c9\n"
    },
    {
      "commit": "997af63f2dbf8bfa423e51e04bdb284791cc34c0",
      "tree": "e13214e1e3e59e06c0163c491b0b12f761ce2b42",
      "parents": [
        "fc441e3383e3c6cf323c4646d2ca7eabff73ac03"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Apr 08 12:24:39 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Apr 08 12:24:39 2025 +0400"
      },
      "message": "Tailscale: Upgrade client version to v1.82.0\n\nChange-Id: I8484949305f0ebe8d5b7b94bd4fac5a288d0735e\n"
    },
    {
      "commit": "fc441e3383e3c6cf323c4646d2ca7eabff73ac03",
      "tree": "913b6683a6e3e6bde590d5ce75669a9c33479a3f",
      "parents": [
        "5f2f100451baee800b04a0871f6c268ed0dc7daa"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Nov 11 16:26:14 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 02 15:26:40 2025 +0400"
      },
      "message": "AppManager: Add API endpoint to install dodo app\n\nRefactors cue definitions.\n\nNext steps:\n* Needs some cleanup, namespace is hard coded ...\n* Maybe merge with regular install API\n* Support exposing ports across clusters\n\nChange-Id: Ibfc3c3f742b61f2c5874012fe6c77b958eae81d9\n"
    },
    {
      "commit": "9c43d0c4d9840f1d914313064f02f71c9de76f4a",
      "tree": "420e23a609be0b7461455d533d7fbbe152d994c1",
      "parents": [
        "561724f05b2a468600a9be5b213d4f7b6663f35f"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Nov 19 01:04:06 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Nov 19 08:18:22 2024 +0400"
      },
      "message": "DodoApp: run `npm install` before `npm ci`\n\nChange-Id: Iba43cfa2ebd91c12606f821be1891291952c9fa7\n"
    },
    {
      "commit": "561724f05b2a468600a9be5b213d4f7b6663f35f",
      "tree": "ccb7e45584ef68fcd33cc182457d08867529efb9",
      "parents": [
        "236fdc3223978071fc6b6b81cfa0462a318d021d"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Nov 04 08:37:34 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Nov 11 09:53:11 2024 +0000"
      },
      "message": "Installer: Add option to expose PostgreSQL\n\nChange-Id: I1e00bc4d1d1f417956c1744634287c32d9e3f513\n"
    },
    {
      "commit": "236fdc3223978071fc6b6b81cfa0462a318d021d",
      "tree": "7dc5d5cd41c78a037268d76d1784f6bfdf58103e",
      "parents": [
        "0710c6b488ff04ec1310ce219c5c7e2525037656"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Nov 08 07:54:18 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Nov 08 07:55:50 2024 +0400"
      },
      "message": "DodoApp: Fix env var listing\n\nChange-Id: I84559a1026889fb779940a0d5e4fe22c08b324dc\n"
    },
    {
      "commit": "0710c6b488ff04ec1310ce219c5c7e2525037656",
      "tree": "fc3ab7e55cfc9a615cfd7a64e94d78ecb64a5eb2",
      "parents": [
        "802311e517728e816f74f94ce601a1722c09c40d"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Nov 04 19:08:30 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Nov 04 19:08:30 2024 +0400"
      },
      "message": "DodoApp: Disable repo client logging\n\nChange-Id: I7b1340a096228d06e81965e10a373e45c44d97cb\n"
    },
    {
      "commit": "802311e517728e816f74f94ce601a1722c09c40d",
      "tree": "b33d3cf76f6552493cc37871a30a7da2b88ea4d7",
      "parents": [
        "138a06e6e599483af7a50dcc653f57187e716872"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Nov 04 08:37:34 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Nov 04 08:57:26 2024 +0400"
      },
      "message": "Installer: Move port forwarding config into the apps\n\nChange-Id: I6d70c8ce72d21ebe74d126a680fa66ba6c3f2857\n"
    },
    {
      "commit": "138a06e6e599483af7a50dcc653f57187e716872",
      "tree": "83ce61f82543cce56bb948fe407e21fb8b714d8d",
      "parents": [
        "8fae028921963255ee7b7132256b035ba2767217"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Nov 01 17:03:10 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Nov 01 17:03:10 2024 +0400"
      },
      "message": "DodoApp: Support NodeJS backend\n\nChange-Id: Ia8d407d009e4d690febfbf4f1270f3baa2d3e781\n"
    },
    {
      "commit": "8fae028921963255ee7b7132256b035ba2767217",
      "tree": "076b239bfcc8dca0a614def5d92f458c8b3e3976",
      "parents": [
        "f3486a55c4832c4d2644e10ef1241d4a387e104e"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Oct 30 07:32:45 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Oct 30 08:12:08 2024 +0400"
      },
      "message": "NextJS: Use correct default port number 3000\n\nChange-Id: Iba055accf2f08a167d03f036df20bf9a9674e88d\n"
    },
    {
      "commit": "f3486a55c4832c4d2644e10ef1241d4a387e104e",
      "tree": "eadd1f5a8f0fcf029f4fb227e67ad4f0775c5a28",
      "parents": [
        "88d3766ff683db399a277162ec97017c6188dffa"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Oct 29 23:38:18 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Oct 30 08:11:47 2024 +0400"
      },
      "message": "DodoApp: Expose same app ports on VM as well\n\nChange-Id: I5d04330ffc7c23443c1305ece5201e3f59fb91d4\n"
    },
    {
      "commit": "88d3766ff683db399a277162ec97017c6188dffa",
      "tree": "7ff87635ac4898bf52a3e58c099abc38a826caf8",
      "parents": [
        "5fb003291aaa99d66ae48447f65b22913782ce07"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 27 22:52:34 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Oct 28 14:05:59 2024 +0400"
      },
      "message": "DodoApp: Support apps exposing multiple ports\n\nChange-Id: I9c8a47d20ffc1836cef6390c0ac6f22e977e38f2\n"
    },
    {
      "commit": "5fb003291aaa99d66ae48447f65b22913782ce07",
      "tree": "03cf5e7dfc85874c1d4caebd1f2517a0861642ef",
      "parents": [
        "85958d663de946076a246e205c2d6d72b213ee62"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 26 09:23:03 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 26 09:23:03 2024 +0400"
      },
      "message": "Launcher: Update helm contents renderer to open anchors in new tab\n\nChange-Id: If6698f5d6dedc4753e38f1cf96dceb3685f42eaf\n"
    },
    {
      "commit": "85958d663de946076a246e205c2d6d72b213ee62",
      "tree": "4fcc44a214129ff30236135ea2228510ef5df465",
      "parents": [
        "281aa516846b4cb5a68ce545d54d9a496fcedc35"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 26 09:14:01 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 26 09:14:01 2024 +0400"
      },
      "message": "DodoApp: Display env variables on status page\n\nChange-Id: I409e30f202f9993f02a475c2f2d9f02f097a2d94\n"
    },
    {
      "commit": "281aa516846b4cb5a68ce545d54d9a496fcedc35",
      "tree": "8006825112b4c1421ca1aed69fa3b74338735ef1",
      "parents": [
        "07eb108299bb089423a7ad4f8ef3e5934022e59a"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Oct 25 23:25:53 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Oct 25 23:33:47 2024 +0400"
      },
      "message": "DodoApp: List all apps if running in internal mode\n\nChange-Id: Iea9f613495444c73c2f550ccadb58a0fbac79eec\n"
    },
    {
      "commit": "07eb108299bb089423a7ad4f8ef3e5934022e59a",
      "tree": "e09a569463b8edab422f4742af62fa8217e5f331",
      "parents": [
        "46998892c2f05af77d6dabd27dbcb22b9036af10"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Oct 25 14:35:56 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Oct 25 23:26:46 2024 +0400"
      },
      "message": "DodoApp: Support MongoDB\n\nChange-Id: I275f662848fb7d78b98d5e935f5ca87d73ca60ec\n"
    },
    {
      "commit": "46998892c2f05af77d6dabd27dbcb22b9036af10",
      "tree": "6819b9e83b23dc31804f3d7cba237b598704726a",
      "parents": [
        "6e46ac1988a084abf9d7e64b430b32f65066e7a1"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 24 21:07:54 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 24 21:07:54 2024 +0400"
      },
      "message": "Etherpad: Installer configuration\n\nChange-Id: I808e3c1835e2f0bf5fe2e0da138710c979a38e38\n"
    },
    {
      "commit": "6e46ac1988a084abf9d7e64b430b32f65066e7a1",
      "tree": "eb3ee8a1e3a493df383ce5776bac0f7db02845e3",
      "parents": [
        "45c31828e2655b6bb8f2c7fcca87f61437a1c913"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 24 13:51:31 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 24 13:51:31 2024 +0400"
      },
      "message": "Matrix: Upgrade to v1.117.0\n\nChange-Id: If75bcdb05ce57448f05093daefbdc4658b170574\n"
    },
    {
      "commit": "2b1157aedb2cbd8c20304af7e175f3e2b321680e",
      "tree": "4f27fd45cc06ed6ceb3059a02df815b6915117ee",
      "parents": [
        "51abcffce3f4ef6a18ad6a16a60acd634354b526"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 24 08:45:07 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 24 08:45:07 2024 +0400"
      },
      "message": "AppRunner: Clone specific branch instead of always running master\n\nChange-Id: I262d232f5fa1648474eb8bb55ce13f986507b0d4\n"
    },
    {
      "commit": "6e1f4571b795d600d6202fe38a20a014b34a87a8",
      "tree": "b1cfc008e9fbb9553ed110919ac658f3281377b2",
      "parents": [
        "f0061854caf493598f879b105edcd509e3acd5da"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 24 07:49:28 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 24 07:49:28 2024 +0400"
      },
      "message": "VM: Fix typo Virutal -\u003e Virtual\n\nChange-Id: Icda78b3cd9d966ebc4ccb01018da2a76ac662664\n"
    },
    {
      "commit": "f0061854caf493598f879b105edcd509e3acd5da",
      "tree": "51aa98d2cd59b18453d3ad232ad0e2dbacc83d2a",
      "parents": [
        "ff0ee0f02dfac596bbcdbe734605fa4f34f31a76"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Oct 16 10:51:20 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Oct 16 10:59:24 2024 +0400"
      },
      "message": "DodoApp: Style create-app form dropdowns\n\nChange-Id: I3a1102f965d66950b58f7f20c878a38fd412544b\n"
    },
    {
      "commit": "ad9e7151cc7a50467ab8e62387c5e8119dd266c9",
      "tree": "ca68dbaf07e772ad9b8cd648680245c27c99e30d",
      "parents": [
        "9f6b27df0a341292fafee904194168c9d1d49f8e"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Oct 14 19:28:40 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Oct 16 07:36:34 2024 +0400"
      },
      "message": "DodoApp: Support pre build commands in deno app\n\nPass env vars to deno build as well.\n\nChange-Id: Ia8938d0bdef695bd4932d9c817229705be686092\n"
    },
    {
      "commit": "9f6b27df0a341292fafee904194168c9d1d49f8e",
      "tree": "864652d279a448f454a04693967590bc96109a64",
      "parents": [
        "f078f46a2a60c774e50b2e22cf8cfd9f3a81754f"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Oct 14 10:08:40 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Oct 14 10:08:40 2024 +0400"
      },
      "message": "DodoApp: Add network definitions to app.schema.json\n\nChange-Id: Id4c0b9b3e8cfc0475f3ecc0d9b47a6dbf676da6a\n"
    },
    {
      "commit": "f078f46a2a60c774e50b2e22cf8cfd9f3a81754f",
      "tree": "bff8f265fb1a8fc28e2428d04867d9d379b77247",
      "parents": [
        "4fde4a1fed6a333653e079d5d756f3902b2d1622"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Oct 14 09:07:33 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Oct 14 09:07:33 2024 +0400"
      },
      "message": "DodoApp: Ingress can configure label and home path\n\nChange-Id: I55b83f54f4aa10e6fcc74b08ea081c0f040829ac\n"
    },
    {
      "commit": "4fde4a1fed6a333653e079d5d756f3902b2d1622",
      "tree": "cdd711f0382bbb7baadd39026e2ac8914be11cf0",
      "parents": [
        "9870cc00ca128b0428e5fef1fff930ec33446039"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 13 12:19:30 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Oct 14 09:07:05 2024 +0400"
      },
      "message": "AuthProxy: Support Regexps when checking if path requires auth\n\nChange-Id: I3bc6d3143cef46b711bb3ccc7e2cb1ee8c59313f\n"
    },
    {
      "commit": "e6d612959e5bbd26a656225524e80942e667fd0e",
      "tree": "dcf2b2e4d98323f035116bfad167e9c53576d61f",
      "parents": [
        "d99b2bdbcd952c2383ad8eda68558ab56b9a840c"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Oct 09 18:47:12 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Oct 09 19:43:51 2024 +0400"
      },
      "message": "DodoApp: Expose full PostgreSQL connection string as an env var\n\nChange-Id: Ic447433598671e0579c669f75ed60d5614efc2e9\n"
    },
    {
      "commit": "d99b2bdbcd952c2383ad8eda68558ab56b9a840c",
      "tree": "76e4d3de77f04f7b3e615ddeaa99ea66f2b4bce3",
      "parents": [
        "43ec4d00bd8900f3a68c1f8379ff536430dfa342"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Oct 09 18:29:15 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Oct 09 18:46:51 2024 +0400"
      },
      "message": "DodoApp: Fix app.schema.json file address\n\nChange-Id: Ie8f333a08e5b5f8da5d3cea8d5fcdef4953d3fbb\n"
    },
    {
      "commit": "43ec4d00bd8900f3a68c1f8379ff536430dfa342",
      "tree": "89aa664845fee532f1f1c3eb031524fa0506aacf",
      "parents": [
        "c8faeac9b458c0d9f229383688bc3ac552cce43d"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Oct 09 17:02:15 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Oct 09 17:02:15 2024 +0400"
      },
      "message": "DodoApp: Support dev branches of Nextjs apps\n\nChange-Id: Iaec635265549238be88913e458a4f8aae13d3a40\n"
    },
    {
      "commit": "5e4d1a7338df6d6442872a7750ba77228d77ae33",
      "tree": "5194942c8130f3915cf1b148c9ee1a2020dd6926",
      "parents": [
        "599462867d6911b6c444ada907df578757317d96"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Oct 09 15:25:29 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Oct 09 15:25:29 2024 +0400"
      },
      "message": "DodoApp: Add Nextjs with Deno2 support\n\nChange-Id: Ia8e029c626e2a58c3e1b2836497c4f17eaf0f352\n"
    },
    {
      "commit": "599462867d6911b6c444ada907df578757317d96",
      "tree": "806f2befe558568db2f6b79a4cf5b666ab9cc7d3",
      "parents": [
        "3cabc3ea44f3c25bcca5ca9db7736f5272af6c58"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Oct 07 12:55:51 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Oct 08 08:15:25 2024 +0400"
      },
      "message": "Installer: Refactor and give each searver its own directory\n\nChange-Id: I1db2929e7a35b6f92022dec0c6506d68e0297563\n"
    },
    {
      "commit": "3cabc3ea44f3c25bcca5ca9db7736f5272af6c58",
      "tree": "a6d092094db6604dfbd00efa3a1fcab1cc6af151",
      "parents": [
        "2f9ed20ed2886164383f6c71e60c6e2bd784d97c"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 18:37:27 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 21:38:46 2024 +0400"
      },
      "message": "PrivateNetwork: Configure cluster proxy backend\n\nChange-Id: Ieeca2da6bd69ee3a440960ff3d4cdb9371f3a8c6\n"
    },
    {
      "commit": "2f9ed20ed2886164383f6c71e60c6e2bd784d97c",
      "tree": "a177a2b14ad27a453a79f7435514f1e81b94a7ab",
      "parents": [
        "69b8443d29976593af8ad4c446c7a51db9e6fc15"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 17:47:00 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 17:47:00 2024 +0400"
      },
      "message": "Headscale: Configure Memberships sync API endpoint\n\nChange-Id: Iab3264231cdb1c2efb6089e0c01c5e7367d228ca\n"
    },
    {
      "commit": "69b8443d29976593af8ad4c446c7a51db9e6fc15",
      "tree": "fb84800d6d742a2578183d939f262a18b0084116",
      "parents": [
        "07458ded00bb47d86ba550458735c4caab4f7692"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 17:46:05 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 17:46:05 2024 +0400"
      },
      "message": "EnvManager: Add Stop method and shutdown server using it in tests\n\nChange-Id: I552db6dc1487ed880bce897c7cec85a89a15355d\n"
    },
    {
      "commit": "07458ded00bb47d86ba550458735c4caab4f7692",
      "tree": "7b69a15c776117c42fc0b75d71bf1f95b523f2c3",
      "parents": [
        "e44c151f6296b576d05d512d26483d4dd18e99da"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 17:45:45 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 17:45:45 2024 +0400"
      },
      "message": "EnvManager: Configure config repo data volume\n\nChange-Id: Ide487088df33cd9a351134fc2587eae9c8d96549\n"
    },
    {
      "commit": "e44c151f6296b576d05d512d26483d4dd18e99da",
      "tree": "f847e86faf930a30c1dc6335aab781df6bfa3fc3",
      "parents": [
        "6054e213d13eef195baf14685a3067b1e4d619f7"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 14:13:55 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 14:20:12 2024 +0400"
      },
      "message": "DodoApp: Clean up commits on branch/app delete\n\nFix redirect URL after app deletion.\n\nChange-Id: Id26b114d9dc47a8de547368e55531816d21dd26c\n"
    },
    {
      "commit": "6054e213d13eef195baf14685a3067b1e4d619f7",
      "tree": "ff3f5cd72a48c4aee4882fdd1c2566888c80de53",
      "parents": [
        "92116ca60f8400722a07b952bfcc259a7852f468"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 14:07:05 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 14:07:17 2024 +0400"
      },
      "message": "DodoApp: Move app action forms at the top\n\nChange-Id: Ic3749333f1fccabba748cb843a5d43fa788f9a68\n"
    },
    {
      "commit": "92116ca60f8400722a07b952bfcc259a7852f468",
      "tree": "f44889e49c0dd0f4ca2afd0812477b3bbf78fbf7",
      "parents": [
        "362fd8e2ec90531e3cf8e31ab5509f178482721e"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 13:55:46 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 13:55:46 2024 +0400"
      },
      "message": "Installer: Handle VM uninstall before it has had a time to boot\n\nChange-Id: I615bc949b5054b301899b1e0b7eae94a98126e61\n"
    },
    {
      "commit": "362fd8e2ec90531e3cf8e31ab5509f178482721e",
      "tree": "15d701ae0fbed170f129770cb51b9d1d88c4821c",
      "parents": [
        "5cc6afcffb5cb1bcf29fe1209adb5c003e1bf733"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 10:12:54 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 10:12:54 2024 +0400"
      },
      "message": "DodoApp: Make form disabling logic work with all forms on the page\n\nChange-Id: Ib82aa2fbd9c607fbc373fc0944fd5729813b128e\n"
    },
    {
      "commit": "5cc6afcffb5cb1bcf29fe1209adb5c003e1bf733",
      "tree": "f503dd40800261494428b0793703aa873df3297c",
      "parents": [
        "829b1b7f734b4e8c6e03ba557a426ff0ed5ef155"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 09:33:44 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 09:33:44 2024 +0400"
      },
      "message": "DodoApp: Add optional name field to create app form\n\nChange-Id: I03f6efaf9cf787e34c69da1b9a97913c195b2c8c\n"
    },
    {
      "commit": "829b1b7f734b4e8c6e03ba557a426ff0ed5ef155",
      "tree": "64da62a12ebf7c17d1dc1a331abbd238bfe43ed2",
      "parents": [
        "9a283ccb0ad2b47b183d3644c800fe81d884860d"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 05 21:50:56 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 05 22:02:43 2024 +0400"
      },
      "message": "DodoApp: Fix app uninstall\n\nChange-Id: I17c28bbd88dde9c064a31388411ebf40cffdea31\n"
    },
    {
      "commit": "9a283ccb0ad2b47b183d3644c800fe81d884860d",
      "tree": "2f964f5da588da74e13265b2c760fd7fa6fdae6d",
      "parents": [
        "8c8761743bd0f2c493e9c3256b566a5ec30989d4"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 05 20:15:29 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 05 20:15:29 2024 +0400"
      },
      "message": "Installer: Fix cluster proxy mapping check during app uninstall\n\nChange-Id: I4b051bacb35ed54804327914340ca3205804139f\n"
    },
    {
      "commit": "8c8761743bd0f2c493e9c3256b566a5ec30989d4",
      "tree": "40bda70ffca8b9e06b543de63eba198c6ffe1271",
      "parents": [
        "1e7257703a3461418283d2f7e6300661a2923d61"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 05 12:25:13 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 05 13:00:08 2024 +0400"
      },
      "message": "AppManager: Remove delay between initiating same kind of task twice\n\nChange-Id: I539f3cb357e00ab560eaff34bef8ae2595e11b44\n"
    },
    {
      "commit": "1e7257703a3461418283d2f7e6300661a2923d61",
      "tree": "2096d0bdfdc858e2ee7933aa2a601d086c71ae47",
      "parents": [
        "4557dc0f42f18e964f3e39327f971d639a348b04"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 05 10:08:44 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 05 10:15:13 2024 +0400"
      },
      "message": "Installer: Fix server type drop down selection\n\nShow only controller type for new clusters.\n\nChange-Id: I781f8cbf773d755dd731b62a1801947fc94970d9\n"
    },
    {
      "commit": "4557dc0f42f18e964f3e39327f971d639a348b04",
      "tree": "baa112210af95d26c0f43ff00b14c6cf6508c69a",
      "parents": [
        "1afc3cdd8264c87d3b029ae7f8e82939e73286d1"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Oct 04 19:29:25 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Oct 04 19:29:25 2024 +0400"
      },
      "message": "PrivateNetwork: Setup secrets ACL for both of the tailscale clients.\n\nChange-Id: I671b66ba06712b6842aa47cb2607b2a46ce0e0d4\n"
    },
    {
      "commit": "28d5b72e868f490a81412523539f7c58682c5080",
      "tree": "eb31cd742ef61737ca068c9d909422e0adfa4a40",
      "parents": [
        "5887caa19c080583a548775d8cf20e476bfba6da"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Oct 04 19:27:34 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Oct 04 19:27:34 2024 +0400"
      },
      "message": "Memberships: Use external volume, remove one from the Helm chart.\n\nChange-Id: Ie2afcd9ab28a12e7d6bea6375a96e00a0f63b525\n"
    }
  ],
  "next": "5887caa19c080583a548775d8cf20e476bfba6da"
}
