pub struct GitLabProvider<'a> { /* private fields */ }
Expand description
§GitLab repository provider
§Supported URL Formats
https://gitlab.com/owner/repo.git
https://gitlab.com/owner/subgroup1/subgroup2/repo.git
git@gitlab.com:owner/repo.git
git@gitlab.com:owner/subgroup1/subgroup2/repo.git
§Examples
use git_url_parse::GitUrl;
use git_url_parse::types::provider::GitLabProvider;
fn main() -> Result<(), git_url_parse::GitUrlParseError> {
// Top-level repository
let url1 = GitUrl::parse("https://gitlab.com/gitlab-org/gitlab.git")?;
let provider1 : GitLabProvider = url1.provider_info()?;
assert_eq!(provider1.owner(), "gitlab-org");
assert_eq!(provider1.repo(), "gitlab");
assert_eq!(provider1.subgroup(), None);
assert_eq!(provider1.fullname(), "gitlab-org/gitlab");
// Repository with subgroups
let url2 = GitUrl::parse("https://gitlab.com/owner/group1/group2/project.git")?;
let provider2 : GitLabProvider = url2.provider_info()?;
assert_eq!(provider2.owner(), "owner");
assert_eq!(provider2.repo(), "project");
assert_eq!(provider2.subgroup(), Some(vec!["group1", "group2"]));
assert_eq!(provider2.fullname(), "owner/group1/group2/project");
Ok(())
}
Implementations§
Source§impl<'a> GitLabProvider<'a>
impl<'a> GitLabProvider<'a>
Source§impl<'a> GitLabProvider<'a>
impl<'a> GitLabProvider<'a>
Trait Implementations§
Source§impl<'a> Clone for GitLabProvider<'a>
impl<'a> Clone for GitLabProvider<'a>
Source§fn clone(&self) -> GitLabProvider<'a>
fn clone(&self) -> GitLabProvider<'a>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<'a> Debug for GitLabProvider<'a>
impl<'a> Debug for GitLabProvider<'a>
Source§impl<'a> Default for GitLabProvider<'a>
impl<'a> Default for GitLabProvider<'a>
Source§fn default() -> GitLabProvider<'a>
fn default() -> GitLabProvider<'a>
Returns the “default value” for a type. Read more
Source§impl<'a> GitProvider<GitUrl<'a>, GitUrlParseError> for GitLabProvider<'a>
impl<'a> GitProvider<GitUrl<'a>, GitUrlParseError> for GitLabProvider<'a>
Source§fn from_git_url(url: &GitUrl<'a>) -> Result<Self, GitUrlParseError>
fn from_git_url(url: &GitUrl<'a>) -> Result<Self, GitUrlParseError>
Trait method called by
GitUrl::provider_info()
Read moreSource§impl<'a> PartialEq for GitLabProvider<'a>
impl<'a> PartialEq for GitLabProvider<'a>
impl<'a> Eq for GitLabProvider<'a>
impl<'a> StructuralPartialEq for GitLabProvider<'a>
Auto Trait Implementations§
impl<'a> Freeze for GitLabProvider<'a>
impl<'a> RefUnwindSafe for GitLabProvider<'a>
impl<'a> Send for GitLabProvider<'a>
impl<'a> Sync for GitLabProvider<'a>
impl<'a> Unpin for GitLabProvider<'a>
impl<'a> UnwindSafe for GitLabProvider<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more