From 0f450fc592da0eddeed4c16d8defdeacc8e588b8 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Tue, 22 Oct 2024 09:13:50 -0400 Subject: [PATCH] Replace dashes with underscores in index credential variables --- crates/uv-auth/src/credentials.rs | 12 +++++++++++- crates/uv/tests/it/lock.rs | 6 +++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/crates/uv-auth/src/credentials.rs b/crates/uv-auth/src/credentials.rs index a31419641007..12ea4461d03b 100644 --- a/crates/uv-auth/src/credentials.rs +++ b/crates/uv-auth/src/credentials.rs @@ -146,7 +146,17 @@ impl Credentials { /// For example, given a name of `"pytorch"`, search for `UV_INDEX_PYTORCH_USERNAME` and /// `UV_INDEX_PYTORCH_PASSWORD`. pub fn from_env(name: &str) -> Option { - let name = name.to_uppercase(); + // Convert to uppercase, and replace any non-alphanumeric characters with underscores. + let name = name + .chars() + .map(|c| { + if c.is_ascii_alphanumeric() { + c.to_ascii_uppercase() + } else { + '_' + } + }) + .collect::(); let username = std::env::var(EnvVars::index_username(&name)).ok(); let password = std::env::var(EnvVars::index_password(&name)).ok(); if username.is_none() && password.is_none() { diff --git a/crates/uv/tests/it/lock.rs b/crates/uv/tests/it/lock.rs index 4426d4ac7f54..f9cbde3c6e11 100644 --- a/crates/uv/tests/it/lock.rs +++ b/crates/uv/tests/it/lock.rs @@ -6817,7 +6817,7 @@ fn lock_env_credentials() -> Result<()> { build-backend = "setuptools.build_meta" [[tool.uv.index]] - name = "proxy" + name = "internal-proxy" url = "https://pypi-proxy.fly.dev/basic-auth/simple" default = true "#, @@ -6838,8 +6838,8 @@ fn lock_env_credentials() -> Result<()> { // Provide credentials via environment variables. uv_snapshot!(context.filters(), context.lock() - .env(EnvVars::index_username("PROXY"), "public") - .env(EnvVars::index_password("PROXY"), "heron"), @r###" + .env(EnvVars::index_username("INTERNAL_PROXY"), "public") + .env(EnvVars::index_password("INTERNAL_PROXY"), "heron"), @r###" success: true exit_code: 0 ----- stdout -----