)]}'
{
  "log": [
    {
      "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."
    },
    {
      "commit": "c0b4d8fbf6a6aecd60a5f320d2e3389b73c5759c",
      "tree": "f9ea655647ef98c893d3368f1a175e3df4ec64a5",
      "parents": [
        "a09fad74443c2313bfc97f61f7b2a83c82423aef"
      ],
      "author": {
        "name": "DTabidze",
        "email": "130773020+DTabidze@users.noreply.github.com",
        "time": "Fri Mar 22 17:25:10 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 22 17:25:10 2024 +0400"
      },
      "message": "membership: list child and parent groups (#107)\n\n* Group page shows child and parent groups\r\n\r\n* moved recursion as a helper\r\n\r\n* reworked several funcs to return directly Group type\r\n\r\n* added TransitiveGroups on homepage\r\n\r\n* added circular reference detection\r\n\r\n* improved performance of transitive groups\r\n\r\n* minor fix\r\n\r\n* GetAllTransitiveGroupsForGroup parameter changed to string\r\n\r\n* cover getting transitive groups with unit test\r\n\r\n* recursion logic needs fix\r\n\r\n* refactor: reuse code for processing user/group transitive groups\r\n\r\n* recursion fix\r\n\r\n---------\r\n\r\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "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": "d7744a6874c4eceeabf5011a18e68430725eed4d",
      "tree": "3c0353189b254b8a493e1816ce2a3494a35038ce",
      "parents": [
        "0d8025964db3ecfd9963aa7049597f58de003eb5"
      ],
      "author": {
        "name": "DTabidze",
        "email": "130773020+DTabidze@users.noreply.github.com",
        "time": "Wed Mar 20 14:09:15 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 20 14:09:15 2024 +0400"
      },
      "message": "membership: api group membership endpoint (#104)\n\n* added api group handler\r\n\r\n* func name fixes\r\n\r\n* changed json encoding"
    },
    {
      "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": "c724578ebc273c12bae1dc0b391a2d878be0ef93",
      "tree": "33f9413e4f1bde1925d2fc65e2c3b1d36b9c4f26",
      "parents": [
        "925f0deb100ab516297348798a01a5f55db76c1a"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Fri Mar 15 13:22:52 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 15 13:22:52 2024 +0400"
      },
      "message": "cleanup: remove old unused dir (#99)\n\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": "ba589ae864f8a3afc6d897d966b0372433cce11c",
      "tree": "ab35a45ffb42daae2f2b971316379f3010d29d3a",
      "parents": [
        "0c6b324af80de6ccca61675e2fbfff304f26767b"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Thu Mar 14 18:51:34 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 14 18:51:34 2024 +0400"
      },
      "message": "hetzner: automatically restart tailscale upon network setup (#95)\n\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"
    },
    {
      "commit": "024757cc787b7d33ff039d42599810a64b7dc365",
      "tree": "286b5c550ef7dfe8c98b37f31ec7a0d12cceea2b",
      "parents": [
        "98fe81999fd177d6383419809d492afc868c74fd"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Thu Mar 14 13:27:29 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 14 13:27:29 2024 +0400"
      },
      "message": "installer: use main branch for chart discovery (#92)\n\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "98fe81999fd177d6383419809d492afc868c74fd",
      "tree": "5d8c4117db26c43b5d74fd43c64adc1bb4bd95b2",
      "parents": [
        "b4fcaa251b740ab36de4d695d804a3ff33b129f4"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Thu Mar 14 13:27:17 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Mar 14 13:27:17 2024 +0400"
      },
      "message": "url-shortener: remove quotes from db path flag (#94)\n\n* url-shortener: remove quotes from db path flag\r\n\r\n* clean: rm whitespace\r\n\r\n---------\r\n\r\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "b4fcaa251b740ab36de4d695d804a3ff33b129f4",
      "tree": "b1747f4a3605e968547cae9800169a6614f8b9b4",
      "parents": [
        "9d5e3f5931af72a503654a24bea1950f5f108fbc"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Wed Mar 13 16:34:49 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 13 16:34:49 2024 +0400"
      },
      "message": "url-shortener: fix cue config file (#91)\n\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "9d5e3f5931af72a503654a24bea1950f5f108fbc",
      "tree": "99cda7daebd9bc84b8d0aa8717ad8fb0761cd729",
      "parents": [
        "0993581136984e5f80177987b08fa11bd4ef1541"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Wed Mar 13 15:02:50 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 13 15:02:50 2024 +0400"
      },
      "message": "env-manager: dynamically generate cidr for new env (#85)\n\n* env-manager: allocate env cidrs dynamically\r\n\r\n* fix: net.IP to netip.Addr conversion\r\n\r\n* bootstrapper: generate empty env-cidrs.yaml\r\n\r\n* fix: net.IP to netip.Addr conversion for IP pool\r\n\r\n* infra: expose provided startIP subnet via tailscale proxy\r\n\r\n* headscale: pass private network ip subnet to expose to api service\r\n\r\n* dns: make ingress IP configurable\r\n\r\n---------\r\n\r\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "0993581136984e5f80177987b08fa11bd4ef1541",
      "tree": "2314c9ab86ced0f242a21c7e6500f1f5bdb1e17d",
      "parents": [
        "dc76b400ca9adb12b19d13217081af94055ce71c"
      ],
      "author": {
        "name": "DTabidze",
        "email": "130773020+DTabidze@users.noreply.github.com",
        "time": "Wed Mar 13 13:47:39 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 13 13:47:39 2024 +0400"
      },
      "message": "url-shortener: helm chart with cue config file (#89)\n\n* added cue file for url-shortener\r\n\r\n* added yaml files for url-shortener\r\n\r\n* fixed yaml and cue for url-shortener\r\n\r\n* port variable  fix\r\n\r\n* cue minor fix\r\n\r\n* added url-shortener into appstore svg change\r\n\r\n* minor fixes\r\n\r\n* version fix\r\n\r\n* added url-shortener into app.go"
    },
    {
      "commit": "dc76b400ca9adb12b19d13217081af94055ce71c",
      "tree": "eb818fc34218614ce58f92315a54c46b0b7c6b23",
      "parents": [
        "0d2e9ad9c225dbc89a07ad20709520139ded3c1a"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Wed Mar 13 13:30:28 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 13 13:30:28 2024 +0400"
      },
      "message": "hetzner: rm third server (#88)\n\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "0d2e9ad9c225dbc89a07ad20709520139ded3c1a",
      "tree": "59fb3bce799a8d5b98d13bd69b4363119ac125cc",
      "parents": [
        "83b7219dc678a0e40751caf594f652f73a888266"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Wed Mar 13 13:30:15 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 13 13:30:15 2024 +0400"
      },
      "message": "welcome: cleanup login-addr flag (#87)\n\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "83b7219dc678a0e40751caf594f652f73a888266",
      "tree": "cfedee7894e996172df23f789feb60b6151ee7a1",
      "parents": [
        "3183056f2cb91eca8d0b182fc56169af0033c750"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Mon Mar 11 18:36:14 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 11 18:36:14 2024 +0400"
      },
      "message": "welcome: successful registration page (#82)\n\n"
    },
    {
      "commit": "3183056f2cb91eca8d0b182fc56169af0033c750",
      "tree": "e956ebb7c7e92d0d4b2a32b976790a67b5bd9c6f",
      "parents": [
        "7c037394ea830a06b24415c59ed6fd1a4fee72d9"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Mon Mar 11 14:40:55 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 11 14:40:55 2024 +0400"
      },
      "message": "auth: bump kratos and hydra versions (#79)\n\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "7c037394ea830a06b24415c59ed6fd1a4fee72d9",
      "tree": "1e08868585b5e98a3d166eac76b98d1eaa3b929d",
      "parents": [
        "03d6f4b45e22385d45017f2f56e21f44071d4bcf"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Mon Mar 11 14:40:24 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 11 14:40:24 2024 +0400"
      },
      "message": "installer: remove old yaml config files (#78)\n\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "03d6f4b45e22385d45017f2f56e21f44071d4bcf",
      "tree": "f8c02bdcc9602ee7084311a3a767af7ba68826c1",
      "parents": [
        "525933992ab86d6902969647e44ca663cff1dca1"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Fri Mar 08 13:05:21 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 08 13:05:21 2024 +0400"
      },
      "message": "configure app names (#77)\n\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "525933992ab86d6902969647e44ca663cff1dca1",
      "tree": "3e3fe41309b9c156fd10fc3f5fab1491786af19a",
      "parents": [
        "186eae5d5922e675c88bd8096df784100ed460e8"
      ],
      "author": {
        "name": "DTabidze",
        "email": "130773020+DTabidze@users.noreply.github.com",
        "time": "Fri Mar 08 12:53:20 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 08 12:53:20 2024 +0400"
      },
      "message": "welcome: username error handling (#75)\n\n* username error handling welcome ui\r\n\r\n* added short username check with separate error handling function\r\n\r\n* nothing happaned here\r\n\r\n* added username error handling, form saves info\r\n\r\n* pull75 fixes\r\n\r\n* pull75 fixes ui\r\n\r\n* CSS change\r\n\r\n* separate css for errors, added logic for several type of errors\r\n\r\n* rename extractErrorMessage\r\n\r\n* validation changes\r\n\r\n* added validations in api\r\n\r\n* changed rendering template, recives errors in JSON format\r\n\r\n* rolled back schema and makefile in kratos\r\n\r\n* changes in HTML\r\n\r\n* combined kratos and manual validations\r\n\r\n* fixed rendering and handling JSON error response\r\n\r\n* rollback unused index.html\r\n\r\n* minor fixes\r\n\r\n* refactored the repeated logic of Errors into a separate function\r\n\r\n* rollback\r\n\r\n* refactor: group errors and form data together\r\n\r\n* rollback picocss version\r\n\r\n* use picocss 2.0.6\r\n\r\n---------\r\n\r\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "186eae5d5922e675c88bd8096df784100ed460e8",
      "tree": "c9e4b1def6b487aa4fec446bf132a015124d9c4d",
      "parents": [
        "8339905ead513754448d09758c02be7208cd3ccc"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Thu Feb 15 14:21:41 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 15 14:21:41 2024 +0400"
      },
      "message": "installer: fix how collection of in memory app configs is created (#74)\n\nWas allocating non empty slice before, which followed by appends\r\nwould leave nil-s at the beginning of the slice.\r\n\r\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "8339905ead513754448d09758c02be7208cd3ccc",
      "tree": "94bc6da9fe4508d42ab212870d925791ef4bf46c",
      "parents": [
        "cefecf15e39337665c4507cd7e69c0644eb9e720"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Feb 14 13:27:30 2024 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Feb 14 13:29:05 2024 +0400"
      },
      "message": "welcome: dump error message as response\n"
    },
    {
      "commit": "cefecf15e39337665c4507cd7e69c0644eb9e720",
      "tree": "958ffc4aecfdf8089f7e42e4f7a3ae638895ed36",
      "parents": [
        "f99bc4f3b7616db5bd65d4dc804a4f563d5d93fb"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Wed Feb 07 16:15:29 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 07 16:15:29 2024 +0400"
      },
      "message": "url-shortener: build configuration files (#72)\n\n* url-shortener: makefile and dockerfile\r\n\r\n* makefile: make docker configurable\r\n\r\n* makefile: manifest destination\r\n\r\n* makefile: empy manifest\r\n\r\n---------\r\n\r\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "f99bc4f3b7616db5bd65d4dc804a4f563d5d93fb",
      "tree": "e7d89643cf77e227987ad431b4acbafbe974308a",
      "parents": [
        "08af67aef1c07d1f0ff4f8d93a77237263db737e"
      ],
      "author": {
        "name": "Davit Tabidze",
        "email": "davidtabidzef1@gmail.com",
        "time": "Wed Jan 17 22:37:32 2024 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Feb 07 16:08:45 2024 +0400"
      },
      "message": "url-shortener: vendor pico.css\n"
    },
    {
      "commit": "08af67aef1c07d1f0ff4f8d93a77237263db737e",
      "tree": "8c438f7f33bd1f540b4d4baaf5ca15204b3bf7ba",
      "parents": [
        "ef21c1313e8bc150ff4b571dab4cbee50fbe0029"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Jan 18 08:53:05 2024 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Jan 18 08:53:05 2024 +0400"
      },
      "message": "installer: refactor App interface\n"
    },
    {
      "commit": "ef21c1313e8bc150ff4b571dab4cbee50fbe0029",
      "tree": "81177095d71ab879a4e4d72c119d452049150518",
      "parents": [
        "71353b5b7b2516a5dbb2005de5623c2bf89493f6"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Jan 17 18:57:58 2024 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Jan 17 18:59:49 2024 +0400"
      },
      "message": "installer: migrate app repository client to cuelang based configs\n"
    },
    {
      "commit": "71353b5b7b2516a5dbb2005de5623c2bf89493f6",
      "tree": "369276c825724d43cb5bc0e1df0d995f38369369",
      "parents": [
        "e009a5dd3fbd34d4586d2f2f9d08347b0f31ad6b"
      ],
      "author": {
        "name": "DTabidze",
        "email": "130773020+DTabidze@users.noreply.github.com",
        "time": "Wed Jan 17 16:02:55 2024 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 17 16:02:55 2024 +0400"
      },
      "message": "added url on/off and css styles (#66)\n\n* added basic styles css\r\n\r\n* added toggle on/off for URL\r\n\r\n* added loggedinuser check\r\n\r\n* minor changes\r\n\r\n* minor changes v2\r\n\r\n* minor changes v3\r\n\r\n* chore: stylistic fixes\r\n\r\n---------\r\n\r\nCo-authored-by: Giorgi Lekveishvili \u003clekva@gl-mbp-m1-max.local\u003e"
    },
    {
      "commit": "e009a5dd3fbd34d4586d2f2f9d08347b0f31ad6b",
      "tree": "9d7550cc19de32cc82e05a631c6da62b8bfc7979",
      "parents": [
        "b00a1db3769c05f06d10aca90acec784b9e4c2ee"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Jan 05 14:10:11 2024 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Jan 17 12:39:32 2024 +0400"
      },
      "message": "installer: migrate apps to cuelang\n"
    },
    {
      "commit": "b00a1db3769c05f06d10aca90acec784b9e4c2ee",
      "tree": "1033ca22e97f39ec16f3cabeb8922ee9d0562f81",
      "parents": [
        "9b52ab9df80ef838278c7de02aed292483aa2775"
      ],
      "author": {
        "name": "DTabidze",
        "email": "130773020+DTabidze@users.noreply.github.com",
        "time": "Fri Jan 12 18:30:14 2024 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Jan 17 12:39:32 2024 +0400"
      },
      "message": "url-shortener: implements rfd 4 (#65)\n\n* DB Done. Adding new entry in db request Done\r\n\r\n* add short url render and redirection\r\n\r\n* separate functionality update\r\n\r\n* removed global var db\r\n\r\n* added two fields in List: owned_id and active?\r\n\r\n* fixed minor issues\r\n\r\n* db changes\r\n\r\n* added NameAlreadyTaken error\r\n\r\n* moved address check outside of Create\r\n\r\n* changed several minor issues\r\n\r\n* chenged opendb func with newsqlitestore"
    },
    {
      "commit": "9b52ab9df80ef838278c7de02aed292483aa2775",
      "tree": "df58256943e8aa12edf41a38b8af2f7aa5bd3ff4",
      "parents": [
        "3f697b1b5f446a39cb5f45368cd1df06cca946a4"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Jan 05 13:12:48 2024 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Jan 05 13:30:55 2024 +0400"
      },
      "message": "appmanager: use cue config when available, migrate rpuppy to cue\n"
    },
    {
      "commit": "3f697b1b5f446a39cb5f45368cd1df06cca946a4",
      "tree": "20166b108262f301b9c0f0070f10ae495cc8baf3",
      "parents": [
        "7c427602668a33eaec70a1a678a5884a555c284b"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Jan 04 00:56:06 2024 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Jan 04 00:56:06 2024 +0400"
      },
      "message": "appmanager: make app responsible for rendering its own resources\n"
    },
    {
      "commit": "7c427602668a33eaec70a1a678a5884a555c284b",
      "tree": "07ce64790f298e73a2699ca60ff70020877ef959",
      "parents": [
        "d76414ebcf4a079b003f1edd67edbee330408c94"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Jan 04 00:13:55 2024 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Jan 04 00:13:55 2024 +0400"
      },
      "message": "appmanager: refactor schema into interface, introduce cuelang\n"
    },
    {
      "commit": "d76414ebcf4a079b003f1edd67edbee330408c94",
      "tree": "fcd481ac8bf95ff5ecc8bbf1bca57d6576c3d580",
      "parents": [
        "c89b900f8c8f0bc1d9ed13dbfe1abf1a86559fb1"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Dec 21 13:30:23 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Dec 21 13:30:23 2023 +0400"
      },
      "message": "auth: disable registration on ui\n"
    },
    {
      "commit": "c89b900f8c8f0bc1d9ed13dbfe1abf1a86559fb1",
      "tree": "1ba2b3a64fd3e0f22703070bdfdf31d74fc4f6b6",
      "parents": [
        "fedd00675f604327578d433cea4831f116262460"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Dec 21 13:09:26 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Dec 21 13:09:26 2023 +0400"
      },
      "message": "welcome: call api to create account\n"
    },
    {
      "commit": "fedd00675f604327578d433cea4831f116262460",
      "tree": "61907067933b2d618d5f614e681923611c3eda4a",
      "parents": [
        "bae313542250c1a1457ae611320dd5dc2d3a0416"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Dec 21 10:52:49 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Dec 21 12:11:12 2023 +0400"
      },
      "message": "core-auth: api to create new identities\n"
    },
    {
      "commit": "bae313542250c1a1457ae611320dd5dc2d3a0416",
      "tree": "e03ee33fe31dbcef3b95a9947d468fd9626060de",
      "parents": [
        "9d4c10df6901a642e92f6069e43876be4cd0b279"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Dec 21 07:48:05 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Dec 21 07:48:05 2023 +0400"
      },
      "message": "matrix: fix cert and well-known\n"
    },
    {
      "commit": "9d4c10df6901a642e92f6069e43876be4cd0b279",
      "tree": "7911ac14b6ce5a55bf782fbbb8343e97db8b8d76",
      "parents": [
        "cf5f0b19cf990d793942f4c8259c5c409933e45f"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 20 20:22:47 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 20 20:22:47 2023 +0400"
      },
      "message": "matrix: bump version\n"
    },
    {
      "commit": "cf5f0b19cf990d793942f4c8259c5c409933e45f",
      "tree": "006fad2a2c98c2cd66f88d800cc524ca09eb33e5",
      "parents": [
        "d680582e2e09ceaac20b56262abc6dd6c9c4a9d9"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 20 19:31:22 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 20 19:31:22 2023 +0400"
      },
      "message": "resource-renderer: use sprig functions\n"
    },
    {
      "commit": "d680582e2e09ceaac20b56262abc6dd6c9c4a9d9",
      "tree": "2dcf6cb6f10acd13a1b8da7d921948c7f213f86b",
      "parents": [
        "c85504d6686fbe77002de91cf7be8acc7a7788e7"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 20 19:30:05 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 20 19:30:05 2023 +0400"
      },
      "message": "bootstrapper: sleep after soft-server install\n"
    },
    {
      "commit": "c85504d6686fbe77002de91cf7be8acc7a7788e7",
      "tree": "6ea555622896389f6caf29c12316b0b9a8f11b0f",
      "parents": [
        "37c6bcd085bff911beaecd223a9bf2f508d31a3b"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 20 19:29:47 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 20 19:29:47 2023 +0400"
      },
      "message": "env: fix env key redirect\n"
    },
    {
      "commit": "37c6bcd085bff911beaecd223a9bf2f508d31a3b",
      "tree": "8b894640ca1ae9892c0e11bde7cf534ce7a26b53",
      "parents": [
        "cf252f04a43851614c41dbd8089d875ff375ef1d"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 20 19:29:32 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 20 19:29:32 2023 +0400"
      },
      "message": "resource-renderer: use sprig template functions\n"
    },
    {
      "commit": "cf252f04a43851614c41dbd8089d875ff375ef1d",
      "tree": "3eb5b4db9b8cb842d3a154474f06fa7b9a55d157",
      "parents": [
        "30c887a2b1f0e252ebceec5a1ac410777f76758b"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 20 19:28:57 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 20 19:28:57 2023 +0400"
      },
      "message": "matrix: fix jinja template generation\n"
    },
    {
      "commit": "30c887a2b1f0e252ebceec5a1ac410777f76758b",
      "tree": "8c3060cfd8a371328ebf115c95747a4669d4f93b",
      "parents": [
        "6d7dcb84b2075b3dcb9eba690c9e8eb637dfcc6b"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 20 19:28:31 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 20 19:28:31 2023 +0400"
      },
      "message": "matrix: fix database locale\n"
    },
    {
      "commit": "6d7dcb84b2075b3dcb9eba690c9e8eb637dfcc6b",
      "tree": "df4f0ca1032dc31edb4745b41e6777eb2b55a751",
      "parents": [
        "d2f3dca1a79cafbcf9a52be44d2a3ae16db6f8fd"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 20 14:44:42 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 20 17:23:42 2023 +0400"
      },
      "message": "matrix: use resource renderer\n"
    },
    {
      "commit": "d2f3dca1a79cafbcf9a52be44d2a3ae16db6f8fd",
      "tree": "ca3c98d991c4cec0884071ea6b309b29443bcae7",
      "parents": [
        "3fd5e4c5a9377f023ceb8e5dd6a3113484fe46ef"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 20 09:31:30 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 20 09:31:30 2023 +0400"
      },
      "message": "installer: call reconciler on app install/update/remove\n"
    },
    {
      "commit": "3fd5e4c5a9377f023ceb8e5dd6a3113484fe46ef",
      "tree": "84d6969af18be4cd9196554add023df4e0ca4bdc",
      "parents": [
        "d4b76ee9bda3c59d09fe373eee7f3599410d89b9"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue Dec 19 22:09:40 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue Dec 19 22:09:40 2023 +0400"
      },
      "message": "apps: penpot\n"
    },
    {
      "commit": "d4b76ee9bda3c59d09fe373eee7f3599410d89b9",
      "tree": "4363bfcb092c689cdaef530319f82697571bf8c5",
      "parents": [
        "7144ea9f481cc2149b16abb2af112493a39ee25d"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue Dec 19 18:39:06 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue Dec 19 18:46:28 2023 +0400"
      },
      "message": "rfds: url shortener\n"
    },
    {
      "commit": "7144ea9f481cc2149b16abb2af112493a39ee25d",
      "tree": "77a848cd218d70ad1c58a818cc501eb99da3c9c7",
      "parents": [
        "1eec3e12e6817ea99f5a59e52d16df822c32a5b6"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 18 21:13:41 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 18 21:13:41 2023 +0400"
      },
      "message": "remove helmfiles\n"
    },
    {
      "commit": "1eec3e12e6817ea99f5a59e52d16df822c32a5b6",
      "tree": "6f0890b2d646a0c12e6a1f8e8a46816c956e3ddb",
      "parents": [
        "0435b204c8526cb00e4e33e710b8e4efb083b99b"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 18 21:12:29 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 18 21:12:29 2023 +0400"
      },
      "message": "installer-env: generate env task key\n"
    },
    {
      "commit": "0435b204c8526cb00e4e33e710b8e4efb083b99b",
      "tree": "698b088ed13aef77828de88a971777e2cc2c594f",
      "parents": [
        "9e2fafad32b5ee7e050d30dd6c1c5925f9ccb0a5"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 18 18:23:06 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 18 18:23:06 2023 +0400"
      },
      "message": "pihole: admin.enabled \u003d false\n"
    },
    {
      "commit": "9e2fafad32b5ee7e050d30dd6c1c5925f9ccb0a5",
      "tree": "b254c7a66d0bb6da3bc7495e4836ff4ea31a4117",
      "parents": [
        "561f3d3e6531f3bbef2ce5fde987dddfec43fd1c"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 18 14:12:34 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 18 14:12:34 2023 +0400"
      },
      "message": "dns-solver: add loggin\n"
    },
    {
      "commit": "561f3d3e6531f3bbef2ce5fde987dddfec43fd1c",
      "tree": "01551bc8ad7e139098242d62f2bdcd47bc07c485",
      "parents": [
        "9bce26cfb03fd5f058e8244fa41124773234b993"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 18 14:12:06 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 18 14:12:06 2023 +0400"
      },
      "message": "charts: pihole - disable admin password\n"
    },
    {
      "commit": "9bce26cfb03fd5f058e8244fa41124773234b993",
      "tree": "e7a7f783510dda9012a3ce92cf13ba6c2fbc13a2",
      "parents": [
        "6972e851a29d5ddca6009913995fa1e42cfbb336"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 18 10:22:36 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 18 10:22:36 2023 +0400"
      },
      "message": "bootstrapper: fix fluxcd-reconciler pcloud env name\n"
    },
    {
      "commit": "6972e851a29d5ddca6009913995fa1e42cfbb336",
      "tree": "907e0fb585272a6e06d3c19613c0e2e40382d956",
      "parents": [
        "18791c04589408ad8618514a1e4cd6bdd9e27452"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 18 10:21:55 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 18 10:21:55 2023 +0400"
      },
      "message": "fluxcd-reconciler: rm charts dir from reconciler\n"
    },
    {
      "commit": "18791c04589408ad8618514a1e4cd6bdd9e27452",
      "tree": "14cd6af136f14b8cdadbf78217bdbb549c5eb669",
      "parents": [
        "2dd35c217bcd7dc248f670a24944956170a3cd09"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 18 10:21:29 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 18 10:21:29 2023 +0400"
      },
      "message": "fluxcd-bootstrapper: disable dbg container\n"
    },
    {
      "commit": "2dd35c217bcd7dc248f670a24944956170a3cd09",
      "tree": "9722085928279570ce66830e2bfb8d88800748ed",
      "parents": [
        "c5f5276dc4d60e1f31e845d40380750297953bbb"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Sun Dec 17 21:22:00 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Sun Dec 17 23:16:26 2023 +0400"
      },
      "message": "fluxcd-reconciler: fix binary path\n"
    },
    {
      "commit": "c5f5276dc4d60e1f31e845d40380750297953bbb",
      "tree": "167332e2b76263ac35fd8f222e5ca5213125aad3",
      "parents": [
        "2df23dbf85fe616b2ea83fcbf77834e4a336a595"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Dec 14 21:06:02 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Dec 14 21:06:02 2023 +0400"
      },
      "message": "bootstrapper: run busybox with fluxd-bootstrap\n"
    },
    {
      "commit": "2df23dbf85fe616b2ea83fcbf77834e4a336a595",
      "tree": "2476557a336b2d3b236e36496682e0cefa894543",
      "parents": [
        "1caed36cebccd7b8b13666667d044547bb6751dc"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Dec 14 07:55:22 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Dec 14 07:55:22 2023 +0400"
      },
      "message": "fluxcd-reconciler, env creator calling it every 30 sec to sync the cluster\n"
    },
    {
      "commit": "1caed36cebccd7b8b13666667d044547bb6751dc",
      "tree": "af93a72a9f4d59c8e2a4e23ae49f6635bb9079b0",
      "parents": [
        "cd9e42c008f77aee31c05e9d5f236472eb65fdd2"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 13 16:29:43 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 13 16:29:43 2023 +0400"
      },
      "message": "installer-env: automate dns update with registrar\n"
    },
    {
      "commit": "cd9e42c008f77aee31c05e9d5f236472eb65fdd2",
      "tree": "16035a45080eda26b3f94f156af144fd4a911b40",
      "parents": [
        "efce51ff114b84d036aed12e8fc8b15e4286a5da"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 13 09:49:44 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed Dec 13 09:49:44 2023 +0400"
      },
      "message": "installer-env: render dns records to publish\n"
    },
    {
      "commit": "efce51ff114b84d036aed12e8fc8b15e4286a5da",
      "tree": "a5edfe525d2b3f97251fa10a4b9b3760a8f8b54f",
      "parents": [
        "378ea88919ca0aa15a1b3d12ece501bd3f6aee2e"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue Dec 12 18:25:48 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue Dec 12 18:25:48 2023 +0400"
      },
      "message": "installer-env: full permissions\n"
    },
    {
      "commit": "378ea88919ca0aa15a1b3d12ece501bd3f6aee2e",
      "tree": "536f646d6f3ba4d5cef5526e96e6a35ec3570771",
      "parents": [
        "4eb72068cc17b2131e8c414f8d5b45db003d8f0f"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue Dec 12 13:59:18 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue Dec 12 13:59:18 2023 +0400"
      },
      "message": "installer-env: wait for services to be reachable\n"
    },
    {
      "commit": "4eb72068cc17b2131e8c414f8d5b45db003d8f0f",
      "tree": "53b00c4eb87cd175dd0bfc7d224f1d1f31c1b300",
      "parents": [
        "77ee2dc27dd9d72d57ee46b4d27d000df835c964"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 11 16:51:25 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 11 16:51:25 2023 +0400"
      },
      "message": "installer: use nonroot container image\n"
    },
    {
      "commit": "77ee2dc27dd9d72d57ee46b4d27d000df835c964",
      "tree": "04da237dbbd6b6613e881e124e4e9f404357ca1b",
      "parents": [
        "df874f40556b287be77967d925678bbbfe286185"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 11 16:51:10 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 11 16:51:10 2023 +0400"
      },
      "message": "installer: helper leaf/parent tasks\n"
    },
    {
      "commit": "df874f40556b287be77967d925678bbbfe286185",
      "tree": "9859e50aa3080a83bc4e2fefcd28e3caf423f6fd",
      "parents": [
        "46743d4ccf9881f0c7a121310b3a6d3d04ea7a50"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 11 15:46:46 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Mon Dec 11 15:46:46 2023 +0400"
      },
      "message": "installer-env: update ui\n"
    },
    {
      "commit": "46743d4ccf9881f0c7a121310b3a6d3d04ea7a50",
      "tree": "3a3f176699d5959905350089b0e220be3c54a097",
      "parents": [
        "e287076723578f067df050e8d314183417840157"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Sun Dec 10 15:47:23 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Sun Dec 10 15:47:23 2023 +0400"
      },
      "message": "installer: split up new env creation into chain of tasks\n"
    },
    {
      "commit": "e287076723578f067df050e8d314183417840157",
      "tree": "fd0b629c75fcc9ab39553e7f8be1849dbcbb5097",
      "parents": [
        "2d1c2eb09083cf7ad106e9bdfdc47e5dbb8b5ab8"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Sat Dec 09 14:21:22 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Sun Dec 10 08:28:50 2023 +0400"
      },
      "message": "headscale: run ui container\n"
    },
    {
      "commit": "2d1c2eb09083cf7ad106e9bdfdc47e5dbb8b5ab8",
      "tree": "c450c4eba25d4f2a2dd3d59278d1ffc0dcf0efed",
      "parents": [
        "260a97db59484417514eddc29bd256c15bdc530c"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Dec 08 22:58:17 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Dec 08 22:58:17 2023 +0400"
      },
      "message": "cert-issuer-private: fix pcloud resolver name\n"
    },
    {
      "commit": "260a97db59484417514eddc29bd256c15bdc530c",
      "tree": "a748fde0fdc9f7b5518922036f8ea21f4266692c",
      "parents": [
        "1d58704611b01300dffd29a278eb4af364ca0ac7"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Dec 08 15:04:16 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Dec 08 15:04:16 2023 +0400"
      },
      "message": "welcome: remove gandi api token\n"
    }
  ],
  "next": "1d58704611b01300dffd29a278eb4af364ca0ac7"
}
