)]}'
{
  "log": [
    {
      "commit": "e10ba16719d9b55295e9b950cfd647b536e3b735",
      "tree": "6e45d4d55a1ba0105bd23fe153e2097b285f0687",
      "parents": [
        "2835615e4cd72a46289f2e14c9afb0ccc43e0ceb"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 31 19:52:29 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Aug 01 14:50:16 2025 +0400"
      },
      "message": "DodoApp: Implement dev proxy mode\n\nWith dev proxy user can substitute any service with their own local\nmachine. In which case dodo will run proxy server on the platform\nwhich will forward all requests to the configured address.\n\nWhen VPN is enabled, dodo will run tailscale sidecar in the proxy pod.\n\nChange-Id: I12592ae77d2e88e0582c8fe1e0f82e5fd24e02cb\n"
    },
    {
      "commit": "2835615e4cd72a46289f2e14c9afb0ccc43e0ceb",
      "tree": "a4248756f410c3c3bd3794e56f8c98c3fb3a740d",
      "parents": [
        "134be72adbab1ee6071fa0f976ad29a97262ef7f"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 24 17:20:56 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 30 13:19:03 2025 +0400"
      },
      "message": "AppManager: Fix auth schema\n\nChange-Id: Iab9e76795467b9ed9e6ad7b8389473eb71d49c89\n"
    },
    {
      "commit": "134be72adbab1ee6071fa0f976ad29a97262ef7f",
      "tree": "bebc9b706ae4156baebdc550d75b26a536e59d18",
      "parents": [
        "5449e2749f1bca529f40d1debd61640bb77def34"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Jul 20 19:01:17 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 30 13:00:00 2025 +0400"
      },
      "message": "Memebrships: Refactor Store interface\n\nUse unified memberships table.\nAdd few internal API endpoints.\n\nChange-Id: I80ac5a0f5c262e04d7898cca571b938a35d68d39\n"
    },
    {
      "commit": "5449e2749f1bca529f40d1debd61640bb77def34",
      "tree": "d9d73cc55a1a149d41a9008ba022d9e42183c110",
      "parents": [
        "4a29775a467b4c7472aef7c0b1ddfdeee720174e"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 23 13:14:01 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 23 13:14:01 2025 +0400"
      },
      "message": "AppManager: Add Excalidraw\n\nChange-Id: I053676e18773e8dec452c54bda350cdc978ae0ca\n"
    },
    {
      "commit": "4a29775a467b4c7472aef7c0b1ddfdeee720174e",
      "tree": "4b0c753493deaddc96ff81fbc7bd116b1fb54521",
      "parents": [
        "404e23747a4d6c9fec6c15fed75ca078cf884c37"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 15 13:24:57 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 15 13:24:57 2025 +0400"
      },
      "message": "Memberships: Fix static file handler\n\nChange-Id: I13b1cfefec5cb5b43a590d2f7e40f13e7b70aba7\n"
    },
    {
      "commit": "404e23747a4d6c9fec6c15fed75ca078cf884c37",
      "tree": "6e85217f266b43cb2af51e0d4920789eadcb97f9",
      "parents": [
        "0e1a97d95423a4fb693ecced2007b7e0b0f4db1e"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 11 12:50:26 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 11 18:16:04 2025 +0400"
      },
      "message": "Immich: Add Immich installer configuration\n\nChange-Id: I88796e42d0b0b14d84b094d4a1c5213b43c56f2a\n"
    },
    {
      "commit": "212f8005eccaab752054eb65ef74fc01d37a31fd",
      "tree": "fffad966154dda6ca79732440dc0a9b3c94ae9aa",
      "parents": [
        "e085d5baf2a4c404e47820b1061417f62671ad42"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 08 14:28:43 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 08 14:34:44 2025 +0400"
      },
      "message": "DodoApp: Return env vars on install/update\n\nPass service namespace as env var as well.\nFix llm-api-key flag.\n\nChange-Id: Iff8c845c4a1b62eb4940463a62eb32487abd5992\n"
    },
    {
      "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": "9870cc00ca128b0428e5fef1fff930ec33446039",
      "tree": "70a3e6a47633830e584075c44e73c4063086aef1",
      "parents": [
        "e6d612959e5bbd26a656225524e80942e667fd0e"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 13 09:20:11 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 13 09:20:11 2024 +0400"
      },
      "message": "AuthProxy: Forward user headers even on non auth required paths\n\nChange-Id: I3c4235639409c492b3cacd9330f140453c614fe9\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": "c8faeac9b458c0d9f229383688bc3ac552cce43d",
      "tree": "51eaa6c0234c2b199be185efadba133291d8ade5",
      "parents": [
        "5e4d1a7338df6d6442872a7750ba77228d77ae33"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Oct 09 15:26:16 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Oct 09 15:26:37 2024 +0400"
      },
      "message": "AuthProxy: Fix unauthenticated request handler logic\n\nChange-Id: I931546846b46e5418eb08f2b39fb3149cfda13d4\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"
    }
  ],
  "next": "92116ca60f8400722a07b952bfcc259a7852f468"
}
