Skip to content

Commit 0fc2d5d

Browse files
committed
fix code review issues
Signed-off-by: Rafi <refaei.shikho@hotmail.com>
1 parent 5ef9057 commit 0fc2d5d

9 files changed

Lines changed: 20 additions & 61 deletions

File tree

internal/common/integrations_obj.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ type WebhookIntegrationDTO struct {
2020
Name string `json:"name"`
2121
Description string `json:"description"`
2222
URL string `json:"url"`
23-
Secret string `json:"secret"`
2423
SbomEnabled bool `json:"sbomEnabled"`
2524
VulnEnabled bool `json:"vulnEnabled"`
2625
}

internal/core/assetversion/asset_version_service.go

Lines changed: 8 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ func preferMarkdown(text common.Text) string {
9595
return text.Text
9696
}
9797

98-
func (s *service) HandleFirstPartyVulnResult(asset models.Asset, assetVersion *models.AssetVersion, sarifScan common.SarifResult, scannerID string, userID string) (int, int, []models.FirstPartyVuln, error) {
98+
func (s *service) HandleFirstPartyVulnResult(org models.Org, project models.Project, asset models.Asset, assetVersion *models.AssetVersion, sarifScan common.SarifResult, scannerID string, userID string) (int, int, []models.FirstPartyVuln, error) {
9999

100100
firstPartyVulnerabilities := []models.FirstPartyVuln{}
101101

@@ -152,7 +152,7 @@ func (s *service) HandleFirstPartyVulnResult(asset models.Asset, assetVersion *m
152152
return f.CalculateHash()
153153
})
154154

155-
amountOpened, amountClosed, amountExisting, err := s.handleFirstPartyVulnResult(userID, scannerID, assetVersion, firstPartyVulnerabilities, asset)
155+
amountOpened, amountClosed, amountExisting, err := s.handleFirstPartyVulnResult(userID, scannerID, assetVersion, firstPartyVulnerabilities, asset, org, project)
156156
if err != nil {
157157
return 0, 0, []models.FirstPartyVuln{}, err
158158
}
@@ -166,7 +166,7 @@ func (s *service) HandleFirstPartyVulnResult(asset models.Asset, assetVersion *m
166166
return amountOpened, amountClosed, amountExisting, nil
167167
}
168168

169-
func (s *service) handleFirstPartyVulnResult(userID string, scannerID string, assetVersion *models.AssetVersion, vulns []models.FirstPartyVuln, asset models.Asset) (int, int, []models.FirstPartyVuln, error) {
169+
func (s *service) handleFirstPartyVulnResult(userID string, scannerID string, assetVersion *models.AssetVersion, vulns []models.FirstPartyVuln, asset models.Asset, org models.Org, project models.Project) (int, int, []models.FirstPartyVuln, error) {
170170
// get all existing vulns from the database - this is the old state
171171
existingVulns, err := s.firstPartyVulnRepository.ListByScanner(assetVersion.Name, assetVersion.AssetID, scannerID)
172172
if err != nil {
@@ -209,21 +209,10 @@ func (s *service) handleFirstPartyVulnResult(userID string, scannerID string, as
209209
return
210210
}
211211

212-
pro, err := s.projectRepository.GetProjectByAssetID(asset.ID)
213-
if err != nil {
214-
slog.Error("could not get project by asset ID", "err", err)
215-
return
216-
}
217-
org, err := s.orgRepository.Read(pro.OrganizationID)
218-
if err != nil {
219-
slog.Error("could not get organization by ID", "err", err)
220-
return
221-
}
222-
223212
if err = s.thirdPartyIntegration.HandleEvent(core.FirstPartyVulnsDetectedEvent{
224213
AssetVersion: core.ToAssetVersionObject(*assetVersion),
225214
Asset: core.ToAssetObject(asset),
226-
Project: core.ToProjectObject(pro),
215+
Project: core.ToProjectObject(project),
227216
Org: core.ToOrgObject(org),
228217
Vulns: utils.Map(newVulns, vuln.FirstPartyVulnToDto),
229218
}); err != nil {
@@ -234,7 +223,7 @@ func (s *service) handleFirstPartyVulnResult(userID string, scannerID string, as
234223
return len(newVulns), len(fixedVulns), append(newVulns, comparison.InBoth...), nil
235224
}
236225

237-
func (s *service) HandleScanResult(asset models.Asset, assetVersion *models.AssetVersion, vulns []models.VulnInPackage, scannerID string, userID string) (opened []models.DependencyVuln, closed []models.DependencyVuln, newState []models.DependencyVuln, err error) {
226+
func (s *service) HandleScanResult(org models.Org, project models.Project, asset models.Asset, assetVersion *models.AssetVersion, vulns []models.VulnInPackage, scannerID string, userID string) (opened []models.DependencyVuln, closed []models.DependencyVuln, newState []models.DependencyVuln, err error) {
238227

239228
// create dependencyVulns out of those vulnerabilities
240229
dependencyVulns := []models.DependencyVuln{}
@@ -293,22 +282,11 @@ func (s *service) HandleScanResult(asset models.Asset, assetVersion *models.Asse
293282
if len(opened) == 0 {
294283
return
295284
}
296-
pro, err := s.projectRepository.GetProjectByAssetID(asset.ID)
297-
if err != nil {
298-
slog.Error("could not get project by asset ID", "err", err)
299-
return
300-
}
301-
302-
org, err := s.orgRepository.Read(pro.OrganizationID)
303-
if err != nil {
304-
slog.Error("could not get organization by ID", "err", err)
305-
return
306-
}
307285

308286
if err = s.thirdPartyIntegration.HandleEvent(core.DependencyVulnsDetectedEvent{
309287
AssetVersion: core.ToAssetVersionObject(*assetVersion),
310288
Asset: core.ToAssetObject(asset),
311-
Project: core.ToProjectObject(pro),
289+
Project: core.ToProjectObject(project),
312290
Org: core.ToOrgObject(org),
313291

314292
Vulns: utils.Map(opened, vuln.DependencyVulnToDto),
@@ -483,7 +461,7 @@ func buildBomRefMap(bom normalize.SBOM) map[string]cdx.Component {
483461
return res
484462
}
485463

486-
func (s *service) UpdateSBOM(assetVersion models.AssetVersion, scannerID string, sbom normalize.SBOM) error {
464+
func (s *service) UpdateSBOM(org models.Org, project models.Project, asset models.Asset, assetVersion models.AssetVersion, scannerID string, sbom normalize.SBOM) error {
487465

488466
sbomUpdated := false
489467

@@ -603,28 +581,11 @@ func (s *service) UpdateSBOM(assetVersion models.AssetVersion, scannerID string,
603581
go func(sbomUpdated bool) {
604582

605583
if sbomUpdated {
606-
asset, err := s.assetRepository.Read(assetVersion.AssetID)
607-
if err != nil {
608-
slog.Error("could not read asset", "assetID", assetVersion.AssetID, "err", err)
609-
return
610-
}
611-
612-
pro, err := s.projectRepository.GetProjectByAssetID(asset.ID)
613-
if err != nil {
614-
slog.Error("could not get project by asset ID", "err", err)
615-
return
616-
}
617-
618-
org, err := s.orgRepository.Read(pro.OrganizationID)
619-
if err != nil {
620-
slog.Error("could not get organization by ID", "err", err)
621-
return
622-
}
623584

624585
if err = s.thirdPartyIntegration.HandleEvent(core.SBOMCreatedEvent{
625586
AssetVersion: core.ToAssetVersionObject(assetVersion),
626587
Asset: core.ToAssetObject(asset),
627-
Project: core.ToProjectObject(pro),
588+
Project: core.ToProjectObject(project),
628589
Org: core.ToOrgObject(org),
629590
SBOM: sbom.GetCdxBom(),
630591
}); err != nil {

internal/core/common_interfaces.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -251,9 +251,9 @@ type AssetVersionService interface {
251251
BuildSBOM(assetVersion models.AssetVersion, version, orgName string, components []models.ComponentDependency) *cdx.BOM
252252
BuildVeX(asset models.Asset, assetVersion models.AssetVersion, orgName string, dependencyVulns []models.DependencyVuln) *cdx.BOM
253253
GetAssetVersionsByAssetID(assetID uuid.UUID) ([]models.AssetVersion, error)
254-
HandleFirstPartyVulnResult(asset models.Asset, assetVersion *models.AssetVersion, sarifScan common.SarifResult, scannerID string, userID string) (int, int, []models.FirstPartyVuln, error)
255-
UpdateSBOM(assetVersion models.AssetVersion, scannerID string, sbom normalize.SBOM) error
256-
HandleScanResult(asset models.Asset, assetVersion *models.AssetVersion, vulns []models.VulnInPackage, scannerID string, userID string) (opened []models.DependencyVuln, closed []models.DependencyVuln, newState []models.DependencyVuln, err error)
254+
HandleFirstPartyVulnResult(org models.Org, project models.Project, asset models.Asset, assetVersion *models.AssetVersion, sarifScan common.SarifResult, scannerID string, userID string) (int, int, []models.FirstPartyVuln, error)
255+
UpdateSBOM(org models.Org, project models.Project, asset models.Asset, assetVersion models.AssetVersion, scannerID string, sbom normalize.SBOM) error
256+
HandleScanResult(org models.Org, project models.Project, asset models.Asset, assetVersion *models.AssetVersion, vulns []models.VulnInPackage, scannerID string, userID string) (opened []models.DependencyVuln, closed []models.DependencyVuln, newState []models.DependencyVuln, err error)
257257
BuildOpenVeX(asset models.Asset, assetVersion models.AssetVersion, organizationSlug string, dependencyVulns []models.DependencyVuln) vex.VEX
258258
}
259259

internal/core/integrations/integration_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ func (c *integrationController) TestAndSaveWebhookIntegration(ctx core.Context)
132132
return ctx.JSON(404, "Webhook integration not enabled")
133133
}
134134

135-
if err := wh.(*webhook.WebhookIntegration).TestAndSave(ctx); err != nil {
135+
if err := wh.(*webhook.WebhookIntegration).Save(ctx); err != nil {
136136
slog.Error("could not test GitLab integration", "err", err)
137137
return err
138138
}

internal/core/integrations/webhook/webhook_client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ func (c *webhookClient) CreateRequest(method, url string, body io.Reader) (*http
5858
}
5959

6060
if c.Secret != nil {
61-
req.Header.Set("X-DevGuard-Token", *c.Secret)
61+
req.Header.Set("X-Webhook-Secret", *c.Secret)
6262
}
6363

6464
req.Header.Set("Content-Type", "application/json")

internal/core/integrations/webhook/webhook_integration.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,12 +98,11 @@ func (w *WebhookIntegration) Update(ctx core.Context) error {
9898
Name: *webhookIntegration.Name,
9999
Description: *webhookIntegration.Description,
100100
URL: webhookIntegration.URL,
101-
Secret: *webhookIntegration.Secret,
102101
SbomEnabled: webhookIntegration.SbomEnabled,
103102
VulnEnabled: webhookIntegration.VulnEnabled,
104103
})
105104
}
106-
func (w *WebhookIntegration) TestAndSave(ctx core.Context) error {
105+
func (w *WebhookIntegration) Save(ctx core.Context) error {
107106
var data struct {
108107
Name string `json:"name"`
109108
Description string `json:"description"`
@@ -148,7 +147,6 @@ func (w *WebhookIntegration) TestAndSave(ctx core.Context) error {
148147
Name: *webhookIntegration.Name,
149148
Description: *webhookIntegration.Description,
150149
URL: webhookIntegration.URL,
151-
Secret: *webhookIntegration.Secret,
152150
SbomEnabled: webhookIntegration.SbomEnabled,
153151
VulnEnabled: webhookIntegration.VulnEnabled,
154152
})

internal/core/org/org_dto.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,6 @@ func obfuscateWebhookIntegrations(integration models.WebhookIntegration) common.
212212
Name: *integration.Name,
213213
Description: *integration.Description,
214214
URL: integration.URL,
215-
Secret: *integration.Secret,
216215
SbomEnabled: integration.SbomEnabled,
217216
VulnEnabled: integration.VulnEnabled,
218217
}

internal/core/project/project_controller.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,6 @@ func (projectController *controller) getWebhooks(c core.Context) ([]common.Webho
302302
Name: *w.Name,
303303
Description: *w.Description,
304304
URL: w.URL,
305-
Secret: *w.Secret,
306305
SbomEnabled: w.SbomEnabled,
307306
VulnEnabled: w.VulnEnabled,
308307
}

internal/core/vulndb/scan/scan_controller.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ func (s *HTTPController) DependencyVulnScan(c core.Context, bom normalize.SBOM)
113113
}
114114

115115
// update the sbom in the database in parallel
116-
err = s.assetVersionService.UpdateSBOM(assetVersion, scannerID, normalizedBom)
116+
err = s.assetVersionService.UpdateSBOM(org, project, asset, assetVersion, scannerID, normalizedBom)
117117
if err != nil {
118118
slog.Error("could not update sbom", "err", err)
119119
return scanResults, err
@@ -133,7 +133,7 @@ func (s *HTTPController) ScanNormalizedSBOM(org models.Org, project models.Proje
133133
}
134134

135135
// handle the scan result
136-
opened, closed, newState, err := s.assetVersionService.HandleScanResult(asset, &assetVersion, vulns, scannerID, userID)
136+
opened, closed, newState, err := s.assetVersionService.HandleScanResult(org, project, asset, &assetVersion, vulns, scannerID, userID)
137137
if err != nil {
138138
slog.Error("could not handle scan result", "err", err)
139139
return scanResults, err
@@ -183,6 +183,9 @@ func (s *HTTPController) FirstPartyVulnScan(c core.Context) error {
183183
return err
184184
}
185185

186+
org := core.GetOrg(c)
187+
project := core.GetProject(c)
188+
186189
asset := core.GetAsset(c)
187190
userID := core.GetSession(c).GetUserID()
188191

@@ -211,7 +214,7 @@ func (s *HTTPController) FirstPartyVulnScan(c core.Context) error {
211214
}
212215

213216
// handle the scan result
214-
amountOpened, amountClose, newState, err := s.assetVersionService.HandleFirstPartyVulnResult(asset, &assetVersion, sarifScan, scannerID, userID)
217+
amountOpened, amountClose, newState, err := s.assetVersionService.HandleFirstPartyVulnResult(org, project, asset, &assetVersion, sarifScan, scannerID, userID)
215218
if err != nil {
216219
slog.Error("could not handle scan result", "err", err)
217220
return c.JSON(500, map[string]string{"error": "could not handle scan result"})

0 commit comments

Comments
 (0)