Skip to content

Commit ed7ab54

Browse files
committed
fix: Specify types of dependencies to analyze
It's only necessary to specifiy these types when running the scanners directly, as we do. When running Trivy via the command line it's not necessary. See aquasecurity/trivy#7237
1 parent 0e10696 commit ed7ab54

File tree

2 files changed

+20
-14
lines changed

2 files changed

+20
-14
lines changed

internal/tool/tool.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@ import (
1111
"strings"
1212

1313
"github.com/aquasecurity/trivy/pkg/fanal/secret"
14+
ftypes "github.com/aquasecurity/trivy/pkg/fanal/types"
1415
"github.com/aquasecurity/trivy/pkg/flag"
1516
"github.com/aquasecurity/trivy/pkg/log"
17+
ptypes "github.com/aquasecurity/trivy/pkg/types"
1618
types "github.com/aquasecurity/trivy/pkg/types"
1719
codacy "github.com/codacy/codacy-engine-golang-seed/v6"
1820
"github.com/samber/lo"
@@ -97,7 +99,9 @@ func (t codacyTrivy) runVulnerabilityScanning(ctx context.Context, toolExecution
9799
},
98100
PackageOptions: flag.PackageOptions{
99101
// Only scan libraries not OS packages.
100-
PkgTypes: []string{types.PkgTypeLibrary},
102+
PkgTypes: []string{ptypes.PkgTypeLibrary},
103+
// Scan libraries with all possible relationships (direct, indirect, etc).
104+
PkgRelationships: ftypes.Relationships,
101105
},
102106
ReportOptions: flag.ReportOptions{
103107
// Listing all packages will allow to obtain the line number of a vulnerability.
@@ -106,7 +110,7 @@ func (t codacyTrivy) runVulnerabilityScanning(ctx context.Context, toolExecution
106110
ScanOptions: flag.ScanOptions{
107111
// Do not try to connect to the internet to download vulnerability DBs, for example.
108112
OfflineScan: true,
109-
Scanners: types.Scanners{types.VulnerabilityScanner},
113+
Scanners: ptypes.Scanners{ptypes.VulnerabilityScanner},
110114
// Instead of scanning files individually, scan the whole source directory since it's faster.
111115
// Then filter issues from files that were not supposed to be analysed.
112116
Target: toolExecution.SourceDir,

internal/tool/tool_test.go

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"github.com/aquasecurity/trivy/pkg/commands/artifact"
1111
ftypes "github.com/aquasecurity/trivy/pkg/fanal/types"
1212
"github.com/aquasecurity/trivy/pkg/flag"
13-
"github.com/aquasecurity/trivy/pkg/types"
13+
ptypes "github.com/aquasecurity/trivy/pkg/types"
1414
codacy "github.com/codacy/codacy-engine-golang-seed/v6"
1515
"github.com/stretchr/testify/assert"
1616
"go.uber.org/mock/gomock"
@@ -61,20 +61,21 @@ func TestRun(t *testing.T) {
6161
SkipJavaDBUpdate: true,
6262
},
6363
PackageOptions: flag.PackageOptions{
64-
PkgTypes: []string{types.PkgTypeLibrary},
64+
PkgTypes: []string{ptypes.PkgTypeLibrary},
65+
PkgRelationships: ftypes.Relationships,
6566
},
6667
ReportOptions: flag.ReportOptions{
6768
ListAllPkgs: true,
6869
},
6970
ScanOptions: flag.ScanOptions{
7071
OfflineScan: true,
71-
Scanners: types.Scanners{types.VulnerabilityScanner},
72+
Scanners: ptypes.Scanners{ptypes.VulnerabilityScanner},
7273
Target: sourceDir,
7374
},
7475
}
7576

76-
report := types.Report{
77-
Results: types.Results{
77+
report := ptypes.Report{
78+
Results: ptypes.Results{
7879
{
7980
Target: file1,
8081
Packages: ftypes.Packages{
@@ -90,7 +91,7 @@ func TestRun(t *testing.T) {
9091
ID: packageID2,
9192
},
9293
},
93-
Vulnerabilities: []types.DetectedVulnerability{
94+
Vulnerabilities: []ptypes.DetectedVulnerability{
9495
{
9596
PkgID: packageID1,
9697
VulnerabilityID: "vuln id",
@@ -119,13 +120,13 @@ func TestRun(t *testing.T) {
119120
},
120121
{
121122
Target: file2,
122-
Secrets: []types.DetectedSecret{
123+
Secrets: []ptypes.DetectedSecret{
123124
{
124125
StartLine: 2,
125126
Title: "secret title",
126127
},
127128
},
128-
Vulnerabilities: []types.DetectedVulnerability{
129+
Vulnerabilities: []ptypes.DetectedVulnerability{
129130
{
130131
PkgID: "packageID10",
131132
VulnerabilityID: "no line",
@@ -138,7 +139,7 @@ func TestRun(t *testing.T) {
138139
},
139140
{
140141
Target: "file-3",
141-
Secrets: []types.DetectedSecret{
142+
Secrets: []ptypes.DetectedSecret{
142143
{
143144
StartLine: 10,
144145
Title: "unkown file",
@@ -294,14 +295,15 @@ func TestRunScanFilesystemError(t *testing.T) {
294295
SkipJavaDBUpdate: true,
295296
},
296297
PackageOptions: flag.PackageOptions{
297-
PkgTypes: []string{types.PkgTypeLibrary},
298+
PkgTypes: []string{ptypes.PkgTypeLibrary},
299+
PkgRelationships: ftypes.Relationships,
298300
},
299301
ReportOptions: flag.ReportOptions{
300302
ListAllPkgs: true,
301303
},
302304
ScanOptions: flag.ScanOptions{
303305
OfflineScan: true,
304-
Scanners: types.Scanners{types.VulnerabilityScanner},
306+
Scanners: ptypes.Scanners{ptypes.VulnerabilityScanner},
305307
Target: sourceDir,
306308
},
307309
}
@@ -315,7 +317,7 @@ func TestRunScanFilesystemError(t *testing.T) {
315317
mockRunner.EXPECT().ScanFilesystem(
316318
gomock.Eq(ctx),
317319
gomock.Eq(config),
318-
).Return(types.Report{}, assert.AnError).Times(1)
320+
).Return(ptypes.Report{}, assert.AnError).Times(1)
319321
mockRunner.EXPECT().Close(
320322
gomock.Eq(ctx),
321323
).Return(nil).Times(1)

0 commit comments

Comments
 (0)