)]}'
{
  "commit": "d1ad7d504171c8f68d2cf956bb3422fa84a8194f",
  "tree": "5b268461fd03507b00cafd3305716028e72cb375",
  "parents": [
    "499bbea5a16ec443cafb8da95ccdc33f6e381d55"
  ],
  "author": {
    "name": "Luca Milanesio",
    "email": "luca.milanesio@gmail.com",
    "time": "Thu Jun 13 17:56:43 2024 +0100"
  },
  "committer": {
    "name": "Luca Milanesio",
    "email": "luca.milanesio@gmail.com",
    "time": "Wed Jun 19 12:35:38 2024 +0100"
  },
  "message": "Use SecureStore to access replication credentials\n\nGerrit introduced the SecureStore in Ibbb15ad2aa over 10 years\nago, however, the replication plugin was never adapted and then\nunable to access the remote endpoint credentials when Gerrit\nhas a custom secure provider installed that would provide\ndata encryption at rest.\n\nReplace the direct reading of the secure.config with the abstract\nimplementation of the Gerrit SecureStore, so that it can still\nbe working as expected with encrypted credentials.\n\nExisting installations may have used a mix of encrypted and clear text\ncredentials in secure.config, leveraging the replication plugin bug\nthat was not accessing it using the correct API. Introduce a legacy\nfeature flag \u0027gerrit.useLegacyCredentials\u0027 that allow the Gerrit\nadmin to still use the legacy mode.\n\nWhenever the replication plugin detects the legacy mode, it displays\na warning explaining what is happening and how to adjust the\nconfiguration and enable full encryption in secure.config.\n\nRelease-Notes: Use SecureStore for reading username/password credentials\nBug: Issue 320715545\nChange-Id: Ie5b6339d65d144536416cf070d52f11342b39fe6\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2c049fc557b423d70837d01bf05be8591513922f",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/AutoReloadConfigDecorator.java",
      "new_id": "5e2c7587186f345f5604b9157dd76b07959fe710",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/AutoReloadConfigDecorator.java"
    },
    {
      "type": "modify",
      "old_id": "94fb910d2bb14c0d458690e70bca3bf3524221b6",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/AutoReloadSecureCredentialsFactoryDecorator.java",
      "new_id": "8e21a81796662539ce0db55651221352b6d477f7",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/AutoReloadSecureCredentialsFactoryDecorator.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a89c936deb895370084e768365b334862c44e328",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/LegacyCredentialsFactory.java"
    },
    {
      "type": "modify",
      "old_id": "1223db0e46869379b73214e68f35421b0f1325ed",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationConfigImpl.java",
      "new_id": "8f9b8051a4d3bb253fd3dd1389988b8d09250a1f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationConfigImpl.java"
    },
    {
      "type": "modify",
      "old_id": "a4bd2090ec7443daf71b58a551c0f3fb09ae30bd",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/SecureCredentialsFactory.java",
      "new_id": "210c4d881d0f808923cd63e01c88cd36be51344f",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/SecureCredentialsFactory.java"
    },
    {
      "type": "modify",
      "old_id": "8ef4e2bb5c1d6d34c8e1ab721d2aa9c6d6889774",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/replication/api/ReplicationConfig.java",
      "new_id": "d5ccb02037d6c4418cb9919f8f67f5a66301b51d",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/replication/api/ReplicationConfig.java"
    },
    {
      "type": "modify",
      "old_id": "6f9a49d49f86958b826c35fbc3186335f98abc9d",
      "old_mode": 33188,
      "old_path": "src/main/resources/Documentation/config.md",
      "new_id": "bb4be9afbd2a0f4765d61e9c483ac18545a398a0",
      "new_mode": 33188,
      "new_path": "src/main/resources/Documentation/config.md"
    },
    {
      "type": "modify",
      "old_id": "b8bbc08d5cdb6c7321d2967882abc136e2e36124",
      "old_mode": 33188,
      "old_path": "src/test/java/com/googlesource/gerrit/plugins/replication/AbstractConfigTest.java",
      "new_id": "9244f87d0ed09343183c583fc0eadbb80af5a9ab",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/replication/AbstractConfigTest.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c959cc9877465169813bf0ffb00d73cf81ffa50c",
      "new_mode": 33188,
      "new_path": "src/test/java/com/googlesource/gerrit/plugins/replication/AutoReloadSecureCredentialsFactoryDecoratorTest.java"
    }
  ]
}
