)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    },
    {
      "commit": "92116ca60f8400722a07b952bfcc259a7852f468",
      "tree": "f44889e49c0dd0f4ca2afd0812477b3bbf78fbf7",
      "parents": [
        "362fd8e2ec90531e3cf8e31ab5509f178482721e"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 13:55:46 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 13:55:46 2024 +0400"
      },
      "message": "Installer: Handle VM uninstall before it has had a time to boot\n\nChange-Id: I615bc949b5054b301899b1e0b7eae94a98126e61\n"
    },
    {
      "commit": "362fd8e2ec90531e3cf8e31ab5509f178482721e",
      "tree": "15d701ae0fbed170f129770cb51b9d1d88c4821c",
      "parents": [
        "5cc6afcffb5cb1bcf29fe1209adb5c003e1bf733"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 10:12:54 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 10:12:54 2024 +0400"
      },
      "message": "DodoApp: Make form disabling logic work with all forms on the page\n\nChange-Id: Ib82aa2fbd9c607fbc373fc0944fd5729813b128e\n"
    },
    {
      "commit": "5cc6afcffb5cb1bcf29fe1209adb5c003e1bf733",
      "tree": "f503dd40800261494428b0793703aa873df3297c",
      "parents": [
        "829b1b7f734b4e8c6e03ba557a426ff0ed5ef155"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 09:33:44 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Oct 06 09:33:44 2024 +0400"
      },
      "message": "DodoApp: Add optional name field to create app form\n\nChange-Id: I03f6efaf9cf787e34c69da1b9a97913c195b2c8c\n"
    },
    {
      "commit": "829b1b7f734b4e8c6e03ba557a426ff0ed5ef155",
      "tree": "64da62a12ebf7c17d1dc1a331abbd238bfe43ed2",
      "parents": [
        "9a283ccb0ad2b47b183d3644c800fe81d884860d"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 05 21:50:56 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 05 22:02:43 2024 +0400"
      },
      "message": "DodoApp: Fix app uninstall\n\nChange-Id: I17c28bbd88dde9c064a31388411ebf40cffdea31\n"
    },
    {
      "commit": "9a283ccb0ad2b47b183d3644c800fe81d884860d",
      "tree": "2f964f5da588da74e13265b2c760fd7fa6fdae6d",
      "parents": [
        "8c8761743bd0f2c493e9c3256b566a5ec30989d4"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 05 20:15:29 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 05 20:15:29 2024 +0400"
      },
      "message": "Installer: Fix cluster proxy mapping check during app uninstall\n\nChange-Id: I4b051bacb35ed54804327914340ca3205804139f\n"
    },
    {
      "commit": "8c8761743bd0f2c493e9c3256b566a5ec30989d4",
      "tree": "40bda70ffca8b9e06b543de63eba198c6ffe1271",
      "parents": [
        "1e7257703a3461418283d2f7e6300661a2923d61"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 05 12:25:13 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 05 13:00:08 2024 +0400"
      },
      "message": "AppManager: Remove delay between initiating same kind of task twice\n\nChange-Id: I539f3cb357e00ab560eaff34bef8ae2595e11b44\n"
    },
    {
      "commit": "1e7257703a3461418283d2f7e6300661a2923d61",
      "tree": "2096d0bdfdc858e2ee7933aa2a601d086c71ae47",
      "parents": [
        "4557dc0f42f18e964f3e39327f971d639a348b04"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 05 10:08:44 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Oct 05 10:15:13 2024 +0400"
      },
      "message": "Installer: Fix server type drop down selection\n\nShow only controller type for new clusters.\n\nChange-Id: I781f8cbf773d755dd731b62a1801947fc94970d9\n"
    },
    {
      "commit": "4557dc0f42f18e964f3e39327f971d639a348b04",
      "tree": "baa112210af95d26c0f43ff00b14c6cf6508c69a",
      "parents": [
        "1afc3cdd8264c87d3b029ae7f8e82939e73286d1"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Oct 04 19:29:25 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Oct 04 19:29:25 2024 +0400"
      },
      "message": "PrivateNetwork: Setup secrets ACL for both of the tailscale clients.\n\nChange-Id: I671b66ba06712b6842aa47cb2607b2a46ce0e0d4\n"
    },
    {
      "commit": "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": "28d5b72e868f490a81412523539f7c58682c5080",
      "tree": "eb31cd742ef61737ca068c9d909422e0adfa4a40",
      "parents": [
        "5887caa19c080583a548775d8cf20e476bfba6da"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Oct 04 19:27:34 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Oct 04 19:27:34 2024 +0400"
      },
      "message": "Memberships: Use external volume, remove one from the Helm chart.\n\nChange-Id: Ie2afcd9ab28a12e7d6bea6375a96e00a0f63b525\n"
    },
    {
      "commit": "5887caa19c080583a548775d8cf20e476bfba6da",
      "tree": "1776ef4e55b9f220eefc02d89ab80379894591d7",
      "parents": [
        "d17ad3e70f6c0f3daf37565c61e59f3942212343"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 03 15:07:23 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 03 21:50:54 2024 +0400"
      },
      "message": "DodoApp: Implement branch and app delete functionalities.\n\nChange-Id: I8bf6ed30a6274203e73e80f05a4b82896509ecb0\n"
    },
    {
      "commit": "d17ad3e70f6c0f3daf37565c61e59f3942212343",
      "tree": "6c9427af35aa671d3309d6d8db712fc84365ce9e",
      "parents": [
        "9b215271defd55beba6cd8726bd9a70a57cff499"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 03 13:09:55 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 03 13:09:55 2024 +0400"
      },
      "message": "EnvManager: Disable group authorization on memberships service.\n\nChange-Id: I39495ba364204e3c553723cbea0a827ae46ec1e2\n"
    }
  ],
  "next": "9b215271defd55beba6cd8726bd9a70a57cff499"
}
