Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
9f3daff
feat: add IsHiddenFile and GetBaseName utility functions
StephenJarso Jun 21, 2026
ea81250
refactor: extract countBySeverity to shared utility in console reporter
StephenJarso Jun 21, 2026
377fd1c
test: add additional env detector tests for case insensitivity
StephenJarso Jun 21, 2026
897501b
test: add comprehensive config detector tests for all file types
StephenJarso Jun 22, 2026
2595e98
feat: add Size method to ScanCache for entry count
StephenJarso Jun 22, 2026
5895931
feat: add SetFile method to CSVReporter for dynamic output
StephenJarso Jun 22, 2026
57fb2c2
feat: add AddRule and RuleCount methods to CustomRuleDetector
StephenJarso Jun 22, 2026
8bfab39
feat: add ToJSON method to JSONReporter for programmatic access
StephenJarso Jun 22, 2026
de5cb5b
feat: expose IsDangerousFunction and IsCredentialPattern for testing
StephenJarso Jun 22, 2026
0baf2dc
feat: add ToSARIF method to SARIFReporter for programmatic access
StephenJarso Jun 22, 2026
40ace6c
feat: add ToAnnotations method to GitHubReporter for programmatic access
StephenJarso Jun 22, 2026
5ee1fdb
feat: add WorkerPool struct for parallel file processing
StephenJarso Jun 22, 2026
946157b
feat: add GetCache and GetDetectorCount methods to Scanner
StephenJarso Jun 22, 2026
a219f73
test: add Intercom token detection test
StephenJarso Jun 22, 2026
016d226
feat: add Format method to ConsoleReporter for programmatic access
StephenJarso Jun 22, 2026
805afff
feat: add count methods to Config for rule introspection
StephenJarso Jun 22, 2026
15f6e5a
feat: add level query methods to Logger for runtime checks
StephenJarso Jun 22, 2026
1404fa2
fix: remove duplicate Finding type and test from pkg/types
StephenJarso Jun 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
248 changes: 147 additions & 101 deletions coverage.out
Original file line number Diff line number Diff line change
Expand Up @@ -61,66 +61,74 @@ secure-push/cmd/secure-push/main.go:235.2,235.59 1 0
secure-push/cmd/secure-push/main.go:238.41,241.16 3 0
secure-push/cmd/secure-push/main.go:241.16,243.3 1 0
secure-push/cmd/secure-push/main.go:244.2,245.19 2 0
secure-push/internal/logger/logger.go:24.31,29.2 1 1
secure-push/internal/logger/logger.go:31.60,32.22 1 1
secure-push/internal/logger/logger.go:32.22,34.3 1 1
secure-push/internal/logger/logger.go:37.59,38.21 1 1
secure-push/internal/logger/logger.go:38.21,40.3 1 1
secure-push/internal/logger/logger.go:43.59,44.21 1 1
secure-push/internal/logger/logger.go:44.21,46.3 1 1
secure-push/internal/logger/logger.go:49.60,50.22 1 1
secure-push/internal/logger/logger.go:50.22,52.3 1 1
secure-push/internal/logger/logger.go:55.65,59.2 3 1
secure-push/internal/config/config.go:35.30,48.2 1 1
secure-push/internal/config/config.go:50.47,53.22 2 1
secure-push/internal/config/config.go:53.22,55.3 1 0
secure-push/internal/config/config.go:57.2,57.22 1 1
secure-push/internal/config/config.go:57.22,59.3 1 0
secure-push/internal/config/config.go:61.2,62.16 2 1
secure-push/internal/config/config.go:62.16,64.25 1 1
secure-push/internal/config/config.go:64.25,66.4 1 1
secure-push/internal/config/config.go:67.3,67.64 1 0
secure-push/internal/config/config.go:70.2,70.50 1 1
secure-push/internal/config/config.go:70.50,72.3 1 0
secure-push/internal/config/config.go:74.2,74.17 1 1
secure-push/internal/config/config.go:77.30,84.34 2 1
secure-push/internal/config/config.go:84.34,85.39 1 1
secure-push/internal/config/config.go:85.39,87.4 1 1
secure-push/internal/config/config.go:90.2,90.11 1 1
secure-push/internal/config/config.go:93.49,95.38 1 1
secure-push/internal/config/config.go:95.38,96.31 1 1
secure-push/internal/config/config.go:96.31,98.4 1 1
secure-push/internal/config/config.go:102.2,102.43 1 1
secure-push/internal/config/config.go:102.43,103.34 1 1
secure-push/internal/config/config.go:103.34,105.4 1 1
secure-push/internal/config/config.go:108.2,108.14 1 1
secure-push/internal/config/config.go:112.49,115.27 2 1
secure-push/internal/config/config.go:115.27,117.3 1 1
secure-push/internal/config/config.go:120.2,121.27 2 1
secure-push/internal/config/config.go:121.27,123.3 1 0
secure-push/internal/config/config.go:126.2,126.43 1 1
secure-push/internal/config/config.go:126.43,128.3 1 1
secure-push/internal/config/config.go:131.2,131.44 1 1
secure-push/internal/config/config.go:131.44,133.3 1 0
secure-push/internal/config/config.go:135.2,135.14 1 1
secure-push/internal/config/config.go:138.70,139.29 1 1
secure-push/internal/config/config.go:140.13,141.14 1 1
secure-push/internal/config/config.go:142.16,143.35 1 1
secure-push/internal/config/config.go:144.14,145.70 1 1
secure-push/internal/config/config.go:146.18,147.40 1 1
secure-push/internal/config/config.go:148.10,149.14 1 1
secure-push/internal/config/config.go:153.62,155.40 1 1
secure-push/internal/config/config.go:155.40,156.47 1 0
secure-push/internal/config/config.go:156.47,158.4 1 0
secure-push/internal/config/config.go:161.2,161.32 1 1
secure-push/internal/config/config.go:161.32,162.45 1 1
secure-push/internal/config/config.go:162.45,163.48 1 1
secure-push/internal/config/config.go:163.48,165.5 1 1
secure-push/internal/config/config.go:167.3,167.15 1 1
secure-push/internal/config/config.go:170.2,170.46 1 1
secure-push/internal/config/config.go:170.46,171.48 1 1
secure-push/internal/config/config.go:171.48,173.4 1 1
secure-push/internal/config/config.go:176.2,176.13 1 1
secure-push/internal/config/config.go:51.35,54.37 1 1
secure-push/internal/config/config.go:54.37,56.3 1 1
secure-push/internal/config/config.go:57.2,57.24 1 1
secure-push/internal/config/config.go:57.24,59.3 1 1
secure-push/internal/config/config.go:60.2,60.12 1 1
secure-push/internal/config/config.go:63.47,66.22 2 1
secure-push/internal/config/config.go:66.22,68.3 1 0
secure-push/internal/config/config.go:70.2,70.22 1 1
secure-push/internal/config/config.go:70.22,72.3 1 0
secure-push/internal/config/config.go:74.2,75.16 2 1
secure-push/internal/config/config.go:75.16,77.25 1 1
secure-push/internal/config/config.go:77.25,79.4 1 1
secure-push/internal/config/config.go:80.3,80.64 1 0
secure-push/internal/config/config.go:83.2,83.50 1 1
secure-push/internal/config/config.go:83.50,85.3 1 0
secure-push/internal/config/config.go:87.2,87.39 1 1
secure-push/internal/config/config.go:87.39,89.3 1 0
secure-push/internal/config/config.go:91.2,91.17 1 1
secure-push/internal/config/config.go:94.30,101.34 2 1
secure-push/internal/config/config.go:101.34,102.39 1 1
secure-push/internal/config/config.go:102.39,104.4 1 1
secure-push/internal/config/config.go:107.2,107.11 1 1
secure-push/internal/config/config.go:110.49,112.38 1 1
secure-push/internal/config/config.go:112.38,113.31 1 1
secure-push/internal/config/config.go:113.31,115.4 1 1
secure-push/internal/config/config.go:119.2,119.43 1 1
secure-push/internal/config/config.go:119.43,120.34 1 1
secure-push/internal/config/config.go:120.34,122.4 1 1
secure-push/internal/config/config.go:125.2,125.14 1 1
secure-push/internal/config/config.go:129.49,132.27 2 1
secure-push/internal/config/config.go:132.27,134.3 1 1
secure-push/internal/config/config.go:137.2,138.27 2 1
secure-push/internal/config/config.go:138.27,140.3 1 0
secure-push/internal/config/config.go:143.2,143.43 1 1
secure-push/internal/config/config.go:143.43,145.3 1 1
secure-push/internal/config/config.go:148.2,148.44 1 1
secure-push/internal/config/config.go:148.44,150.3 1 0
secure-push/internal/config/config.go:152.2,152.14 1 1
secure-push/internal/config/config.go:155.70,156.29 1 1
secure-push/internal/config/config.go:157.13,158.14 1 1
secure-push/internal/config/config.go:159.16,160.35 1 1
secure-push/internal/config/config.go:161.14,162.70 1 1
secure-push/internal/config/config.go:163.18,164.40 1 1
secure-push/internal/config/config.go:165.10,166.14 1 1
secure-push/internal/config/config.go:170.62,172.40 1 1
secure-push/internal/config/config.go:172.40,173.47 1 0
secure-push/internal/config/config.go:173.47,175.4 1 0
secure-push/internal/config/config.go:178.2,178.32 1 1
secure-push/internal/config/config.go:178.32,179.45 1 1
secure-push/internal/config/config.go:179.45,180.48 1 1
secure-push/internal/config/config.go:180.48,182.5 1 1
secure-push/internal/config/config.go:184.3,184.15 1 1
secure-push/internal/config/config.go:187.2,187.46 1 1
secure-push/internal/config/config.go:187.46,188.48 1 1
secure-push/internal/config/config.go:188.48,190.4 1 1
secure-push/internal/config/config.go:193.2,193.13 1 1
secure-push/internal/logger/logger.go:24.31,29.2 1 1
secure-push/internal/logger/logger.go:32.41,34.2 1 0
secure-push/internal/logger/logger.go:36.60,37.22 1 1
secure-push/internal/logger/logger.go:37.22,39.3 1 1
secure-push/internal/logger/logger.go:42.59,43.21 1 1
secure-push/internal/logger/logger.go:43.21,45.3 1 1
secure-push/internal/logger/logger.go:48.59,49.21 1 1
secure-push/internal/logger/logger.go:49.21,51.3 1 1
secure-push/internal/logger/logger.go:54.60,55.22 1 1
secure-push/internal/logger/logger.go:55.22,57.3 1 1
secure-push/internal/logger/logger.go:60.65,64.2 3 1
secure-push/internal/detectors/ast.go:13.37,15.2 1 1
secure-push/internal/detectors/ast.go:17.43,19.2 1 1
secure-push/internal/detectors/ast.go:22.82,26.41 2 1
Expand Down Expand Up @@ -236,6 +244,8 @@ secure-push/internal/detectors/custom.go:97.14,98.14 1 1
secure-push/internal/detectors/custom.go:99.16,100.16 1 0
secure-push/internal/detectors/custom.go:101.13,102.13 1 0
secure-push/internal/detectors/custom.go:103.10,104.12 1 0
secure-push/internal/detectors/detector.go:31.35,33.2 1 1
secure-push/internal/detectors/detector.go:36.53,44.2 2 1
secure-push/internal/detectors/env.go:10.37,12.2 1 1
secure-push/internal/detectors/env.go:14.43,16.2 1 1
secure-push/internal/detectors/env.go:18.82,23.59 3 1
Expand Down Expand Up @@ -297,14 +307,15 @@ secure-push/internal/reporters/console.go:62.29,63.29 1 1
secure-push/internal/reporters/console.go:63.29,65.4 1 1
secure-push/internal/reporters/console.go:67.2,67.14 1 1
secure-push/internal/reporters/csv.go:17.47,19.2 1 1
secure-push/internal/reporters/csv.go:22.66,24.16 2 1
secure-push/internal/reporters/csv.go:24.16,26.3 1 0
secure-push/internal/reporters/csv.go:27.2,33.89 4 1
secure-push/internal/reporters/csv.go:33.89,35.3 1 0
secure-push/internal/reporters/csv.go:38.2,38.35 1 1
secure-push/internal/reporters/csv.go:38.35,45.18 1 1
secure-push/internal/reporters/csv.go:45.18,47.4 1 0
secure-push/internal/reporters/csv.go:50.2,50.12 1 1
secure-push/internal/reporters/csv.go:22.44,24.2 1 1
secure-push/internal/reporters/csv.go:27.66,29.16 2 1
secure-push/internal/reporters/csv.go:29.16,31.3 1 0
secure-push/internal/reporters/csv.go:32.2,38.89 4 1
secure-push/internal/reporters/csv.go:38.89,40.3 1 0
secure-push/internal/reporters/csv.go:43.2,43.35 1 1
secure-push/internal/reporters/csv.go:43.35,50.18 1 1
secure-push/internal/reporters/csv.go:50.18,52.4 1 0
secure-push/internal/reporters/csv.go:55.2,55.12 1 1
secure-push/internal/reporters/github.go:14.69,15.24 1 1
secure-push/internal/reporters/github.go:15.24,18.3 2 1
secure-push/internal/reporters/github.go:20.2,20.29 1 1
Expand Down Expand Up @@ -352,6 +363,38 @@ secure-push/internal/reporters/summary.go:75.31,77.3 1 1
secure-push/internal/reporters/summary.go:79.2,79.23 1 1
secure-push/internal/reporters/summary.go:79.23,81.3 1 1
secure-push/internal/reporters/summary.go:83.2,83.12 1 0
secure-push/pkg/utils/entropy.go:9.44,10.20 1 1
secure-push/pkg/utils/entropy.go:10.20,12.3 1 1
secure-push/pkg/utils/entropy.go:15.2,16.25 2 1
secure-push/pkg/utils/entropy.go:16.25,18.3 1 1
secure-push/pkg/utils/entropy.go:21.2,23.29 3 1
secure-push/pkg/utils/entropy.go:23.29,24.16 1 1
secure-push/pkg/utils/entropy.go:24.16,27.4 2 1
secure-push/pkg/utils/entropy.go:30.2,30.16 1 1
secure-push/pkg/utils/entropy.go:35.57,37.2 1 1
secure-push/pkg/utils/entropy.go:40.37,41.17 1 1
secure-push/pkg/utils/entropy.go:41.17,43.3 1 1
secure-push/pkg/utils/entropy.go:46.2,47.22 2 1
secure-push/pkg/utils/entropy.go:47.22,48.36 1 1
secure-push/pkg/utils/entropy.go:48.36,50.4 1 0
secure-push/pkg/utils/entropy.go:54.2,54.19 1 1
secure-push/pkg/utils/entropy.go:54.19,56.3 1 1
secure-push/pkg/utils/entropy.go:58.2,58.14 1 0
secure-push/pkg/utils/entropy.go:61.42,62.22 1 1
secure-push/pkg/utils/entropy.go:62.22,63.13 1 1
secure-push/pkg/utils/entropy.go:63.13,65.4 1 1
secure-push/pkg/utils/entropy.go:67.2,67.14 1 0
secure-push/pkg/utils/regex.go:8.59,10.2 1 1
secure-push/pkg/utils/regex.go:13.51,15.16 2 1
secure-push/pkg/utils/regex.go:15.16,17.3 1 1
secure-push/pkg/utils/regex.go:18.2,18.31 1 1
secure-push/pkg/utils/regex.go:22.57,24.16 2 1
secure-push/pkg/utils/regex.go:24.16,26.3 1 0
secure-push/pkg/utils/regex.go:27.2,27.37 1 1
secure-push/pkg/utils/regex.go:31.67,33.16 2 1
secure-push/pkg/utils/regex.go:33.16,35.3 1 0
secure-push/pkg/utils/regex.go:36.2,36.45 1 1
secure-push/pkg/utils/regex.go:40.49,42.2 1 1
secure-push/internal/scanner/cache.go:28.61,34.2 1 1
secure-push/internal/scanner/cache.go:37.55,38.16 1 1
secure-push/internal/scanner/cache.go:38.16,40.3 1 1
Expand All @@ -372,14 +415,15 @@ secure-push/internal/scanner/cache.go:89.16,91.3 1 0
secure-push/internal/scanner/cache.go:93.2,94.41 2 1
secure-push/internal/scanner/cache.go:98.29,102.2 3 1
secure-push/internal/scanner/cache.go:105.57,111.2 4 1
secure-push/internal/scanner/cache.go:114.34,115.36 1 0
secure-push/internal/scanner/cache.go:115.36,117.3 1 0
secure-push/internal/scanner/cache.go:119.2,119.55 1 0
secure-push/internal/scanner/cache.go:119.55,121.3 1 0
secure-push/internal/scanner/cache.go:125.2,126.12 2 0
secure-push/internal/scanner/cache.go:130.34,131.36 1 0
secure-push/internal/scanner/cache.go:131.36,133.3 1 0
secure-push/internal/scanner/cache.go:137.2,138.12 2 0
secure-push/internal/scanner/cache.go:114.32,118.2 3 1
secure-push/internal/scanner/cache.go:121.34,122.36 1 0
secure-push/internal/scanner/cache.go:122.36,124.3 1 0
secure-push/internal/scanner/cache.go:126.2,126.55 1 0
secure-push/internal/scanner/cache.go:126.55,128.3 1 0
secure-push/internal/scanner/cache.go:132.2,133.12 2 0
secure-push/internal/scanner/cache.go:137.34,138.36 1 0
secure-push/internal/scanner/cache.go:138.36,140.3 1 0
secure-push/internal/scanner/cache.go:144.2,145.12 2 0
secure-push/internal/scanner/file.go:13.26,16.3 2 1
secure-push/internal/scanner/file.go:19.46,21.16 2 1
secure-push/internal/scanner/file.go:21.16,23.3 1 1
Expand Down Expand Up @@ -457,29 +501,31 @@ secure-push/internal/scanner/scanner.go:171.16,173.3 1 0
secure-push/internal/scanner/scanner.go:174.2,174.14 1 1
secure-push/internal/scanner/scanner.go:174.14,176.3 1 1
secure-push/internal/scanner/scanner.go:178.2,178.25 1 1
secure-push/internal/scanner/walk.go:10.82,11.86 1 1
secure-push/internal/scanner/walk.go:11.86,12.17 1 1
secure-push/internal/scanner/walk.go:12.17,14.4 1 0
secure-push/internal/scanner/walk.go:16.3,16.19 1 1
secure-push/internal/scanner/walk.go:16.19,17.89 1 1
secure-push/internal/scanner/walk.go:17.89,19.5 1 1
secure-push/internal/scanner/walk.go:20.4,20.14 1 1
secure-push/internal/scanner/walk.go:23.3,23.31 1 1
secure-push/internal/scanner/walk.go:27.46,29.16 2 1
secure-push/internal/scanner/walk.go:29.16,31.3 1 0
secure-push/internal/scanner/walk.go:32.2,32.25 1 1
secure-push/internal/scanner/walk.go:36.52,38.2 1 1
secure-push/internal/scanner/walk.go:40.35,43.2 2 1
secure-push/internal/scanner/walk.go:45.30,47.16 2 1
secure-push/internal/scanner/walk.go:47.16,49.3 1 1
secure-push/internal/scanner/walk.go:50.2,50.21 1 1
secure-push/internal/scanner/walk.go:53.57,55.16 2 1
secure-push/internal/scanner/walk.go:55.16,57.3 1 0
secure-push/internal/scanner/walk.go:58.2,58.35 1 1
secure-push/internal/scanner/walk.go:61.38,62.16 1 1
secure-push/internal/scanner/walk.go:62.16,64.3 1 1
secure-push/internal/scanner/walk.go:66.2,67.16 2 1
secure-push/internal/scanner/walk.go:67.16,69.3 1 1
secure-push/internal/scanner/walk.go:71.2,71.19 1 1
secure-push/internal/scanner/walk.go:71.19,73.3 1 1
secure-push/internal/scanner/walk.go:75.2,75.12 1 1
secure-push/internal/scanner/walk.go:11.82,12.86 1 1
secure-push/internal/scanner/walk.go:12.86,13.17 1 1
secure-push/internal/scanner/walk.go:13.17,15.4 1 0
secure-push/internal/scanner/walk.go:17.3,17.19 1 1
secure-push/internal/scanner/walk.go:17.19,18.89 1 1
secure-push/internal/scanner/walk.go:18.89,20.5 1 1
secure-push/internal/scanner/walk.go:21.4,21.14 1 1
secure-push/internal/scanner/walk.go:24.3,24.31 1 1
secure-push/internal/scanner/walk.go:29.46,31.16 2 1
secure-push/internal/scanner/walk.go:31.16,33.3 1 0
secure-push/internal/scanner/walk.go:34.2,34.25 1 1
secure-push/internal/scanner/walk.go:38.52,40.2 1 1
secure-push/internal/scanner/walk.go:43.35,46.2 2 1
secure-push/internal/scanner/walk.go:49.30,51.16 2 1
secure-push/internal/scanner/walk.go:51.16,53.3 1 1
secure-push/internal/scanner/walk.go:54.2,54.21 1 1
secure-push/internal/scanner/walk.go:58.57,60.16 2 1
secure-push/internal/scanner/walk.go:60.16,62.3 1 0
secure-push/internal/scanner/walk.go:63.2,63.35 1 1
secure-push/internal/scanner/walk.go:67.38,68.16 1 1
secure-push/internal/scanner/walk.go:68.16,70.3 1 1
secure-push/internal/scanner/walk.go:72.2,73.16 2 1
secure-push/internal/scanner/walk.go:73.16,75.3 1 1
secure-push/internal/scanner/walk.go:77.2,77.19 1 1
secure-push/internal/scanner/walk.go:77.19,79.3 1 1
secure-push/internal/scanner/walk.go:81.2,81.12 1 1
secure-push/internal/scanner/walk.go:85.37,88.2 2 1
secure-push/internal/scanner/walk.go:91.38,93.2 1 1
20 changes: 20 additions & 0 deletions internal/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"path/filepath"
"strings"

