)]}'
{
  "commit": "c6dadc1f36f4a494643884fd9b52dd7905af6c6d",
  "tree": "ae17e686ee36c5caf6813a58752975ac9bb65703",
  "parents": [
    "cf928f1d78b675f1cec7039d8b345f810c8f48fe"
  ],
  "author": {
    "name": "Edwin Kempin",
    "email": "ekempin@google.com",
    "time": "Wed Apr 05 10:45:08 2023 +0000"
  },
  "committer": {
    "name": "Edwin Kempin",
    "email": "ekempin@google.com",
    "time": "Wed Apr 05 10:54:13 2023 +0000"
  },
  "message": "Drop \"Patch Set: \u003cnum\u003e\" prefix from change message that lists owned paths\n\nThis prefix triggers special logic in the web frontend. If this prefix\nis present the frontend parses approvals from the message and shows\napproval chips for them. Due to this it looks like approvals have been\napplied twice. If a code-owners approval is applied and the message to\ninform about the owned paths is posted asynchronously there are 2 change\nmessages and the web frontend shows an approval chip for both of them:\n\n1. \"Patch Set X: Code-Owner+1\" posted by Gerrit core\n2. \"Patch Set X: By voting Code-Review+1 the following files are now\n   code-owner approved by YYY: ...\" posted by the code-owners plugin\n\nBy dropping the \"Patch Set: \u003cnum\u003e\" prefix from the second change\nmessage, the approval chip will only be shown for the first message.\n\nDropping the patch set information from the second change message is\nfine, since the patch set to which the message relates is still\navailable from the change message meta data.\n\nThis problem started happening after the code-owners plugin has been\nchanged to post the code-owner approved paths asynchronously in a\nseparate change message, rather then extending the change message that\nGerrit core posts about the approval (see change I129e611af).\n\nBug: Google b/276276203\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: I97a9bf0f8818abf31a071f88260359fbe677b30e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "39775212b220b46671b52b56f0d068eb5055c5f7",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/plugins/codeowners/backend/OnCodeOwnerApproval.java",
      "new_id": "b3417dc540ea42c653288b3e6f905d3e59ccd113",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/plugins/codeowners/backend/OnCodeOwnerApproval.java"
    },
    {
      "type": "modify",
      "old_id": "3875eb9e4b05d121662b53b3587f6f3423115daf",
      "old_mode": 33188,
      "old_path": "javatests/com/google/gerrit/plugins/codeowners/acceptance/api/OnCodeOwnerApprovalIT.java",
      "new_id": "ea3b6ae0471fbbaf71de5b3beeb833b415e22037",
      "new_mode": 33188,
      "new_path": "javatests/com/google/gerrit/plugins/codeowners/acceptance/api/OnCodeOwnerApprovalIT.java"
    }
  ]
}
