@@ -255,6 +255,12 @@ def __repr__(self) -> str:
255255 )
256256
257257
258+ class DiffKinds (str , Enum ):
259+ ADDITION = "addition"
260+ DELETION = "deletion"
261+ CONTEXT = "context"
262+
263+
258264class PolicyBreakSchema (BaseSchema ):
259265 break_type = fields .String (data_key = "type" , required = True )
260266 policy = fields .String (required = True )
@@ -264,6 +270,9 @@ class PolicyBreakSchema(BaseSchema):
264270 matches = fields .List (fields .Nested (MatchSchema ), required = True )
265271 is_excluded = fields .Boolean (required = False , load_default = False , dump_default = False )
266272 exclude_reason = fields .String (required = False , load_default = None , dump_default = None )
273+ diff_kind = fields .Enum (
274+ DiffKinds , by_value = True , required = False , load_default = None , dump_default = None
275+ )
267276
268277 @post_load
269278 def make_policy_break (self , data : Dict [str , Any ], ** kwargs : Any ) -> "PolicyBreak" :
@@ -290,6 +299,7 @@ def __init__(
290299 incident_url : Optional [str ] = None ,
291300 is_excluded : bool = False ,
292301 exclude_reason : Optional [str ] = None ,
302+ diff_kind : Optional [DiffKinds ] = None ,
293303 ** kwargs : Any ,
294304 ) -> None :
295305 super ().__init__ ()
@@ -301,6 +311,7 @@ def __init__(
301311 self .matches = matches
302312 self .is_excluded = is_excluded
303313 self .exclude_reason = exclude_reason
314+ self .diff_kind = diff_kind
304315
305316 @property
306317 def is_secret (self ) -> bool :
@@ -318,6 +329,7 @@ class ScanResultSchema(BaseSchema):
318329 policy_break_count = fields .Integer (required = True )
319330 policies = fields .List (fields .String (), required = True )
320331 policy_breaks = fields .List (fields .Nested (PolicyBreakSchema ), required = True )
332+ is_diff = fields .Boolean (required = False , load_default = False , dump_default = None )
321333
322334 @post_load
323335 def make_scan_result (self , data : Dict [str , Any ], ** kwargs : Any ) -> "ScanResult" :
@@ -341,6 +353,7 @@ def __init__(
341353 policy_break_count : int ,
342354 policy_breaks : List [PolicyBreak ],
343355 policies : List [str ],
356+ is_diff : bool ,
344357 ** kwargs : Any ,
345358 ) -> None :
346359 """
@@ -350,11 +363,14 @@ def __init__(
350363 :type policy_breaks: List
351364 :param policies: string list of policies evaluated
352365 :type policies: List[str]
366+ :param is_diff: true if the document scanned is a diff
367+ :type is_diff: bool
353368 """
354369 super ().__init__ ()
355370 self .policy_break_count = policy_break_count
356371 self .policies = policies
357372 self .policy_breaks = policy_breaks
373+ self .is_diff = is_diff
358374
359375 @property
360376 def has_policy_breaks (self ) -> bool :
0 commit comments