)]}'
{
  "log": [
    {
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    }
  ]
}
