Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions cycode/cli/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from enum import Enum
from typing import Dict, List, NamedTuple, Optional, Type

from cycode.cyclient import logger
from cycode.cyclient.models import Detection


Expand Down Expand Up @@ -42,6 +43,14 @@ def try_get_value(name: str) -> any:

return Severity[name].value

@staticmethod
def get_member_weight(name: str) -> any:
weight = Severity.try_get_value(name)
if weight is None:
logger.debug(f'missing severity in enum: {name}')
return -2
return weight


class CliError(NamedTuple):
code: str
Expand Down
2 changes: 1 addition & 1 deletion cycode/cli/printers/tables/sca_table_printer.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ def __group_by(detections: List[Detection], details_field_name: str) -> Dict[str
@staticmethod
def __severity_sort_key(detection: Detection) -> int:
severity = detection.detection_details.get('advisory_severity')
return Severity.try_get_value(severity)
return Severity.get_member_weight(severity)

def _sort_detections_by_severity(self, detections: List[Detection]) -> List[Detection]:
return sorted(detections, key=self.__severity_sort_key, reverse=True)
Expand Down