)]}'
{
  "commit": "9c054270fd00ba620a0abdd6b1516f54d13bd088",
  "tree": "210779d258696318087cdcc67b7a8d992944934c",
  "parents": [
    "6917ed2f8db1d9b88e08e7c7b9922b5a72916b7d"
  ],
  "author": {
    "name": "Prudhvi Akhil Alahari",
    "email": "prudhvi.alahari@linaro.org",
    "time": "Wed Nov 08 15:47:43 2023 +0530"
  },
  "committer": {
    "name": "Nasser Grainawi",
    "email": "nasser.grainawi@linaro.org",
    "time": "Thu Jan 18 13:54:05 2024 -0700"
  },
  "message": "Fix subtask-factory lookup to not fail when preloaded from another file\n\nBefore this change, plugin failed to lookup a subtasks-factory when\na task with this subtasks-factory was preloaded using a task\nreference [1]. While preloading a task, all the subtasks are copied\nto the current task. Since the subtasks-factory property was a String,\nit does not maintain the information regarding the location of the\nsubtasks-factory. Thus, fix this issue by using ConfigSourcedValue as\nthe type for subtasks-factory property, which helps in tracking the\nlocation of the subtasks-factory. Add tests for the same.\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 subtasks\n```\n\nfile: `All-Projects:refs/meta/config:task/common.config`\n```\n[task \"simple task with subtasks\"]\n  applicable \u003d is:open\n  subtasks-factory \u003d simple static tasks-factory\n\n[tasks-factory \"simple static tasks-factory\"]\n    names-factory \u003d names-factory static list\n    pass \u003d True\n\n[names-factory \"names-factory static list\"]\n    type \u003d static\n    name \u003d my a task\n```\n\nChange-Id: Ie173ad1e29c511bb028a49d4c9b54108461bbe67\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2f1c358e47284c42108b7edfaa9472212d03b6cb",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/task/TaskAttributeFactory.java",
      "new_id": "ca1ae2c78c597133f2bfeac58700535e8e8d8324",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/task/TaskAttributeFactory.java"
    },
    {
      "type": "modify",
      "old_id": "138bcd6695e805bea705a1fea7bf611d0b404d4e",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java",
      "new_id": "aa25e7f66f6d9d90f2b67507187b43a256eb6b67",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/task/TaskConfig.java"
    },
    {
      "type": "modify",
      "old_id": "5d4d77319bd371e207177eca74fb162c2fe6f712",
      "old_mode": 33188,
      "old_path": "src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java",
      "new_id": "01afb8906541a22ed46dc193f710d987574c50fa",
      "new_mode": 33188,
      "new_path": "src/main/java/com/googlesource/gerrit/plugins/task/TaskTree.java"
    },
    {
      "type": "modify",
      "old_id": "880b9553de6f90a4c9401c446783db50ac584953",
      "old_mode": 33188,
      "old_path": "src/main/resources/Documentation/test/task_states.md",
      "new_id": "4b296b2c2aacd89e1d32fa427f9ab7d78d6ab633",
      "new_mode": 33188,
      "new_path": "src/main/resources/Documentation/test/task_states.md"
    }
  ]
}
