![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/.nvm/versions/node/v18.20.4/lib/node_modules/npm/node_modules/@npmcli/git/lib/ |
const spawn = require('@npmcli/promise-spawn') const promiseRetry = require('promise-retry') const { log } = require('proc-log') const makeError = require('./make-error.js') const makeOpts = require('./opts.js') module.exports = (gitArgs, opts = {}) => { const whichGit = require('./which.js') const gitPath = whichGit(opts) if (gitPath instanceof Error) { return Promise.reject(gitPath) } // undocumented option, mostly only here for tests const args = opts.allowReplace || gitArgs[0] === '--no-replace-objects' ? gitArgs : ['--no-replace-objects', ...gitArgs] let retryOpts = opts.retry if (retryOpts === null || retryOpts === undefined) { retryOpts = { retries: opts.fetchRetries || 2, factor: opts.fetchRetryFactor || 10, maxTimeout: opts.fetchRetryMaxtimeout || 60000, minTimeout: opts.fetchRetryMintimeout || 1000, } } return promiseRetry((retryFn, number) => { if (number !== 1) { log.silly('git', `Retrying git command: ${ args.join(' ')} attempt # ${number}`) } return spawn(gitPath, args, makeOpts(opts)) .catch(er => { const gitError = makeError(er) if (!gitError.shouldRetry(number)) { throw gitError } retryFn(gitError) }) }, retryOpts) }