@@ -86,6 +86,38 @@ def _perform_commit_range_scan_async(
8686 return poll_scan_results (cycode_client , scan_async_result .scan_id , scan_type , scan_parameters , timeout )
8787
8888
89+ def _perform_commit_range_scan_v4_async (
90+ cycode_client : 'ScanClient' ,
91+ from_commit_zipped_documents : 'InMemoryZip' ,
92+ to_commit_zipped_documents : 'InMemoryZip' ,
93+ scan_type : str ,
94+ scan_parameters : dict ,
95+ timeout : Optional [int ] = None ,
96+ ) -> ZippedFileScanResult :
97+ from_upload_link = cycode_client .get_upload_link (scan_type )
98+ logger .debug ('Got from-commit upload link, %s' , {'upload_id' : from_upload_link .upload_id })
99+
100+ cycode_client .upload_to_presigned_post (
101+ from_upload_link .url , from_upload_link .presigned_post_fields , from_commit_zipped_documents
102+ )
103+ logger .debug ('Uploaded from-commit zip' )
104+
105+ to_upload_link = cycode_client .get_upload_link (scan_type )
106+ logger .debug ('Got to-commit upload link, %s' , {'upload_id' : to_upload_link .upload_id })
107+
108+ cycode_client .upload_to_presigned_post (
109+ to_upload_link .url , to_upload_link .presigned_post_fields , to_commit_zipped_documents
110+ )
111+ logger .debug ('Uploaded to-commit zip' )
112+
113+ scan_async_result = cycode_client .commit_range_scan_from_upload_ids (
114+ scan_type , from_upload_link .upload_id , to_upload_link .upload_id , scan_parameters
115+ )
116+ logger .debug ('V4 commit range scan request triggered, %s' , {'scan_id' : scan_async_result .scan_id })
117+
118+ return poll_scan_results (cycode_client , scan_async_result .scan_id , scan_type , scan_parameters , timeout )
119+
120+
89121def _scan_commit_range_documents (
90122 ctx : typer .Context ,
91123 from_documents_to_scan : list [Document ],
@@ -118,14 +150,24 @@ def _scan_commit_range_documents(
118150 # for SAST it is files with diff between from_commit and to_commit
119151 to_commit_zipped_documents = zip_documents (scan_type , to_documents_to_scan )
120152
121- scan_result = _perform_commit_range_scan_async (
122- cycode_client ,
123- from_commit_zipped_documents ,
124- to_commit_zipped_documents ,
125- scan_type ,
126- scan_parameters ,
127- timeout ,
128- )
153+ if scan_type == consts .SAST_SCAN_TYPE :
154+ scan_result = _perform_commit_range_scan_v4_async (
155+ cycode_client ,
156+ from_commit_zipped_documents ,
157+ to_commit_zipped_documents ,
158+ scan_type ,
159+ scan_parameters ,
160+ timeout ,
161+ )
162+ else :
163+ scan_result = _perform_commit_range_scan_async (
164+ cycode_client ,
165+ from_commit_zipped_documents ,
166+ to_commit_zipped_documents ,
167+ scan_type ,
168+ scan_parameters ,
169+ timeout ,
170+ )
129171 enrich_scan_result_with_data_from_detection_rules (cycode_client , scan_result )
130172
131173 progress_bar .update (ScanProgressBarSection .SCAN )
0 commit comments