commit | author | age
|
c4d692
|
1 |
class CommitBody: |
D |
2 |
commitTypes = ("build", "chore", "ci", "docs", "feat", "fix", "perf", "refactor", "style", "test") |
|
3 |
def __init__(self, completeMessage): |
|
4 |
self.completeMessage = completeMessage |
|
5 |
|
|
6 |
self.setSubjectAndBody() |
|
7 |
self.setScope() |
|
8 |
self.setCommitType() |
|
9 |
|
|
10 |
def setSubjectAndBody(self): |
|
11 |
"""set commit message subject and body (not in use yet)""" |
|
12 |
try: # find start point of commit message |
|
13 |
subStart = self.completeMessage.index(": ")+2 |
|
14 |
except: |
|
15 |
try: |
|
16 |
subStart = self.completeMessage.index("\n") |
|
17 |
except: |
|
18 |
subStart = 0 |
|
19 |
try: # find end point of commit message |
|
20 |
subEnd = self.completeMessage.index("\n") |
|
21 |
except: |
|
22 |
self.subject = self.completeMessage[subStart:] |
|
23 |
self.body = None |
|
24 |
else: |
|
25 |
self.subject = self.completeMessage[subStart:subEnd] |
|
26 |
self.body = self.completeMessage[subEnd:].strip() |
|
27 |
|
|
28 |
def setScope(self): |
|
29 |
"""set commit scope if contained in message""" |
|
30 |
try: |
|
31 |
start = self.completeMessage.index("(")+1 |
|
32 |
end = self.completeMessage.index("):") |
|
33 |
except: |
|
34 |
self.scope = None |
|
35 |
else: |
|
36 |
self.scope = self.completeMessage[start:end].strip().lower() |
|
37 |
|
|
38 |
def setCommitType(self): |
|
39 |
"""set commit type according to type list from conventional commits""" |
|
40 |
for commitType in self.commitTypes: |
|
41 |
if (self.completeMessage.startswith((commitType + ": "))) or (self.completeMessage.startswith((commitType + "("))) or (self.completeMessage.startswith((commitType + " ("))): |
|
42 |
self.commitType = commitType |
|
43 |
break |
|
44 |
else: |
|
45 |
self.commitType = "nonconform" |
|
46 |
|
|
47 |
def getCommitMessageWithType(self): |
|
48 |
"""get commit type and message subject as concatenated string""" |
|
49 |
return self.commitType + ": " + self.subject |