Skip to content

Commit

Permalink
fixing #87
Browse files Browse the repository at this point in the history
refactoring the git_repo package to gitrepo
  updated package names in all files in the gitrepo package
  updated references to this package in all other files in the repository

fixed other golint warnings for the gitrepo package, mostly this was writing or cleaning up exported function comments
  • Loading branch information
Athulus authored and svishwanath-tw committed Oct 7, 2019
1 parent b6f74eb commit 201dd2c
Show file tree
Hide file tree
Showing 29 changed files with 133 additions and 129 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ talisman_linux_*
talisman_darwin_*
talisman_windows_*
vendor/
git_repo/data/*
gitrepo/data/*
.talismanrc
.vscode/**
coverage.out
Expand Down
6 changes: 3 additions & 3 deletions checksumcalculator/checksumcalculator.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"fmt"
"os"
"talisman/detector"
"talisman/git_repo"
"talisman/gitrepo"
"talisman/utility"

yaml "gopkg.in/yaml.v2"
Expand All @@ -23,7 +23,7 @@ func NewChecksumCalculator(patterns []string) *ChecksumCalculator {
//SuggestTalismanRC returns the suggestion for .talismanrc format
func (cc *ChecksumCalculator) SuggestTalismanRC() string {
wd, _ := os.Getwd()
repo := git_repo.RepoLocatedAt(wd)
repo := gitrepo.RepoLocatedAt(wd)
gitTrackedFilesAsAdditions := repo.TrackedFilesAsAdditions()
//Adding staged files for calculation
gitTrackedFilesAsAdditions = append(gitTrackedFilesAsAdditions, repo.StagedAdditions()...)
Expand All @@ -45,7 +45,7 @@ func (cc *ChecksumCalculator) SuggestTalismanRC() string {
return result
}

func (cc *ChecksumCalculator) calculateCollectiveChecksumForPattern(fileNamePattern string, additions []git_repo.Addition) string {
func (cc *ChecksumCalculator) calculateCollectiveChecksumForPattern(fileNamePattern string, additions []gitrepo.Addition) string {
var patternpaths []string
currentCollectiveChecksum := ""
for _, addition := range additions {
Expand Down
8 changes: 4 additions & 4 deletions detector/base64_aggressive_detector_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package detector
import (
"testing"

"talisman/git_repo"
"talisman/gitrepo"

"github.com/stretchr/testify/assert"
)
Expand All @@ -13,7 +13,7 @@ func TestShouldFlagPotentialAWSAccessKeysInAggressiveMode(t *testing.T) {
results := NewDetectionResults()
content := []byte(awsAccessKeyIDExample)
filename := "filename"
additions := []git_repo.Addition{git_repo.NewAddition(filename, content)}
additions := []gitrepo.Addition{gitrepo.NewAddition(filename, content)}

NewFileContentDetector().AggressiveMode().Test(additions, TalismanRCIgnore{}, results)
assert.True(t, results.HasFailures(), "Expected file to not to contain base64 encoded texts")
Expand All @@ -24,7 +24,7 @@ func TestShouldFlagPotentialAWSAccessKeysAtPropertyDefinitionInAggressiveMode(t
results := NewDetectionResults()
content := []byte(awsAccessKeyIDExample)
filename := "filename"
additions := []git_repo.Addition{git_repo.NewAddition(filename, content)}
additions := []gitrepo.Addition{gitrepo.NewAddition(filename, content)}

NewFileContentDetector().AggressiveMode().Test(additions, TalismanRCIgnore{}, results)
assert.True(t, results.HasFailures(), "Expected file to not to contain base64 encoded texts")
Expand All @@ -35,7 +35,7 @@ func TestShouldNotFlagPotentialSecretsWithinSafeJavaCodeEvenInAggressiveMode(t *
results := NewDetectionResults()
content := []byte(awsAccessKeyIDExample)
filename := "filename"
additions := []git_repo.Addition{git_repo.NewAddition(filename, content)}
additions := []gitrepo.Addition{gitrepo.NewAddition(filename, content)}

NewFileContentDetector().AggressiveMode().Test(additions, TalismanRCIgnore{}, results)
if results == nil {
Expand Down
10 changes: 5 additions & 5 deletions detector/checksum_compare.go
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
package detector

import (
"talisman/git_repo"
"talisman/gitrepo"
"talisman/utility"
)

type ChecksumCompare struct {
additions []git_repo.Addition
additions []gitrepo.Addition
ignoreConfig TalismanRCIgnore
}

//NewChecksumCompare returns new instance of the ChecksumCompare
func NewChecksumCompare(gitAdditions []git_repo.Addition, talismanRCIgnoreConfig TalismanRCIgnore) *ChecksumCompare {
func NewChecksumCompare(gitAdditions []gitrepo.Addition, talismanRCIgnoreConfig TalismanRCIgnore) *ChecksumCompare {
cc := ChecksumCompare{additions: gitAdditions, ignoreConfig: talismanRCIgnoreConfig}
return &cc
}

func (cc *ChecksumCompare) IsScanNotRequired(addition git_repo.Addition) bool {
func (cc *ChecksumCompare) IsScanNotRequired(addition gitrepo.Addition) bool {
currentCollectiveChecksum := utility.CollectiveSHA256Hash([]string{string(addition.Path)})
declaredCheckSum := ""
for _, ignore := range cc.ignoreConfig.FileIgnoreConfig {
Expand Down Expand Up @@ -45,7 +45,7 @@ func (cc *ChecksumCompare) FilterIgnoresBasedOnChecksums() TalismanRCIgnore {
return rc
}

func (cc *ChecksumCompare) calculateCollectiveChecksumForPattern(fileNamePattern string, additions []git_repo.Addition) string {
func (cc *ChecksumCompare) calculateCollectiveChecksumForPattern(fileNamePattern string, additions []gitrepo.Addition) string {
var patternpaths []string
currentCollectiveChecksum := ""
for _, addition := range additions {
Expand Down
26 changes: 13 additions & 13 deletions detector/checksum_compare_test.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package detector

import (
"talisman/git_repo"
"talisman/gitrepo"
"talisman/utility"
"testing"

Expand Down Expand Up @@ -37,42 +37,42 @@ fileignoreconfig:

func TestShouldConsiderBothFilesForDetection(t *testing.T) {
rc := NewTalismanRCIgnore([]byte(talismanRCWithInCorrectChecksum))
addition1 := git_repo.NewAddition("some_file.pem", make([]byte, 0))
addition2 := git_repo.NewAddition("test/some_file.pem", make([]byte, 0))
cc := NewChecksumCompare([]git_repo.Addition{addition1, addition2}, rc)
addition1 := gitrepo.NewAddition("some_file.pem", make([]byte, 0))
addition2 := gitrepo.NewAddition("test/some_file.pem", make([]byte, 0))
cc := NewChecksumCompare([]gitrepo.Addition{addition1, addition2}, rc)

filteredRC := cc.FilterIgnoresBasedOnChecksums()

assert.Len(t, filteredRC.FileIgnoreConfig, 0, "Should return empty ignores and detectors should scan both files")
}

func TestShouldNotConsiderBothFilesForDetection(t *testing.T) {
addition1 := git_repo.NewAddition("some_file.pem", make([]byte, 0))
addition2 := git_repo.NewAddition("test/some_file.pem", make([]byte, 0))
addition1 := gitrepo.NewAddition("some_file.pem", make([]byte, 0))
addition2 := gitrepo.NewAddition("test/some_file.pem", make([]byte, 0))
rc := NewTalismanRCIgnore([]byte(talismanRCWithCorrectChecksum))
cc := NewChecksumCompare([]git_repo.Addition{addition1, addition2}, rc)
cc := NewChecksumCompare([]gitrepo.Addition{addition1, addition2}, rc)

filteredRC := cc.FilterIgnoresBasedOnChecksums()

assert.Len(t, filteredRC.FileIgnoreConfig, 1, "Should return 1 ignore/s (some_file.pem) which detectors should honor")
}

func TestShouldConsiderOneFileForDetection(t *testing.T) {
addition1 := git_repo.NewAddition("some_file.pem", make([]byte, 0))
addition2 := git_repo.NewAddition("test/some1_file.pem", make([]byte, 0))
addition1 := gitrepo.NewAddition("some_file.pem", make([]byte, 0))
addition2 := gitrepo.NewAddition("test/some1_file.pem", make([]byte, 0))
rc := NewTalismanRCIgnore([]byte(talismanRCWithOneCorrectChecksum))
cc := NewChecksumCompare([]git_repo.Addition{addition1, addition2}, rc)
cc := NewChecksumCompare([]gitrepo.Addition{addition1, addition2}, rc)

filteredRC := cc.FilterIgnoresBasedOnChecksums()

assert.Len(t, filteredRC.FileIgnoreConfig, 1, "Should return 1 ignore and detectors should scan that file")
}

func TestShouldConsiderBothFilesForDetectionIfTalismanRCIsEmpty(t *testing.T) {
addition1 := git_repo.NewAddition("some_file.pem", make([]byte, 0))
addition2 := git_repo.NewAddition("test/some_file.pem", make([]byte, 0))
addition1 := gitrepo.NewAddition("some_file.pem", make([]byte, 0))
addition2 := gitrepo.NewAddition("test/some_file.pem", make([]byte, 0))
rc := NewTalismanRCIgnore([]byte{})
cc := NewChecksumCompare([]git_repo.Addition{addition1, addition2}, rc)
cc := NewChecksumCompare([]gitrepo.Addition{addition1, addition2}, rc)

filteredRC := cc.FilterIgnoresBasedOnChecksums()

Expand Down
24 changes: 12 additions & 12 deletions detector/detection_results.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"fmt"
"os"
"strings"
"talisman/git_repo"
"talisman/gitrepo"
"talisman/utility"

"github.com/olekukonko/tablewriter"
Expand All @@ -18,7 +18,7 @@ type Details struct {
}

type ResultsDetails struct {
Filename git_repo.FilePath `json:"filename"`
Filename gitrepo.FilePath `json:"filename"`
FailureList []Details `json:"failure_list"`
WarningList []Details `json:"warning_list"`
IgnoreList []Details `json:"ignore_list"`
Expand Down Expand Up @@ -88,7 +88,7 @@ func getDetaisByCategoryAndMessage(detailsList []Details, category string, failu
return nil
}

func (r *DetectionResults) getResultDetailsForFilePath(fileName git_repo.FilePath) *ResultsDetails {
func (r *DetectionResults) getResultDetailsForFilePath(fileName gitrepo.FilePath) *ResultsDetails {
for _, resultDetail := range r.Results {
if resultDetail.Filename == fileName {
return &resultDetail
Expand All @@ -109,7 +109,7 @@ func NewDetectionResults() *DetectionResults {
//Fail is used to mark the supplied FilePath as failing a detection for a supplied reason.
//Detectors are encouraged to provide context sensitive messages so that fixing the errors is made simple for the end user
//Fail may be called multiple times for each FilePath and the calls accumulate the provided reasons
func (r *DetectionResults) Fail(filePath git_repo.FilePath, category string, message string, commits []string) {
func (r *DetectionResults) Fail(filePath gitrepo.FilePath, category string, message string, commits []string) {
isFilePresentInResults := false
for resultIndex := 0; resultIndex < len(r.Results); resultIndex++ {
if r.Results[resultIndex].Filename == filePath {
Expand All @@ -135,7 +135,7 @@ func (r *DetectionResults) Fail(filePath git_repo.FilePath, category string, mes
r.updateResultsSummary(category)
}

func (r *DetectionResults) Warn(filePath git_repo.FilePath, category string, message string, commits []string) {
func (r *DetectionResults) Warn(filePath gitrepo.FilePath, category string, message string, commits []string) {
isFilePresentInResults := false
for resultIndex := 0; resultIndex < len(r.Results); resultIndex++ {
if r.Results[resultIndex].Filename == filePath {
Expand Down Expand Up @@ -163,7 +163,7 @@ func (r *DetectionResults) Warn(filePath git_repo.FilePath, category string, mes

//Ignore is used to mark the supplied FilePath as being ignored.
//The most common reason for this is that the FilePath is Denied by the Ignores supplied to the Detector, however, Detectors may use more sophisticated reasons to ignore files.
func (r *DetectionResults) Ignore(filePath git_repo.FilePath, category string) {
func (r *DetectionResults) Ignore(filePath gitrepo.FilePath, category string) {

isFilePresentInResults := false
for resultIndex := 0; resultIndex < len(r.Results); resultIndex++ {
Expand Down Expand Up @@ -192,7 +192,7 @@ func (r *DetectionResults) Ignore(filePath git_repo.FilePath, category string) {
}


func createNewResultForFile(category string, message string, commits []string, filePath git_repo.FilePath) ResultsDetails {
func createNewResultForFile(category string, message string, commits []string, filePath gitrepo.FilePath) ResultsDetails {
failureDetails := Details{category, message, commits}
resultDetails := ResultsDetails{filePath, make([]Details, 0), make([]Details, 0), make([]Details, 0)}
resultDetails.FailureList = append(resultDetails.FailureList, failureDetails)
Expand Down Expand Up @@ -234,7 +234,7 @@ func (r *DetectionResults) Successful() bool {
}

//GetFailures returns the various reasons that a given FilePath was marked as failing by all the detectors in the current run
func (r *DetectionResults) GetFailures(fileName git_repo.FilePath) []Details {
func (r *DetectionResults) GetFailures(fileName gitrepo.FilePath) []Details {
results := r.getResultDetailsForFilePath(fileName)
if results == nil {
return []Details{}
Expand Down Expand Up @@ -316,7 +316,7 @@ func (r *DetectionResults) suggestTalismanRC(filePaths []string) string {
}

//ReportFileFailures adds a string to table documenting the various failures detected on the supplied FilePath by all detectors in the current run
func (r *DetectionResults) ReportFileFailures(filePath git_repo.FilePath) [][]string {
func (r *DetectionResults) ReportFileFailures(filePath gitrepo.FilePath) [][]string {
failureList := r.getResultDetailsForFilePath(filePath).FailureList
var data [][]string
if len(failureList) > 0 {
Expand All @@ -330,7 +330,7 @@ func (r *DetectionResults) ReportFileFailures(filePath git_repo.FilePath) [][]st
return data
}

func (r *DetectionResults) ReportFileWarnings(filePath git_repo.FilePath) [][]string {
func (r *DetectionResults) ReportFileWarnings(filePath gitrepo.FilePath) [][]string {
warningList := r.getResultDetailsForFilePath(filePath).WarningList
var data [][]string
if len(warningList) > 0 {
Expand All @@ -344,8 +344,8 @@ func (r *DetectionResults) ReportFileWarnings(filePath git_repo.FilePath) [][]st
return data
}

func keys(aMap map[git_repo.FilePath][]string) []git_repo.FilePath {
var result []git_repo.FilePath
func keys(aMap map[gitrepo.FilePath][]string) []gitrepo.FilePath {
var result []gitrepo.FilePath
for filePath := range aMap {
result = append(result, filePath)
}
Expand Down
8 changes: 4 additions & 4 deletions detector/detector.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ package detector

import (
"os"
"talisman/git_repo"
"talisman/gitrepo"
)

//Detector represents a single kind of test to be performed against a set of Additions
//Detectors are expected to honor the ignores that are passed in and log them in the results
//Detectors are expected to signal any errors to the results
type Detector interface {
Test(additions []git_repo.Addition, ignoreConfig TalismanRCIgnore, result *DetectionResults)
Test(additions []gitrepo.Addition, ignoreConfig TalismanRCIgnore, result *DetectionResults)
}

//Chain represents a chain of Detectors.
Expand Down Expand Up @@ -42,9 +42,9 @@ func (dc *Chain) AddDetector(d Detector) *Chain {

//Test validates the additions against each detector in the chain.
//The results are passed in from detector to detector and thus collect all errors from all detectors
func (dc *Chain) Test(additions []git_repo.Addition, ignoreConfig TalismanRCIgnore, result *DetectionResults) {
func (dc *Chain) Test(additions []gitrepo.Addition, ignoreConfig TalismanRCIgnore, result *DetectionResults) {
wd, _ := os.Getwd()
repo := git_repo.RepoLocatedAt(wd)
repo := gitrepo.RepoLocatedAt(wd)
gitTrackedFilesAsAdditions := repo.TrackedFilesAsAdditions()
gitTrackedFilesAsAdditions = append(gitTrackedFilesAsAdditions, additions...)
for _, v := range dc.detectors {
Expand Down
8 changes: 4 additions & 4 deletions detector/detector_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package detector
import (
"testing"

"talisman/git_repo"
"talisman/gitrepo"

"github.com/stretchr/testify/assert"
)
Expand All @@ -27,11 +27,11 @@ func TestValidationChainWithFailingValidationAlwaysFails(t *testing.T) {

type FailingDetection struct{}

func (v FailingDetection) Test(additions []git_repo.Addition, ignoreConfig TalismanRCIgnore, result *DetectionResults) {
result.Fail("some_file", "filecontent","FAILED BY DESIGN", []string{})
func (v FailingDetection) Test(additions []gitrepo.Addition, ignoreConfig TalismanRCIgnore, result *DetectionResults) {
result.Fail("some_file", "filecontent", "FAILED BY DESIGN", []string{})
}

type PassingDetection struct{}

func (p PassingDetection) Test(additions []git_repo.Addition, ignoreConfig TalismanRCIgnore, result *DetectionResults) {
func (p PassingDetection) Test(additions []gitrepo.Addition, ignoreConfig TalismanRCIgnore, result *DetectionResults) {
}
12 changes: 6 additions & 6 deletions detector/filecontent_detector.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"regexp"
"strings"

"talisman/git_repo"
"talisman/gitrepo"

log "github.com/Sirupsen/logrus"
)
Expand All @@ -31,7 +31,7 @@ func (fc *FileContentDetector) AggressiveMode() *FileContentDetector {
return fc
}

func (fc *FileContentDetector) Test(additions []git_repo.Addition, ignoreConfig TalismanRCIgnore, result *DetectionResults) {
func (fc *FileContentDetector) Test(additions []gitrepo.Addition, ignoreConfig TalismanRCIgnore, result *DetectionResults) {
cc := NewChecksumCompare(additions, ignoreConfig)
for _, addition := range additions {
if ignoreConfig.Deny(addition, "filecontent") || cc.IsScanNotRequired(addition) {
Expand Down Expand Up @@ -60,7 +60,7 @@ func (fc *FileContentDetector) Test(additions []git_repo.Addition, ignoreConfig
}
}

func fillResults(results []string, addition git_repo.Addition, result *DetectionResults, info string, output string) {
func fillResults(results []string, addition gitrepo.Addition, result *DetectionResults, info string, output string) {
for _, res := range results {
if res != "" {
log.WithFields(log.Fields{
Expand All @@ -75,19 +75,19 @@ func fillResults(results []string, addition git_repo.Addition, result *Detection
}
}

func fillBase46DetectionResults(base64Results []string, addition git_repo.Addition, result *DetectionResults) {
func fillBase46DetectionResults(base64Results []string, addition gitrepo.Addition, result *DetectionResults) {
const info = "Failing file as it contains a base64 encoded text."
const output = "Expected file to not to contain base64 encoded texts such as: %s"
fillResults(base64Results, addition, result, info, output)
}

func fillCreditCardDetectionResults(creditCardResults []string, addition git_repo.Addition, result *DetectionResults) {
func fillCreditCardDetectionResults(creditCardResults []string, addition gitrepo.Addition, result *DetectionResults) {
const info = "Failing file as it contains a potential credit card number."
const output = "Expected file to not to contain credit card numbers such as: %s"
fillResults(creditCardResults, addition, result, info, output)
}

func fillHexDetectionResults(hexResults []string, addition git_repo.Addition, result *DetectionResults) {
func fillHexDetectionResults(hexResults []string, addition gitrepo.Addition, result *DetectionResults) {
const info = "Failing file as it contains a hex encoded text."
const output = "Expected file to not to contain hex encoded texts such as: %s"
fillResults(hexResults, addition, result, info, output)
Expand Down
Loading

0 comments on commit 201dd2c

Please sign in to comment.