)]}'
{
  "commit": "812ab6255e73e9053241fe85a116b6d5a73cd864",
  "tree": "ed3a8333a3135055b58dc1d2daffff620b90ea21",
  "parents": [
    "c438c579480502708b77d6a9e38833f52232aec9"
  ],
  "author": {
    "name": "Luca Milanesio",
    "email": "luca.milanesio@gmail.com",
    "time": "Thu Nov 09 00:58:44 2023 +0000"
  },
  "committer": {
    "name": "Luca Milanesio",
    "email": "luca.milanesio@gmail.com",
    "time": "Thu Nov 09 19:00:29 2023 +0000"
  },
  "message": "Refresh GitHub groups upon Gerrit successful login\n\nGitHub groups are cached and persisted on disk, for preventing\nGitHub outages to impact Gerrit Code Review. The persistent cache may\nhowever cause security and inconsistency issues with the original\ncopy of the groups and memebership on GitHub.\n\nMake sure that groups are refreshed every time a user is logging\non Gerrit Code Review UI successfully.\n\nNOTE: Git/HTTP is excluded because it could lead to bursts of\nGitHub APIs that could exhaust the user\u0027s allowance.\n\nBecause of the lack of login notification from Gerrit, the solution\nneeds to be based on the presence of the Set-Cookie header in\nthe HTTP response, hence the group refresh needs to use a\nServletFilter that is invoked for every request heading to Gerrit.\n\nBug: Issue 308979847\nChange-Id: Ie5d012fb7c34e3edbb5576b53de32fd5b140ec17\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "661b0bf927d92321871f49d6712999e76785e812",
      "old_mode": 33188,
      "old_path": "github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/GuiceHttpModule.java",
      "new_id": "ef241915c41d297e259c2a23e12bea25ccbb7b5e",
      "new_mode": 33188,
      "new_path": "github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/GuiceHttpModule.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "eb34962b0cd270dc5740fd0be81c74bf2451384a",
      "new_mode": 33188,
      "new_path": "github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/filters/GitHubGroupCacheRefreshFilter.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "028aa6b0fa22c48455a1c2da21b8188e1d84c62f",
      "new_mode": 33188,
      "new_path": "github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/group/CurrentUsernameProvider.java"
    },
    {
      "type": "modify",
      "old_id": "3504f2c4d7c4a48102a6e7e11d00718ec1567696",
      "old_mode": 33188,
      "old_path": "github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/group/GitHubGroupsCache.java",
      "new_id": "a5301e9fc8146bb56a7699ef206ea645164498fc",
      "new_mode": 33188,
      "new_path": "github-plugin/src/main/java/com/googlesource/gerrit/plugins/github/group/GitHubGroupsCache.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cdb229dd12ba7835966b7f30450dcafbaf75708b",
      "new_mode": 33188,
      "new_path": "github-plugin/src/test/java/com/googlesource/gerrit/plugins/github/FakeHttpServletRequest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6824a155478724455dad1a795a6617de7765efd3",
      "new_mode": 33188,
      "new_path": "github-plugin/src/test/java/com/googlesource/gerrit/plugins/github/FakeHttpServletResponse.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6a820e76e83bbe10b520b9692b175adb6a4c5808",
      "new_mode": 33188,
      "new_path": "github-plugin/src/test/java/com/googlesource/gerrit/plugins/github/FakeHttpSession.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "59a8e3acb438905664e8c85ff1e86e160921409a",
      "new_mode": 33188,
      "new_path": "github-plugin/src/test/java/com/googlesource/gerrit/plugins/github/GitHubGroupCacheRefreshFilterTest.java"
    }
  ]
}
