)]}'
{
  "commit": "eac5d4e844c6103b37e8d35ee1ef3eb5ddf117ea",
  "tree": "aea0930aa001d0b1cfe12fcc52901f8fef688b26",
  "parents": [
    "69c66c8919533635bb7ef36cdd660f48f6647c09"
  ],
  "author": {
    "name": "Luca Milanesio",
    "email": "luca.milanesio@gmail.com",
    "time": "Sat Jul 06 00:57:20 2024 +0100"
  },
  "committer": {
    "name": "Luca Milanesio",
    "email": "luca.milanesio@gmail.com",
    "time": "Tue Jul 09 19:51:55 2024 +0000"
  },
  "message": "Delay the fetching of credentials until push time\n\nThe replication plugin can be configured to reload dynamically\nthe credentials when changed on the filesystem or in the SecureStore\nbackend.\n\nThe overall reloading mechanism worked as long as a new PushOne\nobject was created per replication task; however, when a push was\nfailing because of credentials issues, the PushOne object was\nrequeued without being recreated, causing a chicken \u0026 egg situation\n\nUntil the PushOne was retried, the old credentials were stored\nin the instance and therefore any retry would have failed.\nEven though the replication.config was configured for reloading\ndynamically the credentials, any task stuck in retry would have\nnot been able to pass the correct credentials.\n\nDelay the creation of the credentials provider until push\ntime, so that even in case of retrying replication tasks\nthe credentials can be dynamically reloaded when changed\non the filesystem.\n\nChange-Id: I2f069a8433651a0db2681b6675f392ff894f27fc\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9d152f6200a7d17987c1be665ff61a5b6938bffa",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java",
      "new_id": "a4ce5fc5e45b080102178816816978716c0c3170",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/PushOne.java"
    }
  ]
}
