Skip to content

Commit d0029d5

Browse files
committed
feat: add scanner name normalization
Signed-off-by: lvlcn-t <[email protected]>
1 parent 82d9ab3 commit d0029d5

File tree

7 files changed

+15
-3
lines changed

7 files changed

+15
-3
lines changed

apis/v1alpha1/enums.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@ import (
55
"crypto/sha512"
66
"encoding/base64"
77
"encoding/hex"
8+
"strings"
9+
10+
"golang.org/x/text/cases"
11+
"golang.org/x/text/language"
812
)
913

1014
// Action represents the action to take when
@@ -102,6 +106,11 @@ func (s ScannerName) String() string {
102106
return string(s)
103107
}
104108

109+
// Normalize returns the scanner name in a normalized format (capitalized).
110+
func (s ScannerName) Normalize() ScannerName {
111+
return ScannerName(cases.Title(language.English).String(strings.ToLower(s.String())))
112+
}
113+
105114
const (
106115
// ScannerGitleaks is the name of the ScannerGitleaks scanner.
107116
ScannerGitleaks ScannerName = "Gitleaks"

apis/v1alpha1/scanpolicy_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ type ScanPolicySpec struct {
2727
EnableConfigMapMutation bool `json:"enableConfigMapMutation,omitempty"`
2828

2929
// Scanner defines which detection engine to use for identifying secrets.
30-
// +kubebuilder:validation:Enum=Gitleaks
30+
// +kubebuilder:validation:Enum=Gitleaks;gitleaks
3131
// +kubebuilder:default=Gitleaks
3232
Scanner ScannerName `json:"scanner,omitempty"`
3333

chart/crds/secretdetection.lvlcn-t.dev_scanpolicies.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ spec:
8888
secrets.
8989
enum:
9090
- Gitleaks
91+
- gitleaks
9192
type: string
9293
type: object
9394
status:

config/crd/bases/secretdetection.lvlcn-t.dev_scanpolicies.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ spec:
8888
secrets.
8989
enum:
9090
- Gitleaks
91+
- gitleaks
9192
type: string
9293
type: object
9394
status:

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ require (
1313
github.com/stretchr/testify v1.10.0
1414
github.com/zricethezav/gitleaks/v8 v8.27.2
1515
go.uber.org/zap v1.27.0
16+
golang.org/x/text v0.25.0
1617
k8s.io/api v0.33.1
1718
k8s.io/apimachinery v0.33.1
1819
k8s.io/client-go v0.33.1
@@ -114,7 +115,6 @@ require (
114115
golang.org/x/sync v0.14.0 // indirect
115116
golang.org/x/sys v0.33.0 // indirect
116117
golang.org/x/term v0.32.0 // indirect
117-
golang.org/x/text v0.25.0 // indirect
118118
golang.org/x/time v0.11.0 // indirect
119119
golang.org/x/tools v0.33.0 // indirect
120120
gomodules.xyz/jsonpatch/v2 v2.5.0 // indirect

scanners/gitleaks.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ type Gitleaks struct {
1313
}
1414

1515
func NewGitleaksScanner() *Gitleaks {
16+
// TODO: let the user configure gitleaks config via scan policies
1617
c := config.ViperConfig{
1718
Extend: config.Extend{
1819
UseDefault: true,

scanners/scanner.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ var scanners = map[v1alpha1.ScannerName]Scanner{
3434
// Get returns the scanner for the given name.
3535
// If the scanner is not found, it returns nil.
3636
func Get(name v1alpha1.ScannerName) Scanner {
37-
if scanner, ok := scanners[name]; ok {
37+
if scanner, ok := scanners[name.Normalize()]; ok {
3838
return scanner
3939
}
4040
return nil

0 commit comments

Comments
 (0)