)]}'
{
  "commit": "60a831a30604393b0864ab8b2e415f6dfad40704",
  "tree": "a4c9edbbec75b420e0c7f59068cf2028420f1218",
  "parents": [
    "2f1309300577509a89a8218a9b03491979cdad1f"
  ],
  "author": {
    "name": "Luca Milanesio",
    "email": "luca.milanesio@gmail.com",
    "time": "Tue Sep 24 11:18:50 2024 +0100"
  },
  "committer": {
    "name": "Luca Milanesio",
    "email": "luca.milanesio@gmail.com",
    "time": "Mon Sep 30 15:21:33 2024 +0000"
  },
  "message": "Ban synchronous ref-delete via apply-object(s)\n\nRef deletion is a non-fast-forward operation and it may\nhave different outcome with other forced operations when\nnot executed in the correct order.\n\nBan the use of ref-delete via apply-object returning a 400\nand force the client to run an asynchronous fetch instead\nwhich would also go through global-refdb validation.\nFor example, a forced update and a delete cannot be swapped.\n\nBug: Issue 367651566\nChange-Id: I978c3079fbb9db4ea5b4fcbb63df711430ad0ce8\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d9b47d3c9c74b1d9d0942fac84540f2f6b2e9e39",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/ReplicationQueue.java",
      "new_id": "b4c6ead531bb79d737fd373c62b55d78a9fc2a54",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/ReplicationQueue.java"
    },
    {
      "type": "modify",
      "old_id": "01d32fbf9103b9d6a720ec4d83c9ca92d65cd3ec",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/api/ApplyObjectAction.java",
      "new_id": "402336d57559773d9ac68214ae4e0a55f30fddb3",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/api/ApplyObjectAction.java"
    },
    {
      "type": "modify",
      "old_id": "1088e40533938d52c74a963dfa7e83de279c05e9",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/api/ApplyObjectsAction.java",
      "new_id": "811cb277dcf8e446d8bd7a3e0d6f85664b3fb9bc",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/api/ApplyObjectsAction.java"
    },
    {
      "type": "modify",
      "old_id": "7a613c02abfb8496e4040b82309d923a4648547b",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/api/data/BatchApplyObjectData.java",
      "new_id": "5b17002edddeab4478bb39de498d4df1f87462b1",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/pull/api/data/BatchApplyObjectData.java"
    },
    {
      "type": "modify",
      "old_id": "a4fc41b39361391919525ff3ef299ba5ad97a83d",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/ApplyObjectActionTest.java",
      "new_id": "1d3acc66ab2a4517765a979c526f850ab2adf598",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/ApplyObjectActionTest.java"
    },
    {
      "type": "delete",
      "old_id": "bf74b5641996049586cdc1c26bcd3edd5e1a7837",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/replication/pull/api/data/BatchApplyObjectDataTest.java",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "fa5a349b6cec70ff54f8c706cc4632c89fa4fde4",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/replication/pull/client/FetchRestApiClientBase.java",
      "new_id": "595fb8f65a0f35a4c64beb0f35802fd5d66478e8",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/replication/pull/client/FetchRestApiClientBase.java"
    }
  ]
}
