/
githubmirror
/
lazygit
Обзор
Документация
Войти
/
githubmirror
/
lazygit
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
pkg/integration/components/env.go
70 строк
2 KB
Stefan Haller
Disable gh telemetry when running integration tests
05 май 2026, 19:42
05 май 2026, 19:42
cb0ecda
Код
Авторство
О чём код?
package components import ( "fmt" "os" ) const ( // These values will be passed to lazygit LAZYGIT_ROOT_DIR = "LAZYGIT_ROOT_DIR" SANDBOX_ENV_VAR = "SANDBOX" TEST_NAME_ENV_VAR = "TEST_NAME" WAIT_FOR_DEBUGGER_ENV_VAR = "WAIT_FOR_DEBUGGER" // These values will be passed to both lazygit and shell commands GIT_CONFIG_GLOBAL_ENV_VAR = "GIT_CONFIG_GLOBAL" // We pass PWD because if it's defined, Go will use it as the working directory // rather than make a syscall to the OS, and that means symlinks won't be resolved, // which is good to test for. PWD = "PWD" // We set $HOME and $GIT_CONFIG_NOGLOBAL during integration tests so // that older versions of git that don't respect $GIT_CONFIG_GLOBAL // will find the correct global config file for testing HOME = "HOME" GIT_CONFIG_NOGLOBAL = "GIT_CONFIG_NOGLOBAL" // These values will be passed through to lazygit and shell commands, with their // values inherited from the host environment PATH = "PATH" TERM = "TERM" ) // Tests will inherit these environment variables from the host environment, rather // than the test runner deciding the values itself. // All other environment variables present in the host environment will be ignored. // Having such a minimal list ensures that lazygit behaves the same across different test environments. var hostEnvironmentAllowlist = [...]string{ PATH, TERM, } // Returns a copy of the environment filtered by // hostEnvironmentAllowlist func allowedHostEnvironment() []string { env := []string{} for _, envVar := range hostEnvironmentAllowlist { env = append(env, fmt.Sprintf("%s=%s", envVar, os.Getenv(envVar))) } return env } func NewTestEnvironment(rootDir string) []string { env := allowedHostEnvironment() // Set $HOME to control the global git config location for git // versions <= 2.31.8 env = append(env, fmt.Sprintf("%s=%s", HOME, testPath(rootDir))) // $GIT_CONFIG_GLOBAL controls global git config location for git // versions >= 2.32.0 env = append(env, fmt.Sprintf("%s=%s", GIT_CONFIG_GLOBAL_ENV_VAR, globalGitConfigPath(rootDir))) // Disable gh telemetry. It was enabled by default in gh 2.91.0, and // this would cause gh config files to be left in the working tree // (e.g. `test/.local/state/gh/device-id`). env = append(env, "GH_TELEMETRY=disabled") return env }