)]}'
{
  "commit": "0de3ab4f7e600108973868fd0eae175e39aa4542",
  "tree": "e522cc7e34e332fdd8e8f9f7e115571a3305b6ac",
  "parents": [
    "2d6f9cd5e3bfcac97dd5c5514357165136d62afb"
  ],
  "author": {
    "name": "John \"codefu\" McDole",
    "email": "codefu@google.com",
    "time": "Fri Jun 27 15:26:11 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jun 27 15:26:11 2025 -0700"
  },
  "message": "feat: Plumbs content hash to post-submit LUCI builds (#4795)\n\nThis change plumbs the content-aware hash from the scheduler to the LUCI\nbuild service for post-submit builds. This will allow LUCI/recipes to\nuse the content hash in post-submit builds (windows arm, ddm, etc).\n\nThe following changes are included:\n- The `ContentAwareHashService` is updated to include a\n`getHashByCommitSha` method.\n- The `Scheduler` now retrieves the content hash on addCommit() and\npasses it to `LuciBuildService`.\n- `LuciBuildService` plumbs the `contentHash` through to buildbucket\nproperties.\n- Tests have been added to verify that the content hash is correctly\npassed to the `LuciBuildService`.\n\nExtension of flutter/flutter#167779",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "101a5fb673e4176ee1fc1417916928fba2b9e12f",
      "old_mode": 33188,
      "old_path": "app_dart/lib/src/service/content_aware_hash_service.dart",
      "new_id": "c18d20b278911d4b478fe820e3462539a0f4d12c",
      "new_mode": 33188,
      "new_path": "app_dart/lib/src/service/content_aware_hash_service.dart"
    },
    {
      "type": "modify",
      "old_id": "a51e4bbcfb753115a70f41baca2f2cd3731316cb",
      "old_mode": 33188,
      "old_path": "app_dart/lib/src/service/luci_build_service.dart",
      "new_id": "6a9e0fdd64c8c03b834a3218529ecc5d2b5c77cb",
      "new_mode": 33188,
      "new_path": "app_dart/lib/src/service/luci_build_service.dart"
    },
    {
      "type": "modify",
      "old_id": "025496dd173c3f030eee10072b36a062ea6d0175",
      "old_mode": 33188,
      "old_path": "app_dart/lib/src/service/scheduler.dart",
      "new_id": "705fca9ef8f1e03a73549f04f1a72ca8bdd03b27",
      "new_mode": 33188,
      "new_path": "app_dart/lib/src/service/scheduler.dart"
    },
    {
      "type": "modify",
      "old_id": "368c0b82cbafa24c52735d11fef9d09190694329",
      "old_mode": 33188,
      "old_path": "app_dart/test/request_handlers/scheduler/batch_backfiller_test.dart",
      "new_id": "aa94979133e476b622d823584262d771fc94dcf1",
      "new_mode": 33188,
      "new_path": "app_dart/test/request_handlers/scheduler/batch_backfiller_test.dart"
    },
    {
      "type": "modify",
      "old_id": "700dc808e0c6260eff5ec75113603b560befd519",
      "old_mode": 33188,
      "old_path": "app_dart/test/service/content_aware_hash_service_test.dart",
      "new_id": "df643076be8c9d38e15798d24566c67fdd0d49d7",
      "new_mode": 33188,
      "new_path": "app_dart/test/service/content_aware_hash_service_test.dart"
    },
    {
      "type": "modify",
      "old_id": "0ac74121e011bdd97c5eccd3ce4e8cd5882b1b30",
      "old_mode": 33188,
      "old_path": "app_dart/test/service/luci_build_service/schedule_prod_builds_test.dart",
      "new_id": "efb4dd622bc7c0eb8e53e34f23f2337ec0d0de72",
      "new_mode": 33188,
      "new_path": "app_dart/test/service/luci_build_service/schedule_prod_builds_test.dart"
    },
    {
      "type": "modify",
      "old_id": "07ba8190abf3082feb1986c2cf51bb4bab312e38",
      "old_mode": 33188,
      "old_path": "app_dart/test/service/scheduler_test.dart",
      "new_id": "0c4e3d33967739ec3f4f965724e32f555959fea5",
      "new_mode": 33188,
      "new_path": "app_dart/test/service/scheduler_test.dart"
    },
    {
      "type": "modify",
      "old_id": "01bbc9d80e407c07330d9dc981c452adebabe5f9",
      "old_mode": 33188,
      "old_path": "app_dart/test/src/service/fake_content_aware_hash_service.dart",
      "new_id": "edb8d6f3bd0c833799853b7776741f031fdc2529",
      "new_mode": 33188,
      "new_path": "app_dart/test/src/service/fake_content_aware_hash_service.dart"
    },
    {
      "type": "modify",
      "old_id": "0ad393f9096bcb2685ee1ab04457b951985c7cf2",
      "old_mode": 33188,
      "old_path": "app_dart/test/src/utilities/mocks.mocks.dart",
      "new_id": "79a6d18036a9e8a0eaabd8cadfed2f4cf281b2f9",
      "new_mode": 33188,
      "new_path": "app_dart/test/src/utilities/mocks.mocks.dart"
    }
  ]
}
