)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "9b215271defd55beba6cd8726bd9a70a57cff499",
      "tree": "c8e418fa96834453d498a40c0f4cfcdc373f3f87",
      "parents": [
        "488554fc5a7721500f8a6d57c52c4002f1da6e5b"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 03 10:07:13 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 03 12:48:17 2024 +0400"
      },
      "message": "Gerrit: Update to 3.10.0 and add serviceuser plugin\n\nChange-Id: I20023f0da93982461e78639a554c73191762a1e4\n"
    },
    {
      "commit": "488554fc5a7721500f8a6d57c52c4002f1da6e5b",
      "tree": "a41328703051a02fe60532c2e60f66e8e98601a2",
      "parents": [
        "dd213159a7a44ae9b35524de154f6ca6ccd568f3"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Oct 02 16:41:26 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Oct 03 12:45:27 2024 +0400"
      },
      "message": "AppManager: Always default to default cluster.\n\nChange-Id: I36ca1d710092cb3214d77ef24434ca817ba0b64d\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": "dcd9fefca814cd6cb997d2da9b00b4356589aee3",
      "tree": "bc2f273286ecd6df7a4c7ac93ea726adc44ebb49",
      "parents": [
        "c81a847da3d91a83c05c98c41adadf89d18f913b"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Sep 26 14:42:59 2024 +0200"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Sep 29 11:56:37 2024 +0200"
      },
      "message": "Auth: Enhance password validation.\n\nIncrease minimum length to 20.\nCheck for digits, lower/upper case and special characters.\n\nChange-Id: I7837780716487843f01ed2af97fcf30505d27ef7\n"
    },
    {
      "commit": "c81a847da3d91a83c05c98c41adadf89d18f913b",
      "tree": "b292ac26094257efdafafca25abb60ff24e79100",
      "parents": [
        "8f2903253c51454d613c948eb10d2dbc8b55daa3"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Sep 24 13:06:19 2024 +0200"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Sep 26 14:04:15 2024 +0200"
      },
      "message": "DodoApp: Use JSON file for configuration.\n\nSpecify json schema so code editors can validate user input.\nUpdate auth proxy to disable auth on specified paths.\n\nChange-Id: Ic6667d802a9553444d3630c4ff73f4b33304ccfd\n"
    },
    {
      "commit": "8f2903253c51454d613c948eb10d2dbc8b55daa3",
      "tree": "f8aa032050c2e53e841151e2c5281a12989bfe6d",
      "parents": [
        "f15b9dae8da59ea970cebe865673c0b74fb05d14"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Sep 21 15:37:45 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Sep 21 17:58:03 2024 +0400"
      },
      "message": "Clusters: Support persistent storage on remote clusters.\n\nWith this merged users can request persistent volumes and PostgreSQL\ninstances on remote clusters.\n\nThis is achieved by Cluster manager installing open-iscsi on all\nremote servers and running longhorn on top of them.\n\nChange-Id: Ic1b24ede12fa32bb99f38e560207230437b45fd6\n"
    },
    {
      "commit": "f15b9dae8da59ea970cebe865673c0b74fb05d14",
      "tree": "f6ae28d7c46bd6c833ada7c436f4dacab0628876",
      "parents": [
        "f6ad298e24e22c1fadb203d85f8b8dd6cb118e25"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Sep 19 06:59:16 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Sep 21 11:45:45 2024 +0400"
      },
      "message": "DodoApp: Support remote clusters\n\nChange-Id: I6f4e6a0a32cc723b47c96518d83b1ffdb5169f14\n"
    },
    {
      "commit": "f6ad298e24e22c1fadb203d85f8b8dd6cb118e25",
      "tree": "ec764428f186cf879085d6956b20d315434408aa",
      "parents": [
        "4a3e54c86c05e4881105f7aced6f039a383ed5a1"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Aug 23 17:42:49 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Sep 20 14:19:48 2024 +0000"
      },
      "message": "ClusterManager: Implements support of remote clusters.\n\nAfter this change users will be able to:\n* Create cluster and add/remove servers to it\n* Install apps on remote cluster\n* Move already installed apps between clusters\n* Apps running on server being removed will auto-migrate\n  to another server from that same cluster\n\nThis is achieved by:\n* Installing and running minimal version of dodo on remote cluster\n* Ingress-nginx is installed automatically on new clusters\n* Next to nginx we run VPN client in the same pod, so that\n  default cluster can establish secure communication with it\n* Multiple reverse proxies are configured to get to the\n  remote cluster service from ingress installed on default cluster.\n\nNext steps:\n* Support remote clusters in dodo apps (prototype ready)\n* Clean up old cluster when moving app to the new one. Currently\n  old cluster keeps running app pods even though no ingress can\n  reach it anymore.\n\nChange-Id: Iffc908c93416d4126a8e1c2832eae7b659cb8044\n"
    },
    {
      "commit": "4a3e54c86c05e4881105f7aced6f039a383ed5a1",
      "tree": "f46ae31bee0e0ac429fd9a0dbf3c40c61ebe74d3",
      "parents": [
        "29f6b872c0a6b438198e0fbd3d9fc22150d378e1"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Sep 18 19:10:06 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Sep 19 22:50:55 2024 +0400"
      },
      "message": "Jenkins: Update configuration-as-code plugin version\n\nChange-Id: I962810c9d8d0586bf7a94a9388aee0e3530b4370\n"
    },
    {
      "commit": "29f6b872c0a6b438198e0fbd3d9fc22150d378e1",
      "tree": "1de826a26d8c6c3be5e6aff48b273ae49a3c024e",
      "parents": [
        "cfb228ce21f864457a72d1fe238a336359db8a65"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Sep 08 16:14:58 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Sep 09 18:03:10 2024 +0400"
      },
      "message": "VirtualMachine: Make VPN optional\n\nChange-Id: I22c8235a651969665fc50e6b2841d710ca137109\n"
    },
    {
      "commit": "cfb228ce21f864457a72d1fe238a336359db8a65",
      "tree": "63448efc29c9f95dc31843e1854cbc9381a3e8a6",
      "parents": [
        "864b433c85eeb46dfcba5bcab2dc88bc5d467570"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Sep 06 15:44:31 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Sep 06 16:56:28 2024 +0400"
      },
      "message": "DodoApp: VMs load dodo specific env vars from the dodo app manager\n\nChange-Id: I522619a3ba6cd6c78eb4fe1dd8c91ec490759fdf\n"
    },
    {
      "commit": "864b433c85eeb46dfcba5bcab2dc88bc5d467570",
      "tree": "db43e80cfbaf8ba5e1e03108ad36259bff5d7f12",
      "parents": [
        "7fbd4ad2920fa3ac2923bffb3f30c2bd2dd1a846"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Sep 05 13:56:47 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Sep 05 13:56:47 2024 +0400"
      },
      "message": "AppManager: Clean up VPN node and auth keys upon app removal\n\nChange-Id: Ie76278556247d16806ba81286621adca973e3f6e\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": "dd32bbcf11ff3be729efe7bcc9902761858e2b00",
      "tree": "4a9f07107cfa9a9a6515c46eb93c49df69a01dd5",
      "parents": [
        "36b23b3c95ddb458a3e30b147c694eeba78139cc"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Wed Aug 28 17:14:26 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Aug 28 14:29:44 2024 +0000"
      },
      "message": "Welcome: Remove headscale-user installation\n\nAuto user sync logic takes care of creating headscale internal users.\n\nChange-Id: I25ca82a5e327c8e7666ce27cfd5f810690641a5e\n"
    },
    {
      "commit": "36b23b3c95ddb458a3e30b147c694eeba78139cc",
      "tree": "07d0634412ebb55fa4f899b63d1b991753357b96",
      "parents": [
        "b36178fae43c466c648a928c94047605e9357808"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Aug 25 12:20:54 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Aug 27 08:46:39 2024 +0400"
      },
      "message": "VirtualMachine: Implement virtual machines using KubeVirt\n\nAuto adds new VM into given user\u0027s Tailscale network\n\nChange-Id: I16847a0b9eacc17b0e794d3b4913eb1d80a93f0a\n"
    },
    {
      "commit": "b36178fae43c466c648a928c94047605e9357808",
      "tree": "6fc5284c708a783e2d7799e1191203dcc4f1f44e",
      "parents": [
        "c76baedf55dd3e0d36ef0fd7a476601120bd57d7"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Aug 23 18:59:15 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Aug 26 15:40:54 2024 +0000"
      },
      "message": "Headscale: Sync users and update ACLs\n\nChange-Id: Ie3488f6296567f5e2301476912d79de845299708\n"
    },
    {
      "commit": "c76baedf55dd3e0d36ef0fd7a476601120bd57d7",
      "tree": "e14e4c39f20dbd51af2abed5f8d2e5873e7865c5",
      "parents": [
        "43b0f42893efb5284f0fb5d6ca9c12f4688680b4"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Aug 19 22:04:57 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 22 07:58:30 2024 +0000"
      },
      "message": "PortAllocator: Persist reservations\n\nSpeed up improve random port generation.\nUpdate unit tests and add them to CI/CD.\n\nChange-Id: Ia77f0b4cbccfdce86e6c3cedc68afe6796ca8bf4\n"
    },
    {
      "commit": "43b0f42893efb5284f0fb5d6ca9c12f4688680b4",
      "tree": "0b042cac5d1d7939a36601893cb27cb2ac39bc4e",
      "parents": [
        "608148d0414fd65e8dadeccc07093e3e4e9e6321"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Aug 21 10:40:13 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Aug 21 19:56:55 2024 +0400"
      },
      "message": "Reconciler: Reconcile dodo Apps as well\n\nFix service-account assignment.\n\nChange-Id: Ic66c46ae5b728e09ee9118f61e31ab860623bce0\n"
    },
    {
      "commit": "608148d0414fd65e8dadeccc07093e3e4e9e6321",
      "tree": "c79b950d8d1493c0e48fb1c4f871dc9789545ca2",
      "parents": [
        "5215d4460e2c17f37b206543a6f906c49c742ea0"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Wed Aug 21 14:44:29 2024 +0400"
      },
      "committer": {
        "name": "dtabidze",
        "email": "dtabidze@v1.dodo.cloud",
        "time": "Wed Aug 21 12:59:02 2024 +0000"
      },
      "message": "Appmanager: Fix dropdown network select color mismatch\n\nChange-Id: I7be839d182ef99bf03d4645d9a0cb56153bf262c\n"
    },
    {
      "commit": "5215d4460e2c17f37b206543a6f906c49c742ea0",
      "tree": "fc7cf476d63937b9199055b3ac691ed7a7855fe0",
      "parents": [
        "183e8345c36c345ec65872050015265f9fe6d117"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Wed Aug 21 15:40:06 2024 +0400"
      },
      "committer": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Wed Aug 21 15:41:44 2024 +0400"
      },
      "message": "Launcher: Help Content font fix and some minor css changes\n\nChange-Id: I2b4bfc16bd20fbd9d9a3cbec021ea9cd47d84333\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": "71ffe88416b8c7a97d9b8efb80e3e0ee1c4977e6",
      "tree": "4c5f5b252026da6f447fdc8f4639b062996b6da9",
      "parents": [
        "e38c40f9c562fe9e622bfd822d5643242de940fd"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Aug 19 09:55:47 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Aug 20 14:43:13 2024 +0400"
      },
      "message": "DodoApp: Fix PostgreSQL service address env var\n\nChange-Id: Iab0759a4133389df0d6b7ccc3122dea7fdbdb929\n"
    },
    {
      "commit": "e38c40f9c562fe9e622bfd822d5643242de940fd",
      "tree": "811990edbcfb19c16f52c5a52a8c8b196f3cebd9",
      "parents": [
        "b4a3a19dd3910ee3c8c93b68aa76db3975ecba61"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Mon Aug 19 13:58:36 2024 +0400"
      },
      "committer": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Mon Aug 19 22:52:15 2024 +0400"
      },
      "message": "AppManager: Show spinner during search\n\nSearch form doesn\u0027t throw an error when not on main page\n\nChange-Id: I108c681101c3b03901205695ee3775fb18eaa900\n"
    },
    {
      "commit": "b4a3a19dd3910ee3c8c93b68aa76db3975ecba61",
      "tree": "89011263b7454cab0a48a3a29e3a59266b978c0a",
      "parents": [
        "12e887d5a4c515e173bc3306c83aec0e28113e5b"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Aug 19 09:55:47 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Aug 19 14:32:34 2024 +0400"
      },
      "message": "DodoApp: Implement commit status page\n\nRender used volume, postgresql and ingress resource details.\n\nChange-Id: I87f34fd19d0d0d31ec495d2798c9f5ce99c0fd43\n"
    },
    {
      "commit": "12e887d5a4c515e173bc3306c83aec0e28113e5b",
      "tree": "25d837416a2ae666982e583cf74511288908a19b",
      "parents": [
        "e2e31e1cd45d3eadb745af73bf6db225f6b1fbb0"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Aug 18 16:09:47 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Aug 19 14:32:22 2024 +0400"
      },
      "message": "DodoApp: Support postgresql config\n\nChange-Id: I491553c709385b99d0bc1326dd967bd73c4fec6a\n"
    },
    {
      "commit": "e2e31e1cd45d3eadb745af73bf6db225f6b1fbb0",
      "tree": "34ca940393c33a6dd0ff8e9381c079cf81b6db7d",
      "parents": [
        "9877f292b2b037beea96dc916144feb7b8700a30"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Aug 18 08:20:56 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Aug 19 14:31:49 2024 +0400"
      },
      "message": "DodoApp: Improve UI\n\nChange-Id: Ia374b600c9b61e7543a1c7dffb2ade9b58c7d49f\n"
    },
    {
      "commit": "9877f292b2b037beea96dc916144feb7b8700a30",
      "tree": "92c8309cfed74332269ac6620027a41a6cced354",
      "parents": [
        "1bf00809c3db2b93c115af677ad18d3a48c5a75e"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Aug 17 15:11:15 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Aug 19 14:31:31 2024 +0400"
      },
      "message": "AppManager: Use dodo hosted repo for Helm charts\n\nChange-Id: I236bd13907514ab3bced6c7353edc1b03b60b6ee\n"
    },
    {
      "commit": "1bf00809c3db2b93c115af677ad18d3a48c5a75e",
      "tree": "ff5a380e5803ae30dc77f40c94a59e760547d73a",
      "parents": [
        "a344a2ae9b21ed21447d8702be36e5bc7907fdb9"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Aug 17 12:31:41 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Aug 19 14:29:29 2024 +0400"
      },
      "message": "DodoApp: Cache static resources.\n\nChange-Id: Ib1f800ea052c5f3b7929a1d325b351dfa0a6633e\n"
    },
    {
      "commit": "a344a2ae9b21ed21447d8702be36e5bc7907fdb9",
      "tree": "a59c07950207e45cdab0f9a5794b343814b07b5e",
      "parents": [
        "5f00a395178c23115904278e94d163ba6f19f0f8"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Aug 16 17:13:48 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Aug 16 14:39:04 2024 +0000"
      },
      "message": "PortAllocator: Open node ports only for NodePort type service\n\nChange-Id: Id2369df9a33669b3d09ef34975306a615ff935b7\n"
    },
    {
      "commit": "5f00a395178c23115904278e94d163ba6f19f0f8",
      "tree": "68cd291c3b74f15ad22821ccf6cca1b1b7c4019a",
      "parents": [
        "33fa9caf7e18db1c651beecd5997291cf611e6b4"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Tue Aug 13 18:37:02 2024 +0400"
      },
      "committer": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Fri Aug 16 18:34:46 2024 +0400"
      },
      "message": "AuthProxy: Render unauthorized page\n\nChange-Id: I979762c63b0d1b3c3674fd0b9ab79ccd8849887a\n"
    },
    {
      "commit": "33fa9caf7e18db1c651beecd5997291cf611e6b4",
      "tree": "d3ed4ce4e2e3bc751b0684802bb5ee6a1f95180b",
      "parents": [
        "5588514e082d8ad82167a81767d7b746d83db2a0"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Aug 16 10:25:24 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Aug 16 15:25:19 2024 +0400"
      },
      "message": "Launcher: Auto reload app dock every 5 seconds.\n\nAnimate install/uninstall flows.\n\nChange-Id: Id06ddc0d5f8b3cef3205de99b3a16ba1ac285213\n"
    },
    {
      "commit": "5588514e082d8ad82167a81767d7b746d83db2a0",
      "tree": "0930fe8cad73641687c679daffe501e0897fa792",
      "parents": [
        "1cd6515699e3803eec44e90880f9de2d227b14c4"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Aug 16 13:11:00 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Aug 16 11:16:05 2024 +0000"
      },
      "message": "AuthProxy: Fix multi arch image manifest\n\nChange-Id: I0ea6a03c2b30cf556bd8e5cf9587193126692bf5\n"
    },
    {
      "commit": "1cd6515699e3803eec44e90880f9de2d227b14c4",
      "tree": "934415c72d05eb2ec565dbcb2630c3b7e3507929",
      "parents": [
        "2ccb6e3deada87db0fddc82726662af084565e0b"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Aug 16 08:18:49 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Aug 16 09:15:54 2024 +0400"
      },
      "message": "AppManager: Run installation in background\n\nSeparates process into two sequential tasks: commit to config repo and\nmonitor release resources.\n\nChange-Id: Ib208839dffc475b5d9c5d21758bc2a18a7f76cb7\n"
    },
    {
      "commit": "2ccb6e3deada87db0fddc82726662af084565e0b",
      "tree": "68bca7fbe39660c8164d45ce3da26ff883281f0c",
      "parents": [
        "d28f83c53dbee2b81b3d08ed1d2f726962465a68"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 15 12:01:33 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 15 22:40:06 2024 +0400"
      },
      "message": "DodoApp: New app gets all internal users as read-write collaborators\n\nDisable SoftServe keyless and anon access\n\nChange-Id: I898a34a5dbd4c8ce049f834dd61a96a3abb1e603\n"
    },
    {
      "commit": "d28f83c53dbee2b81b3d08ed1d2f726962465a68",
      "tree": "4a8fefad34241856899eb791395fd55cc2abb5e0",
      "parents": [
        "780a0d0939c9f0ae8dd88c34dd331248a5b47e7b"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 15 10:53:40 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 15 21:08:50 2024 +0400"
      },
      "message": "IngressPublic: use Deployment with NodePort service\n\nSpread replicas on different hosts.\nNow PortAllocator allocates node ports as well.\n\nChange-Id: Ia16cb24673fc6c61185f21ab30fde8964157aa4c\n"
    },
    {
      "commit": "780a0d0939c9f0ae8dd88c34dd331248a5b47e7b",
      "tree": "3f226829a6082443487988b2cba1b720dc00c006",
      "parents": [
        "4aaa27b075d5e5c88fdd6f2b24f3a49ce36c2690"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Mon Aug 05 20:53:26 2024 +0400"
      },
      "committer": {
        "name": "dtabidze",
        "email": "dtabidze@v1.dodo.cloud",
        "time": "Wed Aug 07 12:57:14 2024 +0000"
      },
      "message": "Appmanager: implement functional search bar\n            reworked handlers for different app types\n\nChange-Id: I82d3c856aa5c583dcdcf83ed6fbaf440bc4c8f87\n"
    },
    {
      "commit": "4aaa27b075d5e5c88fdd6f2b24f3a49ce36c2690",
      "tree": "a5ffd7ef5451233a7cc9b254f74cb31e56348102",
      "parents": [
        "a5ea509104618a03da6b121ac84ced4534e56356"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Mon Aug 05 20:23:50 2024 +0400"
      },
      "committer": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Wed Aug 07 02:43:26 2024 +0400"
      },
      "message": "Dodo-app: fix sync user info bug\n          disable form after running app installation\n\nChange-Id: I28dec5f8a9ad1d586bc2d2cc56a6c1c66cf2fdbe\n"
    },
    {
      "commit": "a5ea509104618a03da6b121ac84ced4534e56356",
      "tree": "cc6adf387c5076a4b8e2f9b16566c79201332cd2",
      "parents": [
        "932849fc25499d0b2d12e4ac0bc01d3b32fda6ba"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Thu Aug 01 15:28:09 2024 +0400"
      },
      "committer": {
        "name": "dtabidze",
        "email": "dtabidze@v1.dodo.cloud",
        "time": "Fri Aug 02 07:58:55 2024 +0000"
      },
      "message": "DodoApp: Sync deleted users and keys\n\nChange-Id: Ib71fbdd142fd13fbaa4c24fb8971afe157a184b6\n"
    },
    {
      "commit": "932849fc25499d0b2d12e4ac0bc01d3b32fda6ba",
      "tree": "362ff0c5261ae7865422d4cd53e8560b4a908067",
      "parents": [
        "2728e40ac3b213dc98e7da6561e81031a972c12e"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Aug 02 09:01:48 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Aug 02 11:03:02 2024 +0400"
      },
      "message": "Coder: Helm chart and configuration\n\nChange-Id: I43515c289001bf1407aee1f9734151a261a7808a\n"
    },
    {
      "commit": "2728e40ac3b213dc98e7da6561e81031a972c12e",
      "tree": "2e3326a3b59d995213b366b948993b61c9adf5f5",
      "parents": [
        "4784f8e6ebd0266b24a808a5d7bd15251728df29"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 01 18:14:21 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 01 19:03:30 2024 +0400"
      },
      "message": "Welcome: Create new users via Memberships API\n\nChange-Id: Iaa12b3438340a5ca4c4fdb2157d1e8f064d56139\n"
    },
    {
      "commit": "4784f8e6ebd0266b24a808a5d7bd15251728df29",
      "tree": "83ff4e292e60bef9db56f72b0ec303d807c565bd",
      "parents": [
        "6c00db83a045aabecbde4e5f3cfff64e2dfc9836"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 01 15:20:12 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 01 15:31:32 2024 +0400"
      },
      "message": "Welcome: Log first account creations response\n\nChange-Id: I5796731b2fb5fe8c497bd0b46758a33126c90bf3\n"
    },
    {
      "commit": "6c00db83a045aabecbde4e5f3cfff64e2dfc9836",
      "tree": "635e151b055c361e47b551851bc459a1d56ab316",
      "parents": [
        "b79db3a8a158b4d47b2e9b5b0bf1dad4167cc90e"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 01 15:10:24 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 01 15:31:11 2024 +0400"
      },
      "message": "Welcome: fix `create Account` typo\n\nChange-Id: I0b5e94d230364bef2cb9e581729534f8766d4e8a\n"
    },
    {
      "commit": "b79db3a8a158b4d47b2e9b5b0bf1dad4167cc90e",
      "tree": "3543875eb99934525ed5fb4f940e7897447bca3b",
      "parents": [
        "69731e8920f963681e75895c3b25944f9c8a45e5"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 01 14:20:42 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 01 15:30:51 2024 +0400"
      },
      "message": "EnvManager: Fix infrastructure service wait addresses\n\nChange-Id: I525fd989ee249b725023c7f118a745fb60b4c957\n"
    },
    {
      "commit": "69731e8920f963681e75895c3b25944f9c8a45e5",
      "tree": "ed24097372f29ab60be7941e3ebeb1b2a0e531fd",
      "parents": [
        "8c942d28635a9b9da8b6b82b03e6255513dfdcd7"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 01 14:15:55 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 01 14:15:55 2024 +0400"
      },
      "message": "AppManager: Sync installations\n\nChange-Id: I942de06226e962be996a69f3522f3e510cacd252\n"
    },
    {
      "commit": "8c942d28635a9b9da8b6b82b03e6255513dfdcd7",
      "tree": "c88b2850bea803edc6b587dcb4e091eaa635516b",
      "parents": [
        "636d1304af28c9b3ef67760bf8f15d5332aa9835"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 17 13:43:02 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 01 13:30:40 2024 +0400"
      },
      "message": "Installer: Rightsize app icons\n\nChange-Id: Ie7045e66382554d26c443cc59f82e33910d7551e\n"
    },
    {
      "commit": "636d1304af28c9b3ef67760bf8f15d5332aa9835",
      "tree": "5a7b20d437e38bfe944881c8ccbd7e1e6701dd31",
      "parents": [
        "785d8bb21e11d881e2f83d5f296791f688f19321"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 01 09:17:28 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 01 11:09:40 2024 +0400"
      },
      "message": "Network: Update help document to list DNS records to publish\n\nChange-Id: I0ba46191b0ad7fee9c1caf5e52cadbd44c73dbf2\n"
    },
    {
      "commit": "785d8bb21e11d881e2f83d5f296791f688f19321",
      "tree": "a1bf175c15d9055a146dba01eae0306500454633",
      "parents": [
        "4699440871aae03580345c2658d8d31049d4ab00"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 31 17:47:07 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 01 11:09:23 2024 +0400"
      },
      "message": "EnvManager: Remove dependencies on ingress-private\n\nChange-Id: If9db88b0a5c589ceb791647977e3608282a81190\n"
    },
    {
      "commit": "4699440871aae03580345c2658d8d31049d4ab00",
      "tree": "bfef1cbf81d856018976f3b77326c5f12481034e",
      "parents": [
        "fdf3b9bd12d14bbe2d84b74647cb661cae9578f2"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 31 18:11:00 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Aug 01 11:09:07 2024 +0400"
      },
      "message": "Zot: Use OAuth2 for authorization\n\nChange-Id: I2569f4df3ad3eff4d94eaa5b67e1180915eceebc\n"
    },
    {
      "commit": "fdf3b9bd12d14bbe2d84b74647cb661cae9578f2",
      "tree": "50ae8f9c3253404ca30ff87168a64bdfd84e6f7e",
      "parents": [
        "cafd4e63ce3f39090699ef8ec608ddc71d62856a"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Tue Jul 30 21:01:08 2024 +0400"
      },
      "committer": {
        "name": "dtabidze",
        "email": "dtabidze@v1.dodo.cloud",
        "time": "Wed Jul 31 09:22:27 2024 +0000"
      },
      "message": "Welcome: Registration form UI rework\n\nChange-Id: Ic7fee1e3a58dd9f19c6801bc1afd93735d6f4d84\n"
    },
    {
      "commit": "cafd4e63ce3f39090699ef8ec608ddc71d62856a",
      "tree": "daa290416e753df724bb1e37f44144f8e6c00352",
      "parents": [
        "b54db2456380b3f4070d789a8bf1cb82b226dad9"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 31 10:53:40 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 31 11:37:08 2024 +0400"
      },
      "message": "DodoApp: Implement user synchronization API\n\nChange-Id: Id38c96f379832d2d5034e215de2e51d28a25634c\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": "7841f4fa84099fef36e426842a2239d72c74ba53",
      "tree": "297758546279a32ffcb747432bec2c6bb2039818",
      "parents": [
        "aec6d8a8403e0600da36cc02b74aaa35789e3655"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 26 19:53:49 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 31 09:56:47 2024 +0400"
      },
      "message": "Installer: Make Private network optional\n\nChange-Id: Ic7a2e5250a42dc03de2416b1e2a0d1bbca3f010c\n"
    },
    {
      "commit": "94904700fb6b32f65c9a5f6545a1f9e872d03953",
      "tree": "b80b8b0b312e698c48b0807856607e9c5052f57a",
      "parents": [
        "d8ab4f504f65006c97e09f8b7c0b32cfd19c6b2c"
      ],
      "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": "Tue Jul 30 11:03:32 2024 +0400"
      },
      "message": "DodoApp: Deploy Ingress resource for status page\n\nChange-Id: I0f102664d655d060d0ba37a63e3681816457f79b\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": "f867f2d005fb0a875af77bbc7246e2c620aecc4e",
      "tree": "d4635e5f36a6442a07381beb52f5c3fd833a63a3",
      "parents": [
        "75d57c3f090cf400b200fbb5b444392243b86464"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Wed Jul 24 18:06:25 2024 +0400"
      },
      "committer": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Fri Jul 26 13:44:26 2024 +0400"
      },
      "message": "Memberships: Filter all users by groups and transitive groups\n\nChange-Id: I9766501e19a058b958578476b8586883655e453f\n"
    },
    {
      "commit": "75d57c3f090cf400b200fbb5b444392243b86464",
      "tree": "f354ecd7a4ca1cc5f5fd6e0bb9c1752430ef99f7",
      "parents": [
        "a190594350f72ad8a1db1f54a6bde27155a024b8"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Fri Jul 19 19:17:55 2024 +0400"
      },
      "committer": {
        "name": "dtabidze",
        "email": "dtabidze@v1.dodo.cloud",
        "time": "Wed Jul 24 13:23:38 2024 +0000"
      },
      "message": "Memberships: API to add and retrieve user information\n             Create user\n             Add SSH key\n             Ping clients on mutations\n\nChange-Id: I02799b8b4bc88813afeb306cc122a7eaa4496c3c\n"
    },
    {
      "commit": "a190594350f72ad8a1db1f54a6bde27155a024b8",
      "tree": "c1a29111d2b48a9613fb349673fb7e97238bb4e6",
      "parents": [
        "950d804ed0e1ee129ec3c9a6d0ece6f6d97e611f"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 19 12:18:30 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 19 16:25:00 2024 +0000"
      },
      "message": "DodoApp: Use untrusted-external runtime class for app runner\n\nChange-Id: I6beab523e1688fc98c2b6a5b756f46a5fc89f3cb\n"
    },
    {
      "commit": "5f1a2c6c3faadd906fa9ba0e741db59f7a17efde",
      "tree": "7267a9ead7a597b81c73f943eca610aa12160fe5",
      "parents": [
        "bb338e28d554b9a56fd559b7fc1c7c0bdd1f71dd"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Wed Jul 17 17:57:27 2024 +0400"
      },
      "committer": {
        "name": "dtabidze",
        "email": "dtabidze@v1.dodo.cloud",
        "time": "Fri Jul 19 05:03:01 2024 +0000"
      },
      "message": "Membership: UI Rework\n\nChange-Id: I8d1da12fd764972dc810846afd70760bdb450fe8\n"
    },
    {
      "commit": "bb338e28d554b9a56fd559b7fc1c7c0bdd1f71dd",
      "tree": "6897b8864752640424b2dce6edd231cf96ebe320",
      "parents": [
        "a5ad678bc3a4b73a1d4e670ee7115936bac8d3b4"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 18 18:09:22 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 18 15:02:50 2024 +0000"
      },
      "message": "Installer: Use dropdown for network selection\n\nChange-Id: If50b8a585c55831cf3eee1172571d4dd5a098f4d\n"
    },
    {
      "commit": "a5ad678bc3a4b73a1d4e670ee7115936bac8d3b4",
      "tree": "d3a2d6ae47a0bb3c56e7ba4860f2a39f4580e0a2",
      "parents": [
        "4ece99cc103001305d5e69fc83784e44629f5917"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 18 17:04:29 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 18 14:10:25 2024 +0000"
      },
      "message": "AppManager: Make app header white\n\nChange-Id: I31e93d56cfd61122d69478ae9fbbcff3854ef9c4\n"
    },
    {
      "commit": "4ece99cc103001305d5e69fc83784e44629f5917",
      "tree": "64325b003697d47d4b1cafc9c95d7107a530279c",
      "parents": [
        "11617ac140a250505e177fa0e375fdcd411efe08"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 18 11:05:50 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 18 14:10:19 2024 +0000"
      },
      "message": "Installer: Implement multi network selector\n\nChange-Id: I52227a0f0e964ac48cb378ead077fad941c3315c\n"
    },
    {
      "commit": "11617ac140a250505e177fa0e375fdcd411efe08",
      "tree": "19f5bd8985efd7e926b6439f8b13994236c2b4cf",
      "parents": [
        "1e5682b8f719589494b23b9805590ffeb9ff5e3f"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 15 16:09:04 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 18 14:10:04 2024 +0000"
      },
      "message": "DodoApp: Restrict users to one domain\n\nChange-Id: I4d09d5ee61d0ec712fd9dfa848c0af0c8e550d68\n"
    },
    {
      "commit": "1e5682b8f719589494b23b9805590ffeb9ff5e3f",
      "tree": "8a5fed4ebe51aff29b391622aa5a9242aae1fe68",
      "parents": [
        "42a6b8d140c5a5471390138ab61b49a52230fea1"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 18 17:01:26 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 18 17:01:26 2024 +0400"
      },
      "message": "Memberships: Use nonroot base image\n\nChange-Id: I8ce754b62f283088a979636cf7ed441c5f5fcfac\n"
    },
    {
      "commit": "42a6b8d140c5a5471390138ab61b49a52230fea1",
      "tree": "8f27a6ad97a75b8f0c6d0822b65ec1ac84eb7a4a",
      "parents": [
        "3a5baedcf997f5032bd717029d1562f2aebd4473"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Tue Jul 16 19:56:50 2024 +0400"
      },
      "committer": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Wed Jul 17 15:39:34 2024 +0400"
      },
      "message": "UIFixes: Minor Appmanager and Launcher UI fixes\n\nChange-Id: I1eabedd0191e6ae03cd6dcd945d569a93956a5d2\n"
    },
    {
      "commit": "3a5baedcf997f5032bd717029d1562f2aebd4473",
      "tree": "b0ccd176c8515f4834bb4f0ecd98370d1bcbd74e",
      "parents": [
        "d1b742eb21597f04eb8e86bd8b79b1214fa1fb62"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 16 15:39:31 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 16 13:49:08 2024 +0000"
      },
      "message": "DodoApp: Make cluster role name unique\n\nChange-Id: Ia10a79bf00769f70ef977d5c0a468c97ca8e717a\n"
    },
    {
      "commit": "d1b742eb21597f04eb8e86bd8b79b1214fa1fb62",
      "tree": "c34312811cc805671b317628c701b2ba98d01706",
      "parents": [
        "b1c4e5468ba93e2c0c98a2d37b69dcce290f7558"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Mon Jul 15 16:01:52 2024 +0400"
      },
      "committer": {
        "name": "dtabidze",
        "email": "dtabidze@v1.dodo.cloud",
        "time": "Tue Jul 16 13:47:04 2024 +0000"
      },
      "message": "Appmanager: UI Rework\n\nChange-Id: I2f809f96e274adac7df9f63d44b0a794bfa3a0dc\n"
    },
    {
      "commit": "b1c4e5468ba93e2c0c98a2d37b69dcce290f7558",
      "tree": "cd04b9f46199d3689d086620665b66d1e9b774de",
      "parents": [
        "4eb2efe327311901547f77472219b9636b1484ad"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 15 12:10:52 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 15 09:24:22 2024 +0000"
      },
      "message": "PortAllocator: Base64 encode secrets\n\nRandom list of bytes does not transmit well over JSON\n\nChange-Id: I3f0a68fed668e91960ef68ca02d87f61f8de154c\n"
    },
    {
      "commit": "c6c663f413fc3cb6645a8b83923a136e2538bb39",
      "tree": "aa5f43c4dab35ed652dd4b8653c6e5f5151c0212",
      "parents": [
        "96335831a6d352fdbcf5c20da16bd7859bdf56df"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Fri Jul 12 17:35:40 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 12 16:19:59 2024 +0000"
      },
      "message": "Login: UI rework\n\nChange-Id: I9646272476c097c7a90b170fc35a38ec58a86020\n"
    },
    {
      "commit": "23bdc1bf054f81d3760c8a04a37501011138d4bc",
      "tree": "0505647260ce9c0f9ad6d7e34be0bb52f4e53d68",
      "parents": [
        "38df35d4a95c71be4204836d95d403ace8e450a3"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 11 16:07:47 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 12 17:55:13 2024 +0400"
      },
      "message": "DodoApp: Filter domains\n\nChange-Id: I475f6b6c9d00ccc0214c54f22c6c8fd428cd996d\n"
    },
    {
      "commit": "38df35d4a95c71be4204836d95d403ace8e450a3",
      "tree": "23456248387010eee23befc08db0a3f00e0a59fa",
      "parents": [
        "7302c979635db8e76463d70167dc723a11d2bc2a",
        "520c6229eb24377b16957a5f98439bbb4b430631"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 12 10:59:34 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "gerrit@v1.dodo.cloud",
        "time": "Fri Jul 12 10:59:34 2024 +0000"
      },
      "message": "Merge \"Installer: Give unique names to OAuth2 clients\" into main"
    },
    {
      "commit": "7302c979635db8e76463d70167dc723a11d2bc2a",
      "tree": "b3c087433bebdc73b1c2cbe921a5b9b91426658a",
      "parents": [
        "9ca4926565efe3be10af21a99f5e0272b4df511b",
        "cb34ad27802be5d8d94cbec7a7c82242edf9ed9b"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 12 10:59:20 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "gerrit@v1.dodo.cloud",
        "time": "Fri Jul 12 10:59:20 2024 +0000"
      },
      "message": "Merge \"Installer: Handle custom networks/domains\" into main"
    },
    {
      "commit": "9ca4926565efe3be10af21a99f5e0272b4df511b",
      "tree": "e7fa5049aa4643863eadd4eee4267492c181fbfd",
      "parents": [
        "81246f000e61fa3d1282870cab9bb04170c633f2"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Wed Jul 10 15:51:27 2024 +0400"
      },
      "committer": {
        "name": "dtabidze",
        "email": "dtabidze@v1.dodo.cloud",
        "time": "Fri Jul 12 10:53:22 2024 +0000"
      },
      "message": "Launcher: UI rework\n\nFixed help modal header margins for title and close button. Help menu titles now have same padding from both sides. Scroll fixed in chrome. Problem in Safari.\n\nChange-Id: I2987ea93379e385125e81ec37b9f0bb61a6d7797\n"
    },
    {
      "commit": "520c6229eb24377b16957a5f98439bbb4b430631",
      "tree": "eeb57a99c418166cd49c177286ca5f6b100dd2c6",
      "parents": [
        "a60f0decc365f877d7b88d099a65e0b686db78e9"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 11 17:34:40 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 11 17:34:40 2024 +0400"
      },
      "message": "Installer: Give unique names to OAuth2 clients\n\nChange-Id: I218f8f8655f7662bfcd41cddaa17f3e11fcfe910\n"
    },
    {
      "commit": "cb34ad27802be5d8d94cbec7a7c82242edf9ed9b",
      "tree": "faa9d548dd3ea7dcb3888784fa343fee2f0a9e09",
      "parents": [
        "81246f000e61fa3d1282870cab9bb04170c633f2"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 11 08:01:13 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jul 11 15:10:45 2024 +0400"
      },
      "message": "Installer: Handle custom networks/domains\n\nChange-Id: Id88e82a0757365466d92fb31223e21b7199ef940\n"
    },
    {
      "commit": "81246f000e61fa3d1282870cab9bb04170c633f2",
      "tree": "147ef0a6df8c5ab609757cd151cf688daacfea47",
      "parents": [
        "a60f0decc365f877d7b88d099a65e0b686db78e9"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 10 12:02:15 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jul 10 13:57:34 2024 +0400"
      },
      "message": "DodoApp: Implement internal auth\n\nFollow up change will make internal auth optional, and let user\nconfigure dodo-app to use environment wise auth service.\n\nChange-Id: Ie308b30becd4390f3d9a07caf6f894b8bd4ebf3a\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": "9d66f32f5a557d3e3d04570c414bca488a0b289a",
      "tree": "2cd5493f0e0dcb115add533b0269f7e9dced9bdf",
      "parents": [
        "33059767fa0c051f624bbeb492906566218dd3f7"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Jul 06 13:45:10 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 09 12:13:18 2024 +0000"
      },
      "message": "DodoApp: Persist app namespaces in the config repository\n\nChange-Id: I6bb6231ff63a4cfa8b66aa75c3d4cc1d9985d389\n"
    },
    {
      "commit": "33059767fa0c051f624bbeb492906566218dd3f7",
      "tree": "3d22e4f08d88e4b3a41abfbf43f0815e1982c208",
      "parents": [
        "4b50c8ff7ed54c09288ce9164aab40b497be3a13"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jul 05 13:19:07 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 09 12:13:09 2024 +0000"
      },
      "message": "DodoApp: API to create new app\n\nChange-Id: I20d73ef17cc03073c913fceb4f3bed7a26754cea\n"
    },
    {
      "commit": "caaae915ff79234bf49dcf2dd7f8b9b1993ec986",
      "tree": "3c01133f37fa0dc2b36fa16f8cfefae37dc5f157",
      "parents": [
        "266c04fe17fb79285f09777b268310b039343a69"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 09 15:41:40 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 09 15:41:40 2024 +0400"
      },
      "message": "Gerrit: Fix container image version\n\nChange-Id: Ifbd1e2f31300487c0d1403ac1e3cb86e43ada5b7\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"
    },
    {
      "commit": "1364e437bf921780052f27d49f51682ffd1811f0",
      "tree": "18d96f57728f02d66f5edae29d4d1a32996cd5df",
      "parents": [
        "01cf5cbd1b3e86d325d3a487f2e45862ba04b167"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sat Jun 29 11:39:18 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 02 13:40:18 2024 +0400"
      },
      "message": "DodoApp: Support volume requests\n\nUsers can define volumes section under app, and for each volume\ncorresponding env variable will be passed down to the application.\n\nChange-Id: I8da9d5e1ca652cdb2f0196fcba1b6242064d057f\n"
    },
    {
      "commit": "01cf5cbd1b3e86d325d3a487f2e45862ba04b167",
      "tree": "1854e19ce09738bf0478dd814a0c400570384df5",
      "parents": [
        "f71a0833ebf1048bd9be24c70ae24caca50b9ad5"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jun 28 00:18:18 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jul 01 11:43:57 2024 +0000"
      },
      "message": "Installer: Simplify volume usage API\n\nChange-Id: I4a7189af9194c70a6c5aac96d39618a6827965bd\n"
    },
    {
      "commit": "f71a0833ebf1048bd9be24c70ae24caca50b9ad5",
      "tree": "3b30f94fa0a596e14893650b9c58286f0fa31c40",
      "parents": [
        "70be3e560f7559ac03969b77e604b083943543de"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 27 14:45:45 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 27 15:24:03 2024 +0400"
      },
      "message": "DodoApp: Commit Helm charts to dodo branch\n\nChange-Id: I98c528b37b2e3cb1765944792e4057e3ccbee4c9\n"
    },
    {
      "commit": "70be3e560f7559ac03969b77e604b083943543de",
      "tree": "2f6098da6447df6f80c16fa6b7cd4e5608cba430",
      "parents": [
        "fc9c4ea62d0274d3ab5e0ba54a3bc1b321e90a4d"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 26 18:27:19 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 26 18:27:19 2024 +0400"
      },
      "message": "DodoApp: Implement API to add new admin public key\n\nChange-Id: Ieb411a932bfa87900c27591f372c8f4b91d7c2e3\n"
    },
    {
      "commit": "fc9c4ea62d0274d3ab5e0ba54a3bc1b321e90a4d",
      "tree": "29d4f6456db21551bca475bca937c05d6b82c215",
      "parents": [
        "5f31c7821200acfe8d3e02a20b77da5eb41586b3"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 26 13:46:53 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 26 14:41:55 2024 +0400"
      },
      "message": "Hugo: Disable watch and auto port append to URLs. Configure baseURL\n\nChange-Id: Iaf3326782d503d412efc25277fa4224329b44000\n"
    },
    {
      "commit": "5f31c7821200acfe8d3e02a20b77da5eb41586b3",
      "tree": "0aea2d2c34a9f8016c5d0c7b94f4129485a6637c",
      "parents": [
        "caa365a70bea0d971b8733f47eacb635024a8e5f"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 26 11:25:12 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 26 11:26:19 2024 +0400"
      },
      "message": "Cleanup: Delete unused services, move some things into archive\n\nChange-Id: Ie5bc61d48101e7f39cc82a29025cdd8920f35e70\n"
    },
    {
      "commit": "caa365a70bea0d971b8733f47eacb635024a8e5f",
      "tree": "a67c33c1c23baa902094fcaef66c13cecf926729",
      "parents": [
        "1752a176b8ec249ce8a89985e8d73f14054d0a5d"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jun 25 14:24:28 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jun 25 14:24:28 2024 +0400"
      },
      "message": "DodoApp: Display Git server public key in the help document\n\nChange-Id: I95de1202ffe4d81ed00d8f9abe991b7b80f458b6\n"
    },
    {
      "commit": "1752a176b8ec249ce8a89985e8d73f14054d0a5d",
      "tree": "a1de12cdae786a70f1b148186f095af0fe65b9a9",
      "parents": [
        "f5ffedb5f8b7d2039ded283c700edf39b13d94b9"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 19 15:18:19 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 19 16:03:14 2024 +0400"
      },
      "message": "Launcher: implement copy to clipboard\n\nChange-Id: Idbcf5d1bfe574005d5abb60e519eac3ede6aec52\n"
    },
    {
      "commit": "f5ffedb5f8b7d2039ded283c700edf39b13d94b9",
      "tree": "0d535630140821afe63a0491f7055e04c5b437ae",
      "parents": [
        "d538576ca8e62e123e6b1949d93b0cc96742670d"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 19 14:14:43 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 19 15:03:29 2024 +0400"
      },
      "message": "DodoApp: clone with submodules\n\nChange-Id: I82d53cb91e9629cc7735f92608d9b0ddaef9b913\n"
    },
    {
      "commit": "d538576ca8e62e123e6b1949d93b0cc96742670d",
      "tree": "ac07d33c481a59dde4bc37484db0f6cc3aaee982",
      "parents": [
        "03fd0c77f1e52b38f42f4fbe2ad33fbb92d71485",
        "5bea96a2930142d84b0a468de4ec8af166f1d6f1"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 19 09:20:53 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "gerrit@v1.dodo.cloud",
        "time": "Wed Jun 19 09:20:53 2024 +0000"
      },
      "message": "Merge \"PortAllocator: Check if generated port is not already in use or reserved\" into main"
    },
    {
      "commit": "5bea96a2930142d84b0a468de4ec8af166f1d6f1",
      "tree": "afddb7d085ccd19d74eb7fc6c9914f6d9a673b6e",
      "parents": [
        "73fea41e3b45eb6a72c1d29098c854319e923424"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Mon Jun 17 21:25:29 2024 +0400"
      },
      "committer": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Wed Jun 19 12:21:32 2024 +0400"
      },
      "message": "PortAllocator: Check if generated port is not already in use or reserved\n\nChange-Id: Ic152e5265fe06b62d8e4e94e8212b02eb42025dd\n"
    },
    {
      "commit": "03fd0c77f1e52b38f42f4fbe2ad33fbb92d71485",
      "tree": "fc855f7e155d9751a4f2d786ef62c567db70ff48",
      "parents": [
        "73fea41e3b45eb6a72c1d29098c854319e923424"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jun 18 12:31:42 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jun 18 12:31:42 2024 +0400"
      },
      "message": "DodoApp: support Hugo static websites\n\nChange-Id: Ie01f12443e81f3bfc9f7500d443a0399a1fe01ef\n"
    },
    {
      "commit": "6bf29836bf103c43dff2dd78aeb63b016da3ca51",
      "tree": "d0c525c307cce17ed12f6edf29ec5b66742e6726",
      "parents": [
        "cdfa372736902dadab00148e11a0d0e3ef2e25b2"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Mon Jun 17 16:51:54 2024 +0400"
      },
      "committer": {
        "name": "dtabidze",
        "email": "dtabidze@v1.dodo.cloud",
        "time": "Mon Jun 17 14:26:11 2024 +0000"
      },
      "message": "PortAllocator: Generate crypto random string as secret\n\nChange-Id: Icbeaa14e39c19507107444d1a358287819525696\n"
    },
    {
      "commit": "cdfa372736902dadab00148e11a0d0e3ef2e25b2",
      "tree": "c16e3da042c9a603680fada36b61094f74f81a1a",
      "parents": [
        "bd7ab0be99524208ed4cf49b9af49dc174e5ae61"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 13 20:10:14 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jun 17 13:25:38 2024 +0400"
      },
      "message": "Installer: deallocate ports upon app uninstall\n\nChange-Id: I19298537fed02de03a9e74fa351cf23f733de699\n"
    },
    {
      "commit": "bd7ab0be99524208ed4cf49b9af49dc174e5ae61",
      "tree": "877276ad121c059488264d16336e199d18c7cdd9",
      "parents": [
        "3e67ce121286e5c45b138e25d583802b36bfdb21"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jun 17 12:55:17 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jun 17 12:56:02 2024 +0400"
      },
      "message": "Installer: fix they way secret is sent to the port allocator\n\nChange-Id: I483f0560be289b4bcf80cc2d344d497693b1357e\n"
    },
    {
      "commit": "3e67ce121286e5c45b138e25d583802b36bfdb21",
      "tree": "d81182c67fc8460dbe5f3dd28c73abf44944fa30",
      "parents": [
        "efa0ed4866fc7b67652a52c1c29142542be55049"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 13 19:47:19 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 13 19:47:19 2024 +0400"
      },
      "message": "Installer: auto generate target service namespace in port forwards\n\nChange-Id: Id7e0dcdd750034375c796881e86b1f3eb53e9299\n"
    },
    {
      "commit": "efa0ed4866fc7b67652a52c1c29142542be55049",
      "tree": "1fea1aa9928dc0ef30abc31f1c7eadca43da2ead",
      "parents": [
        "f9f0beec8492e05a459bd7080ad095b4cf9292bc"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 13 12:31:43 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 13 18:59:36 2024 +0400"
      },
      "message": "Installer: dynamically generate open port requests\n\nApp config can mark any of the input (int) fields as having a role.\nFor such fields installer first will make port reservation request to\nPort Allocator, which will dynamically allocate and reserve one of the\navailable ports for the application. Once application is committed to\nconfig repository, installer makes another request to port allocator\nto actually open dynamically reserved port in the ingress service.\n\nAdded port reservation logic to Port Allocator. Reservation lasts 30\nminutes.\n\nChange-Id: Ic8caa0d04459b1a6e8a351e2ca6964ac15c7253d\n"
    }
  ],
  "next": "f9f0beec8492e05a459bd7080ad095b4cf9292bc"
}
