diff --git a/src/git/log.rs b/src/git/log.rs index 80d1343..d2674b1 100644 --- a/src/git/log.rs +++ b/src/git/log.rs @@ -90,19 +90,28 @@ impl Commit { let commit_regex = regex::Regex::new(r"^([^\w\s:()]+)?\s*(?:\(?([^\)]+)\)?\s*:)?\s*([\s\w]*)$").unwrap(); - let captures = commit_regex.captures(&message).unwrap(); - - let emoji = captures.get(1).map(|m| m.as_str().trim().to_string()); - let scope = captures.get(2).map(|m| m.as_str().trim().to_string()); - let message = captures - .get(3) - .map(|m| m.as_str().trim().to_string()) - .unwrap(); - - Self { - emoji, - scope, - message, + let captures = commit_regex.captures(&message); + + match captures { + Some(captures) => { + let emoji = captures.get(1).map(|m| m.as_str().trim().to_string()); + let scope = captures.get(2).map(|m| m.as_str().trim().to_string()); + let message = captures + .get(3) + .map(|m| m.as_str().trim().to_string()) + .unwrap_or_default(); + + Self { + emoji, + scope, + message, + } + } + None => Self { + emoji: None, + scope: None, + message, + }, } } }