diff --git a/intis-hooks/prepare-commit-msg b/intis-hooks/prepare-commit-msg index e5d7866..44d88e5 100755 --- a/intis-hooks/prepare-commit-msg +++ b/intis-hooks/prepare-commit-msg @@ -11,30 +11,39 @@ import re, subprocess, sys JIRA_ISSUE_URL = "https://smartvending.atlassian.net/browse/" PREPEND_TICKET = True APPEND_ISSUE_LINK = True +REGEX = re.compile("^(.*/)?([A-Z]+-[0-9]+)", re.IGNORECASE) -commit_file = sys.argv[1] -regex = re.compile("^([A-Z]+-[0-9]+)", re.IGNORECASE) -git_branch_name = subprocess.run( - ["git", "branch", "--show-current"], - stdout=subprocess.PIPE, - encoding="utf-8", -) +def main(): + commit_file = sys.argv[1] -match = regex.match(git_branch_name.stdout) + git_branch_name = subprocess.run( + ["git", "branch", "--show-current"], + stdout=subprocess.PIPE, + encoding="utf-8", + ) -if match: - ticket = match.group() - ticket_url = f"{JIRA_ISSUE_URL}{ticket}" + match = REGEX.match(git_branch_name.stdout) - with open(commit_file, "r+") as f: - contents = f.read().strip() + if match: + try: + ticket = match.group(2) + except IndexError: + return + ticket_url = f"{JIRA_ISSUE_URL}{ticket}" - if PREPEND_TICKET and not contents.startswith(ticket): - contents = f"{ticket}: {contents}" + with open(commit_file, "r+") as f: + contents = f.read().strip() - if APPEND_ISSUE_LINK: - contents = f"{contents}\n\n{ticket_url}" + if PREPEND_TICKET and not contents.startswith(ticket): + contents = f"{ticket}: {contents}" - f.seek(0) - f.write(contents) + if APPEND_ISSUE_LINK: + contents = f"{contents}\n\n{ticket_url}" + + f.seek(0) + f.write(contents) + + +if __name__ == "__main__": + main()