diff options
author | David Knaack <davidkna@users.noreply.github.com> | 2021-05-19 19:08:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-19 19:08:48 +0200 |
commit | 78b84c9f34640d27e743290e855f28971c0903e7 (patch) | |
tree | a1f8c91e71e0338c01ebdf1e566ea70ce5c58891 | |
parent | c58d1279740179a3fcbbbf35a884160302a7d696 (diff) |
fix(git_commit): remove unwraps (#2743)
-rw-r--r-- | src/modules/git_commit.rs | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/modules/git_commit.rs b/src/modules/git_commit.rs index 864f9144d..eea8c386e 100644 --- a/src/modules/git_commit.rs +++ b/src/modules/git_commit.rs @@ -46,13 +46,18 @@ pub fn module<'a>(context: &'a Context) -> Option<Module<'a>> { if !config.tag_disabled { // Let's get repo tags names let tag_names = git_repo.tag_names(None).ok()?; - let tag_and_refs = tag_names.iter().flat_map(|name| { - let full_tag = format!("refs/tags/{}", name.unwrap()); + let tag_and_refs = tag_names.iter().flatten().flat_map(|name| { + let full_tag = format!("refs/tags/{}", name); let tag_obj = git_repo.find_reference(&full_tag)?.peel_to_tag()?; - let sig_obj = tag_obj.tagger().unwrap(); - git_repo - .find_reference(&full_tag) - .map(|reference| (String::from(name.unwrap()), sig_obj.when(), reference)) + let sig_obj = tag_obj.tagger(); + git_repo.find_reference(&full_tag).map(|reference| { + ( + String::from(name), + // fall back to oldest + 1s time if sig_obj is unavailable + sig_obj.map_or(git2::Time::new(1, 0), |s| s.when()), + reference, + ) + }) }); let mut tag_name = String::new(); |