Skip to content

Commit 4dd72ee

Browse files
authored
fix(env): stop filtering process.env (#23)
We should not be removing GIT_ values from the environment if the user has set them. All we now do is set two defaults if they were not already set by the end user.
1 parent 0038a9d commit 4dd72ee

File tree

6 files changed

+30
-84
lines changed

6 files changed

+30
-84
lines changed

lib/env.js

Lines changed: 0 additions & 34 deletions
This file was deleted.

lib/opts.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
1-
const gitEnv = require('./env.js')
1+
// Values we want to set if they're not already defined by the end user
2+
// This defaults to accepting new ssh host key fingerprints
3+
const gitEnv = {
4+
GIT_ASKPASS: 'echo',
5+
GIT_SSH_COMMAND: 'ssh -oStrictHostKeyChecking=accept-new'
6+
}
27
module.exports = (opts = {}) => ({
38
stdioString: true,
49
...opts,
5-
env: opts.env || gitEnv(),
10+
env: opts.env || { ...gitEnv, ...process.env }
611
})

package-lock.json

Lines changed: 3 additions & 34 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
"promise-inflight": "^1.0.1",
3636
"promise-retry": "^2.0.1",
3737
"semver": "^7.3.5",
38-
"unique-filename": "^1.1.1",
3938
"which": "^2.0.2"
4039
}
4140
}

test/env.js

Lines changed: 0 additions & 11 deletions
This file was deleted.

test/opts.js

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,26 @@
11
const t = require('tap')
22
const gitOpts = require('../lib/opts.js')
3-
const gitEnv = require('../lib/env.js')
3+
const gitEnv = {
4+
GIT_ASKPASS: 'echo',
5+
GIT_SSH_COMMAND: 'ssh -oStrictHostKeyChecking=accept-new'
6+
}
47

5-
t.match(gitOpts().env, gitEnv(), 'got the git env by default')
8+
t.match(gitOpts().env, gitEnv, 'got the git defaults we want')
9+
10+
t.test('does not override', t => {
11+
const { GIT_ASKPASS, GIT_SSH_COMMAND } = process.env
12+
t.teardown(() => {
13+
process.env.GIT_ASKPASS = GIT_ASKPASS
14+
process.env.GIT_SSH_COMMAND = GIT_SSH_COMMAND
15+
})
16+
process.env.GIT_ASKPASS = 'test_askpass'
17+
process.env.GIT_SSH_COMMAND = 'test_ssh_command'
18+
t.match(gitOpts().env, {
19+
GIT_ASKPASS: 'test_askpass',
20+
GIT_SSH_COMMAND: 'test_ssh_command',
21+
}, 'values already in process.env remain')
22+
t.end()
23+
})
624

725
t.test('as non-root', t => {
826
process.getuid = () => 999

0 commit comments

Comments
 (0)