)]}'
{
  "commit": "ba8f1423d2e7cc502a8af95bf87d365755d47c0f",
  "tree": "f7d18c4226f5b639ebc61c858958b14192d0ba57",
  "parents": [
    "f0e7d3081d575f73882857a040eae60c736361ee"
  ],
  "author": {
    "name": "Prudhvi Akhil Alahari",
    "email": "prudhvi.alahari@linaro.org",
    "time": "Fri Nov 03 14:44:38 2023 +0530"
  },
  "committer": {
    "name": "Prudhvi Akhil Alahari",
    "email": "prudhvi.alahari@linaro.org",
    "time": "Fri Nov 03 15:20:32 2023 +0530"
  },
  "message": "Fix to not mark a valid preloaded subtask as INVALID\n\nBefore this change, a subtask was marked as INVALID when a task had a\npreload-task pointing to a task from external file which had a\nsubtask [1]. While preloading a task, all the subtasks are copied to\nthe current task. Since the subtask property was a String, it does\nnot maintain the information regarding the location of the subtask.\nDue to which, the plugin fails to lookup the subtask.\n\nThus, fix this issue by using TaskKey as the type for subtask property,\nwhich helps in tracking the location of the subtask. Add tests for the\nsame.\n\n[1]\nfile: `All-Projects:refs/meta/config:task.config`\n```\n[root \"root task\"]\n    applicable \u003d status:open\n    preload-task \u003d //common.config^simple task with subtask\n```\n\nfile: `All-Projects:refs/meta/config:task/common.config`\n```\n[task \"simple task with subtask\"]\n  applicable \u003d is:open\n  subtask \u003d passing task\n\n[task \"passing task\"]\n  applicable \u003d is:open\n  pass \u003d True\n```\n\nChange-Id: Iacf5345c575209267cf6ad0489327ee10feed55c\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f5f0bd4204eecac27ab5a36d9f22bb51dbc68d79",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java",
      "new_id": "56cdd88aa5efddb206ccffa5c9b97a470e05a416",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java"
    },
    {
      "type": "modify",
      "old_id": "bd0b683fd05ebd57fe1dc5bbc573e2bfe6e542a7",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/task/TaskKey.java",
      "new_id": "6b8f486d5aaac34ad6eb76524291e4df053bf77e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/task/TaskKey.java"
    },
    {
      "type": "modify",
      "old_id": "44fcadc1bf0d2d6fa55285f0252bdd144648bf80",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java",
      "new_id": "d5ab48e04cd34216f3a9ff3fdd7a818fe2a6d610",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java"
    },
    {
      "type": "modify",
      "old_id": "c970cecd54e89eb01c0f0b3e5a0bfc266df6910b",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/task/properties/AbstractExpander.java",
      "new_id": "1c9ef4317cf07cdf8cd6c46ebdae9130659f6309",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/task/properties/AbstractExpander.java"
    },
    {
      "type": "modify",
      "old_id": "2df1263aeadc802f935cf59d2f03dad16f221b08",
      "old_mode": 33188,
      "old_path": "src/main/resources/Documentation/test/task_states.md",
      "new_id": "dbe6fac3da88a157f3de6ea2624e0cfdf02cb389",
      "new_mode": 33188,
      "new_path": "src/main/resources/Documentation/test/task_states.md"
    }
  ]
}
