df89
10.10.21 c4d692c98f3e06d39cf80bf8fa2035c2e398646b
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