Просмотр исходного кода

check whiteListFiles for root commit & GitHub PRs

add missing checks against `whiteListFiles` regexes for files in the
root/initial commit and in GitHub PRs (in `auditGithubPR` function)
Milo Minderbinder 7 лет назад
Родитель
Сommit
bb9c459a1a
2 измененных файлов с 19 добавлено и 0 удалено
  1. 11 0
      github.go
  2. 8 0
      main.go

+ 11 - 0
github.go

@@ -51,9 +51,20 @@ func auditGithubPR() ([]Leak, error) {
 			}
 			files := commit.Files
 			for _, f := range files {
+				skipFile := false
 				if f.Patch == nil || f.Filename == nil {
 					continue
 				}
+				for _, re := range whiteListFiles {
+					if re.FindString(f.GetFilename()) != "" {
+						log.Infof("skipping whitelisted file (matched regex '%s'): %s", re.String(), f.GetFilename())
+						skipFile = true
+						break
+					}
+				}
+				if skipFile {
+					continue
+				}
 
 				diff := gitDiff{
 					sha:          commit.GetSHA(),

+ 8 - 0
main.go

@@ -509,6 +509,12 @@ func auditGitReference(repo *RepoDescriptor, ref *plumbing.Reference) []Leak {
 				if bin || err != nil {
 					return nil
 				}
+				for _, re := range whiteListFiles {
+					if re.FindString(f.Name) != "" {
+						log.Infof("skipping whitelisted file (matched regex '%s'): %s", re.String(), f.Name)
+						return nil
+					}
+				}
 				content, err := f.Contents()
 				if err != nil {
 					return nil
@@ -578,7 +584,9 @@ func auditGitReference(repo *RepoDescriptor, ref *plumbing.Reference) []Leak {
 					}
 					for _, re := range whiteListFiles {
 						if re.FindString(filePath) != "" {
+							log.Infof("skipping whitelisted file (matched regex '%s'): %s", re.String(), filePath)
 							skipFile = true
+							break
 						}
 					}
 					if skipFile {