diff --git a/pkg/settings/exe/cmd_builder.go b/pkg/settings/exe/cmd_builder.go index 9fd1ecb5..1de6909f 100644 --- a/pkg/settings/exe/cmd_builder.go +++ b/pkg/settings/exe/cmd_builder.go @@ -26,6 +26,9 @@ var gitDenyList = mapset.NewThreadUnsafeSet( "GIT_WORK_TREE", "GIT_DIR", ) +var gitConfigOverrides = map[string]string{ + "clone.defaultRemoteName": "origin", +} type GitCmdBuilder interface { Runner @@ -109,7 +112,20 @@ func gitFilteredEnv() []string { } env = append(env, "GIT_TERMINAL_PROMPT=0") - env = append(env, "GIT_CONFIG_NOSYSTEM=1") + + return env +} + +func gitConfigEnv() []string { + var env []string + + count := 0 + for key, value := range gitConfigOverrides { + env = append(env, fmt.Sprintf("GIT_CONFIG_KEY_%d=%s", count, key)) + env = append(env, fmt.Sprintf("GIT_CONFIG_VALUE_%d=%s", count, value)) + count++ + } + env = append(env, "GIT_CONFIG_COUNT="+strconv.Itoa(count)) return env } @@ -129,6 +145,7 @@ func (c *CmdBuilder) BuildGitCmd(ctx context.Context, dir string, extraArgs ...s cmd := exec.CommandContext(ctx, c.GitBin, args...) cmd.Env = gitFilteredEnv() + cmd.Env = append(cmd.Env, gitConfigEnv()...) cmd = c.deElevateCommand(ctx, cmd) @@ -154,7 +171,7 @@ func (c *CmdBuilder) BuildMakepkgCmd(ctx context.Context, dir string, extraArgs cmd := exec.CommandContext(ctx, c.MakepkgBin, args...) cmd.Dir = dir - cmd.Env = append(cmd.Env, "GIT_CONFIG_NOSYSTEM=1") + cmd.Env = append(cmd.Env, gitConfigEnv()...) cmd = c.deElevateCommand(ctx, cmd)