)]}'
{
  "commit": "1631a5e6b0ec5bd8be46c83567e1c305a4a2f5f3",
  "tree": "8f05eb7660ae70d2413213744306f7ccb8920a8e",
  "parents": [
    "e16ec70f99c206af4c764b0f0feddaaea5769f5e",
    "97dc5c1bd9527c2abe2183b16a4b7ef037dc34a7"
  ],
  "author": {
    "name": "Gavin Mak",
    "email": "gavinmak@google.com",
    "time": "Tue Apr 15 20:28:00 2025"
  },
  "committer": {
    "name": "Gavin Mak",
    "email": "gavinmak@google.com",
    "time": "Tue Apr 15 20:28:00 2025"
  },
  "message": "Merge tag \u0027v2.54\u0027\n\nrepo v2.54\n\n* tag \u0027v2.54\u0027:\n  project: use --netrc-optional instead of --netrc\n  launcher: switch command quoting to shlex.quote\n  sync: Warn about excessive job counts\n  run_tests: fix running when cwd is not the root\n  run_tests: enable Python 3.8 CI coverage\n  Fix EROFS error when root fs is mounted read-only\n  pager: drop unused global vars\n  launcher: change RunError to subprocess.CalledProcessError\n  launcher: change collections.namedtuple to typing.NamedTuple\n  tox: sync black settings with run_tests\n  black: update to v25\n  run_tests: move test filtering to pytest markers\n  run_tests: move CQ test skips here\n  run_tests: run all tests all the time\n  launcher: change RunResult to subprocess.CompletedProcess\n  Sync: Fix full submodule sync while shallow specified\n  sync: Refresh index before updating repo\n  gc: Add tags to remote pack list\n  Activate submodules\n  Use \u0027gitfile\u0027 in submodule checkouts\n  Update internal filesystem layout for submodules\n  Revert \"sync: skip network half on repo upgrade\"\n  docs: smart-sync: split out \u0026 expand details\n  run_tests: update to python 3.11 \u0026 pytest 8.3.4\n  git_config: prefer XDG config location\n",
  "tree_diff": []
}
