)]}'
{
  "commit": "f7e3aad44b80d0f4cd95a836029333bc19e4d20e",
  "tree": "e391cd3373315a0b84373b6862910298d7eb1626",
  "parents": [
    "aa5870632d13cf09876992307bf381fb7f8b3d47"
  ],
  "author": {
    "name": "Richard Levasseur",
    "email": "richardlev@gmail.com",
    "time": "Fri Oct 09 21:51:01 2026 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Oct 09 21:51:01 2026 -0700"
  },
  "message": "build(release): make Git.checkout a context manager (#4239)\n\nRelease commands that switch to older release branches left the working\ntree on the target branch when exiting. This caused the post-job cleanup\nfor the local `.github/actions/setup-bazel` composite action to fail\nwhen the checked-out release branch predated that action.\n\nConvert `Git.checkout()` into a context manager that restores the prior\nbranch on exit, and update all callers and agent Python conventions.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fd7aef7cb7894df59e809ac73e71dfcf4ab663d4",
      "old_mode": 33188,
      "old_path": ".agents/rules/python.md",
      "new_id": "f2545abbe113a09b2b0968c9fcc876ee8b3f5a56",
      "new_mode": 33188,
      "new_path": ".agents/rules/python.md"
    },
    {
      "type": "modify",
      "old_id": "21d00b1994e2c8597ed3200b74914ce2307f4fa5",
      "old_mode": 33188,
      "old_path": "dev/release/backport_prepare.py",
      "new_id": "3f03bdb0da82d3793b3ac7ee86db520d42223367",
      "new_mode": 33188,
      "new_path": "dev/release/backport_prepare.py"
    },
    {
      "type": "modify",
      "old_id": "fabf0c54e4dedd0cdb2876c8ca7084a10d41ac8a",
      "old_mode": 33188,
      "old_path": "dev/release/create_rc.py",
      "new_id": "3ca50e5c3e86dfe9b0fbd2914ae353693e102ec2",
      "new_mode": 33188,
      "new_path": "dev/release/create_rc.py"
    },
    {
      "type": "modify",
      "old_id": "bab76a6c4a2c099711444377d95bcf9e1c0bd4a9",
      "old_mode": 33188,
      "old_path": "dev/release/git.py",
      "new_id": "d4943dcf3f815037de4b03dc4f535eb5a2984c94",
      "new_mode": 33188,
      "new_path": "dev/release/git.py"
    },
    {
      "type": "modify",
      "old_id": "d2df2b000def0fe01d3b00290325107edde20674",
      "old_mode": 33188,
      "old_path": "dev/release/prepare.py",
      "new_id": "2d11cffa046df53e5b6dcd35995780e9bf31746d",
      "new_mode": 33188,
      "new_path": "dev/release/prepare.py"
    },
    {
      "type": "modify",
      "old_id": "2b2a0aa4585badcbd1e2c3efc1746080fb253b39",
      "old_mode": 33188,
      "old_path": "dev/release/process_backports.py",
      "new_id": "243f1ab2ebe9af5850c610232a79b0b4d604c554",
      "new_mode": 33188,
      "new_path": "dev/release/process_backports.py"
    },
    {
      "type": "modify",
      "old_id": "d79722f09d1d4d7ec3ab957ed3a53c6bc8e873f4",
      "old_mode": 33188,
      "old_path": "dev/release/sync_changelog.py",
      "new_id": "0376017ca56792865d1fe52baca97c1273b26488",
      "new_mode": 33188,
      "new_path": "dev/release/sync_changelog.py"
    },
    {
      "type": "modify",
      "old_id": "99fac9d7ab65ad0f100c319fb1eabfb435070557",
      "old_mode": 33188,
      "old_path": "tests/tools/private/release/backport_prepare_test.py",
      "new_id": "cfd0e0108fe94149a3650534213ae70dac029012",
      "new_mode": 33188,
      "new_path": "tests/tools/private/release/backport_prepare_test.py"
    },
    {
      "type": "modify",
      "old_id": "70905beb79ba72a81f6983f7d3d76bf61cb69db8",
      "old_mode": 33188,
      "old_path": "tests/tools/private/release/create_rc_test.py",
      "new_id": "b2f36d14fbef21cd1c7e76c0d13ef083a41c3359",
      "new_mode": 33188,
      "new_path": "tests/tools/private/release/create_rc_test.py"
    },
    {
      "type": "modify",
      "old_id": "b9ed7551b4426426b6f50c64e819dd4f5def2b8c",
      "old_mode": 33188,
      "old_path": "tests/tools/private/release/git_test.py",
      "new_id": "7669f9137c411f76eef82ea3b5c255a703f99d63",
      "new_mode": 33188,
      "new_path": "tests/tools/private/release/git_test.py"
    },
    {
      "type": "modify",
      "old_id": "62d2b627470749d6adc9626c089436d0ba898e9b",
      "old_mode": 33188,
      "old_path": "tests/tools/private/release/prepare_test.py",
      "new_id": "655dba5c9276d97c1b4920608fdc52d34427d7ce",
      "new_mode": 33188,
      "new_path": "tests/tools/private/release/prepare_test.py"
    },
    {
      "type": "modify",
      "old_id": "87335735e614206b2f57f65961e5a193ecaf7b6f",
      "old_mode": 33188,
      "old_path": "tests/tools/private/release/process_backports_test.py",
      "new_id": "475ada4ae283c2d2122d06f380deb24e21315853",
      "new_mode": 33188,
      "new_path": "tests/tools/private/release/process_backports_test.py"
    },
    {
      "type": "modify",
      "old_id": "2cdf2026952d56fcbfdeea12403cb64eb01cad93",
      "old_mode": 33188,
      "old_path": "tests/tools/private/release/sync_changelog_test.py",
      "new_id": "d5b1b0e793cc6bbfadc43eb3467c3953b83e2c11",
      "new_mode": 33188,
      "new_path": "tests/tools/private/release/sync_changelog_test.py"
    }
  ]
}
