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