)]}'
{
  "log": [
    {
      "commit": "a1efbadf3c50d5d1e6615cf018e57d48c0e01d2b",
      "tree": "6aa811cb15af356d825689528171d5c468422371",
      "parents": [
        "48679461d25e1e81cd2f226cc215c4e5360d8988"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 21 07:16:45 2025 +0000"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 21 09:08:21 2025 +0000"
      },
      "message": "Canvas: Rework monitoring page\n\nDisplay worker statuses with list of commands\nCommit hash\n\nChange-Id: I7054ecc5ce81f35cad3fe26fc20677b6f50d3147\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    }
  ]
}
