Skip to content

Commit 7d40af3

Browse files
committed
feat [task-08]: Update all checker severities from reports after store
- Add __update_checker_severities_from_reports method - Collect severity from ALL added reports, not just fake checkers - Update checker table with severity from reports in post-processing
1 parent b72b03b commit 7d40af3

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

web/server/codechecker_server/api/mass_store_run.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1204,6 +1204,29 @@ def __get_faked_checkers(self) \
12041204
severities[checker] = report.severity
12051205
return checkers, severities
12061206

1207+
def __update_checker_severities_from_reports(self, session: DBSession):
1208+
"""
1209+
Update checker severities based on severity info from reports.
1210+
This ensures checkers get the correct severity from SARIF/plist
1211+
even if they were initially created from metadata without severity.
1212+
"""
1213+
# Collect severities from all added reports
1214+
checker_severities: Dict[Tuple[str, str], str] = {}
1215+
for _, report in self.__added_reports:
1216+
if report.severity:
1217+
checker = checker_name_for_report(report)
1218+
if checker not in checker_severities:
1219+
checker_severities[checker] = report.severity
1220+
1221+
# Update checkers in database
1222+
for (analyzer, checker_name), sev_str in checker_severities.items():
1223+
sev = ttypes.Severity._NAMES_TO_VALUES.get(sev_str)
1224+
if sev is not None:
1225+
session.query(Checker) \
1226+
.filter(Checker.analyzer_name == analyzer,
1227+
Checker.checker_name == checker_name) \
1228+
.update({"severity": sev})
1229+
12071230
def __load_report_ids_for_reports_with_fake_checkers(self, session):
12081231
"""
12091232
Transforms the __reports_with_fake_checkers data structure by loading
@@ -1724,6 +1747,11 @@ def store(self,
17241747
"Fix-up report-to-checker associations"):
17251748
self.__realise_fake_checkers(session)
17261749

1750+
# Update checker severities from report data.
1751+
with StepLog(self._name,
1752+
"Update checker severities from reports"):
1753+
self.__update_checker_severities_from_reports(session)
1754+
17271755
self.finish_checker_run(session, run_id)
17281756
session.commit()
17291757

0 commit comments

Comments
 (0)