diff options
Diffstat (limited to 'modules/setting/setting.go')
-rw-r--r-- | modules/setting/setting.go | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/modules/setting/setting.go b/modules/setting/setting.go index ea0fa73dd0..f7da6baac4 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -34,6 +34,7 @@ import ( _ "github.com/go-macaron/session/redis" // redis plugin for store session "github.com/go-xorm/core" "github.com/kballard/go-shellquote" + "github.com/mcuadros/go-version" "gopkg.in/ini.v1" "strk.kbt.io/projects/go/libravatar" ) @@ -929,23 +930,7 @@ func NewContext() { log.Fatal(4, "Error retrieving git version: %v", err) } - splitVersion := strings.SplitN(binVersion, ".", 4) - - majorVersion, err := strconv.ParseUint(splitVersion[0], 10, 64) - if err != nil { - log.Fatal(4, "Error parsing git major version: %v", err) - } - minorVersion, err := strconv.ParseUint(splitVersion[1], 10, 64) - if err != nil { - log.Fatal(4, "Error parsing git minor version: %v", err) - } - revisionVersion, err := strconv.ParseUint(splitVersion[2], 10, 64) - if err != nil { - log.Fatal(4, "Error parsing git revision version: %v", err) - } - - if !((majorVersion > 2) || (majorVersion == 2 && minorVersion > 1) || - (majorVersion == 2 && minorVersion == 1 && revisionVersion >= 2)) { + if !version.Compare(binVersion, "2.1.2", ">=") { LFS.StartServer = false log.Error(4, "LFS server support needs at least Git v2.1.2") @@ -1206,6 +1191,16 @@ func NewContext() { sec = Cfg.Section("U2F") U2F.TrustedFacets, _ = shellquote.Split(sec.Key("TRUSTED_FACETS").MustString(strings.TrimRight(AppURL, "/"))) U2F.AppID = sec.Key("APP_ID").MustString(strings.TrimRight(AppURL, "/")) + + binVersion, err := git.BinVersion() + if err != nil { + log.Fatal(4, "Error retrieving git version: %v", err) + } + + if version.Compare(binVersion, "2.9", ">=") { + // Explicitly disable credential helper, otherwise Git credentials might leak + git.GlobalCommandArgs = append(git.GlobalCommandArgs, "-c", "credential.helper=") + } } // Service settings |