cloud_terrastodon_entrypoint 0.35.0

Main entrypoint for the Cloud Terrastodon CLI
use cloud_terrastodon_azure_devops::fetch_all_azure_devops_projects;
use cloud_terrastodon_azure_devops::get_default_organization_url;
use cloud_terrastodon_user_input::Choice;
use cloud_terrastodon_user_input::PickerTui;
use eyre::Result;

pub async fn browse_azure_devops_projects() -> Result<()> {
    let org_url = get_default_organization_url().await?;
    let projects = fetch_all_azure_devops_projects(&org_url).await?;
    let chosen = PickerTui::new()
        .set_header("Azure DevOps Projects")
        .pick_many(projects.into_iter().map(|project| Choice {
            key: format!(
                "{} {:64} - {}",
                project.id,
                project.name,
                project.description.clone().unwrap_or_default()
            ),
            value: project,
        }))?;

    println!("You chose:");
    println!("{:#?}", chosen);
    Ok(())
}