Skip to content

Commit 87c3f6d

Browse files
authored
Merge pull request #6437 from snyk/feat/PS-103/add-secrets-extension
feat: add secrets extension [PS-103]
2 parents 1734d5a + 4decf7b commit 87c3f6d

File tree

4 files changed

+320
-81
lines changed

4 files changed

+320
-81
lines changed

cliv2/cmd/cliv2/main.go

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,19 @@ import (
2525
"github.com/snyk/cli-extension-mcp-scan/pkg/mcpscan"
2626
"github.com/snyk/cli-extension-os-flows/pkg/osflows"
2727
"github.com/snyk/cli-extension-sbom/pkg/sbom"
28+
"github.com/snyk/cli-extension-secrets/pkg/secrets"
29+
"github.com/snyk/cli/cliv2/cmd/cliv2/behavior/legacy"
30+
"github.com/snyk/cli/cliv2/internal/cliv2"
31+
"github.com/snyk/cli/cliv2/internal/constants"
2832
"github.com/snyk/container-cli/pkg/container"
2933
"github.com/snyk/error-catalog-golang-public/cli"
30-
"github.com/spf13/cobra"
31-
"github.com/spf13/pflag"
32-
3334
"github.com/snyk/go-application-framework/pkg/analytics"
3435
"github.com/snyk/go-application-framework/pkg/app"
3536
"github.com/snyk/go-application-framework/pkg/configuration"
3637
"github.com/snyk/go-application-framework/pkg/instrumentation"
3738
"github.com/snyk/go-application-framework/pkg/logging"
38-
39-
"github.com/snyk/cli/cliv2/cmd/cliv2/behavior/legacy"
40-
"github.com/snyk/cli/cliv2/internal/cliv2"
41-
"github.com/snyk/cli/cliv2/internal/constants"
39+
"github.com/spf13/cobra"
40+
"github.com/spf13/pflag"
4241

4342
cliv2utils "github.com/snyk/cli/cliv2/internal/utils"
4443

@@ -47,7 +46,6 @@ import (
4746
"github.com/snyk/go-application-framework/pkg/local_workflows/network_utils"
4847

4948
workflows "github.com/snyk/go-application-framework/pkg/local_workflows/connectivity_check_extension"
50-
5149
"github.com/snyk/go-httpauth/pkg/httpauth"
5250
"github.com/snyk/snyk-iac-capture/pkg/capture"
5351

@@ -60,7 +58,6 @@ import (
6058
"github.com/snyk/go-application-framework/pkg/workflow"
6159

6260
snykls "github.com/snyk/snyk-ls/ls_extension"
63-
6461
"github.com/snyk/studio-mcp/pkg/mcp"
6562

6663
cli_errors "github.com/snyk/cli/cliv2/internal/errors"
@@ -483,6 +480,29 @@ func displayError(err error, userInterface ui.UserInterface, config configuratio
483480
}
484481
}
485482

483+
func initExtensions(engine workflow.Engine, config configuration.Configuration) {
484+
engine.AddExtensionInitializer(basic_workflows.Init)
485+
engine.AddExtensionInitializer(osflows.Init)
486+
engine.AddExtensionInitializer(iac.Init)
487+
engine.AddExtensionInitializer(sbom.Init)
488+
engine.AddExtensionInitializer(aibom.Init)
489+
engine.AddExtensionInitializer(redteam.Init)
490+
engine.AddExtensionInitializer(depgraph.Init)
491+
engine.AddExtensionInitializer(capture.Init)
492+
engine.AddExtensionInitializer(iacrules.Init)
493+
engine.AddExtensionInitializer(snykls.Init)
494+
engine.AddExtensionInitializer(mcp.Init)
495+
engine.AddExtensionInitializer(container.Init)
496+
engine.AddExtensionInitializer(workflows.InitConnectivityCheckWorkflow)
497+
engine.AddExtensionInitializer(localworkflows.InitCodeWorkflow)
498+
engine.AddExtensionInitializer(ignoreworkflow.InitIgnoreWorkflows)
499+
engine.AddExtensionInitializer(mcpscan.Init)
500+
501+
if config.GetBool(configuration.PREVIEW_FEATURES_ENABLED) {
502+
engine.AddExtensionInitializer(secrets.Init)
503+
}
504+
}
505+
486506
func MainWithErrorCode() int {
487507
initDebugBuild()
488508

@@ -550,22 +570,7 @@ func MainWithErrorCode() int {
550570
}
551571

552572
// initialize the extensions -> they register themselves at the engine
553-
globalEngine.AddExtensionInitializer(basic_workflows.Init)
554-
globalEngine.AddExtensionInitializer(osflows.Init)
555-
globalEngine.AddExtensionInitializer(iac.Init)
556-
globalEngine.AddExtensionInitializer(sbom.Init)
557-
globalEngine.AddExtensionInitializer(aibom.Init)
558-
globalEngine.AddExtensionInitializer(redteam.Init)
559-
globalEngine.AddExtensionInitializer(depgraph.Init)
560-
globalEngine.AddExtensionInitializer(capture.Init)
561-
globalEngine.AddExtensionInitializer(iacrules.Init)
562-
globalEngine.AddExtensionInitializer(snykls.Init)
563-
globalEngine.AddExtensionInitializer(mcp.Init)
564-
globalEngine.AddExtensionInitializer(container.Init)
565-
globalEngine.AddExtensionInitializer(workflows.InitConnectivityCheckWorkflow)
566-
globalEngine.AddExtensionInitializer(localworkflows.InitCodeWorkflow)
567-
globalEngine.AddExtensionInitializer(ignoreworkflow.InitIgnoreWorkflows)
568-
globalEngine.AddExtensionInitializer(mcpscan.Init)
573+
initExtensions(globalEngine, globalConfiguration)
569574

570575
// init engine
571576
err = globalEngine.Init()

cliv2/go.mod

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ go 1.24.4
55
require (
66
github.com/elazarl/goproxy v1.7.2
77
github.com/elazarl/goproxy/ext v0.0.0-20230808193330-2592e75ae04a
8-
github.com/gofrs/flock v0.12.1
8+
github.com/gofrs/flock v0.13.0
99
github.com/golang/mock v1.6.0
1010
github.com/google/uuid v1.6.0
1111
github.com/pkg/errors v0.9.1
@@ -17,6 +17,7 @@ require (
1717
github.com/snyk/cli-extension-mcp-scan v0.0.0-20260120142932-0eea0566625a
1818
github.com/snyk/cli-extension-os-flows v0.0.0-20260115160519-84f621016a34
1919
github.com/snyk/cli-extension-sbom v0.0.0-20260109124810-cfdd074f8eeb
20+
github.com/snyk/cli-extension-secrets v0.0.0-20260119125200-a69877b835d2
2021
github.com/snyk/container-cli v0.0.0-20250321132345-1e2e01681dd7
2122
github.com/snyk/error-catalog-golang-public v0.0.0-20260108110943-21ad0c940c14
2223
github.com/snyk/go-application-framework v0.0.0-20260126103810-195f34e2e0a2
@@ -39,18 +40,18 @@ require (
3940
cloud.google.com/go/iam v1.5.3 // indirect
4041
cloud.google.com/go/monitoring v1.24.3 // indirect
4142
cloud.google.com/go/storage v1.59.0 // indirect
42-
dario.cat/mergo v1.0.1 // indirect
43+
dario.cat/mergo v1.0.2 // indirect
4344
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.30.0 // indirect
4445
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0 // indirect
4546
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.54.0 // indirect
4647
github.com/Microsoft/go-winio v0.6.2 // indirect
4748
github.com/OneOfOne/xxhash v1.2.8 // indirect
48-
github.com/ProtonMail/go-crypto v1.2.0 // indirect
49+
github.com/ProtonMail/go-crypto v1.3.0 // indirect
4950
github.com/adrg/strutil v0.3.1 // indirect
5051
github.com/adrg/xdg v0.5.3 // indirect
5152
github.com/agext/levenshtein v1.2.3 // indirect
5253
github.com/agnivade/levenshtein v1.2.0 // indirect
53-
github.com/alexbrainman/sspi v0.0.0-20231016080023-1a75b4708caa // indirect
54+
github.com/alexbrainman/sspi v0.0.0-20250919150558-7d374ff0d59e // indirect
5455
github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect
5556
github.com/apparentlymart/go-cidr v1.1.0 // indirect
5657
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
@@ -80,22 +81,25 @@ require (
8081
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
8182
github.com/bmatcuk/doublestar v1.3.4 // indirect
8283
github.com/bmatcuk/doublestar/v4 v4.6.0 // indirect
83-
github.com/cenkalti/backoff/v5 v5.0.2 // indirect
84+
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
8485
github.com/cespare/xxhash/v2 v2.3.0 // indirect
8586
github.com/charmbracelet/bubbles v0.14.0 // indirect
8687
github.com/charmbracelet/bubbletea v0.23.1 // indirect
87-
github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc // indirect
88+
github.com/charmbracelet/colorprofile v0.3.3 // indirect
8889
github.com/charmbracelet/lipgloss v1.1.0 // indirect
89-
github.com/charmbracelet/x/ansi v0.8.0 // indirect
90-
github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd // indirect
91-
github.com/charmbracelet/x/term v0.2.1 // indirect
90+
github.com/charmbracelet/x/ansi v0.11.2 // indirect
91+
github.com/charmbracelet/x/cellbuf v0.0.14 // indirect
92+
github.com/charmbracelet/x/term v0.2.2 // indirect
9293
github.com/chzyer/readline v1.5.1 // indirect
94+
github.com/clipperhouse/displaywidth v0.6.1 // indirect
95+
github.com/clipperhouse/stringish v0.1.1 // indirect
96+
github.com/clipperhouse/uax29/v2 v2.3.0 // indirect
9397
github.com/cloudflare/circl v1.6.1 // indirect
9498
github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f // indirect
9599
github.com/containerd/console v1.0.3 // indirect
96100
github.com/creachadair/jrpc2 v1.3.0 // indirect
97101
github.com/creachadair/mds v0.23.0 // indirect
98-
github.com/cyphar/filepath-securejoin v0.4.1 // indirect
102+
github.com/cyphar/filepath-securejoin v0.6.1 // indirect
99103
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
100104
github.com/denisbrodbeck/machineid v1.0.1 // indirect
101105
github.com/dlclark/regexp2 v1.11.4 // indirect
@@ -115,8 +119,8 @@ require (
115119
github.com/gertd/go-pluralize v0.2.1 // indirect
116120
github.com/getsentry/sentry-go v0.31.1 // indirect
117121
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
118-
github.com/go-git/go-billy/v5 v5.6.2 // indirect
119-
github.com/go-git/go-git/v5 v5.15.0 // indirect
122+
github.com/go-git/go-billy/v5 v5.7.0 // indirect
123+
github.com/go-git/go-git/v5 v5.16.4 // indirect
120124
github.com/go-ini/ini v1.67.0 // indirect
121125
github.com/go-jose/go-jose/v4 v4.1.3 // indirect
122126
github.com/go-logr/logr v1.4.3 // indirect
@@ -161,33 +165,34 @@ require (
161165
github.com/jcmturner/goidentity/v6 v6.0.1 // indirect
162166
github.com/jcmturner/gokrb5/v8 v8.4.4 // indirect
163167
github.com/jcmturner/rpc/v2 v2.0.3 // indirect
164-
github.com/kevinburke/ssh_config v1.2.0 // indirect
168+
github.com/kevinburke/ssh_config v1.4.0 // indirect
165169
github.com/klauspost/compress v1.17.9 // indirect
170+
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
166171
github.com/leodido/go-urn v1.2.4 // indirect
167-
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
172+
github.com/lucasb-eyer/go-colorful v1.3.0 // indirect
168173
github.com/manifoldco/promptui v0.9.0 // indirect
169174
github.com/mark3labs/mcp-go v0.31.0 // indirect
170175
github.com/mattn/go-colorable v0.1.14 // indirect
171176
github.com/mattn/go-isatty v0.0.20 // indirect
172177
github.com/mattn/go-localereader v0.0.1 // indirect
173-
github.com/mattn/go-runewidth v0.0.16 // indirect
178+
github.com/mattn/go-runewidth v0.0.19 // indirect
174179
github.com/mitchellh/go-homedir v1.1.0 // indirect
175180
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
176181
github.com/muesli/ansi v0.0.0-20221106050444-61f0cd9a192a // indirect
177182
github.com/muesli/cancelreader v0.2.2 // indirect
178183
github.com/muesli/reflow v0.3.0 // indirect
179184
github.com/muesli/termenv v0.16.0 // indirect
180185
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
181-
github.com/oapi-codegen/runtime v1.1.1 // indirect
186+
github.com/oapi-codegen/runtime v1.1.2 // indirect
182187
github.com/olekukonko/tablewriter v0.0.5 // indirect
183188
github.com/open-policy-agent/opa v0.69.0 // indirect
184189
github.com/opencontainers/go-digest v1.0.0 // indirect
185190
github.com/otiai10/copy v1.14.1 // indirect
186191
github.com/otiai10/mint v1.6.3 // indirect
187192
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
188-
github.com/pelletier/go-toml/v2 v2.2.3 // indirect
193+
github.com/pelletier/go-toml/v2 v2.2.4 // indirect
189194
github.com/peterh/liner v1.2.2 // indirect
190-
github.com/pjbgf/sha1cd v0.3.2 // indirect
195+
github.com/pjbgf/sha1cd v0.5.0 // indirect
191196
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect
192197
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
193198
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
@@ -246,7 +251,7 @@ require (
246251
golang.org/x/crypto v0.47.0 // indirect
247252
golang.org/x/exp v0.0.0-20251023183803-a4bb9ffd2546 // indirect
248253
golang.org/x/net v0.48.0 // indirect
249-
golang.org/x/oauth2 v0.33.0 // indirect
254+
golang.org/x/oauth2 v0.34.0 // indirect
250255
golang.org/x/sync v0.19.0 // indirect
251256
golang.org/x/sys v0.40.0 // indirect
252257
golang.org/x/term v0.39.0 // indirect
@@ -281,3 +286,5 @@ replace github.com/mattn/go-localereader v0.0.1 => github.com/mattn/go-localerea
281286
// replace github.com/snyk/studio-mcp => ../../studio-mcp
282287

283288
// replace github.com/snyk/cli-extension-mcp-scan => ../../cli-extension-mcp-scan
289+
290+
// replace github.com/snyk/cli-extension-secrets => ../../cli-extension-secrets

0 commit comments

Comments
 (0)