The default reporter repaints the terminal over anything git or ssh prints, so when a git dependency's SSH remote needs a key passphrase or a host key confirmation the prompt is invisible and `pnpm install` looks hung. `GIT_TERMINAL_PROMPT=0` already made git's own credential prompts fail fast; ssh prompts on the terminal directly, so it needs `BatchMode=yes` through `GIT_SSH_COMMAND` to fail the same way. Both the git resolver's `ls-remote` and every git invocation of the git fetcher now go through one helper, `nonInteractiveGitEnv` in `@pnpm/network.git-utils` and `disable_git_prompts` in `pnpm-git-utils`, that sets both variables. The ssh override is skipped when the user already selected the ssh command through `GIT_SSH_COMMAND`, `GIT_SSH`, or the `core.sshCommand` git setting, so a custom key or a plink setup keeps working, and setting `GIT_SSH_COMMAND=ssh` opts back into prompting. Closes pnpm/pnpm#2227
26 lines
393 B
JSON
26 lines
393 B
JSON
{
|
|
"extends": "@pnpm/tsconfig",
|
|
"compilerOptions": {
|
|
"outDir": "lib",
|
|
"rootDir": "src"
|
|
},
|
|
"include": [
|
|
"src/**/*.ts",
|
|
"../../__typings__/**/*.d.ts"
|
|
],
|
|
"references": [
|
|
{
|
|
"path": "../../core/error"
|
|
},
|
|
{
|
|
"path": "../../network/fetch"
|
|
},
|
|
{
|
|
"path": "../../network/git-utils"
|
|
},
|
|
{
|
|
"path": "../resolver-base"
|
|
}
|
|
]
|
|
}
|