pub struct GitRepo {
pub url: GitUrl,
pub head: Option<GitCommitMeta>,
pub credentials: Option<GitCredentials>,
pub branch: Option<String>,
pub path: Option<PathBuf>,
}
Expand description
Use GitRepo::open()
to read a repo on disk. GitRepo::new()
if you need to clone the repo.
Use GitRepoCloneRequest
to clone repo to disk
Fields§
§url: GitUrl
The remote url of the repo
head: Option<GitCommitMeta>
The current commit. This can be configured prior to clone with with_commit()
credentials: Option<GitCredentials>
The ssh key or user/pass needed to clone for private repo
branch: Option<String>
The name of the remote branch.
This can be configured with a local branch name prior to clone with with_branch()
.
path: Option<PathBuf>
The location of the repo on disk
Implementations§
Source§impl GitRepo
impl GitRepo
Sourcepub fn open(
path: PathBuf,
branch: Option<String>,
commit_id: Option<String>,
) -> Result<Self>
pub fn open( path: PathBuf, branch: Option<String>, commit_id: Option<String>, ) -> Result<Self>
Returns a GitRepo
after parsing metadata from a repo
- If a local
branch
is not provided, current checked out branch will be used. The provided branch will be resolved to its remote branch name - If
commit_id
is not provided, the current commit (the HEAD ofbranch
) will be used
Examples found in repository?
More examples
5fn main() -> Result<()> {
6 let tempdir = Temp::new_dir()?;
7
8 // We're just using this for cloning
9 let _clone_repo = GitRepo::new("https://github.com/tjtelan/git-meta-rs.git")?
10 .to_clone()
11 .git_clone(&tempdir)?;
12
13 let repo = GitRepo::open(
14 tempdir.to_path_buf(),
15 Some("main".to_string()),
16 Some("f6eb3d6b7998989a48ed1024313fcac401c175fb".to_string()),
17 )?;
18
19 println!(
20 "Are there new commits?: {:?}",
21 repo.to_info().new_commits_exist()
22 );
23
24 Ok(())
25}
17fn main() -> Result<()> {
18 let current_dir = env::current_dir()?;
19
20 let repo = GitRepo::open(current_dir, None, None)?;
21
22 println!(
23 "Files that have changes at commit: a7cf222c46ad32f2802e79e1935f753a27adc9e8\n{:?}",
24 repo.to_info()
25 .list_files_changed_at("a7cf222c46ad32f2802e79e1935f753a27adc9e8")
26 );
27
28 println!(
29 "Files that have changed:\n{:?}",
30 repo.to_info().list_files_changed_between(
31 "9c6c5e65c3590e299316d34718674de333bdd9c8",
32 "c097ad2a8c07bf2e3df64e6e603eee0473ad8133"
33 )
34 );
35
36 println!(
37 "Has Cargo.toml changed?: {:?}",
38 repo.to_info().has_path_changed("Cargo.toml")
39 );
40
41 println!(
42 "Has src changed?: {:?}",
43 repo.to_info().has_path_changed("src")
44 );
45
46 println!(
47 "Has LICENSE changed?: {:?}",
48 repo.to_info().has_path_changed("LICENSE")
49 );
50
51 Ok(())
52}
Sourcepub fn with_path(self, path: PathBuf) -> Result<Self>
pub fn with_path(self, path: PathBuf) -> Result<Self>
Set the location of GitRepo
on the filesystem
Sourcepub fn with_branch(self, branch: Option<String>) -> Self
pub fn with_branch(self, branch: Option<String>) -> Self
Intended to be set with the remote name branch of GitRepo
Sourcepub fn with_commit(self, commit_id: Option<String>) -> Result<Self>
pub fn with_commit(self, commit_id: Option<String>) -> Result<Self>
Reinit GitRepo
with commit id
Sourcepub fn with_git2_commit(self, commit: Option<Commit<'_>>) -> Self
pub fn with_git2_commit(self, commit: Option<Commit<'_>>) -> Self
Set the GitCommitMeta
from git2::Commit
Sourcepub fn with_credentials(self, creds: Option<GitCredentials>) -> Self
pub fn with_credentials(self, creds: Option<GitCredentials>) -> Self
Set GitCredentials
for private repos.
None
indicates public repo
Sourcepub fn new<S: AsRef<str>>(url: S) -> Result<Self>
pub fn new<S: AsRef<str>>(url: S) -> Result<Self>
Create a new GitRepo
with url
.
Use along with with_*
methods to set other fields of GitRepo
.
Use GitRepoCloner
if you need to clone the repo, and convert back with GitRepo.into()
Examples found in repository?
5fn main() -> Result<()> {
6 let tempdir = Temp::new_dir()?;
7
8 // We're just using this for cloning
9 let _clone_repo = GitRepo::new("https://github.com/tjtelan/git-meta-rs.git")?
10 .to_clone()
11 .git_clone(&tempdir)?;
12
13 let repo = GitRepo::open(
14 tempdir.to_path_buf(),
15 Some("main".to_string()),
16 Some("f6eb3d6b7998989a48ed1024313fcac401c175fb".to_string()),
17 )?;
18
19 println!(
20 "Are there new commits?: {:?}",
21 repo.to_info().new_commits_exist()
22 );
23
24 Ok(())
25}
Sourcepub fn to_clone(&self) -> GitRepoCloneRequest
pub fn to_clone(&self) -> GitRepoCloneRequest
Examples found in repository?
5fn main() -> Result<()> {
6 let tempdir = Temp::new_dir()?;
7
8 // We're just using this for cloning
9 let _clone_repo = GitRepo::new("https://github.com/tjtelan/git-meta-rs.git")?
10 .to_clone()
11 .git_clone(&tempdir)?;
12
13 let repo = GitRepo::open(
14 tempdir.to_path_buf(),
15 Some("main".to_string()),
16 Some("f6eb3d6b7998989a48ed1024313fcac401c175fb".to_string()),
17 )?;
18
19 println!(
20 "Are there new commits?: {:?}",
21 repo.to_info().new_commits_exist()
22 );
23
24 Ok(())
25}
Sourcepub fn to_info(&self) -> GitRepoInfo
pub fn to_info(&self) -> GitRepoInfo
Examples found in repository?
More examples
5fn main() -> Result<()> {
6 let tempdir = Temp::new_dir()?;
7
8 // We're just using this for cloning
9 let _clone_repo = GitRepo::new("https://github.com/tjtelan/git-meta-rs.git")?
10 .to_clone()
11 .git_clone(&tempdir)?;
12
13 let repo = GitRepo::open(
14 tempdir.to_path_buf(),
15 Some("main".to_string()),
16 Some("f6eb3d6b7998989a48ed1024313fcac401c175fb".to_string()),
17 )?;
18
19 println!(
20 "Are there new commits?: {:?}",
21 repo.to_info().new_commits_exist()
22 );
23
24 Ok(())
25}
17fn main() -> Result<()> {
18 let current_dir = env::current_dir()?;
19
20 let repo = GitRepo::open(current_dir, None, None)?;
21
22 println!(
23 "Files that have changes at commit: a7cf222c46ad32f2802e79e1935f753a27adc9e8\n{:?}",
24 repo.to_info()
25 .list_files_changed_at("a7cf222c46ad32f2802e79e1935f753a27adc9e8")
26 );
27
28 println!(
29 "Files that have changed:\n{:?}",
30 repo.to_info().list_files_changed_between(
31 "9c6c5e65c3590e299316d34718674de333bdd9c8",
32 "c097ad2a8c07bf2e3df64e6e603eee0473ad8133"
33 )
34 );
35
36 println!(
37 "Has Cargo.toml changed?: {:?}",
38 repo.to_info().has_path_changed("Cargo.toml")
39 );
40
41 println!(
42 "Has src changed?: {:?}",
43 repo.to_info().has_path_changed("src")
44 );
45
46 println!(
47 "Has LICENSE changed?: {:?}",
48 repo.to_info().has_path_changed("LICENSE")
49 );
50
51 Ok(())
52}
Sourcepub fn to_repository(&self) -> Result<Repository>
pub fn to_repository(&self) -> Result<Repository>
Returns a git2::Repository
from self.path
Sourcepub fn to_repository_from_path<P: AsRef<Path> + Debug>(
path: P,
) -> Result<Repository>
pub fn to_repository_from_path<P: AsRef<Path> + Debug>( path: P, ) -> Result<Repository>
Returns a git2::Repository
from a given repo directory path
Sourcepub fn is_shallow(&self) -> Result<bool>
pub fn is_shallow(&self) -> Result<bool>
Test whether GitRepo
is a shallow clone
Trait Implementations§
Source§impl From<&GitRepo> for GitRepoCloneRequest
impl From<&GitRepo> for GitRepoCloneRequest
Source§impl From<&GitRepo> for GitRepoInfo
impl From<&GitRepo> for GitRepoInfo
Source§impl From<&GitRepoCloneRequest> for GitRepo
impl From<&GitRepoCloneRequest> for GitRepo
Source§fn from(repo: &GitRepoCloneRequest) -> Self
fn from(repo: &GitRepoCloneRequest) -> Self
Convert from &GitRepoCloneRequest
to GitRepo
.
Source§impl From<&GitRepoInfo> for GitRepo
impl From<&GitRepoInfo> for GitRepo
Source§fn from(repo: &GitRepoInfo) -> Self
fn from(repo: &GitRepoInfo) -> Self
Convert from &GitRepoInfo
to GitRepo
.
Source§impl From<GitRepo> for GitRepoCloneRequest
impl From<GitRepo> for GitRepoCloneRequest
Source§impl TryFrom<Repository> for GitRepo
impl TryFrom<Repository> for GitRepo
impl StructuralPartialEq for GitRepo
Auto Trait Implementations§
impl Freeze for GitRepo
impl RefUnwindSafe for GitRepo
impl Send for GitRepo
impl Sync for GitRepo
impl Unpin for GitRepo
impl UnwindSafe for GitRepo
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg
or
a color-specific method, such as OwoColorize::green
, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg
or
a color-specific method, such as OwoColorize::on_yellow
, Read more