)]}'
{
  "log": [
    {
      "commit": "4b50c8ff7ed54c09288ce9164aab40b497be3a13",
      "tree": "cce9f964bb36c2e8cadf403eb2a74cfb9193d08c",
      "parents": [
        "caaae915ff79234bf49dcf2dd7f8b9b1993ec986"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 09 15:54:41 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jul 09 12:11:18 2024 +0000"
      },
      "message": "Jenkins: Upgrade configuration-as-code plugin version\n\nGit plugin depends on 1810 while by default we used to use 1775\n\nChange-Id: I10662ce723a19621a9400f531543fae5ebb7440c\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": "73fea41e3b45eb6a72c1d29098c854319e923424",
      "tree": "cb1da7bbce4914c13ad6aa5de9388c55860eb0e2",
      "parents": [
        "6bf29836bf103c43dff2dd78aeb63b016da3ca51"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jun 17 19:26:30 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jun 17 19:26:30 2024 +0400"
      },
      "message": "Landing: design mock\n\nChange-Id: Ib0b3458b39f6942b04b614e662ce40dccd5a14f8\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"
    },
    {
      "commit": "f9f0beec8492e05a459bd7080ad095b4cf9292bc",
      "tree": "61f8cb3afbd01bdecaf04d3d2005f31c09adc914",
      "parents": [
        "56bcf2524a384c66ffe99d5172054c12e51c2ee1"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jun 11 20:10:05 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 13 13:57:38 2024 +0400"
      },
      "message": "AppManager: improve installation status page\n\n* Status is refreshed in the background\n* Render release item infos instead of internal names\n\nChange-Id: I63a6082656e4e6772a4b5c734c5dd5c23141f70b\n"
    },
    {
      "commit": "56bcf2524a384c66ffe99d5172054c12e51c2ee1",
      "tree": "26429585a0a3eb824feb08f0a3409b4621de303a",
      "parents": [
        "f88434168174a99f76853e509877475c7ffde893"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Wed Jun 12 19:00:45 2024 +0400"
      },
      "committer": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Thu Jun 13 13:27:43 2024 +0400"
      },
      "message": "AppManager: Fix instance menu scrollbar occurrence during installation\n\nChange-Id: I1c34fd202694d02fb57c438202624b3415bc52eb\n"
    },
    {
      "commit": "f88434168174a99f76853e509877475c7ffde893",
      "tree": "2fc1c2a35444462db55f09c3570bd22ec5b5c482",
      "parents": [
        "6ec78549d803828a27b62878dfc40567913db195"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 22 16:38:05 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 12 16:41:40 2024 +0400"
      },
      "message": "AppManager: cache helm charts and container images to local registry\n\nCaching container images is disabled until we figure out how to run\ncontainer registry behind TLS.\n\nChange-Id: I0253f2a862e5adddff18a82b102f67258151c070\n"
    },
    {
      "commit": "6ec78549d803828a27b62878dfc40567913db195",
      "tree": "523d7acf7492ce5d41bb8ff65ea74f5a419dddcc",
      "parents": [
        "00077272977bee6d24c1dcedeebc19ebde23b6af"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 12 11:21:18 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 12 11:21:18 2024 +0400"
      },
      "message": "HeadscaleAPI: replace Echo server with Gorilla Mux\n\nChange-Id: Ie1109cb0a981844c91dd0948592dccf0090c1961\n"
    },
    {
      "commit": "00077272977bee6d24c1dcedeebc19ebde23b6af",
      "tree": "5c290bf986edbe097a87a87ca3d40304633d10a0",
      "parents": [
        "563b6ad8b349c38fc53ed3d954a2352a2d80118c"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Tue Jun 11 20:19:36 2024 +0400"
      },
      "committer": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Tue Jun 11 23:25:58 2024 +0400"
      },
      "message": "Launcher: Separate iFrame for each app, toggle invisibility between clicks\n\nChange-Id: I540c04ea9f67c27624d69664a3b5a3057734268f\n"
    },
    {
      "commit": "563b6ad8b349c38fc53ed3d954a2352a2d80118c",
      "tree": "2c402069698c85b35ed33b9efb4cefa6c8cefc91",
      "parents": [
        "ab352addbe5f4657110e79066f8471bf6682de8c"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Tue Jun 11 13:38:56 2024 +0400"
      },
      "committer": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Tue Jun 11 17:19:42 2024 +0400"
      },
      "message": "Launcher: Shorten long url inside app instance tooltip\n\nChange-Id: If80b8a4a519745101056e34c3535543a6c8a78d2\n"
    },
    {
      "commit": "ab352addbe5f4657110e79066f8471bf6682de8c",
      "tree": "fd36fcf2895c881af4b55cf30b748cdae2abc4a7",
      "parents": [
        "09f8efa82798bd93041e029612bbb223f474ad22",
        "7304dab99f6bc262a1b77b73401f782fe3134ea3"
      ],
      "author": {
        "name": "dtabidze",
        "email": "dtabidze@v1.dodo.cloud",
        "time": "Tue Jun 11 09:05:36 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "gerrit@v1.dodo.cloud",
        "time": "Tue Jun 11 09:05:36 2024 +0000"
      },
      "message": "Merge \"Launcher: Added logout url\" into main"
    },
    {
      "commit": "7304dab99f6bc262a1b77b73401f782fe3134ea3",
      "tree": "bec4c100e7185318cde1df64aacec71e79971119",
      "parents": [
        "e25ce1c3c72fc5a8f319d54bb0edcf3e2326e912"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Mon Jun 10 21:34:00 2024 +0400"
      },
      "committer": {
        "name": "dtabidze",
        "email": "dtabidze@v1.dodo.cloud",
        "time": "Mon Jun 10 19:10:46 2024 +0000"
      },
      "message": "Launcher: Added logout url\n\nChange-Id: I321d8e7feb7054b369bee0210200c77dc24fbe08\n"
    },
    {
      "commit": "09f8efa82798bd93041e029612bbb223f474ad22",
      "tree": "58a0316a961d7ca3ee65d9acd865ef884dfd4746",
      "parents": [
        "aa0fcdb54e7ff372899e6234405505abe6da96b7"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jun 10 22:35:24 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jun 10 22:35:52 2024 +0400"
      },
      "message": "Installer: Add Cache-Control header to static assets\n\nThis fixes UX where Launcher iframe blanks when navigating in the app\n\nChange-Id: I2966ef383c77d2986b6892f3828581b7785e90b0\n"
    },
    {
      "commit": "aa0fcdb54e7ff372899e6234405505abe6da96b7",
      "tree": "59b3e3cf279d9d938fd9b7ae5e3eaf85f7307696",
      "parents": [
        "e25ce1c3c72fc5a8f319d54bb0edcf3e2326e912"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jun 10 22:19:25 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Jun 10 22:19:25 2024 +0400"
      },
      "message": "AppManager: replace Echo server with Gorilla Mux\n\nChange-Id: I4f238b18d87e767f63930aae1ff13e0ee7937466\n"
    },
    {
      "commit": "e25ce1c3c72fc5a8f319d54bb0edcf3e2326e912",
      "tree": "ce2b7d867928d51d28887249eb220ce7c8380861",
      "parents": [
        "014c6962ad35d03b6bdc5b9e60a05e358e22dedb"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Mon Jun 10 14:36:21 2024 +0400"
      },
      "committer": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Mon Jun 10 20:59:48 2024 +0400"
      },
      "message": "Appmanager: instance tooltip\n\nChange-Id: I86084b24e1c839e8a87f178764409bd91deb216c\n"
    },
    {
      "commit": "014c6962ad35d03b6bdc5b9e60a05e358e22dedb",
      "tree": "462409f4c4cb4fd87c7b7b835c3f582a27f32be7",
      "parents": [
        "3ec24cf660ee0d441d2680b6b8f6cf6d0db721db"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Fri Jun 07 18:37:04 2024 +0400"
      },
      "committer": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Mon Jun 10 14:33:18 2024 +0400"
      },
      "message": "Appmanager: menu scrolling fix\n\nChange-Id: I62762dd1bfb4a9be6eec0279e6e18d04990fb4ec\n"
    },
    {
      "commit": "3ec24cf660ee0d441d2680b6b8f6cf6d0db721db",
      "tree": "9147ec1a50c67459d0615fd4c4fbeebb38629b9a",
      "parents": [
        "0eaf271490f399be8591a522ebfceee80d41003f"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Wed May 22 14:06:02 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Jun 07 15:24:17 2024 +0400"
      },
      "message": "Appmanager: Rework of UI\n\nChange-Id: I044373c38c167cb5931aa801af00ce4afea201ef\n"
    },
    {
      "commit": "0eaf271490f399be8591a522ebfceee80d41003f",
      "tree": "c1688dbde8537313a845ce8f8533e12474ed2067",
      "parents": [
        "d9c398e445a5eff15e89929dbb111b64eaf8244b"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Sun Apr 14 13:08:46 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 06 13:59:18 2024 +0400"
      },
      "message": "Dodo APP: infrastructure to deploy app by pusing to Git repo\n\nChange-Id: I4034c6893255581b014ddb207c844261cb34202b\n"
    },
    {
      "commit": "d9c398e445a5eff15e89929dbb111b64eaf8244b",
      "tree": "4996fd473c5631bee0c70de97495c19e94570458",
      "parents": [
        "dc98688660adbf7ee47728a467f83c5f40a488e8"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 06 13:33:03 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Jun 06 13:59:06 2024 +0400"
      },
      "message": "EnvManager: fix race condition in test\n\nRefactor EnvManager so it takes TaskManager as an input.\nThis way clients can interject created tasks and install listeners.\n\nChange-Id: Ief332060aea9e98587b43d04d68a4640717d18cd\n"
    },
    {
      "commit": "dc98688660adbf7ee47728a467f83c5f40a488e8",
      "tree": "e4ecc23a5b7cf9d00b0e5316a710468b5f52e1fe",
      "parents": [
        "d4affa00ef463294eae410e6a50fd54e9fc70c6f"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 05 17:10:39 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed Jun 05 17:10:39 2024 +0400"
      },
      "message": "Launcher: fix issue with help modal close button not working\n\nChange-Id: I695b7116df42156a48825880ad50314490cc4d9a\n"
    },
    {
      "commit": "d4affa00ef463294eae410e6a50fd54e9fc70c6f",
      "tree": "1e8c5a11e69ef539d09c558d69fdbb9310c052d1",
      "parents": [
        "4e3e9982097a9b8fb08cd20b0d5257b6cc48ff66"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jun 04 18:29:33 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Jun 04 18:29:33 2024 +0400"
      },
      "message": "Launcher: distinguish dock icons by their instance ids\n\nChange-Id: Ie11930082454b44292ddb904fa08350d16f4ac05\n"
    },
    {
      "commit": "4e3e9982097a9b8fb08cd20b0d5257b6cc48ff66",
      "tree": "879308d94fd874ad05373ba30c2f2ee612127bc8",
      "parents": [
        "1a20cbd1ae368709a4e79db328c5f442f59516ad"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 20 13:09:45 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 29 13:14:32 2024 +0400"
      },
      "message": "SoftServe: improve help documentation\n\nChange-Id: I6a1273b818850f4729be58f7560f6a0490e5340f\n"
    },
    {
      "commit": "1a20cbd1ae368709a4e79db328c5f442f59516ad",
      "tree": "ee6d24f0fe18116d13ebb4c70907a1d6ceb72178",
      "parents": [
        "1591fa75daa568ff87fb7d4f82a2ed744019ab4a"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun May 26 16:32:41 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun May 26 16:32:41 2024 +0400"
      },
      "message": "Headscale: fix headscale URL\n\nChange-Id: Ie714cea8ec9c4091f0ba806e8dcba7b191df9a66\n"
    },
    {
      "commit": "1591fa75daa568ff87fb7d4f82a2ed744019ab4a",
      "tree": "7673eb96208c4a05e9684f353f99bdf1b482c09b",
      "parents": [
        "96718469e90b5c234778bb41d36c3fbfeb4abe4a"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 24 18:01:58 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri May 24 18:01:58 2024 +0400"
      },
      "message": "EnvManager: auto refresh status page despite errors\n\nChange-Id: I2f148d6152a58176ad84e8d1a941e15460fcbdaa\n"
    },
    {
      "commit": "96718469e90b5c234778bb41d36c3fbfeb4abe4a",
      "tree": "d80216ab470315e9e8e7913e3845bea353b909ea",
      "parents": [
        "90606b60dcd9189fd9b1eb476396c2b40606c096"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Wed May 22 14:06:02 2024 +0400"
      },
      "committer": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Wed May 22 14:45:09 2024 +0400"
      },
      "message": "Launcher: groupe same app instances. added url inside tooltip.\n\nChange-Id: Ib2f6ed3507ceae4c85aad024e62cab4bd460ee25\n"
    },
    {
      "commit": "90606b60dcd9189fd9b1eb476396c2b40606c096",
      "tree": "de8cc0293c05e43337eeec0cbc1fcfa26f2e19be",
      "parents": [
        "cf6c714933f80ef878e133ddfd9a383e63605c04"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 21 14:45:51 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 21 14:45:51 2024 +0400"
      },
      "message": "Launcher: only render Help button when help documents actually exist\n\nChange-Id: If288e8bf40425d421a43ee4dd0e84136e44ddf9a\n"
    },
    {
      "commit": "cf6c714933f80ef878e133ddfd9a383e63605c04",
      "tree": "bb512d852e8495506b2982e1904ae958d55bfedc",
      "parents": [
        "92d8686d55508d86a7bed162109f27bcb1b995f5"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 21 13:26:42 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 21 13:26:42 2024 +0400"
      },
      "message": "Launcher: open help modal when clicking on app icon without url\n\nChange-Id: Iaa4ccbc60652fd2046173244a80c3f98ba49019c\n"
    },
    {
      "commit": "92d8686d55508d86a7bed162109f27bcb1b995f5",
      "tree": "4812c946be5e5ab0b6787a2d83b33d07ee1769aa",
      "parents": [
        "106b0245068e2f63604b9b8571bcf9dd50a2dc37"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 21 12:51:31 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 21 12:51:31 2024 +0400"
      },
      "message": "Launcher: close help modal on Escape and click outside of modal\n\nChange-Id: I0a260d7f184e8826e25aee753eb06d5ee861e47d\n"
    },
    {
      "commit": "106b0245068e2f63604b9b8571bcf9dd50a2dc37",
      "tree": "fe1284e73d55ea07be067370de31e56df2cce69e",
      "parents": [
        "be7b72405ad68b899449e43a084649496e888583"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 21 12:17:03 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue May 21 12:17:03 2024 +0400"
      },
      "message": "Launcher: style help content menu\n\nChange-Id: I5bd5d6f7663cc2a3f47a0329428f00f6343b597c\n"
    },
    {
      "commit": "be7b72405ad68b899449e43a084649496e888583",
      "tree": "52df1995c0d4431de25a06da2a663c814db3a9a2",
      "parents": [
        "18d5c689281452f2c9032422c2844b4a9e7cfc5a"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 20 18:13:55 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon May 20 18:13:55 2024 +0400"
      },
      "message": "launcher: automatically display first help document\n\nChange-Id: I0f887d5b9303876f6fbab4c96e935dbd58ff5936\n"
    },
    {
      "commit": "18d5c689281452f2c9032422c2844b4a9e7cfc5a",
      "tree": "9ae3bc224b80ed057a5bb94307b7eb04c24a6391",
      "parents": [
        "ff2a29a86863902564baa28eb497df2cd6491927"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 02 10:30:57 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu May 02 12:49:43 2024 +0400"
      },
      "message": "Open up for super early adopters.\n\nChange-Id: I1009d2b3d276bad93c1f017cda23ae062fe88860\n"
    },
    {
      "commit": "ff2a29a86863902564baa28eb497df2cd6491927",
      "tree": "c2b770f0ef6f680d80652f07f7dee1d84b7d9a09",
      "parents": [
        "c23530e378a525feddf0075a41889c151fae5f62"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 01 17:06:42 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 01 17:52:26 2024 +0400"
      },
      "message": "Soft-Serve: ingress with port-forward\n\nChange-Id: I44dcef24276a86902ad5fa7df2de24cc813b37a9\n"
    },
    {
      "commit": "c23530e378a525feddf0075a41889c151fae5f62",
      "tree": "05ac367df0b90d499db3e116e1734ab5f9b3fc6e",
      "parents": [
        "d809aa7ba6de31ba0df35c89ed0d9ffd992705e2"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 01 11:06:09 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Wed May 01 11:06:09 2024 +0400"
      },
      "message": "Launcher: Render help document contents using Markdown\n\nChange-Id: I580c56bff201cd508efd52ba75eed28a8869f9b1\n"
    },
    {
      "commit": "d809aa7ba6de31ba0df35c89ed0d9ffd992705e2",
      "tree": "8a066ceddeabd5b7fe60691d31333f525077eb7d",
      "parents": [
        "09a3e5b6179f524963b2786d4c7f2fc6f50e2b6f"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 26 14:11:06 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Apr 30 18:33:08 2024 +0400"
      },
      "message": "Env: gerrit and launcher icons\n\nChange-Id: Ia91b48f4745944f2e5ba61f04c4296ba3c1e3292\n"
    },
    {
      "commit": "09a3e5b6179f524963b2786d4c7f2fc6f50e2b6f",
      "tree": "a5c430a494dc70d6da128827ed1c79294242ccfc",
      "parents": [
        "778577fa26e41103dcc4ad9775a017728094af39"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 26 14:11:06 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Apr 30 18:13:39 2024 +0400"
      },
      "message": "Env: configure urls and help documents\n\nChange-Id: I9522e074575e0c1e67735462ac4cc266ab1ebb8c\n"
    },
    {
      "commit": "778577fa26e41103dcc4ad9775a017728094af39",
      "tree": "a44d948d038b539f15fea77c47563fe83b40a11a",
      "parents": [
        "44f621bf542469bae8b1888765a0e5e95b4b4459"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Apr 29 09:44:38 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Apr 30 16:24:51 2024 +0400"
      },
      "message": "AppManager: monitor installed HelmRelease resources\n\nChange-Id: Ia036e7dda8136ad696d8222e799c4d1b6a9018a9\n"
    },
    {
      "commit": "44f621bf542469bae8b1888765a0e5e95b4b4459",
      "tree": "e8bae41e2b6b7b8b9d18b2255cc20a85db61c5c0",
      "parents": [
        "e72b54f819a38afc6656b99010370d6f3d51c38e"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Apr 29 09:44:38 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Apr 30 16:19:37 2024 +0400"
      },
      "message": "AppManager: clean up UI\n\nChange-Id: I8119ea81c80ff6165f4217dfdf9837e776703fc0\n"
    },
    {
      "commit": "e72b54f819a38afc6656b99010370d6f3d51c38e",
      "tree": "3da4dec10618aca7403f423005ba31ed8c3fae04",
      "parents": [
        "56f86a481e4ac0be5548c8337ea85c1af0561462"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Mon Apr 22 10:44:41 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Tue Apr 30 16:15:43 2024 +0400"
      },
      "message": "DNS: run separate CoreDNS instance for each PCloud env.\n\nPreviously shared CoreDNS instance was used to handle all domains. This has multiple downsides, most important which is security. For example DNS-Sec keys of all domains were persisted on the same shared volume. Also key itself was generated by PCloud env-manager as part of bootstrapping new env. Which is counter to the main aspirations of PCloud, that environment internal private data must not leak outside of the environment.\n\nWith new approach implemented in this change, environment starts up it’s own CoreDNS and DNS record manager servers. Manager generates dns-sec keys internally and only exposes public information to the outside world. PCloud infrastructure runes another instance of CoreDNS which acts as a proxy service forwarding requests to individual environments based an requested domain.\n\nThis simplifies DNS based TLS challenge solvers, as private certificate issuer of each env will point directly to the DNS record manager of the same environment.\n\nChange-Id: Ifb0f36d2a133e3b53da22030cc7d6b9099136b3d\n"
    },
    {
      "commit": "56f86a481e4ac0be5548c8337ea85c1af0561462",
      "tree": "ef0c0dc4fa769504e723e7a9ac088cbf35e353e6",
      "parents": [
        "207ce086a9a3600969d74727e2292d8363b9d50c"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Tue Apr 09 19:15:25 2024 +0400"
      },
      "committer": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Tue Apr 30 16:06:33 2024 +0400"
      },
      "message": "Launcher: take app information from AppManager\n\nChange-Id: I0dedd5a710adc4810feb9210b903655a3d2f5533\n"
    },
    {
      "commit": "207ce086a9a3600969d74727e2292d8363b9d50c",
      "tree": "00b3c843dd6d11bb00a6950fabc7bd09303fb0e4",
      "parents": [
        "c916187ddccbe0ae65e62b0474f84b1b7395b939"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Tue Apr 09 19:15:25 2024 +0400"
      },
      "committer": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Wed Apr 24 13:20:26 2024 +0400"
      },
      "message": "launcher: application launcher\n\nChange-Id: I81d49a0651702dc821d683d6a4b3bbff6af3c753\n"
    },
    {
      "commit": "c916187ddccbe0ae65e62b0474f84b1b7395b939",
      "tree": "0d0c810134a46ff1ca5cdb0f7346e805e2da6b76",
      "parents": [
        "1de49585e44866e0cc4c4f1bbd9edf34965c0ec1"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Apr 21 10:46:35 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Apr 21 12:06:32 2024 +0400"
      },
      "message": "OpenProject: Helm chart and application config\n\nChange-Id: Ic3e963e72ed4fd7f3d8550feb55ed468dc561884\n"
    },
    {
      "commit": "1de49585e44866e0cc4c4f1bbd9edf34965c0ec1",
      "tree": "3343d5c2c40e91483af0c26cedb715de9f52a5d0",
      "parents": [
        "308105eedb9edefe37b40341f9ba02705a5c60b5"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Apr 21 08:33:57 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Sun Apr 21 08:52:38 2024 +0400"
      },
      "message": "Ingress: Introduce explicit ingress field in app configs\n\nChange-Id: I79186f851b6a046b39b1045577e906f19c7be309\n"
    },
    {
      "commit": "308105eedb9edefe37b40341f9ba02705a5c60b5",
      "tree": "7b718be43454bc9f5c8fc02bc5a9fd1a2f678190",
      "parents": [
        "db274d18bded70f68a886f4943fcc47dd54e22d5"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 19 13:12:13 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 19 20:44:29 2024 +0400"
      },
      "message": "Rewrite: rewrites env config repo and commits application cue files\n\nWe can build upon this tool to implement version to version migration logic.\n\nChange-Id: I6066f565f118ca44ca3ce7a0ac7522258958cf25\n"
    },
    {
      "commit": "db274d18bded70f68a886f4943fcc47dd54e22d5",
      "tree": "0fc01ff5833969727404310e00fcffb50081cd11",
      "parents": [
        "3cdee59de09438ef564aec0eb4975b51bedc24b0"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 19 11:53:18 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 19 19:44:51 2024 +0400"
      },
      "message": "Ingress: clear X-Frame-Options header from responses.\n\nThis enables applications to be loaded in iframes. Although it does\nsacrifice security a bit.\n\nhttps: //developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options\nChange-Id: Ibb5568b5461bbe001106724a0cf64ec25e7fd4ce\n"
    },
    {
      "commit": "3cdee59de09438ef564aec0eb4975b51bedc24b0",
      "tree": "25bba11f220a1b87aab5dc6c02fe6d3f33f22fa9",
      "parents": [
        "3af43943f99b7a05b1c597c99aa0a3a999e839ec"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Wed Apr 17 10:15:56 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Fri Apr 19 19:36:07 2024 +0400"
      },
      "message": "Installer: Separate infrastructure and environment apps.\n\nHave two separate application managers, one for installing apps on the\ndodo infra, and nother installing on individual environments.\n\nChange-Id: I1b24f008e30c5533c48c22ea92328bc4bb7abc54\n"
    },
    {
      "commit": "3af43943f99b7a05b1c597c99aa0a3a999e839ec",
      "tree": "21e8559e36b37f92760eaf13b1a430010e605d2b",
      "parents": [
        "ef01fbb46843e198939f9d844110f7fb6c250015"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Tue Apr 16 08:13:50 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v1.dodo.cloud",
        "time": "Thu Apr 18 17:52:43 2024 +0400"
      },
      "message": "Installer: Clean up RepoIO interface\n\nChange-Id: If80d7be1460c725b7df9d1d27c9354cb9141acfe\n"
    },
    {
      "commit": "ef01fbb46843e198939f9d844110f7fb6c250015",
      "tree": "76fb9adcf6d2526876cf7d1690e952e3e4184a73",
      "parents": [
        "5c44e6c105a0bb441a0494560dc6adebea623114"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Fri Apr 12 16:52:59 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Mon Apr 15 17:27:27 2024 +0400"
      },
      "message": "app: remove JSON based schema, and each App returns single namespace\n\nChange-Id: I2ced82edd1251edc592f7ae0156d5ea3c81865c2\n"
    },
    {
      "commit": "5c44e6c105a0bb441a0494560dc6adebea623114",
      "tree": "6fb292964d30d3fa1bffc323723fc69d02166c96",
      "parents": [
        "4a9d83d0879fb97b0edaa6af5f84ea5d22168d3e"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Fri Apr 12 16:52:59 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Mon Apr 15 17:26:46 2024 +0400"
      },
      "message": "app-manager: convert input back to the renderable format\n\nChange-Id: Ibd426a37f153549bcde8c22117390b6f76771286\n"
    },
    {
      "commit": "4a9d83d0879fb97b0edaa6af5f84ea5d22168d3e",
      "tree": "b7f635f816dbbb7c893c42eae6ab2097d55b8a5d",
      "parents": [
        "eb8345cf25b1659a7d83b42d6fc0fe820032db24"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Sun Apr 14 13:14:40 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Mon Apr 15 08:53:12 2024 +0000"
      },
      "message": "zot: helm chart and app cue configuration\n\nZot OCI registry: https://zotregistry.dev/\n\nChange-Id: I40ec7383cdc6450613deae862d92d25cc647c892\n"
    },
    {
      "commit": "eb8345cf25b1659a7d83b42d6fc0fe820032db24",
      "tree": "e5250f1bcd5d9aefa0ea6bf593796b311f4c4f45",
      "parents": [
        "e5b1657c7220673ae9284421740c6e038fc4f050"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Fri Apr 12 16:58:49 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Mon Apr 15 08:13:29 2024 +0000"
      },
      "message": "gerrit: add more default plugins to improve user experience\n\nPlugins added: singleusergroup, codemirror-editor, reviewnotes\n\nChange-Id: I33c5e61b777143334a87ec3b65e81962b79d2dc9\n"
    },
    {
      "commit": "e5b1657c7220673ae9284421740c6e038fc4f050",
      "tree": "5155dc0510ab7185d2af48d9a36bf1be04d1fa3a",
      "parents": [
        "eabb4a294ef5ff21521ff4259793f14b9cd379bd",
        "a1a6506bc85255fd1c91809e0fb8b5ee1856fc4d"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Mon Apr 15 08:12:01 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "gerrit@v0.dodo.cloud",
        "time": "Mon Apr 15 08:12:01 2024 +0000"
      },
      "message": "Merge \"matrix: bump synapse version from v1.98.0 to v1.104.0\" into main"
    },
    {
      "commit": "a1a6506bc85255fd1c91809e0fb8b5ee1856fc4d",
      "tree": "bacc2551b1a8971e793f258d59d9815cc074a80f",
      "parents": [
        "35982660303868b6f48ace10d553b8b98f0c52b2"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Sat Apr 13 09:20:44 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Sat Apr 13 09:20:44 2024 +0400"
      },
      "message": "matrix: bump synapse version from v1.98.0 to v1.104.0\n\nChange-Id: Ib94a0461be46e2327f60b059329bf2fb8c6f9f10\n"
    },
    {
      "commit": "eabb4a294ef5ff21521ff4259793f14b9cd379bd",
      "tree": "37900e92ec4163ffce6a350a13ade8b7c85e7d60",
      "parents": [
        "35982660303868b6f48ace10d553b8b98f0c52b2"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Sat Apr 13 09:16:52 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Sat Apr 13 09:17:50 2024 +0400"
      },
      "message": "matrix: explicitly define homeserver port in well-known config\n\nMore details can be found at: https://matrix-org.github.io/synapse/latest/delegate.html\n\nChange-Id: I38f0e702398e11b74c89e9305c49a8024eb1df23\n"
    },
    {
      "commit": "35982660303868b6f48ace10d553b8b98f0c52b2",
      "tree": "931cb9e607e23f6e6d8157869896b8f30a6d794a",
      "parents": [
        "bbc6fad85be02f2473955929e15f1c287d8e8b2c"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Apr 05 13:05:40 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Fri Apr 12 13:51:46 2024 +0000"
      },
      "message": "jenkins: helm chart and cue configuration\n\nChange-Id: I3398b0fab8af43c4a138112a258263153d3ab473\n"
    },
    {
      "commit": "bbc6fad85be02f2473955929e15f1c287d8e8b2c",
      "tree": "6076dfb77e82ee0bdf24e88554f6e473b29ec8ef",
      "parents": [
        "1f2c1c52e148ef43fd951593cb749a439bbce2cd"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Fri Apr 12 15:53:05 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Fri Apr 12 13:48:44 2024 +0000"
      },
      "message": "port-allocator: reserve 22 port for host nodes\n\nOnce public IPs are assigned to only kubernetes process we can open it\nback up again.\n\nChange-Id: If538c7cbf99a14ab3853914715d5c0c8722dfbd4\n"
    },
    {
      "commit": "1f2c1c52e148ef43fd951593cb749a439bbce2cd",
      "tree": "fef7aaa9e192bd3696480a99dd5cc924a25b3343",
      "parents": [
        "a40058c6271d54bfb75a30fd883c3de4fa53c27a"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Apr 12 07:17:58 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Fri Apr 12 13:46:22 2024 +0000"
      },
      "message": "auth-ui: auto consent\n\nChange-Id: I466dd8f2fcc7ba4899f02168518899e9f1d60de6\n"
    },
    {
      "commit": "a40058c6271d54bfb75a30fd883c3de4fa53c27a",
      "tree": "51ccef37aebd8116f6775cdfa55be21f44526a4e",
      "parents": [
        "e7f64e7e227e67549e548b46c1e667838868e647"
      ],
      "author": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Fri Apr 12 10:20:49 2024 +0400"
      },
      "committer": {
        "name": "gio",
        "email": "gio@v0.dodo.cloud",
        "time": "Fri Apr 12 11:21:11 2024 +0400"
      },
      "message": "ci/cd: add jenkinsfile with build and test stages\n\nChange-Id: Iaeb60151883c1368f9a1584047046602c04a2069\n"
    },
    {
      "commit": "e7f64e7e227e67549e548b46c1e667838868e647",
      "tree": "46bb9a63c3999e0d8e100f1af3f89876ac5929a0",
      "parents": [
        "7016d887d1c8cb90e7da3ee75744543f651a32da",
        "ef7f8334aae2639c186808b1872795dc98f1b501"
      ],
      "author": {
        "name": "\u0027gio",
        "email": "\u0027gio@v0.dodo.cloud\u0027",
        "time": "Wed Apr 10 09:41:54 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "gerrit@v0.dodo.cloud",
        "time": "Wed Apr 10 09:41:54 2024 +0000"
      },
      "message": "Merge \"gerrit: use pcloud oauth provider instead of auth-proxy\" into main"
    },
    {
      "commit": "ef7f8334aae2639c186808b1872795dc98f1b501",
      "tree": "48bbafb392dbe9e3a84fc340e458f4f7633350c5",
      "parents": [
        "b59b7c21e16cdbc0989787c075f1055a295e8235"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Apr 08 19:46:54 2024 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Apr 10 13:39:44 2024 +0400"
      },
      "message": "gerrit: use pcloud oauth provider instead of auth-proxy\n\nChange-Id: I555a05ca00c90e84d3c82f31ccd53a220feff344\n"
    },
    {
      "commit": "7016d887d1c8cb90e7da3ee75744543f651a32da",
      "tree": "a7fa3ed2928fdbbf21fe8846e0e931617535a2cb",
      "parents": [
        "b59b7c21e16cdbc0989787c075f1055a295e8235"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue Apr 09 09:06:53 2024 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue Apr 09 09:06:53 2024 +0400"
      },
      "message": "auth-ui: redirect user directly to consent page if already logged in\n\nChange-Id: I4ea575acbeb493bf2d4b4aca424043922ea07499\n"
    },
    {
      "commit": "b59b7c21e16cdbc0989787c075f1055a295e8235",
      "tree": "1a5553a752dfece34e5fc2f9f3fe6701bef08e73",
      "parents": [
        "c0d2bf569807c5551c98ecc08f4602c17af73ae2"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Apr 03 22:17:50 2024 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Apr 08 20:28:51 2024 +0400"
      },
      "message": "port-allocator: allocates ports on preconfigured ingress-nginx\n\nReplacement of /core/installer/tcp-udp-transport\n\nChange-Id: I3d116b0f4508b462398f69e980ad55771dc88b7c\n"
    },
    {
      "commit": "c0d2bf569807c5551c98ecc08f4602c17af73ae2",
      "tree": "89e440d98330e07764c0e427f2614f4eb3f06111",
      "parents": [
        "e9c05499ec80f74658f378d377b68603cf77a9d5"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Wed Apr 03 15:39:33 2024 +0400"
      },
      "committer": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Mon Apr 08 15:48:20 2024 +0400"
      },
      "message": "memberships: owner groups\n\nChange-Id: I7dd4110a288a4f7b59b2d6b755968b5e3a23d30c\n"
    },
    {
      "commit": "e9c05499ec80f74658f378d377b68603cf77a9d5",
      "tree": "75fa879127feae808174df3cbac8f42dc06a6ce5",
      "parents": [
        "b6a5806f163b36847c41619339693b2f46e75847"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Apr 03 15:14:18 2024 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Apr 03 15:14:18 2024 +0400"
      },
      "message": "gerrit: enable download-commands plugin\n\nChange-Id: I191eceff5813f09fce9b150f6a93807fce4ea95e\n"
    },
    {
      "commit": "b6a5806f163b36847c41619339693b2f46e75847",
      "tree": "82c03e2359c3c88f69567213aebd77e86a52fa9e",
      "parents": [
        "ee15ee2ff85bd1ac46d9c199f18ce25dd2086b2e"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue Apr 02 16:49:19 2024 +0400"
      },
      "committer": {
        "name": "\u0027gio",
        "email": "\u0027gio@v0.dodo.cloud\u0027",
        "time": "Wed Apr 03 05:56:55 2024 +0000"
      },
      "message": "gerrit: auto configure ssh keys\n\nChange-Id: I9c3091e4bb998fa6c846c3c60c2801c7daa45bcf\n"
    },
    {
      "commit": "ee15ee2ff85bd1ac46d9c199f18ce25dd2086b2e",
      "tree": "0da2d7647d8151407a8129bd724570a3ac05d38f",
      "parents": [
        "4b44ff4f5973c14e74e3852f752341bbf6ce71bd"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Mar 28 12:35:10 2024 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue Apr 02 16:26:38 2024 +0400"
      },
      "message": "gerrit: charts and app configuration\n\nChange-Id: If4f05f749719d6ba0e2ced8da563699bc6fbc4c0\n"
    },
    {
      "commit": "4b44ff4f5973c14e74e3852f752341bbf6ce71bd",
      "tree": "950f24cd75c5e5ffac3349b90b326bdc8a8a954e",
      "parents": [
        "0a0ca0e4b0f12ff30c93e41004d137ea2fec5971"
      ],
      "author": {
        "name": "DTabidze",
        "email": "130773020+DTabidze@users.noreply.github.com",
        "time": "Tue Apr 02 03:16:26 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 02 03:16:26 2024 +0400"
      },
      "message": "memberships: modal for errors (#133)\n\n* unpolished version of error modal rendering\r\n\r\n* rework of html files. template implemented\r\n\r\n* new html files\r\n\r\n* minor fixes.\r\n\r\n* minor fixes\r\n\r\n* title changes"
    },
    {
      "commit": "0a0ca0e4b0f12ff30c93e41004d137ea2fec5971",
      "tree": "d7708b66a424d20c0b86c829d13d1a676cf95f93",
      "parents": [
        "ab7ff6eb3a1c56e594811f09b414643af0656a1b"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Apr 01 09:07:41 2024 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Apr 01 09:07:41 2024 +0400"
      },
      "message": "installer: concurrent parent task must wait for all children\n\nChange-Id: I1515d36cc731c6063359dd6957743d853b0255f6\n"
    },
    {
      "commit": "ab7ff6eb3a1c56e594811f09b414643af0656a1b",
      "tree": "d9b0d2f98be3a362d4d5462cb271da4c7de0f9c3",
      "parents": [
        "afde8af1d241e52575368dcaabc806ff013982c0"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Mar 29 13:11:30 2024 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "gio@gerrit.p.v0.dodo.cloud",
        "time": "Fri Mar 29 12:44:35 2024 +0000"
      },
      "message": "env: status page\n\nUpdates page asynchronously every 5 seconds.\nIntroduces beforeStart and afterStart trigger points to update setup status information.\n\nChange-Id: Ic2f6a9bb7a0fefeefc4d6a1a7338d506a4f99e80\n"
    },
    {
      "commit": "afde8af1d241e52575368dcaabc806ff013982c0",
      "tree": "6292a228833139c6810c653e956ae86859787f51",
      "parents": [
        "0757f8a4376f57bb6d89fc96261ab3e05a71110d"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Thu Mar 28 23:23:15 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 28 23:23:15 2024 +0400"
      },
      "message": "headscale: generage random suffix for new users (#132)\n\nChange-Id: I7ef50ca45d005592bcd627920e4512ba876ca6b7\r\n\r\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "0757f8a4376f57bb6d89fc96261ab3e05a71110d",
      "tree": "c3bd7497556b307bf0f15fcb9a17109dfd377eea",
      "parents": [
        "5c1b06ef92a2992fb2a97a03a8ecdbd7379eda51"
      ],
      "author": {
        "name": "DTabidze",
        "email": "130773020+DTabidze@users.noreply.github.com",
        "time": "Thu Mar 28 16:49:09 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 28 16:49:09 2024 +0400"
      },
      "message": "memberships: modal for confirmation (#130)\n\n* unpolished version of working modal\r\n\r\n* separated JS script\r\n\r\n* minor change in JS\r\n\r\n* minor changes JS file"
    },
    {
      "commit": "5c1b06ef92a2992fb2a97a03a8ecdbd7379eda51",
      "tree": "b05064fd0d104b4a2e3f8b5c64c81541354f2dd9",
      "parents": [
        "078385f049306b01d32dd5b8d055aa8740b49ed8"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Thu Mar 28 15:19:44 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 28 15:19:44 2024 +0400"
      },
      "message": "env-manager: ui polish (#127)\n\n* env-manager: migrate to pico 2.0.6\r\n\r\n* env: option to hide children from ui\r\n\r\n* introduce template hierarchy\r\n\r\n* style: improve menu styling\r\n\r\n* env: reorganize tasks, pull before install\r\n\r\n---------\r\n\r\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "078385f049306b01d32dd5b8d055aa8740b49ed8",
      "tree": "0e671086a3c8b2c906b786f8c5ddd3f9e3fde1bf",
      "parents": [
        "2b224bff53bbc8b08a35c6cbcb94ae9bdd576d6a"
      ],
      "author": {
        "name": "DTabidze",
        "email": "130773020+DTabidze@users.noreply.github.com",
        "time": "Wed Mar 27 14:49:05 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 27 14:49:05 2024 +0400"
      },
      "message": "memberships: handlers endpoint rework (#129)\n\n* reworked api endpoints\r\n\r\n* minor fix"
    },
    {
      "commit": "2b224bff53bbc8b08a35c6cbcb94ae9bdd576d6a",
      "tree": "5b0ca6c4048f0ea679b7bf58b05e69cd7af8ba15",
      "parents": [
        "5d735e34c80cf431b79b8f7f28d157a3c716d185"
      ],
      "author": {
        "name": "DTabidze",
        "email": "130773020+DTabidze@users.noreply.github.com",
        "time": "Wed Mar 27 13:25:49 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 27 13:25:49 2024 +0400"
      },
      "message": "memberships: remove owner, member and child group (#128)\n\n* remove child group\r\n\r\n* remove group as a child fixed\r\n\r\n* remove group as a child fixed\r\n\r\n* remove owner and member from group\r\n\r\n* removed table names from html, changed api url approach\r\n\r\n* changed handler url"
    },
    {
      "commit": "5d735e34c80cf431b79b8f7f28d157a3c716d185",
      "tree": "9e56a48f2073d39dfd3db1efded6d81cceaadc7a",
      "parents": [
        "6cf332b0d98447576ef95bc473e467f24ddbadd8"
      ],
      "author": {
        "name": "DTabidze",
        "email": "130773020+DTabidze@users.noreply.github.com",
        "time": "Tue Mar 26 16:01:06 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 26 16:01:06 2024 +0400"
      },
      "message": "memberships: user page (#126)\n\n* reworked homepage and userhandler\r\n\r\n* minor fixes for UI"
    },
    {
      "commit": "6cf332b0d98447576ef95bc473e467f24ddbadd8",
      "tree": "ddbb8bb6ce1740538c0e913a371ad86deeadb555",
      "parents": [
        "13da8ff2f198880745bf185dabc430b67063ea35"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Tue Mar 26 12:30:20 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 26 12:30:20 2024 +0400"
      },
      "message": "env page design (#125)\n\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "13da8ff2f198880745bf185dabc430b67063ea35",
      "tree": "56964586e719a79cdfa9075f9a84d5453fd5631d",
      "parents": [
        "9fe49184b20ae766397260e9cd2f5b60f717d716"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Tue Mar 26 12:12:24 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 26 12:12:24 2024 +0400"
      },
      "message": "ingress: force ssl for both private and public ingresses (#124)\n\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "9fe49184b20ae766397260e9cd2f5b60f717d716",
      "tree": "9f2f00bd02231bc58e9ae106e84f5c4dafb0f46a",
      "parents": [
        "3c91e8b6b312ae2faaf37e3bd3d0667979d4cb3a"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Tue Mar 26 10:54:07 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 26 10:54:07 2024 +0400"
      },
      "message": "cleanup: remove old unused files (#122)\n\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "3c91e8b6b312ae2faaf37e3bd3d0667979d4cb3a",
      "tree": "90bb44b5ce91737e6b6b89b203837da4f7974237",
      "parents": [
        "329af57afc69ffec3f292ef7bc87b3e68da97931"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Mon Mar 25 20:20:14 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 25 20:20:14 2024 +0400"
      },
      "message": "appmanager: behind auth-proxy (#119)\n\ncloses #117"
    },
    {
      "commit": "329af57afc69ffec3f292ef7bc87b3e68da97931",
      "tree": "9d59d7accb3eff582c5b0d3f8574a9fe01be03e9",
      "parents": [
        "908bb851e18b122c07664f950f5d25d6be8ec905"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Mon Mar 25 20:14:41 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 25 20:14:41 2024 +0400"
      },
      "message": "memberships: run api service on a different port from ui (#118)\n\n* memberships: run api service on different port\r\n\r\n* memberships: add api service to chart\r\n\r\n* installer: use membership api endpoint instead\r\n\r\n---------\r\n\r\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "908bb851e18b122c07664f950f5d25d6be8ec905",
      "tree": "391a4efd780c2f579f8d20012d0782a31052bb4b",
      "parents": [
        "d542b734b96290e10786e3936af01b7e379b3814"
      ],
      "author": {
        "name": "DTabidze",
        "email": "130773020+DTabidze@users.noreply.github.com",
        "time": "Mon Mar 25 20:07:57 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 25 20:07:57 2024 +0400"
      },
      "message": "membership: groupname and username validations (#116)\n\n* group and username validations lowercase names\r\n\r\n* fixed changes validations\r\n\r\n* removed username validation\r\n\r\n* lowercasing username"
    },
    {
      "commit": "d542b734b96290e10786e3936af01b7e379b3814",
      "tree": "7bcd7b68cff4005bcf29d795ebe3bab8502cf82d",
      "parents": [
        "942c76164eae4f82ea9cfcbe363fa57966c56331"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Mon Mar 25 18:17:39 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 25 18:17:39 2024 +0400"
      },
      "message": "welcome: init group memberships for first create (#115)\n\n* rename createAdminAccount to createAccount\r\n\r\n* welcome: call memberships init on first user\r\n\r\n* auth: add http endpoints to allowed return addresses\r\n\r\n* memberships: make init user member of groups as well\r\n\r\n---------\r\n\r\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "942c76164eae4f82ea9cfcbe363fa57966c56331",
      "tree": "87cba7a8c0c59c22bc45e8abdffe0309c19492c7",
      "parents": [
        "6738396b324f0e3a7aaccf02ef8b7520c00ad5f8"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Fri Mar 22 19:27:48 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 22 19:27:48 2024 +0400"
      },
      "message": "memberships: api init endpoint (#114)\n\nAdds API endpoint to initialise database with first owner and groups.\r\n\r\naffects: #108"
    },
    {
      "commit": "6738396b324f0e3a7aaccf02ef8b7520c00ad5f8",
      "tree": "1c995e0cc7238536e066969dcf58adf358546c50",
      "parents": [
        "c0b4d8fbf6a6aecd60a5f320d2e3389b73c5759c"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Fri Mar 22 19:27:34 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 22 19:27:34 2024 +0400"
      },
      "message": "auth-proxy: reusable ingress with auth proxy object for cue configs (#113)\n\naffects: #110\r\n\r\nCreates reusable auth proxy object in base cue config, and migrates rpuppy, url-shortener, pihole and memberships app to it.\r\n\r\nMemberships app always requires authentication.\r\nurl-shortener now supports non-auth based interactions."
    }
  ],
  "next": "c0b4d8fbf6a6aecd60a5f320d2e3389b73c5759c"
}
