mod private
{
#[ allow( unused_imports, clippy ::wildcard_imports ) ]
use crate ::tool :: *;
use error ::untyped ::
{
format_err,
};
#[ must_use ]
pub fn repo_url_extract( full_url: &str ) -> Option< String >
{
let parts: Vec< &str > = full_url.split( '/' ).collect();
if parts.len() >= 4 && parts[ 0 ] == "https:" && parts[ 1 ].is_empty() && parts[ 2 ] == "github.com"
{
let user = parts[ 3 ];
let repo = parts[ 4 ];
let repo_url = format!( "https://github.com/{user}/{repo}" );
Some( repo_url )
}
else
{
None
}
}
pub fn git_info_extract( url: &str ) -> error ::untyped ::Result< String >
{
let parts: Vec< &str > = url.split( '/' ).collect();
if parts.len() >= 2
{
Ok( format!( "{}/{}", parts[ parts.len() - 2 ], parts[ parts.len() - 1 ] ) )
}
else
{
Err( format_err!( "Fail to extract git username and repository name" ) )
}
}
}
crate ::mod_interface!
{
own use repo_url_extract;
own use git_info_extract;
}