diff --git a/src/applications/config/controller/PhabricatorConfigConsoleController.php b/src/applications/config/controller/PhabricatorConfigConsoleController.php --- a/src/applications/config/controller/PhabricatorConfigConsoleController.php +++ b/src/applications/config/controller/PhabricatorConfigConsoleController.php @@ -150,6 +150,16 @@ $log_futures = array(); $remote_futures = array(); + // Git commands needs the HOME environment variable + // to read their .gitconfig - otherwise you cannot + // fix errors like "detected dubious ownership" + // https://we.phorge.it/T15282 + $commands_env = array(); + $webserver_user = posix_getpwuid(posix_geteuid()); + if ($webserver_user !== false) { + $commands_env['HOME'] = $webserver_user['dir']; + } + foreach ($specs as $lib) { $root = dirname(phutil_get_library_root($lib)); @@ -161,9 +171,11 @@ 'git remote -v'); $log_futures[$lib] = id(new ExecFuture('%C', $log_command)) + ->setEnv($commands_env) ->setCWD($root); $remote_futures[$lib] = id(new ExecFuture('%C', $remote_command)) + ->setEnv($commands_env) ->setCWD($root); }