From b8a5e18171718af676e2bcacfb0dbe5e89b62e43 Mon Sep 17 00:00:00 2001 From: Backfighter Date: Mon, 21 Mar 2022 16:31:04 +0100 Subject: [PATCH] Allow disabling integrated askpass (#115455) The GIT_ASKPASS variable is currently enforced by vscode and there is no way to overwrite it. This commit adds an options to disable the integrated askpass and use your own. Fixes #111839 --- extensions/git/package.json | 5 +++++ extensions/git/package.nls.json | 1 + extensions/git/src/askpass.ts | 10 ++++++++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/extensions/git/package.json b/extensions/git/package.json index 4ca8f559663..fb8121ebd59 100644 --- a/extensions/git/package.json +++ b/extensions/git/package.json @@ -2189,6 +2189,11 @@ "default": false, "description": "%config.useCommitInputAsStashMessage%" }, + "git.useIntegratedAskPass": { + "type": "boolean", + "default": true, + "description": "%config.useIntegratedAskPass%" + }, "git.githubAuthentication": { "deprecationMessage": "This setting is now deprecated, please use `github.gitAuthentication` instead." }, diff --git a/extensions/git/package.nls.json b/extensions/git/package.nls.json index 78a22cb0dbb..c6a5e47f5cd 100644 --- a/extensions/git/package.nls.json +++ b/extensions/git/package.nls.json @@ -200,6 +200,7 @@ "config.experimental.installGuide": "Experimental improvements for the git setup flow.", "config.repositoryScanIgnoredFolders": "List of folders that are ignored while scanning for Git repositories when `#git.autoRepositoryDetection#` is set to `true` or `subFolders`.", "config.repositoryScanMaxDepth": "Controls the depth used when scanning workspace folders for Git repositories when `#git.autoRepositoryDetection#` is set to `true` or `subFolders`. Can be set to `-1` for no limit.", + "config.useIntegratedAskPass": "Controls whether GIT_ASKPASS should be overwritten to use the integrated version.", "submenu.explorer": "Git", "submenu.commit": "Commit", "submenu.commit.amend": "Amend", diff --git a/extensions/git/src/askpass.ts b/extensions/git/src/askpass.ts index e1934042513..dd313098deb 100644 --- a/extensions/git/src/askpass.ts +++ b/extensions/git/src/askpass.ts @@ -79,13 +79,19 @@ export class Askpass implements IIPCHandler { }; } - return { + let env: { [key: string]: string; } = { ...this.ipc.getEnv(), - GIT_ASKPASS: path.join(__dirname, 'askpass.sh'), VSCODE_GIT_ASKPASS_NODE: process.execPath, VSCODE_GIT_ASKPASS_EXTRA_ARGS: (process.versions['electron'] && process.versions['microsoft-build']) ? '--ms-enable-electron-run-as-node' : '', VSCODE_GIT_ASKPASS_MAIN: path.join(__dirname, 'askpass-main.js') }; + + const config = workspace.getConfiguration('git'); + if (config.get('useIntegratedAskPass')) { + env.GIT_ASKPASS = path.join(__dirname, 'askpass.sh'); + } + + return env; } registerCredentialsProvider(provider: CredentialsProvider): Disposable {