@ -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