|
35 | 35 |
|
36 | 36 | import sonar.utilities as util |
37 | 37 | from sonar import projects, rules |
| 38 | +from sonar.changelog import Changelog |
38 | 39 |
|
39 | 40 | _JSON_FIELDS_REMAPPED = (("pull_request", "pullRequest"), ("_comments", "comments")) |
40 | 41 |
|
@@ -109,26 +110,26 @@ class Finding(sq.SqObject): |
109 | 110 | def __init__(self, endpoint: pf.Platform, key: str, data: types.ApiPayload = None, from_export: bool = False) -> None: |
110 | 111 | """Constructor""" |
111 | 112 | super().__init__(endpoint=endpoint, key=key) |
112 | | - self.severity = None #: Severity (str) |
113 | | - self.type = None #: Type (str): VULNERABILITY, BUG, CODE_SMELL or SECURITY_HOTSPOT |
114 | | - self.impacts = None #: 10.x MQR mode |
115 | | - self.author = None #: Author (str) |
116 | | - self.assignee = None #: Assignee (str) |
117 | | - self.status = None #: Status (str) |
118 | | - self.resolution = None #: Resolution (str) |
119 | | - self.rule = None #: Rule Id (str) |
120 | | - self.projectKey = None #: Project key (str) |
121 | | - self._changelog: Optional[dict] = None |
122 | | - self._comments: Optional[dict] = None |
| 113 | + self.severity = None # BLOCKER, CRITICAL, MAJOR, MINOR, INFO |
| 114 | + self.type: Optional[str] = None # VULNERABILITY, BUG, CODE_SMELL or SECURITY_HOTSPOT |
| 115 | + self.impacts: Optional[dict[str, str]] = None #: 10.x MQR mode |
| 116 | + self.author: Optional[str] = None |
| 117 | + self.assignee: Optional[str] = None |
| 118 | + self.status: Optional[str] = None # OPEN, CONFIRMED, REOPENED, RESOLVED, CLOSED, ACCEPTED, FALSE_POSITIVE |
| 119 | + self.resolution: Optional[str] = None |
| 120 | + self.rule: Optional[str] = None |
| 121 | + self.projectKey: Optional[str] = None |
| 122 | + self._changelog: Optional[dict[str, Changelog]] = None |
| 123 | + self._comments: Optional[dict[str, dict[str, str]]] = None |
123 | 124 | self.file: Optional[str] = None |
124 | | - self.line = 0 #: Line (int) |
| 125 | + self.line: int = 0 |
125 | 126 | self.component: Optional[str] = None |
126 | | - self.message = None #: Message |
127 | | - self.creation_date = None #: Creation date (datetime) |
128 | | - self.modification_date = None #: Last modification date (datetime) |
129 | | - self.hash = None #: Hash (str) |
130 | | - self.branch = None #: Branch (str) |
131 | | - self.pull_request = None #: Pull request (str) |
| 127 | + self.message: Optional[str] = None #: Message |
| 128 | + self.creation_date: Optional[datetime] = None #: Creation date (datetime) |
| 129 | + self.modification_date: Optional[datetime] = None #: Last modification date (datetime) |
| 130 | + self.hash: Optional[str] = None #: Hash (str) |
| 131 | + self.branch: Optional[str] = None #: Branch (str) |
| 132 | + self.pull_request: Optional[str] = None #: Pull request (str) |
132 | 133 | self._load(data, from_export) |
133 | 134 |
|
134 | 135 | def _load(self, data: types.ApiPayload, from_export: bool = False) -> None: |
|
0 commit comments