Gaps in url_replacements Coverage #8949
Unanswered
jstriebel
asked this question in
Troubleshooting and bug reports
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
mise supports a
url_replacementssetting that lets users redirect HTTP requests to internal mirrors or proxies — useful in enterprise/DMZ environments where upstream URLs are not directly reachable.This works by calling
apply_url_replacements()in src/http.rs before every request made through mise's centralHTTPclient. However, several dependencies make their own HTTP requests, completely bypassing this mechanism. Users who configureurl_replacementsto mirror upstream registries (e.g., GitHub, conda-forge, Sigstore infrastructure) will find that these five code paths silently ignore the setting and continue contacting the original upstream URLs.Affected Code Paths
1.
sigstore-verificationUsed in src/backend/github.rs and crates/vfox/src/vfox.rs for attestation and SLSA provenance verification.
Contacts:
api.github.com)rekor.sigstore.dev)fulcio.sigstore.dev)These URLs are hardcoded inside the
sigstorecrate and there is no hook to intercept or redirect them. Simply passing different URLs is not possible — the entire TUF trust root would need to be replaced, which is not a realistic option in most environments. The practical workaround is skipping attestation verification entirely.See also: #8846, jdx/sigstore-verification#32.
2.
gixUsed in src/git.rs for cloning and fetching plugin repositories (
gix::prepare_clone,fetch_then_checkout).gixis configured with theblocking-http-transport-reqwest-*feature, meaning it creates its own reqwest client for HTTP(S) git operations. Plugin git URLs pass throughgixdirectly, not through mise'sHTTPclient.3.
ubiUsed in src/backend/ubi.rs via
UbiBuilder/ubi.install_binary().ubidrives its own reqwest client to:mise sets the auth token on the builder but has no way to intercept the URLs
ubiresolves and fetches internally.4.
rattler_repodata_gatewayUsed in src/backend/conda.rs via
Gateway::builder().finish().rattler's gateway fetches conda channel repodata (e.g., fromconda-forgeor custom channels) using its own HTTP client. The channel URL is resolved and fetched entirely inside rattler, outside of mise'sHTTPclient.5. vfox download client
Used in crates/vfox/src/vfox.rs for downloading tool archives.
The vfox crate defines its own
CLIENTincrates/vfox/src/http.rsand uses it directly for downloads.See also: #8427.
(This document was partially generated with GitHub Copilot.)
Beta Was this translation helpful? Give feedback.
All reactions