Skip to content

Commit 24337cf

Browse files
patrick.rissmann@l3montree.compatrick.rissmann@l3montree.com
authored andcommitted
Added event logging when adding or removing a scanner to/from a vulnerability
1 parent 32dc6bb commit 24337cf

3 files changed

Lines changed: 37 additions & 2 deletions

File tree

internal/core/assetversion/asset_version_service.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -259,9 +259,13 @@ func (s *service) handleScanResult(userID string, scannerID string, assetVersion
259259
foundByScannerAndExisting[i].ScannerIDs = foundByScannerAndExisting[i].ScannerIDs + " " + scannerID
260260
}
261261
}
262+
err = s.dependencyVulnService.MakeAddedScannerEvent(tx, foundByScannerAndExisting, userID)
263+
if err != nil {
264+
slog.Error("error when trying to add events for adding scanner to vulnerability")
265+
return err
266+
}
262267

263-
err := s.dependencyVulnRepository.SaveBatch(tx, foundByScannerAndExisting)
264-
268+
err = s.dependencyVulnRepository.SaveBatch(tx, foundByScannerAndExisting)
265269
if err != nil {
266270
slog.Error("error when trying to update vulnerabilities")
267271
return err
@@ -285,6 +289,12 @@ func (s *service) handleScanResult(userID string, scannerID string, assetVersion
285289
return err
286290
}
287291

292+
err := s.dependencyVulnService.MakeRemoveScannerEvent(tx, vulnerabilitiesToUpdate, userID)
293+
if err != nil {
294+
slog.Error("error when trying to add events for removing scanner from vulnerability")
295+
return err
296+
}
297+
288298
return s.dependencyVulnService.UserFixedDependencyVulns(tx, userID, vulnerabilitiesToFix, *assetVersion, asset, true)
289299
}); err != nil {
290300
slog.Error("could not save dependencyVulns", "err", err)

internal/core/common_interfaces.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,8 @@ type DependencyVulnService interface {
183183
RecalculateRawRiskAssessment(tx DB, responsible string, dependencyVulns []models.DependencyVuln, justification string, asset models.Asset) error
184184
UserFixedDependencyVulns(tx DB, userID string, dependencyVulns []models.DependencyVuln, assetVersion models.AssetVersion, asset models.Asset, doRiskManagement bool) error
185185
UserDetectedDependencyVulns(tx DB, userID string, dependencyVulns []models.DependencyVuln, assetVersion models.AssetVersion, asset models.Asset, doRiskManagement bool) error
186+
MakeAddedScannerEvent(tx DB, vulnerabilities []models.DependencyVuln, userID string) error
187+
MakeRemoveScannerEvent(tx DB, vulnerabilities []models.DependencyVuln, userID string) error
186188
UpdateDependencyVulnState(tx DB, assetID uuid.UUID, userID string, dependencyVuln *models.DependencyVuln, statusType string, justification string, assetVersionName string) (models.VulnEvent, error)
187189
CreateIssuesForVulns(asset models.Asset, vulnList []models.DependencyVuln) error
188190
ShouldCreateIssue(assetVersion models.AssetVersion) bool

internal/core/dependency_vuln/dependency_vuln_service.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,28 @@ func (s *service) RecalculateAllRawRiskAssessments() error {
153153

154154
}
155155

156+
func (s *service) MakeAddedScannerEvent(tx core.DB, vulnerabilities []models.DependencyVuln, userID string) error {
157+
events := make([]models.VulnEvent, len(vulnerabilities))
158+
for i := range vulnerabilities {
159+
ev := models.NewAddedScannerEvent(vulnerabilities[i].CalculateHash(), userID)
160+
ev.Apply(&vulnerabilities[i])
161+
events[i] = ev
162+
}
163+
return s.vulnEventRepository.SaveBatch(tx, events)
164+
165+
}
166+
167+
func (s *service) MakeRemoveScannerEvent(tx core.DB, vulnerabilities []models.DependencyVuln, userID string) error {
168+
events := make([]models.VulnEvent, len(vulnerabilities))
169+
for i := range vulnerabilities {
170+
ev := models.NewRemovedScannerEvent(vulnerabilities[i].CalculateHash(), userID)
171+
ev.Apply(&vulnerabilities[i])
172+
events[i] = ev
173+
}
174+
return s.vulnEventRepository.SaveBatch(tx, events)
175+
176+
}
177+
156178
func (s *service) RecalculateRawRiskAssessment(tx core.DB, userID string, dependencyVulns []models.DependencyVuln, justification string, asset models.Asset) error {
157179
if len(dependencyVulns) == 0 {
158180
return nil
@@ -270,6 +292,7 @@ func (s *service) updateDependencyVulnState(tx core.DB, userID string, dependenc
270292
case models.EventTypeComment:
271293
ev = models.NewCommentEvent(dependencyVuln.CalculateHash(), userID, justification)
272294
}
295+
//Found by toher scanner
273296

274297
err := s.dependencyVulnRepository.ApplyAndSave(tx, dependencyVuln, &ev)
275298
return ev, err

0 commit comments

Comments
 (0)