11import re
22
3+ import dateutil .parser
4+ from django .utils import timezone
5+
36from dojo .models import Finding
47
58
@@ -23,6 +26,10 @@ def get_json_items(self, json_content, test, mode):
2326 scope = issue .get ("scope" )
2427 quickFixAvailable = str (issue .get ("quickFixAvailable" ))
2528 codeVariants = str (issue .get ("codeVariants" ))
29+ try :
30+ date = str (dateutil .parser .parse (issue .get ("creationDate" )).date ())
31+ except (ValueError , TypeError , dateutil .parser .ParserError ):
32+ date = timezone .now ()
2633 description = ""
2734 description += "**key:** " + key + "\n "
2835 description += "**rule:** " + rule + "\n "
@@ -50,6 +57,7 @@ def get_json_items(self, json_content, test, mode):
5057 dynamic_finding = False ,
5158 tags = ["bug" ],
5259 line = line ,
60+ date = date ,
5361 )
5462 elif issue .get ("type" ) == "VULNERABILITY" :
5563 key = issue .get ("key" )
@@ -61,6 +69,10 @@ def get_json_items(self, json_content, test, mode):
6169 message = issue .get ("message" )
6270 line = issue .get ("line" )
6371 cwe = None
72+ try :
73+ date = str (dateutil .parser .parse (issue .get ("creationDate" )).date ())
74+ except (ValueError , TypeError , dateutil .parser .ParserError ):
75+ date = timezone .now ()
6476 if "Category: CWE-" in message :
6577 cwe_pattern = r"Category: CWE-\d{1,5}"
6678 cwes = re .findall (cwe_pattern , message )
@@ -119,6 +131,7 @@ def get_json_items(self, json_content, test, mode):
119131 file_path = component ,
120132 tags = ["vulnerability" ],
121133 line = line ,
134+ date = date ,
122135 )
123136 vulnids = []
124137 if "Reference: CVE" in message :
@@ -154,6 +167,10 @@ def get_json_items(self, json_content, test, mode):
154167 scope = issue .get ("scope" )
155168 quickFixAvailable = str (issue .get ("quickFixAvailable" ))
156169 codeVariants = issue .get ("codeVariants" , [])
170+ try :
171+ date = str (dateutil .parser .parse (issue .get ("creationDate" )).date ())
172+ except (ValueError , TypeError , dateutil .parser .ParserError ):
173+ date = timezone .now ()
157174 description = ""
158175 description += "**rule:** " + rule + "\n "
159176 description += "**component:** " + component + "\n "
@@ -185,6 +202,7 @@ def get_json_items(self, json_content, test, mode):
185202 file_path = component ,
186203 tags = ["code_smell" ],
187204 line = line ,
205+ date = date ,
188206 )
189207 items .append (item )
190208 if json_content .get ("hotspots" ):
@@ -200,6 +218,10 @@ def get_json_items(self, json_content, test, mode):
200218 flows = hotspot .get ("flows" , [])
201219 ruleKey = hotspot .get ("ruleKey" )
202220 messageFormattings = hotspot .get ("messageFormattings" , [])
221+ try :
222+ date = str (dateutil .parser .parse (hotspot .get ("creationDate" )).date ())
223+ except (ValueError , TypeError , dateutil .parser .ParserError ):
224+ date = timezone .now ()
203225 description = ""
204226 description += "**key:** " + key + "\n "
205227 description += "**component:** " + component + "\n "
@@ -229,6 +251,7 @@ def get_json_items(self, json_content, test, mode):
229251 file_path = component ,
230252 tags = ["hotspot" ],
231253 line = line ,
254+ date = date ,
232255 )
233256 items .append (item )
234257 return items
0 commit comments