diff --git a/src/modules/git_commit.rs b/src/modules/git_commit.rs index 864f9144..eea8c386 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> { 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();