public void Scan(SastScanRequest request) { proxy.Initialize(); var scanSettings = new SastScanSettings(); var project = ResolveProject(request, scanSettings); if (project == null) { Console.WriteLine($"Project with name {request.ProjectName} does not exist on Checkmarx."); return; } Console.WriteLine($"Project {request.ProjectName} last scanned on {project.LastScanDate}."); if (DateTime.Now - project.LastScanDate < TimeSpan.FromDays(request.DaysSinceLastScan)) { Console.WriteLine($"The last scan was less than {request.DaysSinceLastScan} days ago. No new scan will be started."); return; } ResolvePreset(request, scanSettings); ResolveConfigurationSet(request, scanSettings); CollectSourceCode(request, scanSettings); StartSastScan(request, scanSettings); }
void StartSastScan(SastScanRequest request, SastScanSettings scanSettings) { Console.WriteLine("Starting scan..."); if (request.DryRun) { Console.WriteLine("Not starting scan, because dry run is enabled."); } else { var scan = proxy.StartSastScan(scanSettings); Console.WriteLine( $"Scan of project with ID {scan.ProjectId} and Name {scanSettings.ProjectName} started with run ID {scan.RunId}."); } }
void ResolvePreset(SastScanRequest request, SastScanSettings scanSettings) { var preset = proxy.FindPresetByName(request.Preset); scanSettings.PresetId = preset.Id; }
void ResolveConfigurationSet(SastScanRequest request, SastScanSettings scanSettings) { var configurationSet = proxy.FindConfigurationSetByName(request.ConfigurationSet); scanSettings.ConfigurationSetId = configurationSet.Id; }
public Scan StartSastScan(SastScanSettings scanSettings) { return(soapClient.Scan(scanSettings.ToCliScanArgs())); }