)]}'
{
  "commit": "e7c48cf4ea02ebc11cd2b5a24ff9f163fd499042",
  "tree": "b11078b47c32e026418097de26221d2d9b6d1037",
  "parents": [
    "a19bda1a26133c41b1bd37181f59d7c641dce91d"
  ],
  "author": {
    "name": "Keyong Han",
    "email": "keyonghan@google.com",
    "time": "Thu May 11 00:05:21 2023 +0000"
  },
  "committer": {
    "name": "CQ Bot Account",
    "email": "flutter-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu May 11 00:05:21 2023 +0000"
  },
  "message": "Update bucket name by triming the suffix .shadow\n\nWith https://flutter-review.googlesource.com/c/infra/+/40723, subbuild triggered by an orchestrator using LED is running against a pool with a sufix `.shadow`: see https://ci.chromium.org/ui/p/flutter/builders/staging.shadow/Mac%20Staging%20Engine%20Drone/4/overview\n\nFor devicelab build+test run via LED, the orchestrator get bucket as `staging`, and upload artifact to GCS under a dir `staging`. This cause not found from subbuild, which is looking for `staging.shadow`.\n\nThere are also existing logics based on explicit `staging` bucket.\n\nAdditionally, it would be good to keep consistency across all shard util v2 targets/subbuilds.\n\nChange-Id: Ife29924491b249c7f4f530506f418fb2c0b1791e\nReviewed-on: https://flutter-review.googlesource.com/c/recipes/+/44068\nReviewed-by: Godofredo Contreras \u003cgodofredoc@google.com\u003e\nReviewed-by: Ricardo Amador \u003cricardoamador@google.com\u003e\nCommit-Queue: Keyong Han \u003ckeyonghan@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a2cdd9d3d970252e25d3ec48fdc22ee0dfba2cd4",
      "old_mode": 33188,
      "old_path": "recipe_modules/shard_util_v2/api.py",
      "new_id": "eb8ef2cab67367037fad6cd2e6056d9264fb606c",
      "new_mode": 33188,
      "new_path": "recipe_modules/shard_util_v2/api.py"
    },
    {
      "type": "modify",
      "old_id": "1df6a46dd1806530684b9b0b83e1c9204187f7e1",
      "old_mode": 33188,
      "old_path": "recipe_modules/shard_util_v2/examples/full.py",
      "new_id": "83b96d1173941a77459edd9f36b7c65b658058e5",
      "new_mode": 33188,
      "new_path": "recipe_modules/shard_util_v2/examples/full.py"
    },
    {
      "type": "modify",
      "old_id": "f1fbeebef7c56b99491914d505555f53b9aa20d1",
      "old_mode": 33188,
      "old_path": "recipes/devicelab/devicelab_test_drone.expected/no-artifact-name.json",
      "new_id": "285b96871ed63dbbe0974e38f034d698e0e1ea50",
      "new_mode": 33188,
      "new_path": "recipes/devicelab/devicelab_test_drone.expected/no-artifact-name.json"
    },
    {
      "type": "modify",
      "old_id": "259f9bc0f49f23565b7e7e075cad7f1cb01133d0",
      "old_mode": 33188,
      "old_path": "recipes/devicelab/devicelab_test_drone.expected/no-task-name.json",
      "new_id": "c918fb5fb3f84bdd13107dd6ddbbc33a96a9ab20",
      "new_mode": 33188,
      "new_path": "recipes/devicelab/devicelab_test_drone.expected/no-task-name.json"
    },
    {
      "type": "modify",
      "old_id": "a5c34965ac0f5169aa13611ffb24c5113ddde60e",
      "old_mode": 33188,
      "old_path": "recipes/devicelab/devicelab_test_drone.py",
      "new_id": "85eb98ce95ebb24f095cb90f2ee09637f050559d",
      "new_mode": 33188,
      "new_path": "recipes/devicelab/devicelab_test_drone.py"
    }
  ]
}
