adnv 1.5.0

CLI that tracks, checks and auto-updates infrastructure dependency versions across Terraform, Helm, Docker, Git and npm
Documentation
use super::Tag;
use crate::Result;
use crate::sources::data::{TerraformSource, TerraformSourceKind};

pub async fn list_tags(source: &TerraformSource) -> Result<Vec<Tag>> {
    use terraform_registry::Address;

    let address = match source.kind {
        TerraformSourceKind::Module => Address::parse_module(&source.address)?,
        TerraformSourceKind::Provider => Address::parse_provider(&source.address)?,
    };

    let client = address.connect_registry().await?;

    Ok(match source.kind {
        TerraformSourceKind::Module => client
            .list_module_versions(&address)
            .await?
            .into_iter()
            .map(|module| Tag::new_without_date(module.version))
            .collect::<Vec<_>>(),
        TerraformSourceKind::Provider => client
            .list_provider_versions(&address)
            .await?
            .into_iter()
            .map(|provider| Tag::new_without_date(provider.version))
            .collect::<Vec<_>>(),
    })
}