diff --git a/Cargo.lock b/Cargo.lock index 35c76430b..5e15b088a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5117,6 +5117,7 @@ dependencies = [ "uv-cache-key", "uv-fs", "uv-static", + "uv-version", "which", ] diff --git a/crates/uv-git/Cargo.toml b/crates/uv-git/Cargo.toml index e7e20de8f..faa0cf008 100644 --- a/crates/uv-git/Cargo.toml +++ b/crates/uv-git/Cargo.toml @@ -20,6 +20,7 @@ uv-cache-key = { workspace = true } uv-fs = { workspace = true, features = ["tokio"] } uv-auth = { workspace = true } uv-static = { workspace = true} +uv-version = { workspace = true } anyhow = { workspace = true } cargo-util = { workspace = true } diff --git a/crates/uv-git/src/git.rs b/crates/uv-git/src/git.rs index fae382cca..b51ab939b 100644 --- a/crates/uv-git/src/git.rs +++ b/crates/uv-git/src/git.rs @@ -16,6 +16,7 @@ use url::Url; use uv_fs::Simplified; use uv_static::EnvVars; +use uv_version::version; use crate::sha::GitOid; use crate::{GitHubRepository, GitSha}; @@ -782,7 +783,10 @@ fn github_fast_path( debug!("Attempting GitHub fast path for: {url}"); let mut request = client.get(&url); request = request.header("Accept", "application/vnd.github.3.sha"); - request = request.header("User-Agent", "uv"); + request = request.header( + "User-Agent", + format!("uv/{} (+https://github.com/astral-sh/uv)", version()), + ); if let Some(local_object) = local_object { request = request.header("If-None-Match", local_object.to_string()); } diff --git a/crates/uv-git/src/resolver.rs b/crates/uv-git/src/resolver.rs index 5539ce04d..4b200160c 100644 --- a/crates/uv-git/src/resolver.rs +++ b/crates/uv-git/src/resolver.rs @@ -5,14 +5,14 @@ use std::sync::Arc; use tracing::debug; +use crate::{Fetch, GitHubRepository, GitReference, GitSha, GitSource, GitUrl, Reporter}; use dashmap::mapref::one::Ref; use dashmap::DashMap; use fs_err::tokio as fs; use reqwest_middleware::ClientWithMiddleware; use uv_cache_key::{cache_digest, RepositoryUrl}; use uv_fs::LockedFile; - -use crate::{Fetch, GitHubRepository, GitReference, GitSha, GitSource, GitUrl, Reporter}; +use uv_version::version; #[derive(Debug, thiserror::Error)] pub enum GitResolverError { @@ -73,7 +73,10 @@ impl GitResolver { debug!("Attempting GitHub fast path for: {url}"); let mut request = client.get(&url); request = request.header("Accept", "application/vnd.github.3.sha"); - request = request.header("User-Agent", "uv"); + request = request.header( + "User-Agent", + format!("uv/{} (+https://github.com/astral-sh/uv)", version()), + ); let response = request.send().await?; if !response.status().is_success() {