@@ -48,6 +48,7 @@ import (
4848 "github.com/devtron-labs/devtron/pkg/pipeline/repository"
4949 "github.com/devtron-labs/devtron/pkg/pipeline/types"
5050 "github.com/devtron-labs/devtron/pkg/plugin"
51+ security2 "github.com/devtron-labs/devtron/pkg/security"
5152 "github.com/devtron-labs/devtron/pkg/sql"
5253 "github.com/devtron-labs/devtron/pkg/variables"
5354 "github.com/devtron-labs/devtron/pkg/workflow/cd"
@@ -114,13 +115,11 @@ type TriggerServiceImpl struct {
114115 gitSensorGrpcClient gitSensorClient.Client
115116 config * types.CdConfig
116117 helmAppService client2.HelmAppService
117-
118- enforcerUtil rbac.EnforcerUtil
119- helmAppClient gRPC.HelmAppClient //TODO refactoring: use helm app service instead
118+ imageScanService security2. ImageScanService
119+ enforcerUtil rbac.EnforcerUtil
120+ helmAppClient gRPC.HelmAppClient //TODO refactoring: use helm app service instead
120121
121122 appRepository appRepository.AppRepository
122- scanResultRepository security.ImageScanResultRepository
123- cvePolicyRepository security.CvePolicyRepository
124123 ciPipelineMaterialRepository pipelineConfig.CiPipelineMaterialRepository
125124 imageScanHistoryRepository security.ImageScanHistoryRepository
126125 imageScanDeployInfoRepository security.ImageScanDeployInfoRepository
@@ -170,8 +169,6 @@ func NewTriggerServiceImpl(logger *zap.SugaredLogger, cdWorkflowCommonService cd
170169 eventClient client.EventClient ,
171170 envVariables * util3.EnvironmentVariables ,
172171 appRepository appRepository.AppRepository ,
173- scanResultRepository security.ImageScanResultRepository ,
174- cvePolicyRepository security.CvePolicyRepository ,
175172 ciPipelineMaterialRepository pipelineConfig.CiPipelineMaterialRepository ,
176173 imageScanHistoryRepository security.ImageScanHistoryRepository ,
177174 imageScanDeployInfoRepository security.ImageScanDeployInfoRepository ,
@@ -188,7 +185,8 @@ func NewTriggerServiceImpl(logger *zap.SugaredLogger, cdWorkflowCommonService cd
188185 appLabelRepository pipelineConfig.AppLabelRepository ,
189186 ciPipelineRepository pipelineConfig.CiPipelineRepository ,
190187 appWorkflowRepository appWorkflow.AppWorkflowRepository ,
191- dockerArtifactStoreRepository repository4.DockerArtifactStoreRepository ) (* TriggerServiceImpl , error ) {
188+ dockerArtifactStoreRepository repository4.DockerArtifactStoreRepository ,
189+ imageScanService security2.ImageScanService ) (* TriggerServiceImpl , error ) {
192190 impl := & TriggerServiceImpl {
193191 logger : logger ,
194192 cdWorkflowCommonService : cdWorkflowCommonService ,
@@ -221,8 +219,6 @@ func NewTriggerServiceImpl(logger *zap.SugaredLogger, cdWorkflowCommonService cd
221219 globalEnvVariables : envVariables .GlobalEnvVariables ,
222220 helmAppClient : helmAppClient ,
223221 appRepository : appRepository ,
224- scanResultRepository : scanResultRepository ,
225- cvePolicyRepository : cvePolicyRepository ,
226222 ciPipelineMaterialRepository : ciPipelineMaterialRepository ,
227223 imageScanHistoryRepository : imageScanHistoryRepository ,
228224 imageScanDeployInfoRepository : imageScanDeployInfoRepository ,
@@ -240,6 +236,7 @@ func NewTriggerServiceImpl(logger *zap.SugaredLogger, cdWorkflowCommonService cd
240236 ciPipelineRepository : ciPipelineRepository ,
241237 appWorkflowRepository : appWorkflowRepository ,
242238 dockerArtifactStoreRepository : dockerArtifactStoreRepository ,
239+ imageScanService : imageScanService ,
243240 }
244241 config , err := types .GetCdConfig ()
245242 if err != nil {
@@ -400,7 +397,8 @@ func (impl *TriggerServiceImpl) ManualCdTrigger(triggerContext bean.TriggerConte
400397 impl .logger .Warnw ("unable to migrate deprecated DataSource" , "artifactId" , artifact .Id )
401398 }
402399 }
403- isVulnerable , err := impl .GetArtifactVulnerabilityStatus (artifact , cdPipeline , ctx )
400+ vulnerabilityCheckRequest := adapter .GetVulnerabilityCheckRequest (cdPipeline , artifact .ImageDigest )
401+ isVulnerable , err := impl .imageScanService .GetArtifactVulnerabilityStatus (ctx , vulnerabilityCheckRequest )
404402 if err != nil {
405403 impl .logger .Errorw ("error in getting Artifact vulnerability status, ManualCdTrigger" , "err" , err )
406404 return 0 , err
@@ -579,32 +577,12 @@ func (impl *TriggerServiceImpl) TriggerAutomaticDeployment(request bean.TriggerR
579577 return err
580578 }
581579 // custom GitOps repo url validation --> Ends
582-
580+ vulnerabilityCheckRequest := adapter . GetVulnerabilityCheckRequest ( pipeline , artifact . ImageDigest )
583581 //checking vulnerability for deploying image
584- isVulnerable := false
585- if len (artifact .ImageDigest ) > 0 {
586- var cveStores []* security.CveStore
587- imageScanResult , err := impl .scanResultRepository .FindByImageDigest (artifact .ImageDigest )
588- if err != nil && err != pg .ErrNoRows {
589- impl .logger .Errorw ("error fetching image digest" , "digest" , artifact .ImageDigest , "err" , err )
590- return err
591- }
592- for _ , item := range imageScanResult {
593- cveStores = append (cveStores , & item .CveStore )
594- }
595- env , err := impl .envRepository .FindById (pipeline .EnvironmentId )
596- if err != nil {
597- impl .logger .Errorw ("error while fetching env" , "err" , err )
598- return err
599- }
600- blockCveList , err := impl .cvePolicyRepository .GetBlockedCVEList (cveStores , env .ClusterId , pipeline .EnvironmentId , pipeline .AppId , false )
601- if err != nil {
602- impl .logger .Errorw ("error while fetching blocked cve list" , "err" , err )
603- return err
604- }
605- if len (blockCveList ) > 0 {
606- isVulnerable = true
607- }
582+ isVulnerable , err := impl .imageScanService .GetArtifactVulnerabilityStatus (request .TriggerContext .Context , vulnerabilityCheckRequest )
583+ if err != nil {
584+ impl .logger .Errorw ("error in getting Artifact vulnerability status, ManualCdTrigger" , "err" , err )
585+ return err
608586 }
609587 if isVulnerable == true {
610588 if err = impl .cdWorkflowCommonService .MarkCurrentDeploymentFailed (runner , errors .New (pipelineConfig .FOUND_VULNERABILITY ), triggeredBy ); err != nil {
0 commit comments