)]}'
{
  "commit": "915cf5fd42bb4905568b44afb82d3a05b0eced69",
  "tree": "1c0afc34c435f5284a38f90b1999a6821f1ce0af",
  "parents": [
    "02d2850fe05d628ab68ecd57ef1cfaf4194ee39f"
  ],
  "author": {
    "name": "John \"codefu\" McDole",
    "email": "codefu@google.com",
    "time": "Wed May 06 15:27:23 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed May 06 15:27:23 2026 -0700"
  },
  "message": "fix: make some APIs cron-only (#5049)\n\nThe biggest part of this change is trying to keep\nDashboardAuthentication somewhat flexible. You can extract a \"cron only\"\nauthentication from the chain of responsibility.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4fe15669a21edc565d8c65f39e3b8682b55bc75b",
      "old_mode": 33188,
      "old_path": "app_dart/bin/gae_server.dart",
      "new_id": "187be7e546a2e095759d42eea59d97f06b3d0c8c",
      "new_mode": 33188,
      "new_path": "app_dart/bin/gae_server.dart"
    },
    {
      "type": "modify",
      "old_id": "3979a15aca793770f69381c34d8608d55a56ffa6",
      "old_mode": 33188,
      "old_path": "app_dart/lib/server.dart",
      "new_id": "1613335f50e6f73835a02c5ec305984cddda4089",
      "new_mode": 33188,
      "new_path": "app_dart/lib/server.dart"
    },
    {
      "type": "modify",
      "old_id": "4a4e1bda11ad52b0cc48c3bb32c4eab5103a1e39",
      "old_mode": 33188,
      "old_path": "app_dart/lib/src/request_handlers/scheduler/batch_backfiller.dart",
      "new_id": "da9394ab4b6198b606632d1a4e02fa90143b5c6e",
      "new_mode": 33188,
      "new_path": "app_dart/lib/src/request_handlers/scheduler/batch_backfiller.dart"
    },
    {
      "type": "modify",
      "old_id": "b5f74191cbf74452595cdc3dfdc280963015d59a",
      "old_mode": 33188,
      "old_path": "app_dart/lib/src/request_handlers/scheduler/vacuum_stale_tasks.dart",
      "new_id": "10d767ca23f09db1996332fddf17c7b61c0b6bdb",
      "new_mode": 33188,
      "new_path": "app_dart/lib/src/request_handlers/scheduler/vacuum_stale_tasks.dart"
    },
    {
      "type": "modify",
      "old_id": "b6f65cac2bd220a3e4c2f8afd1f2971151d11213",
      "old_mode": 33188,
      "old_path": "app_dart/lib/src/request_handling/dashboard_authentication.dart",
      "new_id": "38f8e041e57c42b2c573d30aaef9159345b3b775",
      "new_mode": 33188,
      "new_path": "app_dart/lib/src/request_handling/dashboard_authentication.dart"
    },
    {
      "type": "modify",
      "old_id": "863e4f7f602f511b70fb0eb27054c2e4ba78987e",
      "old_mode": 33188,
      "old_path": "app_dart/lib/src/request_handling/presubmit_authentication.dart",
      "new_id": "2e28e1bff3abcd74ca0ab629d1b4bc5950cfe320",
      "new_mode": 33188,
      "new_path": "app_dart/lib/src/request_handling/presubmit_authentication.dart"
    },
    {
      "type": "modify",
      "old_id": "a44dd5b74f630a8eaa5a28c1e5d821245e3e4fb2",
      "old_mode": 33188,
      "old_path": "app_dart/test/request_handlers/scheduler/batch_backfiller_test.dart",
      "new_id": "f791db15ca3765d7be2def3416c2b013c596d99b",
      "new_mode": 33188,
      "new_path": "app_dart/test/request_handlers/scheduler/batch_backfiller_test.dart"
    },
    {
      "type": "modify",
      "old_id": "52c7bc17e379948c8c262c690f08fa70862fa5e8",
      "old_mode": 33188,
      "old_path": "app_dart/test/request_handlers/scheduler/vacuum_stale_tasks_test.dart",
      "new_id": "b026593564e70f8f61875a9d35104729d6c1887d",
      "new_mode": 33188,
      "new_path": "app_dart/test/request_handlers/scheduler/vacuum_stale_tasks_test.dart"
    },
    {
      "type": "modify",
      "old_id": "1a3199fef902912d11c5e38e2672cfa387fc902a",
      "old_mode": 33188,
      "old_path": "app_dart/test/server_test.dart",
      "new_id": "9861796504bb63a681644eca8a9ae11a859ce5fd",
      "new_mode": 33188,
      "new_path": "app_dart/test/server_test.dart"
    },
    {
      "type": "modify",
      "old_id": "ee27f92ca53999b4b54b94523d4c0eab04883096",
      "old_mode": 33188,
      "old_path": "app_dart/tool/local_server.dart",
      "new_id": "41f12fde8a774ac58a8f19efa235a89d666e1d01",
      "new_mode": 33188,
      "new_path": "app_dart/tool/local_server.dart"
    },
    {
      "type": "modify",
      "old_id": "b65321114565e1b63e56999f2005c5214a5344ec",
      "old_mode": 33188,
      "old_path": "packages/cocoon_integration_test/lib/src/fakes/fake_dashboard_authentication.dart",
      "new_id": "16bbdae802f510f337c021e9550a2c783c89530b",
      "new_mode": 33188,
      "new_path": "packages/cocoon_integration_test/lib/src/fakes/fake_dashboard_authentication.dart"
    },
    {
      "type": "modify",
      "old_id": "61902634f64ba8ce88dfb8dcb4de0eab81b3790c",
      "old_mode": 33188,
      "old_path": "packages/cocoon_integration_test/lib/src/server.dart",
      "new_id": "9bdc4fbe76548559cecd7f62f64e3e50c69e729b",
      "new_mode": 33188,
      "new_path": "packages/cocoon_integration_test/lib/src/server.dart"
    }
  ]
}
