tree c4b22e94dbd5a189161ab9932e34e632162fdb71
parent 8fba377b0bc90ae6f852a621bb657213a1dd0066
author Christian von Schultz <christian@embedl.com> 1706708832 +0100
committer GitHub <noreply@github.com> 1706708832 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJluk9vCRC1aQ7uu5UhlAAAG8gQAK2cEcd8MTNyo8CqSWw6E8Uh
 YoDXpiogmIeN/b6INGDXlcCfLh/XpvEvWPWBy0y0qW8C8SHYcVvAsF4jU917gVM9
 JvS1PkZ7Jj5ZkuZWIdQ1Nc7nt+CCDtXqQri6zvoCvFeuVgbIHxOtbj1z4lpkjjDu
 8d2RGm18m6+SpLliRfPj5mriQuIJmSIGRlI2jwEMf1wR4LUByC0hsY8F5+eAXEwZ
 M+h0C2T7T5wdKgn5rzxDPuCvaex6kjOZO0JqwnKud67jp26ueXXoUBTzREpaG9An
 xYCRxq7nPDNfHTscy08PdWonGBWdmIgnhKG3lIOrPAZh/CJ3EwuMKfYz/lAJwIKZ
 YtEVRhKFAwjcdPCsmvpikPUmT/kR4+BNoGt37Iwq7FeU6d0spgfOS/D57RYfg5Ud
 29oNuue7M6VIVkOyoE8hR2D0fVQUAdKYOJBVyBjnIfgBfWyDvYLDpIZiAgz6ESEk
 VW1zLxf8FiyyXHNOYDbZGenlTAnLcDM0PqY2ZzrotFW+BcqJv0trIjg7a2NQfTPo
 LzYgYumIr3Fc0FLWr+/hkFKfDWzbKoyeBvRjeBySJrXJIq0M2CctYys11eYyqZos
 ScV6YK64CyG2xEolAYOB/4MxCe5Jmrm+RCVm/wgGUwgOEIWsqBubdXG+IIGslGrc
 ntUlgx927L2Yo0mWImys
 =SEws
 -----END PGP SIGNATURE-----
 

feat: Add support for envsubst in extra_pip_args (#1673)

Since `MODULE.bazel` files don't support `load()`, it is more difficult
to grab the value of an environment variable such as `PIP_INDEX_URL` or
`PIP_RETRIES` and feed it to `pip.parse()`. Some of these `PIP_*`
variables are useful in `extra_pip_args`. To enable this use case, also
for the bzlmod scenario, add the `envsubst` attribute, which is a list
of environment variables to substitute in `extra_pip_args`. If
`$VARNAME`, `${VARNAME}` or `${VARNAME:-default}` is found in
`extra_pip_args`, substitute the value of the variable.