)]}'
{
  "commit": "be4e7baed853476b35eb4255af71a8bf64b2639d",
  "tree": "59fbf57ce3ce72ce7de16fdf50c7525b85902c1d",
  "parents": [
    "67c3e7833c7247afccea553c5e5accea17e4db18"
  ],
  "author": {
    "name": "Antonio Barone",
    "email": "syntonyze@gmail.com",
    "time": "Tue Sep 02 21:47:53 2025 +0200"
  },
  "committer": {
    "name": "Antonio Barone",
    "email": "syntonyze@gmail.com",
    "time": "Wed Sep 03 12:29:40 2025 +0200"
  },
  "message": "Forward project-wide change index deletions\n\nWhen a project is deleted, all of its changes are removed from the\nindex.\n\nListen to the core onAllChangesDeletedForProject hook and forward a\nsingle project-scoped change-index event so peers can delete all change\ndocuments for that project in one operation.\n\nKey changes:\n- Add handling of onAllChangesDeletedForProject in IndexEventHandler and\n  enqueue a task that emits a consolidated change-index event.\n- Extend ChangeIndexEvent with an \"all deleted for project\" marker\n  (deleted\u003dtrue, changeId\u003d0), plus helpers to create/detect it.\n- Teach IndexEventRouter to route the special event to a new\n  ForwardedIndexChangeHandler.deleteAllForProject path.\n- Implement deleteAllForProject in the handler, invoking\n  ChangeIndexer.deleteAllForProject(Project.NameKey) under a forwarded\n  context to avoid echo loops.\n\nBug: Issue 440670678\nChange-Id: I933a06bf9ce75eb6998f828425234f4677e5bcd7\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "15f7c13f2f1d0537c648ed4a27bfed525da7d9bd",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexChangeHandler.java",
      "new_id": "8a52eb541695f50ae7684c9393e84f22046161ec",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexChangeHandler.java"
    },
    {
      "type": "modify",
      "old_id": "64fbdfbc5c158f15204adc479d36075b08978995",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/events/ChangeIndexEvent.java",
      "new_id": "af4c0bc1730f7c10f41fbe1a06bbac6fa6fce6d3",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/events/ChangeIndexEvent.java"
    },
    {
      "type": "modify",
      "old_id": "a647bcecb50074e4e4e5d08c3fd0428a5ec59392",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/IndexEventRouter.java",
      "new_id": "a23ca335ccdd8e9b81a16885f0aaf5c935bb9ce1",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/multisite/forwarder/router/IndexEventRouter.java"
    },
    {
      "type": "modify",
      "old_id": "9aee56efdd733b67a39901b6d2d24a73a17c6faa",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/multisite/index/IndexEventHandler.java",
      "new_id": "83f610d6f8782d46df4168966582b37cf5d9bef1",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/multisite/index/IndexEventHandler.java"
    },
    {
      "type": "modify",
      "old_id": "4fa1735bc8736f37f3b637b0b03ec29a8c082591",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/multisite/event/IndexEventRouterTest.java",
      "new_id": "8239cf272a4f19a5e51d6adb1ce2f741c47d7c81",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/multisite/event/IndexEventRouterTest.java"
    },
    {
      "type": "modify",
      "old_id": "7133a0d1aac5ef822f94249819ba36d78076e800",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexChangeHandlerTest.java",
      "new_id": "984e39ff210716953b89455fe58760abe1d0b9e6",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/multisite/forwarder/ForwardedIndexChangeHandlerTest.java"
    }
  ]
}
