Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit aa188a8

Browse files
sguiheuxyesnault
authored andcommitted
fix(api): add type on vulnerabilities (#3269)
1 parent 7ee4c1a commit aa188a8

File tree

7 files changed

+16
-5
lines changed

7 files changed

+16
-5
lines changed

contrib/plugins/plugin-clair/clair.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ func (d ClairPlugin) Run(a plugin.IJob) plugin.Result {
9999
report := sdk.VulnerabilityWorkerReport{
100100
Vulnerabilities: vulnerabilities,
101101
Summary: summary,
102+
Type: "docker",
102103
}
103104
if err := plugin.SendVulnerabilityReport(a, report); err != nil {
104105
_ = plugin.SendLog(a, "Unable to send report: %s", err)

contrib/plugins/plugin-npm-audit-parser/npm-audit-parser.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ func (d NpmAuditParserPlugin) Run(j plugin.IJob) plugin.Result {
9494

9595
}
9696
}
97+
report.Type = "js"
9798
report.Summary = summary
9899
if err := plugin.SendVulnerabilityReport(j, report); err != nil {
99100
_ = plugin.SendLog(j, "Unable to send report: %s", err)

engine/api/application/application_vunerability.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@ import (
99
)
1010

1111
// InsertVulnerabilities Insert vulnerabilities
12-
func InsertVulnerabilities(db gorp.SqlExecutor, vs []sdk.Vulnerability, appID int64) error {
13-
if _, err := db.Exec("DELETE FROM application_vulnerability WHERE application_id = $1", appID); err != nil {
12+
func InsertVulnerabilities(db gorp.SqlExecutor, vs []sdk.Vulnerability, appID int64, t string) error {
13+
if _, err := db.Exec("DELETE FROM application_vulnerability WHERE application_id = $1 AND type = $2", appID, t); err != nil {
1414
return sdk.WrapError(err, "InsertVulnerability> Unable to remove old vulnerabilities")
1515
}
1616
for _, v := range vs {
1717
v.ApplicationID = appID
18+
v.Type = t
1819
dbVuln := dbApplicationVulnerability(v)
1920
if err := db.Insert(&dbVuln); err != nil {
2021
return sdk.WrapError(err, "InsertVulnerability> Unable to insert vulnerabilities")

engine/api/application_vulnerability_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func Test_postVulnerabilityHandler(t *testing.T) {
3636
v := sdk.Vulnerability{}
3737
v.ApplicationID = app.ID
3838

39-
assert.NoError(t, application.InsertVulnerabilities(db, []sdk.Vulnerability{v}, app.ID))
39+
assert.NoError(t, application.InsertVulnerabilities(db, []sdk.Vulnerability{v}, app.ID, "docker"))
4040

4141
vulns, err := application.LoadVulnerabilities(db, app.ID)
4242
assert.NoError(t, err)

engine/api/workflow/dao_node_run_vulnerability.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ func HandleVulnerabilityReport(ctx context.Context, db gorp.SqlExecutor, cache c
7474
// If we are on default branch, save report on application
7575
if defaultBranch != "" && defaultBranch == nr.VCSBranch {
7676
// Save vulnerabilities
77-
if err := application.InsertVulnerabilities(db, currentNodeRunReport.Report.Vulnerabilities, nr.ApplicationID); err != nil {
77+
if err := application.InsertVulnerabilities(db, currentNodeRunReport.Report.Vulnerabilities, nr.ApplicationID, workerReport.Type); err != nil {
7878
return sdk.WrapError(err, "HandleVulnerabilityReport> Unable to insert vulnerability")
7979
}
8080
}
@@ -126,7 +126,7 @@ func createNewVulnerabilityReport(db gorp.SqlExecutor, cache cache.Store, proj *
126126

127127
// If we are on default branch, save report on application
128128
if defaultBranch != "" && defaultBranch == nr.VCSBranch {
129-
if err := application.InsertVulnerabilities(db, nodeRunReport.Report.Vulnerabilities, nr.ApplicationID); err != nil {
129+
if err := application.InsertVulnerabilities(db, nodeRunReport.Report.Vulnerabilities, nr.ApplicationID, workerReport.Type); err != nil {
130130
return sdk.WrapError(err, "HandleVulnerabilityReport> Unable to update vulnerability")
131131
}
132132
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
-- +migrate Up
2+
TRUNCATE TABLE application_vulnerability;
3+
ALTER TABLE application_vulnerability ADD COLUMN type VARCHAR(50);
4+
5+
-- +migrate Down
6+
ALTER TABLE application_vulnerability DROP COLUMN type;

sdk/application_vulnerability.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import "strings"
66
type VulnerabilityWorkerReport struct {
77
Summary map[string]int64 `json:"summary"`
88
Vulnerabilities []Vulnerability `json:"vulnerabilities"`
9+
Type string `json:"type"`
910
}
1011

1112
// Vulnerability represents vulnerabilities on an application
@@ -22,6 +23,7 @@ type Vulnerability struct {
2223
Severity string `json:"severity" db:"severity"`
2324
FixIn string `json:"fix_in" db:"fix_in"`
2425
Ignored bool `json:"ignored" db:"ignored"`
26+
Type string `json:"type" db:"type"`
2527
}
2628

2729
const (

0 commit comments

Comments
 (0)