)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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."
    },
    {
      "commit": "a09fad74443c2313bfc97f61f7b2a83c82423aef",
      "tree": "af5f1db30a2ab4d18180b3e97d52926cc5dac51e",
      "parents": [
        "618e243b36c6518a97e1d3a8ce9a6d69a5eaffad"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Thu Mar 21 15:24:35 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 21 15:24:35 2024 +0400"
      },
      "message": "auth-proxy: verify group membership (#105)\n\n* auth-proxy: verify group membership\r\n\r\n* memberships: install memberships app and use it in few apps\r\n\r\n* app-repo: render auth\r\n\r\n* installer: always use external dependencies option in app configs\r\n\r\n* installer: fix auth handling\r\n\r\n* auth-proxy: configure membership-addr and groups flags in helm chart\r\n\r\n* installer: fix indentation\r\n\r\n* app-manager: fix how auth block is rendered\r\n\r\n---------\r\n\r\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "618e243b36c6518a97e1d3a8ce9a6d69a5eaffad",
      "tree": "df50d1e61ca43394900091b54cfbbebec028086a",
      "parents": [
        "0ba5e4081640155aa4a356fa279c6d6bb9e55d90"
      ],
      "author": {
        "name": "DTabidze",
        "email": "130773020+DTabidze@users.noreply.github.com",
        "time": "Wed Mar 20 21:07:52 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 20 21:07:52 2024 +0400"
      },
      "message": "auth: memberships behind the auth-proxy (#106)\n\n* auth proxy ingress added\r\n\r\n* removed ingress from install\r\n\r\n* port \u003e portName"
    },
    {
      "commit": "0ba5e4081640155aa4a356fa279c6d6bb9e55d90",
      "tree": "64cf73da6abcdf295404a76f7172151cd1a11c1b",
      "parents": [
        "d7744a6874c4eceeabf5011a18e68430725eed4d"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Wed Mar 20 15:56:30 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 20 15:56:30 2024 +0400"
      },
      "message": "auth-proxy: proxies only authenticated requests to upstream, redirects to login page otherwise (#103)\n\n* auth-proxy: inspects authenticated user\r\n\r\n* ingress: chart and use in rpuppy\r\n\r\n* auth-proxy: make it optional in rpuppy\r\n\r\n* kratos: whitelist env pub/priv domains for auth return_to addr\r\n\r\n* url-shortener: put behind auth-proxy\r\n\r\n* pihole: replace oauth2-client with auth-proxy\r\n\r\n* auth-proxy: fix upstream uri generation\r\n\r\n* pihole: remove old chart using oauth2\r\n\r\n* auth-proxy: remove temporary values file\r\n\r\n* url-shortener: check x-user header for authentication\r\n\r\n* auth: fix allowed_return_urls list\r\n\r\n* auth-proxy: fix current address generation logic\r\n\r\n---------\r\n\r\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "0d8025964db3ecfd9963aa7049597f58de003eb5",
      "tree": "130d0816588baebc661eadc279ef8e7e2f8048a8",
      "parents": [
        "c724578ebc273c12bae1dc0b391a2d878be0ef93"
      ],
      "author": {
        "name": "DTabidze",
        "email": "130773020+DTabidze@users.noreply.github.com",
        "time": "Tue Mar 19 17:42:45 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Mar 19 17:42:45 2024 +0400"
      },
      "message": "auth: groups and memberships (#97)\n\n* group membership unpolished\r\n\r\n* fixed index.html\r\n\r\n* fixed undefined variable errors\r\n\r\n* Implemented adding a user to a group.\r\n\r\n* fixed variable names, moved permission check into handler, separated fanctionality for adding ownership or membership for user\r\n\r\n* minor changes: Gave variables consistent names\r\n\r\n* separated tables for owners and members. some clean code fixes. added group description into group page.\r\n\r\n* added to creat child group. minor fixes\r\n\r\n* added yaml files\r\n\r\n* added cue file\r\n\r\n* moved groupOwnership check separatly. redo conditionals into oneline. separated status string check.\r\n\r\n* added mempership into app.go infraAppConfigs\r\n\r\n* changed svg icon. fixed indentation\r\n\r\n* svg icon fix\r\n\r\n* added  transaction\r\n\r\n* minor owner add fix\r\n\r\n* added multiple db rollbacks\r\n\r\n---------\r\n\r\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "925f0deb100ab516297348798a01a5f55db76c1a",
      "tree": "029ea39d0adb5180f863fcdedf756c11886a30c2",
      "parents": [
        "ba589ae864f8a3afc6d897d966b0372433cce11c"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Thu Mar 14 18:51:56 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 14 18:51:56 2024 +0400"
      },
      "message": "chart: extract hydra maester chart out of auth/charts/hydra.tar.gz (#96)\n\n* chart: extract hydra maester chart out of auth/charts/hydra.tar.gz\r\n\r\n* auth: install shared hydra maester during bootstrap\r\n\r\n* hydra-maester: fix chart name typo\r\n\r\n* hydra-maester: fix charts repo namespace\r\n\r\n---------\r\n\r\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "0c6b324af80de6ccca61675e2fbfff304f26767b",
      "tree": "f9680131f783932af086629c0816bd045ff2ec18",
      "parents": [
        "024757cc787b7d33ff039d42599810a64b7dc365"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Thu Mar 14 15:31:08 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 14 15:31:08 2024 +0400"
      },
      "message": "oauth2-client: migrate apps to use oauth2-client helm chart (#90)\n\n* headscale: use oauth2-client helm chart\r\n\r\n* pihole: use oauth2-client helm chart\r\n\r\n* matrix: use oauth2-client helm chart\r\n\r\n* oauth2: pass issuer address to pihole, headscale and matrix apps\r\n\r\n* pihole: fix secret name\r\n\r\n* matrix: fix version to v1.98.0\r\n\r\n* headscale: make oauth2-client depend on auth release\r\n\r\n---------\r\n\r\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    }
  ],
  "next": "024757cc787b7d33ff039d42599810a64b7dc365"
}
