diff --git a/e2e/backend/test_aqua b/e2e/backend/test_aqua index 77ef00b3c7..330f7ecd4d 100644 --- a/e2e/backend/test_aqua +++ b/e2e/backend/test_aqua @@ -14,5 +14,7 @@ test aqua:biomejs/biome@2.0.0 "biome --version" "Version: 2.0.0" test aqua:biomejs/biome@@biomejs/biome@2.0.0 "biome --version" "Version: 2.0.0" test aqua:gruntwork-io/terragrunt@0.77.22 "terragrunt --version" "terragrunt version v0.77.22" -assert_contains "MISE_USE_VERSIONS_HOST=0 mise ls-remote aqua:sharkdp/hyperfine" "1.9.0 -1.10.0" +assert_contains "MISE_USE_VERSIONS_HOST=0 mise ls-remote aqua:sharkdp/hyperfine" "1.8.0 +1.9.0 +1.10.0 +1.11.0" diff --git a/src/backend/aqua.rs b/src/backend/aqua.rs index 7903c34ae1..ad77ab5d15 100644 --- a/src/backend/aqua.rs +++ b/src/backend/aqua.rs @@ -58,15 +58,22 @@ impl Backend for AquaBackend { } async fn _list_remote_versions(&self, _config: &Arc) -> Result> { - let version_tags = self.get_version_tags().await?; + let version_tags = self.get_version_tags().await; let mut versions = Vec::new(); - for (v, tag) in version_tags.iter() { - let pkg = AQUA_REGISTRY - .package_with_version(&self.id, &[tag]) - .await - .unwrap_or_default(); - if !pkg.no_asset && pkg.error_message.is_none() { - versions.push(v.clone()); + match version_tags { + Ok(tags) => { + for (v, tag) in tags.iter() { + let pkg = AQUA_REGISTRY + .package_with_version(&self.id, &[tag]) + .await + .unwrap_or_default(); + if !pkg.no_asset && pkg.error_message.is_none() { + versions.push(v.clone()); + } + } + } + Err(e) => { + warn!("Remote versions cannot be fetched: {}", e); } } Ok(versions) @@ -79,8 +86,10 @@ impl Backend for AquaBackend { ) -> Result { let tag = self .get_version_tags() - .await? - .iter() + .await + .ok() + .into_iter() + .flatten() .find(|(version, _)| version == &tv.version) .map(|(_, tag)| tag); let mut v = tag.cloned().unwrap_or_else(|| tv.version.clone()); @@ -287,7 +296,10 @@ impl AquaBackend { versions.push((version.to_string(), tag)); } } else { - warn!("no aqua registry found for {}", self.ba()); + bail!( + "aqua package {} does not have repo_owner and/or repo_name.", + self.id + ); } Ok(versions) })