)]}'
{
  "commit": "1a9187102f85a3b854d60c3c9c16acb4c6719919",
  "tree": "9aaf1c6ce495b45e9ae7b70f50d3e171124919be",
  "parents": [
    "9d642b8549483be03203a2b0d754b6ca8cb546f2"
  ],
  "author": {
    "name": "Luca Milanesio",
    "email": "luca.milanesio@gmail.com",
    "time": "Thu May 06 20:20:48 2021 +0100"
  },
  "committer": {
    "name": "Luca Milanesio",
    "email": "luca.milanesio@gmail.com",
    "time": "Mon May 10 17:32:49 2021 +0000"
  },
  "message": "Allow GerritAccount Cookie authentication for Git/HTTP\n\nSince the introduction of basic auth with Change-Id: Ibe589ab2b0,\nthe mechanism of keeping a session (it was a digest before)\nacross calls has not been preserved and the basic-auth implementation\nresulted in multiple authentications with the configured realm.\nTriggering a full authentication handshake could be an\nissue when using potentially expensive authentication backends\nlike LDAP.\n\nAllow to create a Gerrit session from the GerritAccount\ncookie set on the Git client, so that only the first HTTP call\nwill actually authenticate and create a session whilst all\nthe others would just reuse the existing cookie.\n\nThe Git client needs to have HTTP cookies enabled by setting\nthe http.cookieFile in Git config pointing to a local\nfile. For keeping HTTP cookies across Git/HTTP commands, the\nextra http.saveCookie Git config variable needs to be set to\ntrue.\n\nPreviously all Git/HTTP requests were ignored for parsing\nthe GerritAccount cookie whilst now they are excluded only when\nthe account token is passed as URL parameter. This problem was\nthere since the very beginning of the introduction of Git/HTTP\nbasic auth.\n\nNOTE: Gerrit does not generate HTTP cookies when using\npassword-based authentication against the external-ids rather\nthan using the realm: that is expected because it would not\nbe correct to allocate a cookie when a real authentication\nagainst the realm has not been performed, therefore the\ncookie-based authentication for Git/HTTP would not be\navailable.\n\nBug: Issue 14508\nChange-Id: I2a56197ee0dad479f0973192157e5970d9deac25\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "53993b26738175a581ee50e4d95df6cc4ca53f0c",
      "old_mode": 33188,
      "old_path": "Documentation/config-gerrit.txt",
      "new_id": "bcb13fe5a731c0033d3a66c14f8c5cafaf7b601f",
      "new_mode": 33188,
      "new_path": "Documentation/config-gerrit.txt"
    },
    {
      "type": "modify",
      "old_id": "cb58ad9e12848135e1597b5d94ec392d2163acc7",
      "old_mode": 33188,
      "old_path": "Documentation/user-upload.txt",
      "new_id": "d55cb48c0078e38a717e5d8f49f25ce56a88f1f6",
      "new_mode": 33188,
      "new_path": "Documentation/user-upload.txt"
    },
    {
      "type": "modify",
      "old_id": "5c4830c61735ae04b6b4f094ee7d26923fb83096",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/httpd/CacheBasedWebSession.java",
      "new_id": "3a84a296f87705d68afb159984943d3e6fbe3665",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/httpd/CacheBasedWebSession.java"
    },
    {
      "type": "modify",
      "old_id": "55ffef797bf78bd3bea89bf1f02ace382b299e91",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/httpd/ProjectBasicAuthFilter.java",
      "new_id": "c1931157fc71c6d04b65cff51d451914e36f9188",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/httpd/ProjectBasicAuthFilter.java"
    },
    {
      "type": "modify",
      "old_id": "f7792ed2d320ee380cd86af0bf059839e30d16ac",
      "old_mode": 33188,
      "old_path": "javatests/com/google/gerrit/httpd/ProjectBasicAuthFilterTest.java",
      "new_id": "735abbf66dc44123791345907fc7394da3b53145",
      "new_mode": 33188,
      "new_path": "javatests/com/google/gerrit/httpd/ProjectBasicAuthFilterTest.java"
    },
    {
      "type": "modify",
      "old_id": "a4175e3eb7070780ac7e8f7e1f1b0808451c9cad",
      "old_mode": 33188,
      "old_path": "javatests/com/google/gerrit/util/http/testutil/FakeHttpServletRequest.java",
      "new_id": "2efa94b7c31b843264cf2f42eeffc4103ce3bfd6",
      "new_mode": 33188,
      "new_path": "javatests/com/google/gerrit/util/http/testutil/FakeHttpServletRequest.java"
    },
    {
      "type": "modify",
      "old_id": "9a98ecdcaaba2aa6299a8377f5c1e21625f4545c",
      "old_mode": 33188,
      "old_path": "javatests/com/google/gerrit/util/http/testutil/FakeHttpServletResponse.java",
      "new_id": "f39b8755004932a1ca908d6f12b753c87e8f2d4f",
      "new_mode": 33188,
      "new_path": "javatests/com/google/gerrit/util/http/testutil/FakeHttpServletResponse.java"
    }
  ]
}
