pub mod error;
pub use error::Error;
mod providers;
use crate::providers::determine_provider;
pub async fn extract_codeblock(git_url: &str) -> Result<String, Error> {
let git_url = url::Url::parse(git_url)?;
let provider = determine_provider(&git_url)?;
let snippet = match provider {
providers::GitProvider::GitHub => providers::github::fetch_snippet(&git_url).await?,
providers::GitProvider::GitLab => providers::gitlab::fetch_snippet(&git_url).await?,
};
let header = "";
Ok(format!("```{}\n{}\n```", header, snippet.code))
}