@staticmethod<EOL><INDENT>def from_full_message(commit_msg_str):<DEDENT>
all_lines = commit_msg_str.splitlines()<EOL>try:<EOL><INDENT>cutline_index = all_lines.index(GitCommitMessage.CUTLINE)<EOL><DEDENT>except ValueError:<EOL><INDENT>cutline_index = None<EOL><DEDENT>lines = [line for line in all_lines[:cutline_index] if not line.startswith(GitCommitMessage.COMMENT_CHAR)]<EOL>full = "<STR_LIT:\n>".join(lines)<EOL>title = lines[<NUM_LIT:0>] if lines else "<STR_LIT>"<EOL>body = lines[<NUM_LIT:1>:] if len(lines) > <NUM_LIT:1> else []<EOL>return GitCommitMessage(original=commit_msg_str, full=full, title=title, body=body)<EOL>
Parses a full git commit message by parsing a given string into the different parts of a commit message