)]}'
{
  "commit": "6f6515029453bf81a41771e10d94db10e4a38d02",
  "tree": "b910bbfc81ca16b20d493cf1a3b91043448e95dc",
  "parents": [
    "40ea02ee3311bdf347a966dd01c5a14ab1bf654d"
  ],
  "author": {
    "name": "github-actions[bot]",
    "email": "41898282+github-actions[bot]@users.noreply.github.com",
    "time": "Tue Sep 22 06:54:57 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Sep 22 06:54:57 2026 +0000"
  },
  "message": "Prepare release v2.4.0 (#4176)\n\nWork towards #4175\n\nCo-authored-by: github-actions[bot] \u003c41898282+github-actions[bot]@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "abcd5ba3dc56410e067ff720429ed263489e1100",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "013d33c686dba0de78485242dac52704dd78d0c0",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "16bccded026ab16cf3336ada391516a07d5e0ba5",
      "old_mode": 33188,
      "old_path": "gazelle/docs/installation_and_usage.md",
      "new_id": "3a8733cda83b879f18a46bccb8f9825994518460",
      "new_mode": 33188,
      "new_path": "gazelle/docs/installation_and_usage.md"
    },
    {
      "type": "modify",
      "old_id": "c61618ff0726f853e0544a5950739ae2af690006",
      "old_mode": 33188,
      "old_path": "gazelle/manifest/defs.bzl",
      "new_id": "a01d663f5a655edced0f780cff02c26bc272cdf4",
      "new_mode": 33188,
      "new_path": "gazelle/manifest/defs.bzl"
    },
    {
      "type": "delete",
      "old_id": "f31115d4f356b23c958124440096bd6c2d64f7f0",
      "old_mode": 33188,
      "old_path": "news/2570.fixed.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "56c4337d53abf0a48fa1ed40e1f3100cb650060b",
      "old_mode": 33188,
      "old_path": "news/4023.changed.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "80e81333f6565f190926bc68cbca10c40415d970",
      "old_mode": 33188,
      "old_path": "news/4025.fixed.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "07e5cecf00e08dfafc39a9da065d2e53f1b6d85b",
      "old_mode": 33188,
      "old_path": "news/4029.added.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "0b24827c46e1884c4018dc7b1f853f83994f8972",
      "old_mode": 33188,
      "old_path": "news/4071.fixed.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "7e1c3237ae0c21b06408bffa1e1063574e2887e5",
      "old_mode": 33188,
      "old_path": "news/4079.fixed.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "12c6a51e17e03c28b17d78d272074c723335225d",
      "old_mode": 33188,
      "old_path": "news/4082.fixed.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "e30e6baeb58d53bbc7d7cba009ff12ee64d6fd24",
      "old_mode": 33188,
      "old_path": "news/4104.changed.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "bde84bcc084c0e1fd2b3027587cb95a320295fc2",
      "old_mode": 33188,
      "old_path": "news/4111.changed.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "e852e1ac96258e58301c0919d566ec82bff44dfa",
      "old_mode": 33188,
      "old_path": "news/4113.fixed.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "b68e75bf9158d91f1e04f75ef061176b377f0fc4",
      "old_mode": 33188,
      "old_path": "news/4114.fixed.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "3c6173fa5aa84bef362059e3347865277772afb1",
      "old_mode": 33188,
      "old_path": "news/4122.changed.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "54c2096fe61721a44bb231843691fd89ac6d1569",
      "old_mode": 33188,
      "old_path": "news/4125.fixed.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "5f87118bd16f792242af799467042bc45a7de790",
      "old_mode": 33188,
      "old_path": "news/4160.fixed.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "5b2ff574e6b605cb12a5d4de9ed47284c4a5b494",
      "old_mode": 33188,
      "old_path": "news/add_runfiles_raise_api.added.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "9cb1229dc4e08e6a653e0ff25c537a40896280a4",
      "old_mode": 33188,
      "old_path": "news/current-py-cc-libs-shared-library.fixed.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "delete",
      "old_id": "accf48cf95754b7d53650a435809f535b5714ae9",
      "old_mode": 33188,
      "old_path": "news/runfiles_py314_compat.fixed.md",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "5b842f85bc0ac385d0d8ec783e22801bc1d4a0cb",
      "old_mode": 33188,
      "old_path": "python/private/attributes.bzl",
      "new_id": "e52cd8dccd6adcdd6b76153932ab004fc052c4da",
      "new_mode": 33188,
      "new_path": "python/private/attributes.bzl"
    },
    {
      "type": "modify",
      "old_id": "da4f8d58b3ee1b1512efdc32ebc28dcea6365a82",
      "old_mode": 33188,
      "old_path": "python/private/current_py_cc_libs.bzl",
      "new_id": "e545ee708f85319ae1052bbced1518a055e93b69",
      "new_mode": 33188,
      "new_path": "python/private/current_py_cc_libs.bzl"
    },
    {
      "type": "modify",
      "old_id": "9650563830ecfcb138eb8cde6a12a63f9b043054",
      "old_mode": 33188,
      "old_path": "python/runfiles/runfiles.py",
      "new_id": "c15df1640a75414450e71fa8755201ec4ffb549e",
      "new_mode": 33188,
      "new_path": "python/runfiles/runfiles.py"
    },
    {
      "type": "modify",
      "old_id": "6080f135d8af0858997f10cc56a69885921abffe",
      "old_mode": 33188,
      "old_path": "python/uv/private/lock.bzl",
      "new_id": "33c301d49c12b77d13576520587fb7c9623e81b0",
      "new_mode": 33188,
      "new_path": "python/uv/private/lock.bzl"
    }
  ]
}
