)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4042c7bdcfafdf15cdc1463557d20a89b0bca7e1",
      "old_mode": 33188,
      "old_path": "core/auth/memberships/.gitignore",
      "new_id": "6ce208d67e0a302b30029bd5aeef41332df893d4",
      "new_mode": 33188,
      "new_path": "core/auth/memberships/.gitignore"
    },
    {
      "type": "modify",
      "old_id": "d846cd4607bc9ac4c1fbb52c05485097d8ccd478",
      "old_mode": 33188,
      "old_path": "core/auth/memberships/Makefile",
      "new_id": "1defe7d228950154b36ff9bd9e8e8a2d4dfa7dd8",
      "new_mode": 33188,
      "new_path": "core/auth/memberships/Makefile"
    },
    {
      "type": "modify",
      "old_id": "979777f4c3e1426455c967d1d479c23dd6bd42b8",
      "old_mode": 33188,
      "old_path": "core/auth/memberships/group.html",
      "new_id": "ac432d885983479c37168a67c2b767625cde9a2c",
      "new_mode": 33188,
      "new_path": "core/auth/memberships/group.html"
    },
    {
      "type": "modify",
      "old_id": "f78ae1dc972b50005c5bde35660718cbff91ed71",
      "old_mode": 33188,
      "old_path": "core/auth/memberships/index.html",
      "new_id": "03ee299427b51d006214c4107f33e56f7df488f9",
      "new_mode": 33188,
      "new_path": "core/auth/memberships/index.html"
    },
    {
      "type": "modify",
      "old_id": "0c1d104e2f5ebfea5a56de989f3a6af4373008fb",
      "old_mode": 33188,
      "old_path": "core/auth/memberships/main.go",
      "new_id": "4b641409c62df180470c08c9c44b25e3f0a4a589",
      "new_mode": 33188,
      "new_path": "core/auth/memberships/main.go"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "eb774ccb6e4e5e76d00cf4da4245e21ba432a7f0",
      "new_mode": 33188,
      "new_path": "core/auth/memberships/store_test.go"
    }
  ]
}
