)]}'
{
  "commit": "8bc4c1d58ce25a52d3ec109a87e538d503cfe817",
  "tree": "784fe0a0679d7cece23641a8c398ba89ec182c63",
  "parents": [
    "50ea0d6d3d2974030c1fd2f10198d4ed44828d97"
  ],
  "author": {
    "name": "David Sanderson",
    "email": "32687193+dws@users.noreply.github.com",
    "time": "Sun Nov 08 14:06:18 2026 +0000"
  },
  "committer": {
    "name": "github-actions[bot]",
    "email": "41898282+github-actions[bot]@users.noreply.github.com",
    "time": "Mon Nov 09 06:41:58 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\n(cherry picked from commit 5f64d496c1da4a610c9feb8a0d19869b701d2b04)\n\nWork towards #4388\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1534137af81f19ec4a3907ef719058988faff706",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "c21f14e2a5f669fb9c739932e8851a154d766218",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "5a571146fd5cc7bab22ad386b1a6aed852aa08ac",
      "old_mode": 33188,
      "old_path": "python/private/pypi/extension.bzl",
      "new_id": "bcfe44ca3415e23dc379a6c7bfea5446cce870a7",
      "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": "11d4c31913b097936df999badad7f01826a19880",
      "old_mode": 33188,
      "old_path": "tests/pypi/extension/extension_tests.bzl",
      "new_id": "7c8f968193333d341fc056d769a69add5d9b7baf",
      "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"
    }
  ]
}
