)]}'
{
  "commit": "e487dbe9e60dcda2b4b61a4762189cb7c483c927",
  "tree": "77d20bce70534eca7cb051f0977ce3942830938b",
  "parents": [
    "7d36b1762483ca1580f2c40b6f29d48c9332fa0e"
  ],
  "author": {
    "name": "Antonio Barone",
    "email": "syntonyze@gmail.com",
    "time": "Wed Dec 20 18:08:02 2023 +0100"
  },
  "committer": {
    "name": "Marcin Czech",
    "email": "maczech@gmail.com",
    "time": "Fri Dec 22 17:02:47 2023 +0100"
  },
  "message": "Emit refUpdate event upon copy-approvals\n\nChange I493b9d7ee0 refactored the copy-approvals code to make it\nmulti-threaded and slice-based.\n\nIn doing so, it replaced `BatchUpdate.execute()` calls with with\nlow-level `BatchRefUpdate.execute()` calls, introducing a regression\nwhereby `refUpdate` events were no longer emitted.\n\nExplicitly fire `refUpdate` events upon the successful copy-approval\nupdate of the change meta ref and introduce a test to ensure this\nbehavior is kept.\n\nRelease-Notes: skip\nForward-Compatible: checked\nChange-Id: I21ac623bd0f1b4a493f7e7984a93bd20911cd3d8\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "245956741e71f19c29217e9adad99788eec139db",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/server/approval/RecursiveApprovalCopier.java",
      "new_id": "d5ee14396b973ac9a7c7849c3dcec1336562cbed",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/server/approval/RecursiveApprovalCopier.java"
    },
    {
      "type": "modify",
      "old_id": "c2f7771d06ab6fb4b663c909bdf8194b443008fd",
      "old_mode": 33188,
      "old_path": "javatests/com/google/gerrit/acceptance/api/change/CopyApprovalsIT.java",
      "new_id": "4d1b0322fe49cc5ab29452715e489698c5f6d00b",
      "new_mode": 33188,
      "new_path": "javatests/com/google/gerrit/acceptance/api/change/CopyApprovalsIT.java"
    }
  ]
}
