)]}'
{
  "commit": "419845f085c8991a8f324165788b2e4721501edc",
  "tree": "4de9dc4cda3081cc8369bf48cd5a3d7fb1bf0162",
  "parents": [
    "c6665b860961603b38b67f28e9d84b60ccf70d50"
  ],
  "author": {
    "name": "Nasser Grainawi",
    "email": "nasser.grainawi@linaro.org",
    "time": "Tue Nov 01 18:06:35 2022 -0600"
  },
  "committer": {
    "name": "Nasser Grainawi",
    "email": "nasser.grainawi@linaro.org",
    "time": "Wed Nov 02 13:44:38 2022 -0600"
  },
  "message": "Fix URI double escaping\n\nThere were two problems here that had to be solved at the same time:\n1) Escaping for a URI path uses different rules than encoding for a URL\n   form. URLEncoder is intended for forms, so switch to using Guava\u0027s\n   UrlEscapers.urlPathSegmentEscaper().\n2) When we replace the ${name} token in the JGit URIish, we need to call\n   uri.setRawPath() so that uri.path is set to the unescaped URI.\n\nAdd tests showing the now fixed URI escaping in the context of\nReplicationTaskStorage. Also refactor getURI() to make it more testable\nand add tests for the correct behavior.\n\nChange-Id: I9be55fafd78f546aecdeffebedd1d0d5e136022f\nRelease-Notes: https remote URIs correctly escape project names\nRelease-Notes: Stored tasks with (broken) double escaped URIs must be manually removed\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ac4b6715f63cf53d51f4ac56dc636a2170a1d324",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/Destination.java",
      "new_id": "a9ff233c22643538e59d6a5dc3de60a971cce2fb",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/Destination.java"
    },
    {
      "type": "modify",
      "old_id": "8480cbe1914e1a051aa5c8646f07689e5057cb9f",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/replication/PushReplicationTest.java",
      "new_id": "122465b5e94e71b1fdc30c7b727dc63a0b133579",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/replication/PushReplicationTest.java"
    },
    {
      "type": "modify",
      "old_id": "16a03635f95dad04bc80b0121d9f2d4b310022a4",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationTasksStorageTest.java",
      "new_id": "bb47ef89530c4e16744ea11897b7947e023be006",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/replication/ReplicationTasksStorageTest.java"
    }
  ]
}
