/
githubmirror
/
node
Обзор
Документация
Войти
/
githubmirror
/
node
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
deps/npm/node_modules/@npmcli/git/lib/opts.js
57 строк
2 KB
npm CLI robot
deps: upgrade npm to 10.8.2
12 июл 2024, 20:35
Не верифицирован
12 июл 2024, 20:35
da185dd
Код
Авторство
О чём код?
const fs = require('node:fs') const os = require('node:os') const path = require('node:path') const ini = require('ini') const gitConfigPath = path.join(os.homedir(), '.gitconfig') let cachedConfig = null // Function to load and cache the git config const loadGitConfig = () => { if (cachedConfig === null) { try { cachedConfig = {} if (fs.existsSync(gitConfigPath)) { const configContent = fs.readFileSync(gitConfigPath, 'utf-8') cachedConfig = ini.parse(configContent) } } catch (error) { cachedConfig = {} } } return cachedConfig } const checkGitConfigs = () => { const config = loadGitConfig() return { sshCommandSetInConfig: config?.core?.sshCommand !== undefined, askPassSetInConfig: config?.core?.askpass !== undefined, } } const sshCommandSetInEnv = process.env.GIT_SSH_COMMAND !== undefined const askPassSetInEnv = process.env.GIT_ASKPASS !== undefined const { sshCommandSetInConfig, askPassSetInConfig } = checkGitConfigs() // Values we want to set if they're not already defined by the end user // This defaults to accepting new ssh host key fingerprints const finalGitEnv = { ...(askPassSetInEnv || askPassSetInConfig ? {} : { GIT_ASKPASS: 'echo', }), ...(sshCommandSetInEnv || sshCommandSetInConfig ? {} : { GIT_SSH_COMMAND: 'ssh -oStrictHostKeyChecking=accept-new', }), } module.exports = (opts = {}) => ({ stdioString: true, ...opts, shell: false, env: opts.env || { ...finalGitEnv, ...process.env }, }) // Export the loadGitConfig function for testing module.exports.loadGitConfig = loadGitConfig