Я новичок в Python, и моя цель - написать хук предварительного получения, находящийся на git-сервере.
Хук должен проверять формат сообщений фиксации и отклонять push, если какое-либо из сообщений не проходит проверку формата.
Я думаю, что этот бит работает для простого сравнения шаблонов коммитов, как показано ниже:
commit_list = ['test1', 'test2', 'test3', 'test4']
patterns = ['test1','test2']
matched = set(commit_list).intersection(patterns) # find matches
for match in matched:
commit_list[:] = (commit for commit in commit_list if commit != match) # remove matches from commit_list
commit_list_length = len(commit_list)
if commit_list_length == 0: # all commits matched so the list is empty
print('all commit messages match the format')
else:
print('%s of the commit messages don\'t match the format' % commit_list_length)
print(commit_list)
Как мне изменить этот фрагмент, чтобы включить регулярное выражение, например: re.match(pattern,commit)
?
Так что он все еще работает, когда вторая строка меняется на, например:
patterns = ['test[0-9]{1,5}','test: ']