)]}'
{
  "commit": "8d517884bb3b21ad942c36a420701fb92a23aa77",
  "tree": "1fe38539e4dc7adcfdd1dc17e9225cbaad748733",
  "parents": [
    "fdf9aa28ef5f055ba24221686a72ba9baea5448c"
  ],
  "author": {
    "name": "Keyong Han",
    "email": "keyonghan@google.com",
    "time": "Fri Aug 27 17:44:36 2021 +0000"
  },
  "committer": {
    "name": "CQ Bot Account",
    "email": "flutter-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Aug 27 17:44:36 2021 +0000"
  },
  "message": "Update metrics from test runner\n\nThis is a reland of https://flutter-review.googlesource.com/c/recipes/+/17343\nChanges:\n1) addressed null result data case: https://github.com/flutter/flutter/pull/88749\n2) separate gcs and cocoon token\n3) add token util as a module so that engine and devicelab drone can share\n4) inject task_name (new) - following https://github.com/flutter/flutter/pull/89004\n\nChange-Id: Ia27a135ed2f4ed792756fb67476779e5916edad6\nBug: https://github.com/flutter/flutter/issues/88484\nReviewed-on: https://flutter-review.googlesource.com/c/recipes/+/17442\nReviewed-by: Casey Hillers \u003cchillers@google.com\u003e\nCommit-Queue: Keyong Han \u003ckeyonghan@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "79334ab400d9a1e68e16d34faabda3743400f934",
      "new_mode": 33188,
      "new_path": "recipe_modules/token_util/__init__.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7c9618faedbdeb1cc9e223678fdf023f99b2948f",
      "new_mode": 33188,
      "new_path": "recipe_modules/token_util/api.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "89c9607eb76825f7d5293e2debd647ed904fd93c",
      "new_mode": 33188,
      "new_path": "recipe_modules/token_util/examples/full.expected/basic.json"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "26e7da118c270cdeb9cc3ee636af6674fd4e9b8a",
      "new_mode": 33188,
      "new_path": "recipe_modules/token_util/examples/full.py"
    },
    {
      "type": "modify",
      "old_id": "0116e989f264f820e15fc0ee9c08161c142dc5ed",
      "old_mode": 33188,
      "old_path": "recipes/devicelab/devicelab_drone.expected/basic.json",
      "new_id": "d96a5410f84d5064eb5edfd8ed021ddf13c0995c",
      "new_mode": 33188,
      "new_path": "recipes/devicelab/devicelab_drone.expected/basic.json"
    },
    {
      "type": "modify",
      "old_id": "9e45a3025a7ef4accf75d4a0168445c46ac7f32a",
      "old_mode": 33188,
      "old_path": "recipes/devicelab/devicelab_drone.expected/local-engine.json",
      "new_id": "c68ad6d2b937fa0f34c4953aba144bb0eed89e73",
      "new_mode": 33188,
      "new_path": "recipes/devicelab/devicelab_drone.expected/local-engine.json"
    },
    {
      "type": "modify",
      "old_id": "286b5f6b7217294146b33c10f35f3c53400fe685",
      "old_mode": 33188,
      "old_path": "recipes/devicelab/devicelab_drone.expected/no-task-name.json",
      "new_id": "abdcd2579e342b62e00bf025a9fbc30a91ae18a8",
      "new_mode": 33188,
      "new_path": "recipes/devicelab/devicelab_drone.expected/no-task-name.json"
    },
    {
      "type": "modify",
      "old_id": "4f91cd8a3a317a036f5bda0fd9d55a78b82c338a",
      "old_mode": 33188,
      "old_path": "recipes/devicelab/devicelab_drone.expected/post-submit.json",
      "new_id": "8f47b195468205aeece9dec2287dbbf72de79d34",
      "new_mode": 33188,
      "new_path": "recipes/devicelab/devicelab_drone.expected/post-submit.json"
    },
    {
      "type": "modify",
      "old_id": "c2411cae891c892aa16d85160ab3ea6400c0855f",
      "old_mode": 33188,
      "old_path": "recipes/devicelab/devicelab_drone.expected/upload-metrics-mac.json",
      "new_id": "53bbd515cdc7edc50157d27bb95f4d07977c6e7f",
      "new_mode": 33188,
      "new_path": "recipes/devicelab/devicelab_drone.expected/upload-metrics-mac.json"
    },
    {
      "type": "modify",
      "old_id": "b5f1d8dfd54b6b0dff828fbb35f9a10089b0fe22",
      "old_mode": 33188,
      "old_path": "recipes/devicelab/devicelab_drone.expected/xcode-chromium-mac.json",
      "new_id": "6837a94f991273ce89fb0e10b0bc091ac86cb41b",
      "new_mode": 33188,
      "new_path": "recipes/devicelab/devicelab_drone.expected/xcode-chromium-mac.json"
    },
    {
      "type": "modify",
      "old_id": "4da797868739b2ea243c7b85d61bfd72c3d26473",
      "old_mode": 33188,
      "old_path": "recipes/devicelab/devicelab_drone.expected/xcode-devicelab.json",
      "new_id": "5ac1e9e883215fac9679aeb036e93cba2dd21903",
      "new_mode": 33188,
      "new_path": "recipes/devicelab/devicelab_drone.expected/xcode-devicelab.json"
    },
    {
      "type": "modify",
      "old_id": "fb6147c9c1cda794c8361727ee52e863fbd9c7a5",
      "old_mode": 33188,
      "old_path": "recipes/devicelab/devicelab_drone.py",
      "new_id": "cbdaf7f9fe5c9a074999d41242f4e8a8c3fb5374",
      "new_mode": 33188,
      "new_path": "recipes/devicelab/devicelab_drone.py"
    },
    {
      "type": "modify",
      "old_id": "26c461d6c97b3ba59b52365bbe707a0334ca3558",
      "old_mode": 33188,
      "old_path": "recipes/engine/engine_metrics.expected/basic.json",
      "new_id": "1706ded681f3bceb54a03286ba64eb40cd15999a",
      "new_mode": 33188,
      "new_path": "recipes/engine/engine_metrics.expected/basic.json"
    },
    {
      "type": "modify",
      "old_id": "494155f6761daba4c3c20e93426c04ca99953d0b",
      "old_mode": 33188,
      "old_path": "recipes/engine/engine_metrics.py",
      "new_id": "9d7e26346f74e917bd2887e2b789229137187a37",
      "new_mode": 33188,
      "new_path": "recipes/engine/engine_metrics.py"
    }
  ]
}
