)]}'
{
  "log": [
    {
      "commit": "19960c5d85e9cc267064a330622728762e11826c",
      "tree": "9509b0c0ed48f0f2908b8e86ecc5c7f9a7072772",
      "parents": [
        "bde185518a7c17ba54e948c94f5bc7588292f545"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Jun 09 12:55:08 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Jun 09 12:55:08 2023 +0400"
      },
      "message": "installer: qbittorrent readme\n"
    },
    {
      "commit": "bde185518a7c17ba54e948c94f5bc7588292f545",
      "tree": "3cc0c0fa1a5f120a2dbba2f3215675a0e2b338d4",
      "parents": [
        "acc4a63652e15e446487f35368412b48d49a51af"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Jun 09 12:54:24 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Jun 09 12:54:24 2023 +0400"
      },
      "message": "installer: configure longhorn default path during bootstrap\n"
    },
    {
      "commit": "acc4a63652e15e446487f35368412b48d49a51af",
      "tree": "c701b7ea68f949cae173b63cb3bdb99ae4dd1e8f",
      "parents": [
        "50ed2f37913b1d2944aef45e9e08f875b29e5232"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Jun 09 12:50:21 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Jun 09 12:50:21 2023 +0400"
      },
      "message": "installer: helmrelease for app namespaces\n"
    },
    {
      "commit": "c647025153355c2aff851a04e654a124bb212777",
      "tree": "aad46b64607742d70bdcb28864ad58c31e07c9ee",
      "parents": [
        "8bbf18d88bdc0db68ff2872b7782c2dcb3cee286"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Jun 02 14:50:39 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Jun 02 14:50:39 2023 +0400"
      },
      "message": "charts qbittorrent\n"
    },
    {
      "commit": "8bbf18d88bdc0db68ff2872b7782c2dcb3cee286",
      "tree": "b0ad62defa21b0ff058cc1a7e5a063b62d66f6c9",
      "parents": [
        "28ad45123bb65b144b7678031c4e38cd5a8be039"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Jun 02 11:44:41 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Jun 02 11:45:21 2023 +0400"
      },
      "message": "vaultwarden\n"
    },
    {
      "commit": "28ad45123bb65b144b7678031c4e38cd5a8be039",
      "tree": "8152404d1b378802f722be8d37afa4dc5f3843b9",
      "parents": [
        "4d2784df122176cb62ba24b7b492749b54a81a71"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Jun 02 11:44:27 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri Jun 02 11:45:16 2023 +0400"
      },
      "message": "pihole\n"
    },
    {
      "commit": "4d2784df122176cb62ba24b7b492749b54a81a71",
      "tree": "a4eede35ea9dd3c0bb9138dd79465d8cba6b80bb",
      "parents": [
        "e390a14fcff1f90ce9cbfe0b8808e51da6955ebd"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Jun 01 14:27:32 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Thu Jun 01 14:27:32 2023 +0400"
      },
      "message": "headscale ingress-private\n"
    },
    {
      "commit": "0c5b8bebda895075dfc6d8ffb2c61329a0438542",
      "tree": "0679732dc42bb39ced1d21cadfb7adbdc55065ac",
      "parents": [
        "5b1e8eef161b57ccb0490836b5d2081d1985735a"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed May 31 14:15:52 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed May 31 14:15:52 2023 +0400"
      },
      "message": "installer: core-auth\n"
    },
    {
      "commit": "5b1e8eef161b57ccb0490836b5d2081d1985735a",
      "tree": "0cb1e0777dd109265a633bb8963e2898430acd85",
      "parents": [
        "a624b8400886d899093c8f8f06ca9da966042e87"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed May 31 14:15:28 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Wed May 31 14:15:28 2023 +0400"
      },
      "message": "appmanager: empty config\n"
    },
    {
      "commit": "8c99d62f9f247075f62cb838a41653fbf8382795",
      "tree": "e8d34b48d14e25338b588569f66452cea56d1a40",
      "parents": [
        "3ca1f3fe3115fefc0dd06e8c2ce06bb37abc9016"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue May 30 14:40:50 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue May 30 14:40:50 2023 +0400"
      },
      "message": "charts: postgresql\n"
    },
    {
      "commit": "3ca1f3fe3115fefc0dd06e8c2ce06bb37abc9016",
      "tree": "d9963043aa5e851f3804ef0cf0a4e3d3c72b80f6",
      "parents": [
        "3a907050027e5d36d6a50539ff8190e70599dcc6"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue May 30 14:33:02 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue May 30 14:34:33 2023 +0400"
      },
      "message": "core-auth\n"
    },
    {
      "commit": "3a907050027e5d36d6a50539ff8190e70599dcc6",
      "tree": "65dbb74dfd2b620508617daf5c3fc9045496c61c",
      "parents": [
        "ce3c64d0af507ba46ef3cda53afc20f0b573838f"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue May 30 13:33:32 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue May 30 13:33:32 2023 +0400"
      },
      "message": "appmanager-api: headscale\n"
    },
    {
      "commit": "ce3c64d0af507ba46ef3cda53afc20f0b573838f",
      "tree": "3a54e29adcb5294379646ed669670cc8df0f463b",
      "parents": [
        "c77ec4286e32e4e9ef16971db802e77a868e4b62"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue May 30 13:28:08 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue May 30 13:28:08 2023 +0400"
      },
      "message": "charts: headscale global/app config\n"
    },
    {
      "commit": "c77ec4286e32e4e9ef16971db802e77a868e4b62",
      "tree": "0fc8185e163a45418825bbd49096b4e7e437a360",
      "parents": [
        "03ee585dc6756729e4543b1cefcc8c6057a800cd"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue May 30 13:21:15 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue May 30 13:21:15 2023 +0400"
      },
      "message": "appmanager-ui: list and install apps\n"
    },
    {
      "commit": "03ee585dc6756729e4543b1cefcc8c6057a800cd",
      "tree": "bc1281a71886ce2c61ca7207a249a3595d41fa57",
      "parents": [
        "7efe22f412bb249bd1f41bdcc758edbd749198c8"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue May 30 13:20:10 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue May 30 13:20:10 2023 +0400"
      },
      "message": "installer-api: include config in app\n"
    },
    {
      "commit": "7efe22f412bb249bd1f41bdcc758edbd749198c8",
      "tree": "93e0846c9814426677787f9d49b7066ab8852ee0",
      "parents": [
        "bd6be7f5122b7158121e9cf79215b78eeaefff17"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue May 30 13:01:53 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Tue May 30 13:01:53 2023 +0400"
      },
      "message": "appmanager-api: render, install\n"
    },
    {
      "commit": "bd6be7f5122b7158121e9cf79215b78eeaefff17",
      "tree": "98c48eccf343193176fe53dec0ec334d338073d8",
      "parents": [
        "677b457f1a09389e54ae3f8ec48ef661cbe07fc4"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri May 26 15:51:28 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri May 26 15:51:28 2023 +0400"
      },
      "message": "installer: appmanager cmd\n"
    },
    {
      "commit": "677b457f1a09389e54ae3f8ec48ef661cbe07fc4",
      "tree": "4f37c48b55b892d0f662fecbc2c47eda0b544b90",
      "parents": [
        "46c627e07ada6d7f4427c160af0632729e935eb9"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri May 26 15:02:37 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri May 26 15:02:37 2023 +0400"
      },
      "message": "fix bootstrap\n"
    },
    {
      "commit": "23ef7f8e2581fd0a6d7e9278691f1a4d865d813f",
      "tree": "99366cfed41973c7d8f6e60aac9423565c6c9b3f",
      "parents": [
        "620caa83cc92b2c9522c4c24167771be7dbbe4e5"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri May 26 11:57:48 2023 +0400"
      },
      "committer": {
        "name": "Giorgi Lekveishvili",
        "email": "lekva@gl-mbp-m1-max.local",
        "time": "Fri May 26 11:57:48 2023 +0400"
      },
      "message": "installer: env and app manager\n"
    },
    {
      "commit": "8aa73e80a629d5047730ff43a204811856f6e33e",
      "tree": "78d6755819f5c490d52991a3a5da9eb733d09d21",
      "parents": [
        "b696f19cfb56615cca89bdcf7c97b27e66bb99f5"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sat Jul 09 11:34:39 2022 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sat Jul 09 11:34:39 2022 +0400"
      },
      "message": "installer: clean up codebase\n\n* introduce helper soft package to work with SoftServe\n* move commands to cmd/\n"
    },
    {
      "commit": "9eacb1aa9c0779fbd1687d0ebb377ec5a141f3cc",
      "tree": "0a683d3b88e466b1c155719173bf10224cf293a2",
      "parents": [
        "875548da4bbb7a1fc0bbdb74e0d8ffd3359457ad"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sat May 21 13:57:19 2022 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sat May 21 13:57:19 2022 +0400"
      },
      "message": "bootstrap: fix service account permission issues\n"
    },
    {
      "commit": "716efb913e77382bc77d80239502f8491673b3ac",
      "tree": "be89bb0fe80647fa5213a7a54990f84c7b5aa8e3",
      "parents": [
        "a5d1eb695b43d1914dbfcf7ba7f53165146e6eb0"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sat May 07 23:08:58 2022 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sat May 07 23:13:47 2022 +0400"
      },
      "message": "core-installer: bootstrap logic\n\nInstalls soft-serve git server and fluxcd.\nFluxcd stores all system resource configurations on soft-serve.\n"
    },
    {
      "commit": "ef76a3e49aa32b4da9387d7c6eb417ff656a58f4",
      "tree": "c8ab4da0129d3cfb2aa2040b6f7b372074849275",
      "parents": [
        "6bb21c22dfa2d271b79b8c1253cdf90607cb24d3"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Mon Jan 10 12:22:28 2022 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Mon Jan 10 12:22:28 2022 +0400"
      },
      "message": "apps: qbittorrent + jellyfin\n"
    },
    {
      "commit": "6bb21c22dfa2d271b79b8c1253cdf90607cb24d3",
      "tree": "e62b3488968b682b7acf1b27912289a9a2a7e2fd",
      "parents": [
        "7ef25e7c99ae1a2087d4b1aca3d6d086e519f1f0"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 29 21:31:08 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 29 21:31:08 2021 +0400"
      },
      "message": "VPN: move certificate signing logit to api service to which controller delegates ops\n"
    },
    {
      "commit": "050609f66431dba5a0f8bdc53bced2e10c96ff12",
      "tree": "37732e563792d710be32f27f726ed928ccd95ade",
      "parents": [
        "08531a4f9f63ae422921a5543074c35754b7afe8"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 29 15:51:40 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 29 15:51:40 2021 +0400"
      },
      "message": "installer cmd line tool\n"
    },
    {
      "commit": "08531a4f9f63ae422921a5543074c35754b7afe8",
      "tree": "a8d865c53e4d87ef98d36ee0c266bf02f9433d6b",
      "parents": [
        "3f0dcdad1a9dcb594c8e2e186e32b941fba97a7c"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Mon Dec 27 17:52:28 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Mon Dec 27 17:52:28 2021 +0400"
      },
      "message": "rm android\n"
    },
    {
      "commit": "3f0dcdad1a9dcb594c8e2e186e32b941fba97a7c",
      "tree": "323dcd104ee8af8a23b795bfc6e6609086074537",
      "parents": [
        "1026d2d879f25afeaf12d28657ce0f36c1e680e9"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 22 23:32:49 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 22 23:32:49 2021 +0400"
      },
      "message": "vpn client + api: add feature to approve one device from another\n"
    },
    {
      "commit": "1026d2d879f25afeaf12d28657ce0f36c1e680e9",
      "tree": "7143024ee8b2212d5b5d8a336408c8f9b3590faa",
      "parents": [
        "8d6a0ca8059490666da2156f3d8406c926bd2f1a"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun Dec 19 19:09:15 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun Dec 19 19:09:15 2021 +0400"
      },
      "message": "vpn client: use device hostname\n"
    },
    {
      "commit": "8d6a0ca8059490666da2156f3d8406c926bd2f1a",
      "tree": "b70ac37be3c1c55e4c9dfd3f8e5e633b06058903",
      "parents": [
        "96202c5d06dda85ff0f243681d00be8459a7ed9a"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun Dec 19 17:42:25 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun Dec 19 17:42:25 2021 +0400"
      },
      "message": "client-android: store network config as app prefs\n"
    },
    {
      "commit": "96202c5d06dda85ff0f243681d00be8459a7ed9a",
      "tree": "f6af7946b24791397b0dea873b01f34c0b457398",
      "parents": [
        "52da88adc600fdea6a73f30bb02f07253af9262f"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sat Dec 18 12:45:34 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sat Dec 18 12:45:34 2021 +0400"
      },
      "message": "client app: use actual buttons\n"
    },
    {
      "commit": "52da88adc600fdea6a73f30bb02f07253af9262f",
      "tree": "4211a1be2271b319e589950cd18ad6172e40d63d",
      "parents": [
        "cc3ebcb0578941ce614d9459e784e88f399c0b9d"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri Dec 17 18:08:25 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri Dec 17 18:08:25 2021 +0400"
      },
      "message": "VPN client: start Nebula controller locally\n"
    },
    {
      "commit": "cc3ebcb0578941ce614d9459e784e88f399c0b9d",
      "tree": "5a19f7ff69ab39b5f26740d2f87601eadcb0ee3f",
      "parents": [
        "90c2003eaedcad4eb675c2e25d54a6fd82615627"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri Dec 17 10:52:17 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri Dec 17 10:52:17 2021 +0400"
      },
      "message": "VPN: API server returnes config template while client app merges private key into it\n"
    },
    {
      "commit": "90c2003eaedcad4eb675c2e25d54a6fd82615627",
      "tree": "747cf3d26bc4c85acbe4189b01e15d7adee85c9d",
      "parents": [
        "f58a76906588162b976fdf0a16064e3d5f55da11"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 15 18:06:20 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 15 18:06:20 2021 +0400"
      },
      "message": "rm build targets\n"
    },
    {
      "commit": "f58a76906588162b976fdf0a16064e3d5f55da11",
      "tree": "4dff0e118826df0774c47e27dda7a16ee9f9ff3e",
      "parents": [
        "313ee2b1737d155125aeab2d5d27c3d640372c29"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 15 18:05:39 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 15 18:05:39 2021 +0400"
      },
      "message": "Client: send join request with signed message to verify validity\n"
    },
    {
      "commit": "313ee2b1737d155125aeab2d5d27c3d640372c29",
      "tree": "8cd6b2e633b16946d7e26df6b4eb9b2a460642b5",
      "parents": [
        "b64297c85b54526cf44da8af7d1fc5409babbe2f"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 15 15:17:29 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 15 15:17:29 2021 +0400"
      },
      "message": "Client: cross-platform app (tested on OSX and Android)\n"
    },
    {
      "commit": "b64297c85b54526cf44da8af7d1fc5409babbe2f",
      "tree": "1678dbddbee9f1d2a1b49386263451c73f0f69ea",
      "parents": [
        "2cacf45265777462ad8cbb8234a5f648d8d06af5"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Mon Dec 13 14:36:32 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Mon Dec 13 14:36:32 2021 +0400"
      },
      "message": "Basic implementation of client: render qa code and scan from mobile app\n"
    },
    {
      "commit": "2cacf45265777462ad8cbb8234a5f648d8d06af5",
      "tree": "ab0d15756214689b5cfb7a1965d9c60eff5c054c",
      "parents": [
        "c054df13a2a16ad16021200cb5fd10635735f52c"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Thu Dec 09 19:06:17 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Thu Dec 09 19:06:17 2021 +0400"
      },
      "message": "nebula api\n"
    },
    {
      "commit": "c6859b05f2d90a36393d2852f0bcf61d8cdd5890",
      "tree": "789107acb02dc995f6467436e2f6190a3349c8c5",
      "parents": [
        "4db32e18397487fe6dbd6e61b86efe0d8c8af0e8"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Thu Dec 09 18:40:51 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Thu Dec 09 18:40:51 2021 +0400"
      },
      "message": "Nebula: separate controller from api\n"
    },
    {
      "commit": "4db32e18397487fe6dbd6e61b86efe0d8c8af0e8",
      "tree": "90a0eef396b9087f095c67e3019b37ec68fdbf69",
      "parents": [
        "34eef552340692317c63dacc66c73e1c7066ceac"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Thu Dec 09 18:17:40 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Thu Dec 09 18:17:40 2021 +0400"
      },
      "message": "rm old nebula dir\n"
    },
    {
      "commit": "6f3e233c7121388e7dff3700f9aaf9d20e302b01",
      "tree": "1a02d6daefaeb7ad1ef71a02bf97ca5fa01578ad",
      "parents": [
        "704bfd9e58a16d97f821857f95d1db55ac5b2a40"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sat Dec 04 19:42:13 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sat Dec 04 19:42:13 2021 +0400"
      },
      "message": "Build multi-arch container images across stack\n"
    },
    {
      "commit": "7fc15e7f3ceb8abd9da1f0baf433c362ce029fdf",
      "tree": "af33c478c1ac889787c28c60ff30d132f02af26d",
      "parents": [
        "26a96815245899b58f51679b99e55d739dc6e873"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri Dec 03 15:54:42 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri Dec 03 15:54:42 2021 +0400"
      },
      "message": "Installer: make vpn ip configurable\n"
    },
    {
      "commit": "7e73ba7b0734c3651a46f285018dc2bd53fc9201",
      "tree": "7f87c818fa1683ced994f4dc355d309fb5134953",
      "parents": [
        "f1c350311ff0af0d09c9a0a75cdedd6dc6463f56"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri Dec 03 13:14:20 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri Dec 03 13:14:20 2021 +0400"
      },
      "message": "Installer: nebula controller\n"
    },
    {
      "commit": "4703175dcdf67dbdc3adcd6253efc741fed9b4fb",
      "tree": "c170708f9de074a7b187276e79133ca68f2adc98",
      "parents": [
        "5f2b91ca0e6d9de94997bfedd7e430d7d6eadd6d"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri Nov 12 14:34:33 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri Nov 12 14:34:33 2021 +0400"
      },
      "message": "Auth: prettier ui\n"
    },
    {
      "commit": "01a6b79754ecc66b1c76d5a9836d85724d9a50f2",
      "tree": "dc571ca8d829a1d81620252ce8f7f9ad56d9d225",
      "parents": [
        "9cdcc046dc2252a2e9b09f38476895d22dcadb5f"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Thu Nov 11 19:01:17 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Thu Nov 11 19:01:17 2021 +0400"
      },
      "message": "Installer: migrate internal services to *.p.{domain}\n"
    },
    {
      "commit": "95340e88088a9d27c1af1202cc019cb25a23cfa4",
      "tree": "5f8cd29ea8bfdf90f37a4f966bef6fa2b5bd112f",
      "parents": [
        "d9d85130a2c410d1afcc1552bb3048f7554f3d24"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Mon Nov 08 21:36:55 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Mon Nov 08 21:36:55 2021 +0400"
      },
      "message": "Installer: matrix with hydra maester to auto-register oauth2 client\n"
    },
    {
      "commit": "d9d85130a2c410d1afcc1552bb3048f7554f3d24",
      "tree": "80639b3209215130091d3688aa94d0d3b732e204",
      "parents": [
        "dd750802fc0efc8f0d799f3ab966f8f954a51a76"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun Nov 07 14:18:46 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun Nov 07 14:18:46 2021 +0400"
      },
      "message": "Installer: vaultwarden\n"
    },
    {
      "commit": "dd750802fc0efc8f0d799f3ab966f8f954a51a76",
      "tree": "992fd5504805c895b61c7d733599fbd7f0acb03a",
      "parents": [
        "f15d5a342e8c6a101f05392365164c5afefd811e"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun Nov 07 13:24:21 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun Nov 07 13:24:21 2021 +0400"
      },
      "message": "Installer: core auth services\n"
    },
    {
      "commit": "788dc6eaff422ebf660a76bb1d384015931b7e8f",
      "tree": "0f2cf93ceffa8af92bb1fb100eec4d9a98002b80",
      "parents": [
        "c4e512fc30b4c2067fd4bacae882d9171936d2c8"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Mon Oct 25 20:40:53 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Mon Oct 25 20:40:53 2021 +0400"
      },
      "message": "Auth: implement consent logic\n"
    },
    {
      "commit": "eb590282e20f318678c4d527e4234e871122ef61",
      "tree": "6b0e0de955d5608defeeb00961387624eee6a3ed",
      "parents": [
        "603e73ad0d4a919b989f3affae761611e215a404"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri Oct 22 17:31:40 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri Oct 22 17:31:40 2021 +0400"
      },
      "message": "Auth: hydra deployment + basic integration with kratos/auth-ui flow\n"
    },
    {
      "commit": "603e73ad0d4a919b989f3affae761611e215a404",
      "tree": "6614b0633e9c01d37e54ad4dd78775ec05903078",
      "parents": [
        "7032d3c7941ba15908f9f9dd784743a7c51a7b96"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri Oct 22 14:46:45 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri Oct 22 14:46:45 2021 +0400"
      },
      "message": "Auth: registration/login/logout/whoami\n"
    },
    {
      "commit": "7032d3c7941ba15908f9f9dd784743a7c51a7b96",
      "tree": "fab512f2629f1093fae47d7fe04e54d822b40435",
      "parents": [
        "4c2413b474a4222f49e443d55fa0412c894dcb9b"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri Oct 22 14:46:31 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri Oct 22 14:46:31 2021 +0400"
      },
      "message": "Auth: ory/kratos deployment\n"
    },
    {
      "commit": "292993080b6025696ec5fac001acd04c24d928ce",
      "tree": "98cb86281d6fdf56262ab59345ddcf9c2a7808bd",
      "parents": [
        "1075b46e0aa19799501f8763f19a753b632c1da5"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Oct 20 12:26:29 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Oct 20 12:26:29 2021 +0400"
      },
      "message": "VPN: orginize nebula code\n"
    },
    {
      "commit": "4b2934b91d9422a23264e2f8248afdbbad1749e4",
      "tree": "0f6048874e82b709e17d71dc03c8bb47251f58fa",
      "parents": [
        "86980ef8dcff552151e5d75026ef7b87223ef021"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri Oct 08 19:37:12 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri Oct 08 19:37:12 2021 +0400"
      },
      "message": "nebula management web interface\n"
    },
    {
      "commit": "695960b363e5cb5351e61969daf2ba5e48a72b89",
      "tree": "a89fefbcc31dc3ce5d5c81108d4c16a10446ef94",
      "parents": [
        "5ebab80b91aadde7c02584be8a5fb6da0958fe4a"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Thu Oct 07 22:00:29 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Thu Oct 07 22:00:29 2021 +0400"
      },
      "message": "CAController -\u003e NebulaController\n"
    },
    {
      "commit": "5ebab80b91aadde7c02584be8a5fb6da0958fe4a",
      "tree": "bc27e30e733813a66207cc737a0c0a6020c5d05d",
      "parents": [
        "96755fa5aecb45df50f13e1648c2a5882e1064a8"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Thu Oct 07 21:50:34 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Thu Oct 07 21:50:34 2021 +0400"
      },
      "message": "process nodes\n"
    },
    {
      "commit": "96755fa5aecb45df50f13e1648c2a5882e1064a8",
      "tree": "5e9cfbb9c06250e45d08e2ec376054e0d7e6e59c",
      "parents": [
        "e4f767b63071d41f5c0e04d671a2a37d39ab8f8f"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Oct 06 21:00:00 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Oct 06 21:00:00 2021 +0400"
      },
      "message": "nebula ca controller\n"
    },
    {
      "commit": "2a088e2f2058e5bbc53ac8fa8a743f8342e46747",
      "tree": "666f55deb4c30e1398f25f270d9807e423bacd4e",
      "parents": [
        "ea7ac41f0463c0f2722ed2fb0a038b7bd2ba4eba"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun Aug 01 14:20:25 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun Aug 01 14:22:51 2021 +0400"
      },
      "message": "VPN: update to Tailscale v1.12.1\n"
    },
    {
      "commit": "02015765e648d10fb9531af4c0c81513d3ae49cf",
      "tree": "5f2a82b8fa9206b24b0e4cd565943bf3f36f972c",
      "parents": [
        "f286004ea6a7e601db94090cadce134f3a91de93"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun Jun 20 14:38:28 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun Jun 20 14:38:28 2021 +0400"
      },
      "message": "handle errors\n"
    },
    {
      "commit": "f286004ea6a7e601db94090cadce134f3a91de93",
      "tree": "6e0aacd777dd0b21ca6f4515d6c6bcee21edbe47",
      "parents": [
        "a748ff9c2405f52ec70e279523e209904e352fb8",
        "6e510fc105b6e3aabb2f657ec98ec8a8120831b0"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun Jun 20 14:37:04 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun Jun 20 14:37:04 2021 +0400"
      },
      "message": "merge\n"
    },
    {
      "commit": "c2825e2d6f4ada7799bbae5afdf69c6fc2c58ca1",
      "tree": "555e50d5af3ef3a9045395f35c9b4be503fdeaaf",
      "parents": [
        "001770e8e0a194439c211d03253660a928de8060",
        "93c6aa53cbc93ae3f9d57ac048af8df515d768b8"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri May 14 21:58:28 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri May 14 21:58:28 2021 +0400"
      },
      "message": "Merge branch \u0027vpn\u0027 of github.com-giolekva:giolekva/pcloud into vpn\n"
    },
    {
      "commit": "001770e8e0a194439c211d03253660a928de8060",
      "tree": "9816c2a663e7e002ff011c5f9e2ac181bb0d3456",
      "parents": [
        "4c6114a7b5c126a2ed0b2bb7010105c2f0f0a9e7"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri May 14 21:57:17 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Fri May 14 21:57:17 2021 +0400"
      },
      "message": "Improve error reporting\n"
    },
    {
      "commit": "93c6aa53cbc93ae3f9d57ac048af8df515d768b8",
      "tree": "e701e4d3d08b01e38ee8232fa4706c4cfb2676eb",
      "parents": [
        "4c6114a7b5c126a2ed0b2bb7010105c2f0f0a9e7"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Sun May 09 12:59:09 2021 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 09 12:59:09 2021 +0400"
      },
      "message": "s/give/a given/\n\nCo-authored-by: Shota Gvinepadze \u003cwineson@gmail.com\u003e"
    },
    {
      "commit": "a748ff9c2405f52ec70e279523e209904e352fb8",
      "tree": "2220e605b24843281679d800834b9d9c20c0f96b",
      "parents": [
        "c643949e5a47087554ee22a4123e061d244879d5"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun May 02 22:00:34 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun May 02 22:00:34 2021 +0400"
      },
      "message": "Fix Manager.RegisterDevice return type\n"
    },
    {
      "commit": "c643949e5a47087554ee22a4123e061d244879d5",
      "tree": "728a9259e52ba5b683dc3315ea69d83f97a58a28",
      "parents": [
        "66e2efa759069448c5848d48846dfbfbb18c8045",
        "4c6114a7b5c126a2ed0b2bb7010105c2f0f0a9e7"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun May 02 20:49:39 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun May 02 20:49:39 2021 +0400"
      },
      "message": "merge with vpn branch which fixes RegisterDevice method signature\n"
    },
    {
      "commit": "4c6114a7b5c126a2ed0b2bb7010105c2f0f0a9e7",
      "tree": "011f3a5aacc61f50cdb1257c9091dbd2a5c7bfad",
      "parents": [
        "d12813b75bc24650a02cb6f374223a9f4e1f1ab6"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun May 02 20:46:57 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sun May 02 20:46:57 2021 +0400"
      },
      "message": "Fix RegisterDevice signature\n"
    },
    {
      "commit": "66e2efa759069448c5848d48846dfbfbb18c8045",
      "tree": "b7a936c748d4a478f05d96eb45fd68210036e7b8",
      "parents": [
        "d12813b75bc24650a02cb6f374223a9f4e1f1ab6"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sat May 01 23:58:58 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sat May 01 23:58:58 2021 +0400"
      },
      "message": "Introduce notion of device groups\n"
    },
    {
      "commit": "d12813b75bc24650a02cb6f374223a9f4e1f1ab6",
      "tree": "82c4df4cf6f62d7f498cfadbcb68cea974d0d2d4",
      "parents": [
        "d54adfa95101f07b7a5c0503fa9c06a2292f28ab"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sat May 01 19:58:44 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Sat May 01 19:58:44 2021 +0400"
      },
      "message": "Basic in memory implementation of network Manager\n"
    },
    {
      "commit": "d54adfa95101f07b7a5c0503fa9c06a2292f28ab",
      "tree": "55b977478a95389c8171fbf0ee5da1e26e82ea93",
      "parents": [
        "0ceb2cf0e74a28d6d75ee0c262f15770a310e9ce",
        "493dd48d28a16bf5abd11f0ab55a1020764f994f"
      ],
      "author": {
        "name": "Shota Gvinepadze",
        "email": "wineson@gmail.com",
        "time": "Thu Apr 15 00:42:26 2021 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 15 00:42:26 2021 +0400"
      },
      "message": "Merge pull request #50 from giolekva/rest_user_service\n\nAdd rest router"
    },
    {
      "commit": "493dd48d28a16bf5abd11f0ab55a1020764f994f",
      "tree": "8d6bc2b3bf04baedd4d060ff9f6bb74898ae4b62",
      "parents": [
        "8e28a6a3809c592b3d4fd7fb6ac29e9d1eb608ef"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Fri Apr 02 00:07:51 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Fri Apr 02 00:07:51 2021 +0400"
      },
      "message": "Move password hashing in handler\n"
    },
    {
      "commit": "0ceb2cf0e74a28d6d75ee0c262f15770a310e9ce",
      "tree": "a3dd7b65b93c4435381e990dd5b627c9523ec090",
      "parents": [
        "52faff5c7c6a90be6237dc5aadeb0c9f9f22f79d",
        "ad66e52e3cc41033c65aa0256ede092677bf335f"
      ],
      "author": {
        "name": "Giorgi Lekveishvili",
        "email": "giolekva@gmail.com",
        "time": "Thu Apr 01 11:47:48 2021 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 01 11:47:48 2021 +0400"
      },
      "message": "Merge pull request #48 from giolekva/rm-bazel\n\nRemove Bazel build files"
    },
    {
      "commit": "8e28a6a3809c592b3d4fd7fb6ac29e9d1eb608ef",
      "tree": "13054106b0be43440bbe78707ce54389ea6b365f",
      "parents": [
        "5c377be486cb6749a1c3a1bcbc939a087a1eac81"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Mon Mar 29 00:42:47 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Mon Mar 29 00:42:47 2021 +0400"
      },
      "message": "Add logger middleware\n"
    },
    {
      "commit": "5c377be486cb6749a1c3a1bcbc939a087a1eac81",
      "tree": "cda266074b3c3e2eafa524a52bbc9c6e0a167f2e",
      "parents": [
        "352127d8f9731dd37244efbb369e7fdd5102f37e"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Fri Mar 26 20:39:28 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Fri Mar 26 20:39:28 2021 +0400"
      },
      "message": "Add get users rest endpoint\n"
    },
    {
      "commit": "352127d8f9731dd37244efbb369e7fdd5102f37e",
      "tree": "f4730932eb71b0b5185a13b62d311da3827f9628",
      "parents": [
        "a19d479840b9171d065345e39b3542a2ee5bc184"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Fri Mar 26 20:10:32 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Fri Mar 26 20:10:32 2021 +0400"
      },
      "message": "Add create user rest endpoint\n"
    },
    {
      "commit": "a19d479840b9171d065345e39b3542a2ee5bc184",
      "tree": "91c92542d621628c788fb2290b18c0c8469ee6ad",
      "parents": [
        "5e0dc119c8ec2f002854f188f5fbc359836e2eea"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Fri Mar 26 00:27:25 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Fri Mar 26 00:27:25 2021 +0400"
      },
      "message": "Add get user resp api endpoint\n"
    },
    {
      "commit": "5e0dc119c8ec2f002854f188f5fbc359836e2eea",
      "tree": "031327177a5bc7807b20638d08c519728e7cc54b",
      "parents": [
        "a946a605a74c28c865d7d5d76ac51c62fcd8d168"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Thu Mar 25 20:49:55 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Thu Mar 25 20:49:55 2021 +0400"
      },
      "message": "Add rest router\n"
    },
    {
      "commit": "838bd5cf3eeff5b7149d58240b0989a98d140305",
      "tree": "bad7a95318d6f6d1e19a83ef44c95bcac0147a75",
      "parents": [
        "a946a605a74c28c865d7d5d76ac51c62fcd8d168"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Sun Mar 21 15:37:03 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Sun Mar 21 15:37:03 2021 +0400"
      },
      "message": "Add linter\n"
    },
    {
      "commit": "a946a605a74c28c865d7d5d76ac51c62fcd8d168",
      "tree": "c3707ad5e506107e5e65bdec77011095e0bd4c3c",
      "parents": [
        "a11e760201b458ba16b1962b1bcd2dedc1f93260",
        "8fbe4a9ab3192eb0d24f77b4793f7b13896666fd"
      ],
      "author": {
        "name": "Shota Gvinepadze",
        "email": "wineson@gmail.com",
        "time": "Sat Mar 20 23:42:03 2021 +0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 20 23:42:03 2021 +0400"
      },
      "message": "Merge pull request #45 from giolekva/rpc_user_service\n\ngRPC user service"
    },
    {
      "commit": "8fbe4a9ab3192eb0d24f77b4793f7b13896666fd",
      "tree": "5ffd06d1a783072944e13713a59fedb86d0cd257",
      "parents": [
        "3b0b951a4556cdfef0e34129ae875d354cf91361"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Sat Mar 20 23:41:52 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Sat Mar 20 23:41:52 2021 +0400"
      },
      "message": "Remove empty line\n"
    },
    {
      "commit": "ad66e52e3cc41033c65aa0256ede092677bf335f",
      "tree": "2640b74af5f87ad8c82fe00f76a3fe37cc629d81",
      "parents": [
        "a11e760201b458ba16b1962b1bcd2dedc1f93260"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Mon Mar 15 20:55:37 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Mon Mar 15 20:55:37 2021 +0400"
      },
      "message": "rm Bazel\n"
    },
    {
      "commit": "98a695debba0927808c7c10c1c56e4cfb4a83701",
      "tree": "e5b5cda931b805bd8e902559d7b8642f2d7145a1",
      "parents": [
        "3c0e182823aae297f0e1737473cb7683dca53b50"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Mon Mar 15 12:43:20 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Mon Mar 15 12:43:20 2021 +0400"
      },
      "message": "Remove debug Println and improve local node naming\n"
    },
    {
      "commit": "3b0b951a4556cdfef0e34129ae875d354cf91361",
      "tree": "e7dfe3d3a3603b325f28a9317152fd4d6ea4e4e2",
      "parents": [
        "cf79560f2cc4d872011195f44528afd57181404f"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Mon Mar 15 00:13:06 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Mon Mar 15 00:13:06 2021 +0400"
      },
      "message": "Switch to common interfacaes\n"
    },
    {
      "commit": "3c0e182823aae297f0e1737473cb7683dca53b50",
      "tree": "4fb71827b2d21858190360dd1bd64ceec37858fd",
      "parents": [
        "0dc6d3218db782f759a60de5a5d7500effef4c23"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Mon Mar 15 00:08:44 2021 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Mon Mar 15 00:08:44 2021 +0400"
      },
      "message": "Engine interface with Wireguard specific implementation.\n"
    },
    {
      "commit": "cf79560f2cc4d872011195f44528afd57181404f",
      "tree": "1369ce9745e72c0eb563dbcbb14fcc4f8dcdf5ff",
      "parents": [
        "6c26421feddc59998eb6dd55e3562c7a56d78f14"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Sun Mar 07 23:14:15 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Sun Mar 07 23:16:58 2021 +0400"
      },
      "message": "Add e2e test\n"
    },
    {
      "commit": "6c26421feddc59998eb6dd55e3562c7a56d78f14",
      "tree": "150c22efa4a579f784d2579adda8d24928f04237",
      "parents": [
        "07334d264127a6d54fc097d50ce787eab3a2fee7"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Sun Mar 07 17:54:04 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Sun Mar 07 17:54:04 2021 +0400"
      },
      "message": "Address review suggestions\n"
    },
    {
      "commit": "07334d264127a6d54fc097d50ce787eab3a2fee7",
      "tree": "e39c76983124d80ba1ce68dd4c5b81019488be34",
      "parents": [
        "3e1576e8ef86f17ad87e4fcdc7d1323a8dc99c14"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Wed Feb 24 01:08:40 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Wed Feb 24 01:08:40 2021 +0400"
      },
      "message": "Add memory store\n"
    },
    {
      "commit": "3e1576e8ef86f17ad87e4fcdc7d1323a8dc99c14",
      "tree": "1432a6afa9ebc40a42104d1b99d9a7562184de1f",
      "parents": [
        "650caf983156836302a20eed7c13f8077a8053c3"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Tue Feb 23 01:27:56 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Tue Feb 23 01:27:56 2021 +0400"
      },
      "message": "Add gRPC user service\n"
    },
    {
      "commit": "c0479a64e888eae438929011a9ec46456a37602c",
      "tree": "9421e4753ed73e3b8d4a12522adc608b4dbc8049",
      "parents": [
        "b892d07418064b0d728f4450062a7e7089652ca5"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Mon Feb 22 20:08:36 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Mon Feb 22 20:08:36 2021 +0400"
      },
      "message": "Apply review suggestions\n"
    },
    {
      "commit": "b892d07418064b0d728f4450062a7e7089652ca5",
      "tree": "7b16428e68b3826ae063bad43c723edd6e65c856",
      "parents": [
        "db170e12494fa27adc74c8dd99621ae0c89d66f9"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Mon Feb 22 00:23:16 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Mon Feb 22 00:23:16 2021 +0400"
      },
      "message": "Add http server\n"
    },
    {
      "commit": "db170e12494fa27adc74c8dd99621ae0c89d66f9",
      "tree": "4d2f5c5f56a02d69173ccf096e32d3bdf9a2eac0",
      "parents": [
        "3bc0b9a6195d8d03a7915477cd589892555cc8b0"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Sun Feb 21 23:06:20 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Sun Feb 21 23:06:20 2021 +0400"
      },
      "message": "Add ability to have several servers\n"
    },
    {
      "commit": "d32f9ee002e7d9def962591da75760bacb72c75e",
      "tree": "dcfeaecd93fafb62552573c4108c6a15d558aef1",
      "parents": [
        "90c6a3bb26cad7a4b27a8f0d17b3102435a5f18f"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Sun Feb 21 21:28:50 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Sun Feb 21 21:28:50 2021 +0400"
      },
      "message": "Review suggestions\n"
    },
    {
      "commit": "90c6a3bb26cad7a4b27a8f0d17b3102435a5f18f",
      "tree": "f91453d623accc01b85b5caecdb89e57befa1e75",
      "parents": [
        "c6abf5b240524178ff01e0dd96476d35ff9c3fb7",
        "6e8feb7903d1772eec0a12bb5fa24eb46fb67328"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Fri Feb 19 15:13:03 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Fri Feb 19 15:13:03 2021 +0400"
      },
      "message": "Merge branch \u0027initial_sqlstore\u0027 into dummy_server\n"
    },
    {
      "commit": "6e8feb7903d1772eec0a12bb5fa24eb46fb67328",
      "tree": "93c72667c904326a2ee65378a9223076675fbe25",
      "parents": [
        "0e4c64645d0d88b0707f1a1f7c873387980a4836"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Fri Feb 19 15:08:40 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Fri Feb 19 15:08:40 2021 +0400"
      },
      "message": "Get rid of email and names\n"
    },
    {
      "commit": "c6abf5b240524178ff01e0dd96476d35ff9c3fb7",
      "tree": "0b889f53dcf9a4f713c0673774afc15293083ed3",
      "parents": [
        "0e4c64645d0d88b0707f1a1f7c873387980a4836"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Fri Feb 19 14:48:03 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Fri Feb 19 14:48:03 2021 +0400"
      },
      "message": "Add dummy server\n"
    },
    {
      "commit": "0e4c64645d0d88b0707f1a1f7c873387980a4836",
      "tree": "f85f98b5a169fc7388320fb9938466cb0c11ba70",
      "parents": [
        "48c837eba4f50c1fdd84e53cfd67e272099a4b0c"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Fri Feb 19 01:21:12 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Fri Feb 19 01:21:12 2021 +0400"
      },
      "message": "do mod tidy\n"
    },
    {
      "commit": "48c837eba4f50c1fdd84e53cfd67e272099a4b0c",
      "tree": "a188511ec0df9bcdc07e826785c70d03d3d628ee",
      "parents": [
        "9c71a6417d6a917097443eb679b7ac01277e4506"
      ],
      "author": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Fri Feb 19 01:17:07 2021 +0400"
      },
      "committer": {
        "name": "iomodo",
        "email": "wineson@gmail.com",
        "time": "Fri Feb 19 01:17:07 2021 +0400"
      },
      "message": "Add initial implementation of the UserStore\n"
    },
    {
      "commit": "0c083378565b735194f2e4f6fe114edae5f3be48",
      "tree": "35cf4a07833b6fae1957782fe7fda54f82417f07",
      "parents": [
        "e5221bcccd21dbd9b8bfb03520da28b6b5e60dfd"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 16 14:54:27 2020 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 16 14:54:27 2020 +0400"
      },
      "message": "buildify all bazel files\n"
    },
    {
      "commit": "1d80649180095642cd9da5ba8c41859afb05ae60",
      "tree": "54e8fa8a120508bde514bfff00008e46f5230061",
      "parents": [
        "6324b3c569c6a51523fb3042f59a349c0a74927f"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 16 14:13:38 2020 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 16 14:13:38 2020 +0400"
      },
      "message": "Simplify installation scripts and update dev.md with instructions of how to use them\n"
    },
    {
      "commit": "608664db22ea933402837ca90fd4f736b2adad43",
      "tree": "57c302cf7126d7e4c181bcde617e21d7a7c04399",
      "parents": [
        "bc79b678a8fbb5bab34f393c353ee3f4e15a291b"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 16 11:50:21 2020 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 16 11:50:21 2020 +0400"
      },
      "message": "controller: move to core/api\n"
    },
    {
      "commit": "bc79b678a8fbb5bab34f393c353ee3f4e15a291b",
      "tree": "e9a3f283d8af853ea086078bf6850b9f67e519df",
      "parents": [
        "9fb5b0abeba887fe3466f925270cf736eede9f60"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 16 11:47:44 2020 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 16 11:47:44 2020 +0400"
      },
      "message": "events: move to core/events\n"
    },
    {
      "commit": "9fb5b0abeba887fe3466f925270cf736eede9f60",
      "tree": "59c4fc510b3ff24943e376d3261bc660678557f5",
      "parents": [
        "b9a4de291a9a4801457d4db12f4bb6f1a8d80aa6"
      ],
      "author": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 16 11:43:46 2020 +0400"
      },
      "committer": {
        "name": "giolekva",
        "email": "giolekva@gmail.com",
        "time": "Wed Dec 16 11:43:46 2020 +0400"
      },
      "message": "appmanager: move to core/appmanager\n"
    }
  ]
}