"gopkg.in/yaml.v3"

Check failure on line 9 in internal/config/config.go

View workflow job for this annotation

GitHub Actions / test (1.21)

import 'gopkg.in/yaml.v3' is not allowed from list 'Main' (depguard)

Check failure on line 9 in internal/config/config.go

View workflow job for this annotation

GitHub Actions / test (1.21)

import 'gopkg.in/yaml.v3' is not allowed from list 'Main' (depguard)

Check failure on line 9 in internal/config/config.go

View workflow job for this annotation

GitHub Actions / test (1.22)

import 'gopkg.in/yaml.v3' is not allowed from list 'Main' (depguard)

"secure-push/internal/detectors"

Expand Down Expand Up @@ -60,6 +60,26 @@
return nil
}

// CustomRuleCount returns the number of custom rules
func (c *Config) CustomRuleCount() int {
return len(c.CustomRules)
}

// IgnoreRuleCount returns the number of ignore rules
func (c *Config) IgnoreRuleCount() int {
return len(c.IgnoreRules)
}

// IgnorePathCount returns the number of ignore paths
func (c *Config) IgnorePathCount() int {
return len(c.IgnorePaths)
}

// AllowlistCount returns the number of allowlist entries
func (c *Config) AllowlistCount() int {
return len(c.Allowlist)
}

