| @ -2,6 +2,8 @@ | |||||||
| #-*- coding: utf-8 -*- | #-*- coding: utf-8 -*- | ||||||
|  |  | ||||||
| import os | import os | ||||||
|  | import git as Git | ||||||
|  | import re | ||||||
|  |  | ||||||
| from commitizen import git | from commitizen import git | ||||||
| from commitizen.cz.base import BaseCommitizen | from commitizen.cz.base import BaseCommitizen | ||||||
| @ -28,8 +30,50 @@ class nfc_cz(BaseCommitizen): | |||||||
|     def changelog_message_builder_hook(self, parsed_message: dict, commit: git.GitCommit) -> dict: |     def changelog_message_builder_hook(self, parsed_message: dict, commit: git.GitCommit) -> dict: | ||||||
|         rev = commit.rev |         rev = commit.rev | ||||||
|         rev_short = str(rev)[0:8] |         rev_short = str(rev)[0:8] | ||||||
|  |         repo = Git.Repo(os.getcwd()) | ||||||
|  |  | ||||||
|  |         tree = list(repo.iter_commits(repo.active_branch)) | ||||||
|  |  | ||||||
|  |         footer_references = '' | ||||||
|  |         for item in tree: | ||||||
|  |  | ||||||
|  |             if item.message.count("\n") > 2 and str(item).lower() == rev.lower(): | ||||||
|  |                 footer_line = item.message.split("\n") | ||||||
|  |                 footer_line = footer_line[(len(footer_line)-1)] | ||||||
|  |                 footer = re.findall(r"([\!|\#][0-9]+)", str(item.message)) | ||||||
|  |  | ||||||
|  |                 try: | ||||||
|  |  | ||||||
|  |                     for reference in footer: | ||||||
|  |  | ||||||
|  |                         if '#' in reference: | ||||||
|  |  | ||||||
|  |                             footer_references += ' ' + str( | ||||||
|  |                                 '[{0}]({1}/-/issues/{2})'.format( | ||||||
|  |                                     reference, | ||||||
|  |                                     os.environ['CI_PROJECT_URL'], | ||||||
|  |                                     reference.replace('#', '') | ||||||
|  |                                  ) | ||||||
|  |                              ) | ||||||
|  |  | ||||||
|  |                         if '!' in reference: | ||||||
|  |                             footer_references += ' ' + str( | ||||||
|  |                                 '[{0}]({1}/-/merge_requests/{2})'.format( | ||||||
|  |                                     reference, | ||||||
|  |                                     os.environ['CI_PROJECT_URL'], | ||||||
|  |                                     reference.replace('!', '') | ||||||
|  |                                 ) | ||||||
|  |                             ) | ||||||
|  |  | ||||||
|  |                 except Exception: | ||||||
|  |                     pass | ||||||
|  |  | ||||||
|  |         if footer_references != '': | ||||||
|  |             footer_references = ' [' + footer_references + ' ]' | ||||||
|  |  | ||||||
|         m = parsed_message["message"] |         m = parsed_message["message"] | ||||||
|         parsed_message["message"] = f"[{rev_short}](" + os.environ['CI_PROJECT_URL'] + f"/-/commit/{rev}) - {m}" |         parsed_message["message"] = f"[{rev_short}](" + os.environ['CI_PROJECT_URL'] + f"/-/commit/{rev}) - {m}" + footer_references | ||||||
|  |  | ||||||
|         return parsed_message |         return parsed_message | ||||||
|  |  | ||||||
|  |  | ||||||
|  | |||||||
| @ -6,5 +6,5 @@ setup( | |||||||
|     py_modules=['cz_nfc'], |     py_modules=['cz_nfc'], | ||||||
|     license='MIT', |     license='MIT', | ||||||
|     long_description='this is a long description', |     long_description='this is a long description', | ||||||
|     install_requires=['commitizen'] |     install_requires=['commitizen', 'gitpython'] | ||||||
| ) | ) | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user