Skip to content

Commit 0201425

Browse files
Remove persistedRC and unmarshal directly into TalismanRC
Authored-by: Owen Nelson <[email protected]>
1 parent 46d79a3 commit 0201425

File tree

4 files changed

+10
-50
lines changed

4 files changed

+10
-50
lines changed

talismanrc/rc_file.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,21 +21,21 @@ var (
2121
currentRCFileName = DefaultRCFileName
2222
)
2323

24-
func readConfigFromRCFile(fileReader func(string) ([]byte, error)) (*persistedRC, error) {
24+
func readConfigFromRCFile(fileReader func(string) ([]byte, error)) (*TalismanRC, error) {
2525
fileContents, err := fileReader(currentRCFileName)
2626
if err != nil {
2727
panic(err)
2828
}
2929
return newPersistedRC(fileContents)
3030
}
3131

32-
func newPersistedRC(fileContents []byte) (*persistedRC, error) {
33-
talismanRCFromFile := persistedRC{}
32+
func newPersistedRC(fileContents []byte) (*TalismanRC, error) {
33+
talismanRCFromFile := TalismanRC{}
3434
err := yaml.Unmarshal(fileContents, &talismanRCFromFile)
3535
if err != nil {
3636
logr.Errorf("Unable to parse .talismanrc : %v", err)
3737
fmt.Println(fmt.Errorf("\n\x1b[1m\x1b[31mUnable to parse .talismanrc %s. Please ensure it is following the right YAML structure\x1b[0m\x1b[0m", err))
38-
return &persistedRC{}, err
38+
return &TalismanRC{}, err
3939
}
4040
if talismanRCFromFile.Version == "" {
4141
talismanRCFromFile.Version = DefaultRCVersion
@@ -54,7 +54,6 @@ func SetRcFilename__(rcFileName string) {
5454
type RepoFileReader func(string) ([]byte, error)
5555

5656
var repoFileReader = func() RepoFileReader {
57-
5857
return func(path string) ([]byte, error) {
5958
data, err := utility.SafeReadFile(path)
6059
if err != nil {

talismanrc/rc_file_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ func TestShouldIgnoreUnformattedFiles(t *testing.T) {
3636
})
3737

3838
talismanRC, _ := Load()
39-
assert.True(t, talismanRC.AcceptsAll(), "Expected commented line '%s' to result in no ignore patterns", s)
39+
assert.Equal(t, &TalismanRC{Version: "1.0"}, talismanRC, "Expected commented line '%s' to result in an empty TalismanRC")
4040
}
4141
setRepoFileReader(defaultRepoFileReader)
4242
}

talismanrc/talismanrc.go

Lines changed: 1 addition & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package talismanrc
22

33
import (
44
"os"
5-
"regexp"
65
"sort"
76

87
logr "github.com/sirupsen/logrus"
@@ -24,17 +23,6 @@ type TalismanRC struct {
2423
Version string `yaml:"version"`
2524
}
2625

27-
type persistedRC struct {
28-
FileIgnoreConfig []FileIgnoreConfig `yaml:"fileignoreconfig,omitempty"`
29-
ScopeConfig []ScopeConfig `yaml:"scopeconfig,omitempty"`
30-
CustomPatterns []PatternString `yaml:"custom_patterns,omitempty"`
31-
CustomSeverities []CustomSeverityConfig `yaml:"custom_severities,omitempty"`
32-
AllowedPatterns []string `yaml:"allowed_patterns,omitempty"`
33-
Experimental ExperimentalConfig `yaml:"experimental,omitempty"`
34-
Threshold severity.Severity `yaml:"threshold,omitempty"`
35-
Version string `yaml:"version"`
36-
}
37-
3826
// SuggestRCFor returns the talismanRC file content corresponding to input ignore configs
3927
func SuggestRCFor(configs []FileIgnoreConfig) string {
4028
tRC := TalismanRC{FileIgnoreConfig: configs, Version: DefaultRCVersion}
@@ -43,11 +31,6 @@ func SuggestRCFor(configs []FileIgnoreConfig) string {
4331
return string(result)
4432
}
4533

46-
// AcceptsAll returns true if there are no rules specified
47-
func (tRC *TalismanRC) AcceptsAll() bool {
48-
return len(tRC.effectiveRules("any-detector")) == 0
49-
}
50-
5134
// Accept answers true if the Addition.Path is configured to be checked by the detectors
5235
func (tRC *TalismanRC) Accept(addition gitrepo.Addition, detectorName string) bool {
5336
return !tRC.Deny(addition, detectorName)
@@ -169,27 +152,6 @@ func (tRC *TalismanRC) effectiveRules(detectorName string) []string {
169152
return result
170153
}
171154

172-
func fromPersistedRC(configFromTalismanRCFile *persistedRC) *TalismanRC {
173-
tRC := TalismanRC{}
174-
175-
tRC.Threshold = configFromTalismanRCFile.Threshold
176-
tRC.ScopeConfig = configFromTalismanRCFile.ScopeConfig
177-
tRC.Experimental = configFromTalismanRCFile.Experimental
178-
tRC.CustomPatterns = configFromTalismanRCFile.CustomPatterns
179-
tRC.CustomSeverities = configFromTalismanRCFile.CustomSeverities
180-
tRC.AllowedPatterns = make([]*Pattern, len(configFromTalismanRCFile.AllowedPatterns))
181-
for i, p := range configFromTalismanRCFile.AllowedPatterns {
182-
tRC.AllowedPatterns[i] = &Pattern{regexp.MustCompile(p)}
183-
}
184-
tRC.Version = configFromTalismanRCFile.Version
185-
186-
tRC.FileIgnoreConfig = configFromTalismanRCFile.FileIgnoreConfig
187-
188-
return &tRC
189-
}
190-
191155
func Load() (*TalismanRC, error) {
192-
configFromTalismanRCFile, err := readConfigFromRCFile(repoFileReader())
193-
talismanRC := fromPersistedRC(configFromTalismanRCFile)
194-
return talismanRC, err
156+
return readConfigFromRCFile(repoFileReader())
195157
}

talismanrc/talismanrc_test.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,10 @@ custom_severities:
4949
- detector: Base64Content
5050
severity: low
5151
`)
52-
persistedRC, _ := newPersistedRC(talismanRCContents)
53-
talismanRC := fromPersistedRC(persistedRC)
54-
assert.Equal(t, persistedRC.Threshold, severity.High)
55-
assert.Equal(t, len(persistedRC.CustomSeverities), 1)
56-
assert.Equal(t, persistedRC.CustomSeverities, talismanRC.CustomSeverities)
52+
talismanRC, _ := newPersistedRC(talismanRCContents)
53+
assert.Equal(t, talismanRC.Threshold, severity.High)
54+
assert.Equal(t, len(talismanRC.CustomSeverities), 1)
55+
assert.Equal(t, talismanRC.CustomSeverities, []CustomSeverityConfig{{Detector: "Base64Content", Severity: severity.Low}})
5756
}
5857

5958
func TestDirectoryPatterns(t *testing.T) {

0 commit comments

Comments
 (0)