From dc455bfc26a1487a02815a645810e07c86522891 Mon Sep 17 00:00:00 2001 From: Jack O'Connor Date: Mon, 9 Jun 2025 14:44:43 -0700 Subject: [PATCH] add UV_NO_GITHUB_FAST_PATH --- crates/uv-git/src/resolver.rs | 5 +++++ crates/uv-static/src/env_vars.rs | 3 +++ docs/reference/environment.md | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/crates/uv-git/src/resolver.rs b/crates/uv-git/src/resolver.rs index 9335aed4d..fd90ff587 100644 --- a/crates/uv-git/src/resolver.rs +++ b/crates/uv-git/src/resolver.rs @@ -12,6 +12,7 @@ use tracing::debug; use uv_cache_key::{RepositoryUrl, cache_digest}; use uv_fs::LockedFile; use uv_git_types::{GitHubRepository, GitOid, GitReference, GitUrl}; +use uv_static::EnvVars; use uv_version::version; use crate::{Fetch, GitSource, Reporter}; @@ -54,6 +55,10 @@ impl GitResolver { url: &GitUrl, client: ClientWithMiddleware, ) -> Result, GitResolverError> { + if std::env::var_os(EnvVars::UV_NO_GITHUB_FAST_PATH).is_some() { + return Ok(None); + } + let reference = RepositoryReference::from(url); // If the URL is already precise, return it. diff --git a/crates/uv-static/src/env_vars.rs b/crates/uv-static/src/env_vars.rs index 58191fe64..aff56df45 100644 --- a/crates/uv-static/src/env_vars.rs +++ b/crates/uv-static/src/env_vars.rs @@ -727,4 +727,7 @@ impl EnvVars { /// Equivalent to the `--project` command-line argument. pub const UV_PROJECT: &'static str = "UV_PROJECT"; + + /// Disable GitHub-specific requests that allow uv to skip `git fetch` in some circumstances. + pub const UV_NO_GITHUB_FAST_PATH: &'static str = "UV_NO_GITHUB_FAST_PATH"; } diff --git a/docs/reference/environment.md b/docs/reference/environment.md index f86f52bca..61889ddb3 100644 --- a/docs/reference/environment.md +++ b/docs/reference/environment.md @@ -235,6 +235,10 @@ non-editable Ignore `.env` files when executing `uv run` commands. +### `UV_NO_GITHUB_FAST_PATH` + +Disable GitHub-specific requests that allow uv to skip `git fetch` in some circumstances. + ### `UV_NO_INSTALLER_METADATA` Skip writing `uv` installer metadata files (e.g., `INSTALLER`, `REQUESTED`, and `direct_url.json`) to site-packages `.dist-info` directories.