feat(gitlab_release): Add commit footer to changelog

!1 #3
This commit is contained in:
2021-08-07 16:14:10 +09:30
parent cc2f23b091
commit 8699c41219
2 changed files with 46 additions and 2 deletions

View File

@ -2,6 +2,8 @@
#-*- coding: utf-8 -*-
import os
import git as Git
import re
from commitizen import git
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:
rev = commit.rev
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"]
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

View File

@ -6,5 +6,5 @@ setup(
py_modules=['cz_nfc'],
license='MIT',
long_description='this is a long description',
install_requires=['commitizen']
install_requires=['commitizen', 'gitpython']
)