From bdbce420ba4adb2858e847be8e4763961f1fa853 Mon Sep 17 00:00:00 2001 From: Pierrick Letos Date: Fri, 10 Mar 2023 10:34:28 +0100 Subject: [PATCH 1/3] Use ipv4 localhost writing Depending on how the files are called, sometimes node uses ipv4 or ipv6 notation when calling `localhost`, this way we ensure the same host is used every time --- src/utils/GitAskPass.js | 2 +- src/utils/authService.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils/GitAskPass.js b/src/utils/GitAskPass.js index 2e8ae1f..dcf0d0c 100644 --- a/src/utils/GitAskPass.js +++ b/src/utils/GitAskPass.js @@ -23,7 +23,7 @@ if (!request.property) { const client = net.createConnection( { port: NODEGIT_LFS_ASKPASS_PORT, - host: 'localhost' + host: '127.0.0.1' }, () => { client.pipe(process.stdout); diff --git a/src/utils/authService.js b/src/utils/authService.js index 9360b6a..83ea250 100644 --- a/src/utils/authService.js +++ b/src/utils/authService.js @@ -47,7 +47,7 @@ export const ensureAuthServer = () => new Promise((resolve, reject) => { tcpServer = net.createServer(socketListener); tcpServer.on('error', reject); - tcpServer.listen({ port: 0, host: 'localhost' }, resolve); + tcpServer.listen({ port: 0, host: '127.0.0.1' }, resolve); }); export const getAuthServerPort = () => ( From b1eac5a0feda491b420f56903da84ec21754a142 Mon Sep 17 00:00:00 2001 From: Pierrick Letos Date: Fri, 10 Mar 2023 10:37:29 +0100 Subject: [PATCH 2/3] Add environment variable to be able to use electron executable as node exec for GitAskPass --- src/utils/spawnHelper.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/utils/spawnHelper.js b/src/utils/spawnHelper.js index abd0f7c..b4a1b0a 100644 --- a/src/utils/spawnHelper.js +++ b/src/utils/spawnHelper.js @@ -93,6 +93,7 @@ const spawn = async (command, stdin, opts = {}, credentialsCallback, repoPath = opts, { env: { + ELECTRON_RUN_AS_NODE: 1, GIT_TERMINAL_PROMPT: 0, GIT_ASKPASS: getGitAskPassPath(), NODEGIT_LFS_ASKPASS_STATE: credRequestId, From 296b8d5ac6e75c3f624b6b0af0f8c3e9c844aa74 Mon Sep 17 00:00:00 2001 From: Pierrick Letos Date: Fri, 10 Mar 2023 10:39:12 +0100 Subject: [PATCH 3/3] Use second result in the regex match to return the correct url --- src/utils/spawnHelper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/spawnHelper.js b/src/utils/spawnHelper.js index b4a1b0a..3e56303 100644 --- a/src/utils/spawnHelper.js +++ b/src/utils/spawnHelper.js @@ -19,7 +19,7 @@ const parseUrlFromErrorMessage = (errorMessage) => { let url = null; const matches = regex.CREDENTIALS_NOT_FOUND.exec(errorMessage); if (matches && matches.length > 1) { - ([url] = matches); + ([, url] = matches); } return url; };