示例#1
0
        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);
        }
示例#2
0
 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}.");
     }
 }
示例#3
0
        void ResolvePreset(SastScanRequest request, SastScanSettings scanSettings)
        {
            var preset = proxy.FindPresetByName(request.Preset);

            scanSettings.PresetId = preset.Id;
        }
示例#4
0
        void ResolveConfigurationSet(SastScanRequest request, SastScanSettings scanSettings)
        {
            var configurationSet = proxy.FindConfigurationSetByName(request.ConfigurationSet);

            scanSettings.ConfigurationSetId = configurationSet.Id;
        }