func Load(configPath string) (*Config, error) {
cfg := DefaultConfig()

Expand Down
48 changes: 48 additions & 0 deletions internal/config/config_additional_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package config

import (
"testing"
)

func TestConfig_CustomRuleCount(t *testing.T) {
cfg := &Config{
CustomRules: []CustomRule{
{Path: "test1.go", Severity: "high"},
{Path: "test2.go", Severity: "medium"},
},
}

if cfg.CustomRuleCount() != 2 {
t.Errorf("CustomRuleCount() = %d, want 2", cfg.CustomRuleCount())
}
}

func TestConfig_IgnoreRuleCount(t *testing.T) {
cfg := &Config{
IgnoreRules: []string{"ENV_FILE", "CONFIG_FILE"},
}

if cfg.IgnoreRuleCount() != 2 {
t.Errorf("IgnoreRuleCount() = %d, want 2", cfg.IgnoreRuleCount())
}
}

func TestConfig_IgnorePathCount(t *testing.T) {
cfg := &Config{
IgnorePaths: []string{"*.test.go", "vendor/**"},
}

if cfg.IgnorePathCount() != 2 {
t.Errorf("IgnorePathCount() = %d, want 2", cfg.IgnorePathCount())
}
}

func TestConfig_AllowlistCount(t *testing.T) {
cfg := &Config{
Allowlist: []string{"important.test.go", "config.go"},
}

if cfg.AllowlistCount() != 2 {
t.Errorf("AllowlistCount() = %d, want 2", cfg.AllowlistCount())
}
}
1 change: 1 addition & 0 deletions internal/config/config_validation_test.go
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

package config

import (
Expand Down
13 changes: 13 additions & 0 deletions internal/detectors/ast.go
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,9 @@ func isDangerousFunction(name string) bool {
"getenv", "setenv",
"httpget", "httppost",
"sqlopen", "dbquery",
"eval", "evalstring",
"compile", "mustcompile",
"ioutil", "osopen",
}
for _, d := range dangerous {
if strings.Contains(name, d) {
Expand All @@ -106,3 +109,13 @@ func isCredentialPattern(value string) bool {
}
return false
}

// IsDangerousFunction exposes the dangerous function check for testing
func IsDangerousFunction(name string) bool {
return isDangerousFunction(name)
}

// IsCredentialPattern exposes the credential pattern check for testing
func IsCredentialPattern(value string) bool {
return isCredentialPattern(value)
}
Loading
Loading