)]}'
{
  "log": [
    {
      "commit": "b1c5c454ffb0cda2b8458268d41d925b0c9e3ab6",
      "tree": "faa9d742aae329fd284f67bc4baa020ae127c1ed",
      "parents": [
        "6481c9095aef7c7d2a0554b1d1af8a55171a89c3"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 21 04:16:54 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 21 05:13:19 2025 +0000"
      },
      "message": "Canvas: Refresh env on remove deployment\n\nChange-Id: I1e09b50668a41ed11426fa0b8b0a600089e16c19\n"
    },
    {
      "commit": "b45b1866d422a31135a5d9af73ebc79381d0a0cb",
      "tree": "8d001086da42a8bb5e1e6fab5279c5f66678e287",
      "parents": [
        "bceb0853af62c5f23d62e4d51d7e097223527d12"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 11:42:20 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 11:42:20 2025 +0000"
      },
      "message": "Canvas: Fix project selection\n\nChange-Id: I34d68d06cc125acd1336fbd180bfdb6bfdfb2553\n"
    },
    {
      "commit": "bceb0853af62c5f23d62e4d51d7e097223527d12",
      "tree": "b3503e16d0b21b8cefe772fad3a8f72787cb70a3",
      "parents": [
        "6a49afc86b5d9626874146cb91225e4f941ae37b"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 13:15:18 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 13:15:18 2025 +0400"
      },
      "message": "Canvas: Expose nodejs 24.0.2\n\nChange-Id: Ie75960b47d067c24031741edc892ae8f30475ac9\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": "376a81d467d707eb2bd98a35c16c0b784e5c2eb3",
      "tree": "478f885a744e24867b987ddd5871886d9cf18ca1",
      "parents": [
        "eb148c8066d00c73a012727d63c30e8c2b207eac"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 06:42:01 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 20 06:50:43 2025 +0000"
      },
      "message": "Canvas: Use volume to persist data\n\nChange-Id: Ia93299590885c91d6e44c1e8842ba2c259bfc8a0\n"
    },
    {
      "commit": "eb148c8066d00c73a012727d63c30e8c2b207eac",
      "tree": "13738767beb4ef48e3bd7bfc4fe71688511adc3e",
      "parents": [
        "76d8ae649ccecc0c24f90971cbd250cfd45b99c1"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 16:17:22 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 16:17:22 2025 +0000"
      },
      "message": "Canvas: Add info about webhooks\n\nChange-Id: Icbe3625f444349f394672d963185fcc7d10b6c19\n"
    },
    {
      "commit": "76d8ae649ccecc0c24f90971cbd250cfd45b99c1",
      "tree": "639016de4bb7b7c75bdcee356d5983f9e1b9c255",
      "parents": [
        "82afef1887f8ee11e84e27bdc7e435a98ef35ecf"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 15:21:54 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 15:50:38 2025 +0000"
      },
      "message": "Canvas: Auto register github webhook upon deploy\n\nChange-Id: I0321a032014d58016926189869b0fc24ad7ee2b1\n"
    },
    {
      "commit": "6d8b71c93b719eafeae28ad6fadc9165fe66a419",
      "tree": "dce23b09ab7d2151963e8b67e1d272516be45830",
      "parents": [
        "05a993c181ec17ac8004219360188291785e088d"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 12:57:35 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 13:29:46 2025 +0000"
      },
      "message": "Canvas: Check if network supports auto\n\nChange-Id: I19e06b70e3e1a59f6549fcf01b565bad8a7f5695\n"
    },
    {
      "commit": "05a993c181ec17ac8004219360188291785e088d",
      "tree": "032ef46d683bc6e174dc7e1265b21fcd2fa0077b",
      "parents": [
        "4037078c897d124b7e5209504e0e49493f534113"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 11:51:33 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 12:34:36 2025 +0000"
      },
      "message": "Canvas: Show count badge on Gateways tab\n\nChange-Id: If93a4425c0c7f3395ad6712a4658711668e03b92\n"
    },
    {
      "commit": "4037078c897d124b7e5209504e0e49493f534113",
      "tree": "225aad787f8fd35dbcc24a6c489d3e87a9bccf50",
      "parents": [
        "6223714336ad69a661483a2cdf0acd1585ea5fcf"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 11:04:52 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 11:11:04 2025 +0000"
      },
      "message": "Canvas: Do not render input on config tab\n\nChange-Id: I5ebe939457610546ae59894958dbac153fcefcdf\n"
    },
    {
      "commit": "6223714336ad69a661483a2cdf0acd1585ea5fcf",
      "tree": "a32c4ffb766a3e49995431015e460c57f6a9dcd6",
      "parents": [
        "97efd7256d5d4d12654be30c24500edbf4cf7556"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 10:39:40 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 10:39:40 2025 +0000"
      },
      "message": "Canvas: Refresh env on successful deployment\n\nChange-Id: I7e27b21dd4409eb76fb02ab3feaf35fb56d0b989\n"
    },
    {
      "commit": "97efd7256d5d4d12654be30c24500edbf4cf7556",
      "tree": "d2c257b3a1075e5fd7c7b84d6d3ff9936c513d75",
      "parents": [
        "b77cb93401adc282f70ad3e8e0481af67518f3f5"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 10:36:12 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 10:36:12 2025 +0000"
      },
      "message": "Canvas: Fix TCP gateway exposing DB\n\nChange-Id: I0aef6a4754b0b674820d479b85fc770987164b02\n"
    },
    {
      "commit": "b77cb93401adc282f70ad3e8e0481af67518f3f5",
      "tree": "de49d8f6d70f5e77ecf65a10c335a7fe19509c85",
      "parents": [
        "6ce4481b19e87a2b010ca9dd7247f894eea32448"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 09:37:14 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 19 10:13:30 2025 +0000"
      },
      "message": "Canvas: Rework Deployment/Gateways tab\n\nChange-Id: I938262b9a6ba2af060531e7dcdf91ddd66721385\n"
    },
    {
      "commit": "3304672099846c2323de7bdb26d8df9e14b5eaff",
      "tree": "a4f4aa86214615f42215e3e3154e00d5e3c8e95e",
      "parents": [
        "3ec9424fa7f67122f10540878b210a00b63e1ef7"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 14:49:55 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 14:50:01 2025 +0000"
      },
      "message": "Canvas: Get ready for trial\n\nChange-Id: I16088fa041dd0fb35ac801ddbbedf3c1c6e8563d\n"
    },
    {
      "commit": "3ec9424fa7f67122f10540878b210a00b63e1ef7",
      "tree": "3c7653d5742cd8f7deb0afcc74ff8ae6e1601d10",
      "parents": [
        "f8fa0f8785b498c88d0e168b65f30f593cd1501a"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 12:46:57 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 12:46:57 2025 +0000"
      },
      "message": "Canvas: Disable all inputs during non-edit mode\n\nChange-Id: Ifca28e7cb78cb38175d5463311ff3d5006d412f8\n"
    },
    {
      "commit": "f8fa0f8785b498c88d0e168b65f30f593cd1501a",
      "tree": "8fcf4b9075e09d90b9f095ac963d168044ae1261",
      "parents": [
        "9fc37c7c69a4a26cb38e597c643213d1d63c91dc"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 12:34:26 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 12:34:26 2025 +0000"
      },
      "message": "Canvas: Improve spacing on details component\n\nChange-Id: Id18e89c9413e5f6d988b68d1f6582cdbee980a9d\n"
    },
    {
      "commit": "9fc37c7c69a4a26cb38e597c643213d1d63c91dc",
      "tree": "ca1f514f36d187125e22cc2b468f238e31088dc6",
      "parents": [
        "dc2dfcfeeb08e15e6d3807f499af1f3667ab46f2"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 12:17:18 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 12:17:18 2025 +0000"
      },
      "message": "Canvas: Message type icons\n\nChange-Id: I54f9f79869e593d95cb7dcadc6085951629600a9\n"
    },
    {
      "commit": "dc2dfcfeeb08e15e6d3807f499af1f3667ab46f2",
      "tree": "087cd0325bc8d2cee1a9285c99e63cef86a573c6",
      "parents": [
        "8cadbc764ad65ea0ed6e691cfa6fa2e23541e8a9"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 09:41:04 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 10:06:10 2025 +0000"
      },
      "message": "Canvas: Improve diagram styling\n\nChange-Id: If1c3d48cd94b63de86c8d7ecdb40974af951367f\n"
    },
    {
      "commit": "8cadbc764ad65ea0ed6e691cfa6fa2e23541e8a9",
      "tree": "c1964a70a1a56e1662c5ccbc2dfcc7332bb5dce6",
      "parents": [
        "29050d6e9998c2c3aa3954684e66d4c07c8a8a03"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 07:51:02 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 09:28:06 2025 +0000"
      },
      "message": "Canvas: Fix messages and details scrolling issues\n\nChange-Id: Id7831f65b7e692c611228d5937412500c3beae21\n"
    },
    {
      "commit": "29050d6e9998c2c3aa3954684e66d4c07c8a8a03",
      "tree": "4751db572e67c530fa9b9937d5c15e7d1e3b8324",
      "parents": [
        "e2b955a7b215e78324ff0b57d859d99ad4c3e9da"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 04:49:26 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 04:49:26 2025 +0000"
      },
      "message": "Canvas: Use subdomain only as gateway labels\n\nChange-Id: I2ff225fe4c9ae42ef3999fc51760cf29ccb58bae\n"
    },
    {
      "commit": "e2b955a7b215e78324ff0b57d859d99ad4c3e9da",
      "tree": "d8208aa5d43da2aeaf7c0d895481b5616424627e",
      "parents": [
        "838bcb82ed8d7358aa35a7fb26cb98c82ba4b6c8"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 15 15:41:05 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 16 04:43:52 2025 +0000"
      },
      "message": "Canvas: Wait during deploy and reload\n\nChange-Id: I8f39a46e263c99dd342b640474de421043ff0d38\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": "bd37a2ba4b803524f80e07394666c046f86a8cd4",
      "tree": "d689881cc23eeccf4dce570f0c29ff9a83d0ce06",
      "parents": [
        "b1d3bd7a965316f19df79af9abc6f09c0a5cf682"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 15 04:28:42 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 15 06:38:02 2025 +0000"
      },
      "message": "Canvas: Remove deployment action\n\nChange-Id: I5887f130f5d11880271c943f58284d62f7d07a23\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": "3ed59599dde16dd593805dd41192efb7e9591d36",
      "tree": "abae56df3d1defebb8ce3c87dbb64f230227babe",
      "parents": [
        "a1f29474e3457e969c798f86402ea27e7f390334"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 14 16:51:09 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 15 03:07:41 2025 +0000"
      },
      "message": "Canvas: Handle repo diff\n\nRefactor github and appmanager clients.\nRemove dev mode ports/ingress definitions.\n\nChange-Id: I0ca15cec897d5a8cfa1c89b8ec9c09c408686c64\n"
    },
    {
      "commit": "48fde051ffe863cb452d770e915bc314e43150f2",
      "tree": "baa701b66f18c91b7fb2f5229bba3b7e137de72e",
      "parents": [
        "359a685c71da766e76673c80e6c82bfd6ff0574b"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 14 09:48:08 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 14 15:19:10 2025 +0000"
      },
      "message": "Canvas: Service dev UI\n\nChange-Id: I11968dbf5ec51c5fd234ad927d40b0b3983e71dd\n"
    },
    {
      "commit": "359a685c71da766e76673c80e6c82bfd6ff0574b",
      "tree": "ea91c76924db8c5c8ac429c8534a8c0f66ac1627",
      "parents": [
        "af8db83af791cb5abfca73735936c9a78be2f7e0"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 14 03:38:24 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 14 03:51:57 2025 +0000"
      },
      "message": "Canvas: Restore viewport on project select\n\nChange-Id: I3dd60983ca0abe5fd3b84011bad384d50fa90dc1\n"
    },
    {
      "commit": "af8db83af791cb5abfca73735936c9a78be2f7e0",
      "tree": "0ff70e5e28d8e1a9861319e2efec9516fcc12676",
      "parents": [
        "74ab785563086f5904cc9ef33c2acf6cea7b461a"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 14:43:05 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 16:18:28 2025 +0000"
      },
      "message": "Canvas: Add new nodes at random positions\n\nChange-Id: I17ba195065bf8c2f7d1eea2091793766f0e0ac65\n"
    },
    {
      "commit": "74ab785563086f5904cc9ef33c2acf6cea7b461a",
      "tree": "8233ce3823082a58bc03669351ba1b460f9f0b87",
      "parents": [
        "e440db8685c8f52b4813a6d934da234426c6a878"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 13:19:31 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 13:20:35 2025 +0000"
      },
      "message": "Canvas: Fix project creation flow\n\nChange-Id: I2373982b37807db17391149a7ad40ebd4a5894ed\n"
    },
    {
      "commit": "e440db8685c8f52b4813a6d934da234426c6a878",
      "tree": "55452a61f267d03672339ebd4d988dbf2429e48c",
      "parents": [
        "02f1cadce9f2081f90610cb757c2ca33c93396ca"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 12:21:44 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 12:21:44 2025 +0000"
      },
      "message": "Canvas: Fix deleting undeployed project\n\nChange-Id: Icc2221338bc021a40ba7aae14eea93c8909af120\n"
    },
    {
      "commit": "02f1cadce9f2081f90610cb757c2ca33c93396ca",
      "tree": "f28af0e915204a6fbccde88ef827b2d04892dfd5",
      "parents": [
        "fcefd7c02b1fc3b3a38c561bade7fc870b538bbf"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 11:51:55 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 11:52:16 2025 +0000"
      },
      "message": "Canvas: Improve spacing on Integrations tab\n\nChange-Id: Ib2b7c1f15dfecabc56e39269ea122fc4f3842c33\n"
    },
    {
      "commit": "fcefd7c02b1fc3b3a38c561bade7fc870b538bbf",
      "tree": "8a23695800107203f3e84e059a78811811801108",
      "parents": [
        "617b1ddbf28310cf3c8c7c064ec7804b08b6fb50"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 08:01:07 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 08:01:07 2025 +0000"
      },
      "message": "Canvas: Consistent spacing on node details component\n\nChange-Id: Ia008d918723bc77a97a1ce37cd02adcd2accc9fe\n"
    },
    {
      "commit": "617b1ddbf28310cf3c8c7c064ec7804b08b6fb50",
      "tree": "021b3d61156022c7574df56070d2b128a213dd63",
      "parents": [
        "818da4e1e7c3a5d338ce85a03386e5d7e0d759f7"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 05:45:41 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 05:45:41 2025 +0000"
      },
      "message": "Canvas: Improve messages component layout\n\nChange-Id: I5ae26b72f480fff0e4634c7fcc294c04ac4ce7c5\n"
    },
    {
      "commit": "818da4e1e7c3a5d338ce85a03386e5d7e0d759f7",
      "tree": "fef25bddeac2e84e51fd3f0c0eb2f6bed4342601",
      "parents": [
        "09fcab513feafb119a80063cb60cc4439055ddb8"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 12 14:45:35 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 13 05:32:15 2025 +0000"
      },
      "message": "Canvas: Edit/Deploy mode\n\nChange-Id: I51e5b6c2a1f06009433b0d0824ffcf3dfe39d34e\n"
    },
    {
      "commit": "09fcab513feafb119a80063cb60cc4439055ddb8",
      "tree": "92d70ab74ce88a7389d9df618ad9e77a9d559aa3",
      "parents": [
        "4b9b58a2dd57736d0fb74e8947f8cd8a43ba4fa5"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 12 14:05:07 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 12 14:07:18 2025 +0000"
      },
      "message": "Canvas: Implement authorization\n\nRun internal API server on a different port: DODO_PORT_API\n\nChange-Id: Ic5aa066c3fa06bd68a752704df4f73040d1aa0d0\n"
    },
    {
      "commit": "4b9b58a2dd57736d0fb74e8947f8cd8a43ba4fa5",
      "tree": "018043e914d602ff4ebe8e0bf034424d64eafb3d",
      "parents": [
        "7461e50b4373b68ac10e92458840cd1eba7ac311"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 12 11:46:08 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 12 11:47:20 2025 +0000"
      },
      "message": "Canvas: fix empty config tab\n\nChange-Id: I7b59790577478d0b75c0b62e970bc7e95282f65a\n"
    },
    {
      "commit": "7461e50b4373b68ac10e92458840cd1eba7ac311",
      "tree": "f796be82aec7f1e6d4c0607ef6244aea2cbe0da0",
      "parents": [
        "bc47f9f1fdd718ca7604b67405e6b6d1fd6abfd0"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 12 10:11:55 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 12 11:47:15 2025 +0000"
      },
      "message": "Canvas: Auto-select first project\n\nChange-Id: I1065b20f866f9fa7152ca65b7853a60c58ac5de2\n"
    },
    {
      "commit": "bc47f9f1fdd718ca7604b67405e6b6d1fd6abfd0",
      "tree": "c8b25377562bbf9c0694f4deaaa1421e844393e3",
      "parents": [
        "0b4002c49fd2a2d696d549cb2b71af6e46accda5"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 12 08:31:07 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 12 11:46:57 2025 +0000"
      },
      "message": "Canvas: Fix layout, get rid of scroll bars\n\nChange-Id: I3244784ee741e93565190e538472723ffadfb754\n"
    },
    {
      "commit": "0b4002c49fd2a2d696d549cb2b71af6e46accda5",
      "tree": "00a00e51861235df14ab2c0c5f7f893682202fb0",
      "parents": [
        "8d0f635f2fc0b1799daac09ad1da6f6df52b4007"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun May 11 15:48:51 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun May 11 15:52:24 2025 +0000"
      },
      "message": "Canvas: Center icons on details panel\n\nChange-Id: I8ef607f3bf756e028ddab00f79e4ec17bd4582bd\n"
    },
    {
      "commit": "8d0f635f2fc0b1799daac09ad1da6f6df52b4007",
      "tree": "e519ea69761f2940c46a874e6b62ec005e634afe",
      "parents": [
        "880de16983c918c987493ce6a760574ac484db74"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun May 11 13:29:33 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun May 11 13:34:20 2025 +0000"
      },
      "message": "Canvas: Enable ESLint\n\nChange-Id: Ia9e84976b6d237f34c773eb55054fe244c625624\n"
    },
    {
      "commit": "880de16983c918c987493ce6a760574ac484db74",
      "tree": "1866fce94e07a7d72d0125fb18e967f80e958048",
      "parents": [
        "3a921b87b82ac5df520aaebf26ab344b9d86e033"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun May 11 07:26:00 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun May 11 08:05:11 2025 +0000"
      },
      "message": "Canvas: Improve layout\n\nChange-Id: Ife4f14d23eefc0ef0cb6b189446590fc42b8d797\n"
    },
    {
      "commit": "3a921b87b82ac5df520aaebf26ab344b9d86e033",
      "tree": "d2298543125613d4f5e8ec2ece6f9acf2182e8b6",
      "parents": [
        "b87415ce8478284b94e9dbe501b3b8d6fd2c9932"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat May 10 07:36:09 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun May 11 07:07:51 2025 +0000"
      },
      "message": "Canvas: Logs tab\n\nChange-Id: Iddf52dbce6fb2090f095cecb04bafcb50c47e4a7\n"
    },
    {
      "commit": "b87415ce8478284b94e9dbe501b3b8d6fd2c9932",
      "tree": "8beb95686a122de5cdcf51eb72a1d93082e44bfa",
      "parents": [
        "7d81370d1949b9ffaf0b868c9c7a5b149e3f1436"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 22:32:11 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat May 10 11:36:41 2025 +0400"
      },
      "message": "AppRunner: Ping manager periodically\n\nChange-Id: I58d79400acae5fdcd2c0a2bdae234c6303770cbc\n"
    },
    {
      "commit": "7d81370d1949b9ffaf0b868c9c7a5b149e3f1436",
      "tree": "3817caf7ea73897995179e67381189d0ea15371f",
      "parents": [
        "5cf364c29b4ddfca0a1bf8fc6238493c4ec63b77"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 18:29:52 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 18:29:52 2025 +0000"
      },
      "message": "Canvas: Implement worker to manager communication\n\nRegister workers on manager side.\nLet user force reload service workers.\n\nChange-Id: I2635a04167e7c853151d8a1f5c3511646181a063\n"
    },
    {
      "commit": "5cf364c29b4ddfca0a1bf8fc6238493c4ec63b77",
      "tree": "3b11f8593e2033ae857e4a5a0ecf5deea94294e2",
      "parents": [
        "d002661f89c59edbc999b087338b122799bcd612"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 16:01:21 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 16:06:34 2025 +0000"
      },
      "message": "Canvas: Fix to run validation on change in nodes\n\nChange-Id: Ie1798e65c83e673c90d7df556729cc509a9d2d9c\n"
    },
    {
      "commit": "d002661f89c59edbc999b087338b122799bcd612",
      "tree": "d402604eb544d9dcbb35e8d03a1c98c038abdc22",
      "parents": [
        "a2a845ccefb8b903692e6d2ce2bc0bfa10020538"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 13:00:36 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 14:48:38 2025 +0000"
      },
      "message": "Canvas: Prettier\n\nChange-Id: I620dde109df0f29f0c85c6fe150e347d2c32a03e\n"
    },
    {
      "commit": "a2a845ccefb8b903692e6d2ce2bc0bfa10020538",
      "tree": "a60d522a2bcb6540df73d2ef97421a7ee8a86991",
      "parents": [
        "6cf8c27f545361e4a8a960719436e281c2f934a7"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 11:27:14 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 13:12:58 2025 +0000"
      },
      "message": "Canvas: UI polish\n\nChange-Id: I3c7ae930917213dee8dddffdd9b14be7a80dab0a\n"
    },
    {
      "commit": "6cf8c27f545361e4a8a960719436e281c2f934a7",
      "tree": "f417f3e284df4822576ce2146c79962b00ab345a",
      "parents": [
        "7f98e77c44ec4af976f5299a7056ffde1fc27744"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 09:01:38 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 09:57:05 2025 +0000"
      },
      "message": "Canvas: Fix linter errors\n\nChange-Id: I602c1562d4ab2d948bb4dcf6caf66f185585d720\n"
    },
    {
      "commit": "7f98e77c44ec4af976f5299a7056ffde1fc27744",
      "tree": "dc64c9a9402db679374fa5c18c22d51597e92551",
      "parents": [
        "fe746ddf83f56a8d125657361023081a0047c5a6"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 07 11:00:14 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 08 07:55:03 2025 +0000"
      },
      "message": "Canvas: Github repository picker\n\nChange-Id: Icb8f2ffbef2894b2fdea4e4c13c74c0f4970506b\n"
    },
    {
      "commit": "fe746ddf83f56a8d125657361023081a0047c5a6",
      "tree": "cfcbd005d555a7a03993d4fa9c5a533ee82cbe71",
      "parents": [
        "9b2d49654845dc39a0632045bd8a9011cbb5f4c1"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 07 09:57:40 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 07 09:57:40 2025 +0000"
      },
      "message": "Canvas: Sort resource details by node type\n\nChange-Id: Ie5f9a149bf9700a08922e355bf8ca541fc915a0a\n"
    },
    {
      "commit": "9b2d49654845dc39a0632045bd8a9011cbb5f4c1",
      "tree": "2c9cbd71624b2265a71d297b6ddcb3bc2fb10018",
      "parents": [
        "33990c6ebc130fbd0036595da9f9a3a1168bfb6c"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 07 04:59:39 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 07 04:59:39 2025 +0000"
      },
      "message": "Canvas: Expose ingress auth details\n\nChange-Id: I337163f5919db5c8e48d6d429dcdc6420b196d3d\n"
    },
    {
      "commit": "33990c6ebc130fbd0036595da9f9a3a1168bfb6c",
      "tree": "99eed7c2a6d8df650c5b44896cc629fd7f059153",
      "parents": [
        "c0b27cce9a248731cad64e81c26ca820ab654cf8"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 06 07:51:24 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 06 07:56:16 2025 +0000"
      },
      "message": "Canvas: Form to choose source repository\n\nChange-Id: I48011d6374e036ead934815ed8e88dc0d1bb914e\n"
    },
    {
      "commit": "c0b27cce9a248731cad64e81c26ca820ab654cf8",
      "tree": "509cfd79686dcde25ab97327e51e58639466a7ff",
      "parents": [
        "bcd25e9ea44bd300e36f7fd6ed1b52ce0a46380d",
        "911656100a3085f8a5edd5af1f5d393d4194450a"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat May 03 18:02:51 2025 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "gerrit@v1.dodo.cloud",
        "time": "Sat May 03 18:02:51 2025 +0000"
      },
      "message": "Merge \"Canvas: Process pre-build commands\" into main"
    },
    {
      "commit": "911656100a3085f8a5edd5af1f5d393d4194450a",
      "tree": "024925d54ac0d43b73c466afa57896a9fb657c08",
      "parents": [
        "a6024622a8f30cce101bf3ddca0e64e552f1e91c"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat May 03 17:07:38 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat May 03 17:07:38 2025 +0000"
      },
      "message": "Canvas: Process pre-build commands\n\nChange-Id: I236f154c430b9ea29a4e0e491e1de27e78438440\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": "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": "01ed36f84b3edabe038f53dc8ef7d572e11415f5",
      "tree": "65086a3f29aaba340cb620d2cbb26e8c14ba6e54",
      "parents": [
        "da7086581dc83be65c3ed7d38e8fef8ae3b30738"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 01 08:43:04 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 01 08:43:04 2025 +0000"
      },
      "message": "Canvas: Remove sqlite db file\n\nChange-Id: I30034a3ca2ac8942c9efe2745ea972d54af6c802\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": "aba9a968f7d5f9dba7859834a0510c00f03e1127",
      "tree": "958592c8de697d2e4939b50d81f2a30b859f0454",
      "parents": [
        "b68003c7a77599e167ac4294d6c9dabfa6594683"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 25 14:19:40 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 25 15:19:04 2025 +0000"
      },
      "message": "Canvas: Render network nodes\n\nChange-Id: I63938da205af9377a1e210c0e972591142211a68\n"
    },
    {
      "commit": "b68003c7a77599e167ac4294d6c9dabfa6594683",
      "tree": "ef15c75c5ed130007d060e0d770b3c38dc0ac013",
      "parents": [
        "1dc800a666122965d7ea81d5e1c96bbea37cf98f"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 25 03:05:21 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 25 03:05:21 2025 +0000"
      },
      "message": "Canvas: Implement delete project\n\nChange-Id: I0c2abfde3d813376b9f22ab8dc8b1752262679cb\n"
    },
    {
      "commit": "1dc800a666122965d7ea81d5e1c96bbea37cf98f",
      "tree": "c263d81b18c1cf9e1a4980d729f13bd9805ad73e",
      "parents": [
        "268787aa0dc98f3fa5388bd71b453552a8c57d34"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 24 17:15:43 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 24 17:21:52 2025 +0000"
      },
      "message": "Canvas: Monitor deployment\n\nChange-Id: If5895724025e8e4082a372563c159cbf2216b97f\n"
    },
    {
      "commit": "f96ffb8fbd65d47c6f7a91f112a8df5731b7b3db",
      "tree": "c7c5e0f5b17e7ac988423437d8fcd075bc808b11",
      "parents": [
        "b41ecae932b01a4749deb9ee9bff12f7e0f61435"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 24 09:31:05 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 24 09:32:27 2025 +0000"
      },
      "message": "Canvas: Remember Ingress, PostgreSQL and MongoDB details\n\nChange-Id: I5c75a3c9b1b1c7a65307d9608428208ac643040d\n"
    },
    {
      "commit": "b41ecae932b01a4749deb9ee9bff12f7e0f61435",
      "tree": "6702bde696abc9efa510b3044b7457825872fb52",
      "parents": [
        "355883e7e506c7fc1da4ff942f4e4baad60982d3"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 24 08:46:50 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 24 08:46:50 2025 +0000"
      },
      "message": "Canvas: Update edges on port removal\n\nChange-Id: I5f550f0511257207db4a2f0469957cc4449514bd\n"
    },
    {
      "commit": "355883e7e506c7fc1da4ff942f4e4baad60982d3",
      "tree": "da73698f6896bd66d2c1e572853b08c0a6e09ba5",
      "parents": [
        "4e3b24d8aa1e06d9e0bcc00e645195006206df27"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 23 14:10:51 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 23 14:10:55 2025 +0000"
      },
      "message": "Canvas: Include service ports in self env vars\n\nChange-Id: Iaef1b27069bc2672429e0b23ea42d6a305bf4e6d\n"
    },
    {
      "commit": "b7a3e1299ed7be6fc088b389c8841eb479ae3acb",
      "tree": "06db7cbc196fd79703e3b17e618da7a3221f3f30",
      "parents": [
        "63a1a825ee40d8c21f05c633cead681d0b4190e8"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 23 09:19:58 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Apr 23 09:38:18 2025 +0000"
      },
      "message": "Canvas: Issue update if previously deployed\n\nChange-Id: I7ffbba814154eb9129fbe035ce15278cb8e25fe9\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": "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": "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": "cbd8909ed7d8f3bdb17abd679173c137ec62169b",
      "tree": "b159762a4dc660cc6d9f1c9d5d0427be7520f9c3",
      "parents": [
        "4dd2c0d6d8df04a5a1de3c60f620b93142c5bd97"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 11 16:53:19 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 11 16:53:19 2025 +0400"
      },
      "message": "Echo: Use DODO_PORT_ECHO env variable when present\n\nChange-Id: I2fa0b148dcfa8d4a2d52a989b6172d8c38baf37b\n"
    },
    {
      "commit": "4dd2c0d6d8df04a5a1de3c60f620b93142c5bd97",
      "tree": "c105fef8e73aac485c5475377573e72469845363",
      "parents": [
        "2446de060590098b8e00a49d758553a7433d065b"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 11 16:40:55 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 11 16:40:55 2025 +0400"
      },
      "message": "Echo: Basic TCP echo server\n\nChange-Id: I46e1f0e4d2733d14609efa68953e09b631cc28fb\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": "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": "5f2f100451baee800b04a0871f6c268ed0dc7daa",
      "tree": "2da0211831c380f04989725167520f96fe24d9d4",
      "parents": [
        "9c43d0c4d9840f1d914313064f02f71c9de76f4a"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Mar 20 18:38:48 2025 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Mar 27 14:49:06 2025 +0400"
      },
      "message": "Canvas: build application infrastructure with drag and drop\n\nChange-Id: I5cfd12e67794f3376c5c025af29470d52d77cf16\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": "45c31828e2655b6bb8f2c7fcca87f61437a1c913",
      "tree": "ed2eb8021c0adf99fffc6c281582f696ee3e66a6",
      "parents": [
        "2b1157aedb2cbd8c20304af7e175f3e2b321680e"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 24 10:58:02 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 24 10:59:37 2024 +0400"
      },
      "message": "AppRunner: Build next version in the background to reduce downtime\n\nNext step would be to make this point of transition configurable.\n\nChange-Id: Ibf6504a02b2d1c376e70e944e1aaada0f2dea589\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": "51abcffce3f4ef6a18ad6a16a60acd634354b526",
      "tree": "96f6d41f99a8890003d3e868965adbb34f875ee3",
      "parents": [
        "6e1f4571b795d600d6202fe38a20a014b34a87a8"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 24 08:37:25 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 24 08:37:25 2024 +0400"
      },
      "message": "AppRunner: Fix process restart\n\nWait will always return an error as we just killed the process\n\nChange-Id: I329b25811a3c7502d7e3ebe964acbe14ae14d1dc\n"
    },
    {
      "commit": "ff0ee0f02dfac596bbcdbe734605fa4f34f31a76",
      "tree": "0fa6f0a7a81ba33f066041a9c162ea0604c5f313",
      "parents": [
        "ad9e7151cc7a50467ab8e62387c5e8119dd266c9"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Oct 15 23:11:54 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Oct 16 07:36:54 2024 +0400"
      },
      "message": "AppRunner: Kill all subprocesses when reloading new version\n\nChange-Id: Ie708f64a0c564b35b189d16823fedb0669506da4\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": "1afc3cdd8264c87d3b029ae7f8e82939e73286d1",
      "tree": "342baaa2572c346f524cf645220b37bcfb714fc1",
      "parents": [
        "28d5b72e868f490a81412523539f7c58682c5080"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Oct 04 19:28:15 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Oct 04 19:28:15 2024 +0400"
      },
      "message": "CaptureConfig: Update config if it already exists.\n\nChange-Id: I0ecd09a65f0d74806d0329772e04ffa57e9a40ee\n"
    },
    {
      "commit": "dd213159a7a44ae9b35524de154f6ca6ccd568f3",
      "tree": "6ccf5807dbc42331bca84e4081023b58fae9bfa6",
      "parents": [
        "dcd9fefca814cd6cb997d2da9b00b4356589aee3"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Sep 27 11:26:59 2024 +0200"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 03 12:43:25 2024 +0400"
      },
      "message": "Auth: Add page to change password.\n\nConfigure launcher as a default return to address.\n\nUse standard X-Forwarded-User instead of custom X-User header.\nAdd X-Forwarded-UserId header holding user unique identificator.\n\nChange-Id: Ib2e6329ba9fb91d2cc9a86b0c5fc78898769e3b8\n"
    },
    {
      "commit": "7fbd4ad2920fa3ac2923bffb3f30c2bd2dd1a846",
      "tree": "14fb607a7a45e142ea90e58751c4b7825e2a7e59",
      "parents": [
        "dd32bbcf11ff3be729efe7bcc9902761858e2b00"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Aug 27 10:06:39 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Sep 04 13:50:35 2024 +0400"
      },
      "message": "DodoApp: Support dev virtual machines\n\nChange-Id: Ib7641adb5be477bdde7cd9a06df4b45aa65a1c01\n"
    },
    {
      "commit": "183e8345c36c345ec65872050015265f9fe6d117",
      "tree": "000ef7f39ac0a6c55f8e2df25c35820992327d17",
      "parents": [
        "71ffe88416b8c7a97d9b8efb80e3e0ee1c4977e6"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Aug 20 06:01:24 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Aug 20 14:43:18 2024 +0400"
      },
      "message": "DodoApp: Logs\n\nChange-Id: Idb429c417b639b53352642d1d59a6b29622d499f\n"
    },
    {
      "commit": "b54db2456380b3f4070d789a8bf1cb82b226dad9",
      "tree": "64c7f31d0c1b31c92d81e0523355598a8d1714f4",
      "parents": [
        "7841f4fa84099fef36e426842a2239d72c74ba53"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 30 18:49:33 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 31 11:36:39 2024 +0400"
      },
      "message": "DodoApp: Support PHP 8.2\n\nChange-Id: I7cfe082c66a0efe0b3b9c85433a96623466ced5c\n"
    },
    {
      "commit": "aec6d8a8403e0600da36cc02b74aaa35789e3655",
      "tree": "f34750d9d96bdf7d8350eaab7fe0135e9718a43d",
      "parents": [
        "94904700fb6b32f65c9a5f6545a1f9e872d03953"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Mon Jul 29 18:30:09 2024 +0400"
      },
      "committer": {
        "name": "dtabidze",
        "email": "dtabidze@v1.dodo.cloud",
        "time": "Tue Jul 30 15:08:28 2024 +0000"
      },
      "message": "Landing: Implement registration success/failure flows\n\nChange-Id: I0b48cfb0c0b35bfe7c71b13f8953951821fb3958\n"
    },
    {
      "commit": "d8ab4f504f65006c97e09f8b7c0b32cfd19c6b2c",
      "tree": "edea5228351c894dfd96319c461a28ab087ebf39",
      "parents": [
        "8fae3afa076d215d919cfa825098c2945f999261"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 26 16:58:34 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 26 19:13:07 2024 +0400"
      },
      "message": "DodoApp: Use one network per external customer\n\nChange-Id: I09864ad24a223b451c5877ad08bbc8960c80d41c\n"
    },
    {
      "commit": "8fae3afa076d215d919cfa825098c2945f999261",
      "tree": "240437eada953a5ae4425820351435b4d0b04125",
      "parents": [
        "5e49bb65fb2d5e3d5513bcd419de0df8b93fcd5d"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 25 13:43:31 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 26 15:02:34 2024 +0400"
      },
      "message": "DodoApp: Public API to fetch allowed networks\n\nUpdate landing page to communicate with dodo-app backend.\n\nChange-Id: I269ad5150b9203eca9c1c9cc9a8a99b55c583419\n"
    },
    {
      "commit": "5e49bb65fb2d5e3d5513bcd419de0df8b93fcd5d",
      "tree": "17bb3ac60d027b7ff1cfffb902f503e4c42dab10",
      "parents": [
        "f2aa750955e47092025b69a302f6f15683f072d2"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Jul 20 10:43:19 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 26 14:26:53 2024 +0400"
      },
      "message": "DodoApp: Use picocss for UI\n\nChange-Id: I2d610c4f57e4dfbbe566a7c7f82147443e0106f1\n"
    },
    {
      "commit": "f2aa750955e47092025b69a302f6f15683f072d2",
      "tree": "20a0ad7423088a5c069efb17416677ccdb78ceba",
      "parents": [
        "f867f2d005fb0a875af77bbc7246e2c620aecc4e"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Thu Jul 25 18:02:03 2024 +0400"
      },
      "committer": {
        "name": "dtabidze",
        "email": "dtabidze@v1.dodo.cloud",
        "time": "Fri Jul 26 10:23:56 2024 +0000"
      },
      "message": "Landing: Switch off to highlight fact event during resize\n         Fact images should load smoothly now\n\nChange-Id: Ib441f01638362a0c725f20a117d3248ad88ae88d\n"
    },
    {
      "commit": "950d804ed0e1ee129ec3c9a6d0ece6f6d97e611f",
      "tree": "f6758aa2228f22762fe88bd4baf01066da20be26",
      "parents": [
        "5f1a2c6c3faadd906fa9ba0e741db59f7a17efde"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Thu Jul 18 20:42:55 2024 +0400"
      },
      "committer": {
        "name": "dtabidze",
        "email": "dtabidze@v1.dodo.cloud",
        "time": "Fri Jul 19 09:54:37 2024 +0000"
      },
      "message": "URL-Shortener: UI rework\n\nChange-Id: If7e5c0a031c0b020d28cfcfe8edbbc3f4849862e\n"
    },
    {
      "commit": "4eb2efe327311901547f77472219b9636b1484ad",
      "tree": "17f0979ef0b52194aa91edf916228ead2d5a4cd8",
      "parents": [
        "c6c663f413fc3cb6645a8b83923a136e2538bb39"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 12 20:55:31 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 15 11:32:07 2024 +0400"
      },
      "message": "rPuppy: Update Makefile and Dockerfile\n\nChange-Id: I3832c88878b517554ceecaa89fe8a0a03ee1876f\n"
    },
    {
      "commit": "96335831a6d352fdbcf5c20da16bd7859bdf56df",
      "tree": "0b221e9efe140b1b0185e43a1cad352cb9c38034",
      "parents": [
        "23bdc1bf054f81d3760c8a04a37501011138d4bc"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 12 20:07:42 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 12 20:07:42 2024 +0400"
      },
      "message": "Landing: Add option to choose domain/subdomain\n\nChange-Id: I84e9f33c2a9fad91565c964e533f16f8f6820247\n"
    },
    {
      "commit": "a60f0decc365f877d7b88d099a65e0b686db78e9",
      "tree": "fc62da0f29749454569cc49710cd809724581bc6",
      "parents": [
        "71eecceeec941c4d1efe46c446139fa1b3eaa479"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 08 10:49:48 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 10 09:23:39 2024 +0400"
      },
      "message": "DodoApp: Status page\n\nImplements basic status page, listing all apps and their commit\nstatuses. Separates web and api endpoints. Unifies API addresses a bit.\n\nChange-Id: I98f9f949a49b60e80e188f7b51ec0e967666e65b\n"
    },
    {
      "commit": "71eecceeec941c4d1efe46c446139fa1b3eaa479",
      "tree": "a41674f90249fd1ad55e6061d2106fc0ae0f4aa3",
      "parents": [
        "9d66f32f5a557d3e3d04570c414bca488a0b289a"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Tue Jun 25 15:00:55 2024 +0400"
      },
      "committer": {
        "name": "dtabidze",
        "email": "dtabidze@v1.dodo.cloud",
        "time": "Tue Jul 09 14:04:33 2024 +0000"
      },
      "message": "Landing: Implement using Hugo\n\nChange-Id: I1204d0a75e73000685d3f12a52d66897fa69bbae\n"
    },
    {
      "commit": "266c04fe17fb79285f09777b268310b039343a69",
      "tree": "26e19ff36f6d55ced011b57c5e06439ba07b0758",
      "parents": [
        "1364e437bf921780052f27d49f51682ffd1811f0"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 03 14:18:45 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 04 18:18:53 2024 +0400"
      },
      "message": "DodoApp: Prepare dodo-app to support multiple app repositories\n\nPreviously Git repository storing configuration for PCloud\nenvironment, linked dodo-app repositories directly. After this change,\ndodo-app will first create config repository which will link\nindividual application repositories. And PCloud env will link to the\nconfig repo. That way dodo-app manger will be able to create multiple\napp repositories per installation.\n\nChange-Id: I647cacda7a9a4f241d2acc28ae5d8bbd8c6424d6\n"
    }
  ],
  "next": "1364e437bf921780052f27d49f51682ffd1811f0"
}
