1
0
mirror of https://github.com/securego/gosec.git synced 2025-11-23 22:15:04 +02:00

feat: add env var to override the Go version detection

This commit is contained in:
Fernandez Ludovic
2024-05-24 16:00:01 +02:00
committed by Cosmin Cojocar
parent 75dd9d61ff
commit 5f0084eb01
2 changed files with 12 additions and 9 deletions

View File

@@ -32,8 +32,8 @@ import (
"strings"
)
// noGoModVersion disables the parsing of go version from go module file present in the project
const noGoModVersion = "GOSECNOMODVERSION"
// envGoModVersion overrides the Go version detection.
const envGoModVersion = "GOSECGOVERSION"
// MatchCallByPackage ensures that the specified package is imported,
// adjusts the name for any aliases and ignores cases that are
@@ -501,13 +501,16 @@ func RootPath(root string) (string, error) {
// GoVersion returns parsed version of Go mod version and fallback to runtime version if not found.
func GoVersion() (int, int, int) {
_, ok := os.LookupEnv(noGoModVersion)
if !ok {
if goModVersion, err := goModVersion(); err == nil {
return parseGoVersion(goModVersion)
}
if env, ok := os.LookupEnv(envGoModVersion); ok {
return parseGoVersion(strings.TrimPrefix(env, "go"))
}
return parseGoVersion(strings.TrimPrefix(runtime.Version(), "go"))
goVersion, err := goModVersion()
if err != nil {
return parseGoVersion(strings.TrimPrefix(runtime.Version(), "go"))
}
return parseGoVersion(goVersion)
}
type goListOutput struct {