@@ -19,6 +19,8 @@ package sbom
19
19
import (
20
20
"context"
21
21
"fmt"
22
+ "os"
23
+ "strconv"
22
24
"strings"
23
25
24
26
"github.com/aquasecurity/trivy/pkg/fanal/analyzer"
@@ -31,9 +33,9 @@ import (
31
33
aimage "github.com/aquasecurity/trivy/pkg/fanal/artifact/image"
32
34
"github.com/aquasecurity/trivy/pkg/fanal/cache"
33
35
"github.com/aquasecurity/trivy/pkg/fanal/image"
34
- "github.com/aquasecurity/trivy/pkg/fanal/secret"
35
36
stypes "github.com/aquasecurity/trivy/pkg/fanal/types"
36
37
"github.com/aquasecurity/trivy/pkg/fanal/utils"
38
+ "github.com/atomist-skills/go-skill"
37
39
"github.com/pkg/errors"
38
40
39
41
"github.com/docker/index-cli-plugin/registry"
@@ -47,7 +49,6 @@ func trivySbom(cache *registry.ImageCache, lm *types.LayerMapping, resultChan ch
47
49
Packages : make ([]types.Package , 0 ),
48
50
Secrets : make ([]types.Secret , 0 ),
49
51
}
50
-
51
52
defer close (resultChan )
52
53
53
54
cacheClient , err := initializeCache ()
@@ -66,8 +67,8 @@ func trivySbom(cache *registry.ImageCache, lm *types.LayerMapping, resultChan ch
66
67
resultChan <- result
67
68
return
68
69
}
69
-
70
- art , err := aimage .NewArtifact (img , cacheClient , artifact. Option {} )
70
+
71
+ art , err := aimage .NewArtifact (img , cacheClient , configOptions () )
71
72
if err != nil {
72
73
result .Status = types .Failed
73
74
result .Error = errors .Wrap (err , "failed to create new artifact" )
@@ -84,14 +85,15 @@ func trivySbom(cache *registry.ImageCache, lm *types.LayerMapping, resultChan ch
84
85
}
85
86
86
87
a := applier .NewApplier (cacheClient )
87
- scanner , err := secret .NewScanner ("" )
88
+ /* scanner, err := secret.NewScanner("")
88
89
if err != nil {
89
90
result.Status = types.Failed
90
91
result.Error = errors.Wrap(err, "failed to create secret scanner")
91
92
resultChan <- result
92
93
return
93
- }
94
- config := & cache .Source .Image .Metadata .Config
94
+ }*/
95
+
96
+ /*config := &cache.Source.Image.Metadata.Config
95
97
for o, h := range config.History {
96
98
secrets := scanner.Scan(secret.ScanArgs{
97
99
FilePath: "history",
@@ -129,7 +131,7 @@ func trivySbom(cache *registry.ImageCache, lm *types.LayerMapping, resultChan ch
129
131
Type: "env",
130
132
}))
131
133
}
132
- }
134
+ }*/
133
135
for v := range imageInfo .BlobIDs {
134
136
mergedLayer , err := a .ApplyLayers (imageInfo .ID , []string {imageInfo .BlobIDs [v ]})
135
137
if err != nil {
@@ -211,15 +213,24 @@ func trivySbom(cache *registry.ImageCache, lm *types.LayerMapping, resultChan ch
211
213
}
212
214
}
213
215
}
214
-
216
+ skill . Log . Debug ( "trivy indexing completed" )
215
217
resultChan <- result
216
218
}
217
219
218
220
func initializeCache () (cache.Cache , error ) {
219
- var cacheClient cache.Cache
220
- var err error
221
- cacheClient , err = cache .NewFSCache (utils .CacheDir ())
222
- return cacheClient , err
221
+ return cache .NewFSCache (utils .CacheDir ())
222
+ }
223
+
224
+ func configOptions () artifact.Option {
225
+ opts := artifact.Option {
226
+ DisabledAnalyzers : []analyzer.Type {analyzer .TypeDockerfile , analyzer .TypeSecret , analyzer .TypeHelm , analyzer .TypeTerraform , analyzer .TypeJSON , analyzer .TypeYaml },
227
+ }
228
+ if v , ok := os .LookupEnv ("ATOMIST_OFFLINE" ); ok {
229
+ if o , err := strconv .ParseBool (v ); err == nil && o {
230
+ opts .Offline = true
231
+ }
232
+ }
233
+ return opts
223
234
}
224
235
225
236
func convertSecretFindings (s stypes.Secret , source types.SecretSource ) types.Secret {
0 commit comments