From 8e13eb5bb68b017905bc7bb23a39e97ab0ab1b5a Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Mon, 20 Jan 2025 18:30:23 -0500 Subject: [PATCH] Validate metadata under GitHub fast path (#10796) ## Summary This is leading to a failing test (when not rate-limited). --- crates/uv-distribution/src/source/mod.rs | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/crates/uv-distribution/src/source/mod.rs b/crates/uv-distribution/src/source/mod.rs index 4a784fbf4..8faa3844f 100644 --- a/crates/uv-distribution/src/source/mod.rs +++ b/crates/uv-distribution/src/source/mod.rs @@ -1518,11 +1518,22 @@ impl<'a, T: BuildContext> SourceDistributionBuilder<'a, T> { .github_metadata(precise, source, resource, client) .await? { - debug!("Found static metadata via GitHub fast path for: {source}"); - return Ok(ArchiveMetadata { - metadata: Metadata::from_metadata23(metadata), - hashes: vec![], - }); + // Validate the metadata, but ignore it if the metadata doesn't match. + match validate_metadata(source, &metadata) { + Ok(()) => { + debug!("Found static metadata via GitHub fast path for: {source}"); + return Ok(ArchiveMetadata { + metadata: Metadata::from_metadata23(metadata), + hashes: vec![], + }); + } + Err(Error::WheelMetadataNameMismatch { metadata, given }) => { + debug!( + "Ignoring `pyproject.toml` from GitHub for: {source} (metadata: {metadata}, given: {given})" + ); + } + Err(err) => return Err(err), + } } }