)]}'
{
  "commit": "5f64d496c1da4a610c9feb8a0d19869b701d2b04",
  "tree": "2122c777bbff3628ce715e07c76a2ff53843994d",
  "parents": [
    "bc65d5e3baebc423d355c1e1ed48e1a1f299e5a2"
  ],
  "author": {
    "name": "David Sanderson",
    "email": "32687193+dws@users.noreply.github.com",
    "time": "Sun Nov 08 14:06:18 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Nov 08 14:06:18 2026 +0000"
  },
  "message": "fix(pypi): enable pip.default.envsubst for pip.default.index_url (#4438)\n\nIt turns out that pip.parse.envsubst could not reasonably be used\ntogether\nwith pip.default.index_url, as there could be multiple pip.parse tags\nwith varying contents, so pip.default.index_url would not always be\nprocessed in the same way.\n\nTo cope with this, we here introduce pip.default.envsubst, which can\neffectively be used together with pip.default.index_url.\n\nThis also fixes a testing bug where envsubst was not a list.\n\nCloses #4123\n\n---------\n\nCo-authored-by: Ignas Anikevicius \u003c240938+aignas@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2db9307926e2e6d6b84400da9738f4efa828289c",
      "new_mode": 33188,
      "new_path": "news/4438.added.md"
    },
    {
      "type": "modify",
      "old_id": "ec3193778c7c21ee2d16ffcb12d5c00bb090671b",
      "old_mode": 33188,
      "old_path": "python/private/pypi/extension.bzl",
      "new_id": "71423e4e8b6128be473998a10ff48524ae401f0e",
      "new_mode": 33188,
      "new_path": "python/private/pypi/extension.bzl"
    },
    {
      "type": "modify",
      "old_id": "2500a3483be50c0e39525b4e59afd557f3c3462a",
      "old_mode": 33188,
      "old_path": "python/private/pypi/hub_builder.bzl",
      "new_id": "ef6a7247c11092abb1ce647ee2167d422e885bed",
      "new_mode": 33188,
      "new_path": "python/private/pypi/hub_builder.bzl"
    },
    {
      "type": "modify",
      "old_id": "ee8e58dfe413cf65c24258c950f624730b53ec72",
      "old_mode": 33188,
      "old_path": "tests/pypi/extension/extension_tests.bzl",
      "new_id": "b14e6feffbe557cf15133fad800589dd14bf5a89",
      "new_mode": 33188,
      "new_path": "tests/pypi/extension/extension_tests.bzl"
    },
    {
      "type": "modify",
      "old_id": "7b5bdfdfd69b377e1fa3c2fe6c995c39018bdca7",
      "old_mode": 33188,
      "old_path": "tests/pypi/extension/pip_parse.bzl",
      "new_id": "638836e588f45e1b3b57d298e15c651c3843a875",
      "new_mode": 33188,
      "new_path": "tests/pypi/extension/pip_parse.bzl"
    },
    {
      "type": "modify",
      "old_id": "48f6c44c142dc6ac66cc0c9da327de22aa0c385d",
      "old_mode": 33188,
      "old_path": "tests/pypi/hub_builder/hub_builder_tests.bzl",
      "new_id": "073ccc0f586507d9ef6351596b0395ddd7e9212a",
      "new_mode": 33188,
      "new_path": "tests/pypi/hub_builder/hub_builder_tests.bzl"
    }
  ]
}
