)]}'
{
  "commit": "b1aff4722c8ea6596900c8088e98b8b9aa223085",
  "tree": "d160fe7b8d3ece2e186c98233484da55086d64fb",
  "parents": [
    "575dd833d535911cdf92600110cda424725dd87b"
  ],
  "author": {
    "name": "Keyong Han",
    "email": "keyonghan@google.com",
    "time": "Tue Feb 23 17:22:59 2021 +0000"
  },
  "committer": {
    "name": "CQ Bot Account",
    "email": "flutter-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Feb 23 17:22:59 2021 +0000"
  },
  "message": "Promote child build summary to parent build to improve build presentation\n\nThis is to propagate subbuild summaries to the parent build\u0027s summary_markdown. With this change, build page will show exact failure summary if caused by subbuild, and it also makes it possible to filter out SDK failed builds caused by subbuilds.\n\nThis CL updates the `display_builds` function only, since flutter is not calling `display_tasks` at this momoment.\n\nBug: https://github.com/flutter/flutter/issues/64208\nChange-Id: Ia54a51c4aa4276f7b9b133f697be80edea646b80\nReviewed-on: https://flutter-review.googlesource.com/c/recipes/+/10700\nReviewed-by: Godofredo Contreras \u003cgodofredoc@google.com\u003e\nCommit-Queue: Keyong Han \u003ckeyonghan@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d026c44305e6169dc70529d2f6fb86fd0a9b6c7c",
      "old_mode": 33188,
      "old_path": "recipe_modules/display_util/api.py",
      "new_id": "2e5e6a5958637de80a507326e885410ff3a8a2af",
      "new_mode": 33188,
      "new_path": "recipe_modules/display_util/api.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "11050d27a96e63ac81fb321f02f9840cc2b09e30",
      "new_mode": 33188,
      "new_path": "recipe_modules/display_util/examples/display_builds.expected/all_passed.json"
    },
    {
      "type": "modify",
      "old_id": "a9212cedb8ca27dbe127d4d751581081e89d4b73",
      "old_mode": 33188,
      "old_path": "recipe_modules/display_util/examples/display_builds.expected/mixed_with_infra_failures.json",
      "new_id": "dab7090c85130686896be681c2307996fa81cb12",
      "new_mode": 33188,
      "new_path": "recipe_modules/display_util/examples/display_builds.expected/mixed_with_infra_failures.json"
    },
    {
      "type": "modify",
      "old_id": "b5d75d438da826e16e1b2d193056107c458d1dce",
      "old_mode": 33188,
      "old_path": "recipe_modules/display_util/examples/display_builds.expected/mixed_without_infra_failures.json",
      "new_id": "1f90efae962e91f6517983850d09a0df5b195db2",
      "new_mode": 33188,
      "new_path": "recipe_modules/display_util/examples/display_builds.expected/mixed_without_infra_failures.json"
    },
    {
      "type": "modify",
      "old_id": "67b7af448bec7092e7db1230c43ab18eb746c5e1",
      "old_mode": 33188,
      "old_path": "recipe_modules/display_util/examples/display_builds.py",
      "new_id": "dac0253a4582c9def1ccab3484b5a7bbc189788b",
      "new_mode": 33188,
      "new_path": "recipe_modules/display_util/examples/display_builds.py"
    }
  ]
}
