renovate 42.96.2 → 42.96.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -78,7 +78,8 @@ function exec(commandArgument, opts) {
78
78
  const cp = (0, execa.execa)(cmd, args, {
79
79
  ...opts,
80
80
  detached: process.platform !== "win32",
81
- shell
81
+ shell,
82
+ extendEnv: false
82
83
  });
83
84
  const [stdout, stderr] = initStreamListeners(cp, {
84
85
  ...opts,
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","names":["isCommandWithOptions","asRawCommand","ExecError","getEnv","instrument","sanitize"],"sources":["../../../lib/util/exec/common.ts"],"sourcesContent":["import type { ChildProcess } from 'node:child_process';\nimport type { Readable } from 'node:stream';\nimport { isNullOrUndefined } from '@sindresorhus/is';\nimport { execa } from 'execa';\nimport { join, split } from 'shlex';\nimport { instrument } from '../../instrumentation/index.ts';\nimport { logger } from '../../logger/index.ts';\nimport { getEnv } from '../env.ts';\nimport { sanitize } from '../sanitize.ts';\nimport type { ExecErrorData } from './exec-error.ts';\nimport { ExecError } from './exec-error.ts';\nimport type {\n CommandWithOptions,\n DataListener,\n ExecResult,\n RawExecOptions,\n} from './types.ts';\nimport { asRawCommand, isCommandWithOptions } from './utils.ts';\n// https://man7.org/linux/man-pages/man7/signal.7.html#NAME\n// Non TERM/CORE signals\n// The following is step 3. in https://github.com/renovatebot/renovate/issues/16197#issuecomment-1171423890\nconst NONTERM = [\n 'SIGCHLD',\n 'SIGCLD',\n 'SIGCONT',\n 'SIGSTOP',\n 'SIGTSTP',\n 'SIGTTIN',\n 'SIGTTOU',\n 'SIGURG',\n 'SIGWINCH',\n];\n\nconst encoding = 'utf8';\n\nfunction stringify(list: Buffer[]): string {\n return Buffer.concat(list).toString(encoding);\n}\n\nfunction initStreamListeners(\n cp: ChildProcess,\n opts: RawExecOptions & { maxBuffer: number },\n): [Buffer[], Buffer[]] {\n const stdout: Buffer[] = [];\n const stderr: Buffer[] = [];\n let stdoutLen = 0;\n let stderrLen = 0;\n\n registerDataListeners(cp.stdout, opts.outputListeners?.stdout);\n registerDataListeners(cp.stderr, opts.outputListeners?.stderr);\n\n cp.stdout?.on('data', (chunk: Buffer) => {\n // process.stdout.write(data.toString());\n const len = Buffer.byteLength(chunk, encoding);\n stdoutLen += len;\n if (stdoutLen > opts.maxBuffer) {\n cp.emit('error', new Error('stdout maxBuffer exceeded'));\n } else {\n stdout.push(chunk);\n }\n });\n\n cp.stderr?.on('data', (chunk: Buffer) => {\n // process.stderr.write(data.toString());\n const len = Buffer.byteLength(chunk, encoding);\n stderrLen += len;\n if (stderrLen > opts.maxBuffer) {\n cp.emit('error', new Error('stderr maxBuffer exceeded'));\n } else {\n stderr.push(chunk);\n }\n });\n return [stdout, stderr];\n}\n\nfunction registerDataListeners(\n readable: Readable | null,\n dataListeners: DataListener[] | undefined,\n): void {\n if (isNullOrUndefined(readable) || isNullOrUndefined(dataListeners)) {\n return;\n }\n\n for (const listener of dataListeners) {\n readable.on('data', listener);\n }\n}\n\nexport function exec(\n commandArgument: string | CommandWithOptions,\n opts: RawExecOptions,\n): Promise<ExecResult> {\n let theCmd = commandArgument;\n let ignoreFailure = false;\n if (isCommandWithOptions(commandArgument)) {\n theCmd = join(commandArgument.command);\n if (commandArgument.ignoreFailure !== undefined) {\n ignoreFailure = commandArgument.ignoreFailure;\n }\n }\n\n return new Promise((resolve, reject) => {\n let cmd = asRawCommand(theCmd);\n let args: string[] = [];\n const maxBuffer = opts.maxBuffer ?? 10 * 1024 * 1024; // Set default max buffer size to 10MB\n\n // don't use shell by default, as it leads to potential security issues\n let shell = opts.shell ?? false;\n if (\n isCommandWithOptions(commandArgument) &&\n commandArgument.shell !== undefined\n ) {\n shell = commandArgument.shell;\n }\n\n // if we're not in shell mode, we need to provide the command and arguments\n if (shell === false) {\n const parts = split(cmd);\n // v8 ignore else -- TODO: add test #40625\n if (parts) {\n cmd = parts[0];\n args = parts.slice(1);\n }\n }\n\n const cp = execa(cmd, args, {\n ...opts,\n // force detached on non WIN platforms\n // https://github.com/nodejs/node/issues/21825#issuecomment-611328888\n detached: process.platform !== 'win32',\n shell,\n });\n\n // handle streams\n const [stdout, stderr] = initStreamListeners(cp, {\n ...opts,\n maxBuffer,\n });\n\n // handle process events\n void cp.on('error', (error) => {\n kill(cp, 'SIGTERM');\n // rethrowing, use originally emitted error message\n reject(new ExecError(error.message, rejectInfo(), error));\n });\n\n void cp.on('exit', (code: number, signal: NodeJS.Signals) => {\n if (NONTERM.includes(signal)) {\n return;\n }\n if (signal) {\n kill(cp, signal);\n reject(\n new ExecError(\n `Command failed: ${cp.spawnargs.join(' ')}\\nInterrupted by ${signal}`,\n {\n ...rejectInfo(),\n signal,\n },\n ),\n );\n return;\n }\n if (code !== 0) {\n if (ignoreFailure === undefined || ignoreFailure === false) {\n reject(\n new ExecError(\n `Command failed: ${cp.spawnargs.join(' ')}\\n${stringify(stderr)}`,\n {\n ...rejectInfo(),\n exitCode: code,\n },\n ),\n );\n return;\n }\n\n logger.once.debug(\n {\n command: cp.spawnargs.join(' '),\n stdout: stringify(stdout),\n stderr: stringify(stderr),\n exitCode: code,\n },\n `Ignoring failure to execute comamnd \\`${cp.spawnargs.join(' ')}\\`, as ignoreFailure=true is set`,\n );\n\n resolve({\n stderr: stringify(stderr),\n stdout: stringify(stdout),\n exitCode: code,\n });\n return;\n }\n resolve({\n stderr: stringify(stderr),\n stdout: stringify(stdout),\n });\n });\n\n function rejectInfo(): ExecErrorData {\n return {\n cmd: cp.spawnargs.join(' '),\n options: opts,\n stdout: stringify(stdout),\n stderr: stringify(stderr),\n };\n }\n });\n}\n\nfunction kill(cp: ChildProcess, signal: NodeJS.Signals): boolean {\n try {\n if (cp.pid && getEnv().RENOVATE_X_EXEC_GPID_HANDLE) {\n /**\n * If `pid` is negative, but not `-1`, signal shall be sent to all processes\n * (excluding an unspecified set of system processes),\n * whose process group ID (pgid) is equal to the absolute value of pid,\n * and for which the process has permission to send a signal.\n */\n return process.kill(-cp.pid, signal);\n } else {\n // destroying stdio is needed for unref to work\n // https://nodejs.org/api/child_process.html#subprocessunref\n // https://github.com/nodejs/node/blob/4d5ff25a813fd18939c9f76b17e36291e3ea15c3/lib/child_process.js#L412-L426\n cp.stderr?.destroy();\n cp.stdout?.destroy();\n cp.unref();\n return cp.kill(signal);\n }\n } catch {\n // cp is a single node tree, therefore -pid is invalid as there is no such pgid,\n return false;\n }\n}\n\nexport const rawExec: (\n cmd: string | CommandWithOptions,\n opts: RawExecOptions,\n) => Promise<ExecResult> = (\n cmd: string | CommandWithOptions,\n opts: RawExecOptions,\n) =>\n instrument(`rawExec: ${sanitize(asRawCommand(cmd))}`, () => exec(cmd, opts));\n"],"mappings":"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"}
1
+ {"version":3,"file":"common.js","names":["isCommandWithOptions","asRawCommand","ExecError","getEnv","instrument","sanitize"],"sources":["../../../lib/util/exec/common.ts"],"sourcesContent":["import type { ChildProcess } from 'node:child_process';\nimport type { Readable } from 'node:stream';\nimport { isNullOrUndefined } from '@sindresorhus/is';\nimport { execa } from 'execa';\nimport { join, split } from 'shlex';\nimport { instrument } from '../../instrumentation/index.ts';\nimport { logger } from '../../logger/index.ts';\nimport { getEnv } from '../env.ts';\nimport { sanitize } from '../sanitize.ts';\nimport type { ExecErrorData } from './exec-error.ts';\nimport { ExecError } from './exec-error.ts';\nimport type {\n CommandWithOptions,\n DataListener,\n ExecResult,\n RawExecOptions,\n} from './types.ts';\nimport { asRawCommand, isCommandWithOptions } from './utils.ts';\n// https://man7.org/linux/man-pages/man7/signal.7.html#NAME\n// Non TERM/CORE signals\n// The following is step 3. in https://github.com/renovatebot/renovate/issues/16197#issuecomment-1171423890\nconst NONTERM = [\n 'SIGCHLD',\n 'SIGCLD',\n 'SIGCONT',\n 'SIGSTOP',\n 'SIGTSTP',\n 'SIGTTIN',\n 'SIGTTOU',\n 'SIGURG',\n 'SIGWINCH',\n];\n\nconst encoding = 'utf8';\n\nfunction stringify(list: Buffer[]): string {\n return Buffer.concat(list).toString(encoding);\n}\n\nfunction initStreamListeners(\n cp: ChildProcess,\n opts: RawExecOptions & { maxBuffer: number },\n): [Buffer[], Buffer[]] {\n const stdout: Buffer[] = [];\n const stderr: Buffer[] = [];\n let stdoutLen = 0;\n let stderrLen = 0;\n\n registerDataListeners(cp.stdout, opts.outputListeners?.stdout);\n registerDataListeners(cp.stderr, opts.outputListeners?.stderr);\n\n cp.stdout?.on('data', (chunk: Buffer) => {\n // process.stdout.write(data.toString());\n const len = Buffer.byteLength(chunk, encoding);\n stdoutLen += len;\n if (stdoutLen > opts.maxBuffer) {\n cp.emit('error', new Error('stdout maxBuffer exceeded'));\n } else {\n stdout.push(chunk);\n }\n });\n\n cp.stderr?.on('data', (chunk: Buffer) => {\n // process.stderr.write(data.toString());\n const len = Buffer.byteLength(chunk, encoding);\n stderrLen += len;\n if (stderrLen > opts.maxBuffer) {\n cp.emit('error', new Error('stderr maxBuffer exceeded'));\n } else {\n stderr.push(chunk);\n }\n });\n return [stdout, stderr];\n}\n\nfunction registerDataListeners(\n readable: Readable | null,\n dataListeners: DataListener[] | undefined,\n): void {\n if (isNullOrUndefined(readable) || isNullOrUndefined(dataListeners)) {\n return;\n }\n\n for (const listener of dataListeners) {\n readable.on('data', listener);\n }\n}\n\nexport function exec(\n commandArgument: string | CommandWithOptions,\n opts: RawExecOptions,\n): Promise<ExecResult> {\n let theCmd = commandArgument;\n let ignoreFailure = false;\n if (isCommandWithOptions(commandArgument)) {\n theCmd = join(commandArgument.command);\n if (commandArgument.ignoreFailure !== undefined) {\n ignoreFailure = commandArgument.ignoreFailure;\n }\n }\n\n return new Promise((resolve, reject) => {\n let cmd = asRawCommand(theCmd);\n let args: string[] = [];\n const maxBuffer = opts.maxBuffer ?? 10 * 1024 * 1024; // Set default max buffer size to 10MB\n\n // don't use shell by default, as it leads to potential security issues\n let shell = opts.shell ?? false;\n if (\n isCommandWithOptions(commandArgument) &&\n commandArgument.shell !== undefined\n ) {\n shell = commandArgument.shell;\n }\n\n // if we're not in shell mode, we need to provide the command and arguments\n if (shell === false) {\n const parts = split(cmd);\n // v8 ignore else -- TODO: add test #40625\n if (parts) {\n cmd = parts[0];\n args = parts.slice(1);\n }\n }\n\n const cp = execa(cmd, args, {\n ...opts,\n // force detached on non WIN platforms\n // https://github.com/nodejs/node/issues/21825#issuecomment-611328888\n detached: process.platform !== 'win32',\n shell,\n extendEnv: false,\n });\n\n // handle streams\n const [stdout, stderr] = initStreamListeners(cp, {\n ...opts,\n maxBuffer,\n });\n\n // handle process events\n void cp.on('error', (error) => {\n kill(cp, 'SIGTERM');\n // rethrowing, use originally emitted error message\n reject(new ExecError(error.message, rejectInfo(), error));\n });\n\n void cp.on('exit', (code: number, signal: NodeJS.Signals) => {\n if (NONTERM.includes(signal)) {\n return;\n }\n if (signal) {\n kill(cp, signal);\n reject(\n new ExecError(\n `Command failed: ${cp.spawnargs.join(' ')}\\nInterrupted by ${signal}`,\n {\n ...rejectInfo(),\n signal,\n },\n ),\n );\n return;\n }\n if (code !== 0) {\n if (ignoreFailure === undefined || ignoreFailure === false) {\n reject(\n new ExecError(\n `Command failed: ${cp.spawnargs.join(' ')}\\n${stringify(stderr)}`,\n {\n ...rejectInfo(),\n exitCode: code,\n },\n ),\n );\n return;\n }\n\n logger.once.debug(\n {\n command: cp.spawnargs.join(' '),\n stdout: stringify(stdout),\n stderr: stringify(stderr),\n exitCode: code,\n },\n `Ignoring failure to execute comamnd \\`${cp.spawnargs.join(' ')}\\`, as ignoreFailure=true is set`,\n );\n\n resolve({\n stderr: stringify(stderr),\n stdout: stringify(stdout),\n exitCode: code,\n });\n return;\n }\n resolve({\n stderr: stringify(stderr),\n stdout: stringify(stdout),\n });\n });\n\n function rejectInfo(): ExecErrorData {\n return {\n cmd: cp.spawnargs.join(' '),\n options: opts,\n stdout: stringify(stdout),\n stderr: stringify(stderr),\n };\n }\n });\n}\n\nfunction kill(cp: ChildProcess, signal: NodeJS.Signals): boolean {\n try {\n if (cp.pid && getEnv().RENOVATE_X_EXEC_GPID_HANDLE) {\n /**\n * If `pid` is negative, but not `-1`, signal shall be sent to all processes\n * (excluding an unspecified set of system processes),\n * whose process group ID (pgid) is equal to the absolute value of pid,\n * and for which the process has permission to send a signal.\n */\n return process.kill(-cp.pid, signal);\n } else {\n // destroying stdio is needed for unref to work\n // https://nodejs.org/api/child_process.html#subprocessunref\n // https://github.com/nodejs/node/blob/4d5ff25a813fd18939c9f76b17e36291e3ea15c3/lib/child_process.js#L412-L426\n cp.stderr?.destroy();\n cp.stdout?.destroy();\n cp.unref();\n return cp.kill(signal);\n }\n } catch {\n // cp is a single node tree, therefore -pid is invalid as there is no such pgid,\n return false;\n }\n}\n\nexport const rawExec: (\n cmd: string | CommandWithOptions,\n opts: RawExecOptions,\n) => Promise<ExecResult> = (\n cmd: string | CommandWithOptions,\n opts: RawExecOptions,\n) =>\n instrument(`rawExec: ${sanitize(asRawCommand(cmd))}`, () => exec(cmd, opts));\n"],"mappings":";;;;;;;;;;;;2BAM+C;sBACZ;gCACO;oCAEE;AAW5C,MAAM,UAAU;CACd;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAM,WAAW;AAEjB,SAAS,UAAU,MAAwB;AACzC,QAAO,OAAO,OAAO,KAAK,CAAC,SAAS,SAAS;;AAG/C,SAAS,oBACP,IACA,MACsB;CACtB,MAAM,SAAmB,EAAE;CAC3B,MAAM,SAAmB,EAAE;CAC3B,IAAI,YAAY;CAChB,IAAI,YAAY;AAEhB,uBAAsB,GAAG,QAAQ,KAAK,iBAAiB,OAAO;AAC9D,uBAAsB,GAAG,QAAQ,KAAK,iBAAiB,OAAO;AAE9D,IAAG,QAAQ,GAAG,SAAS,UAAkB;EAEvC,MAAM,MAAM,OAAO,WAAW,OAAO,SAAS;AAC9C,eAAa;AACb,MAAI,YAAY,KAAK,UACnB,IAAG,KAAK,yBAAS,IAAI,MAAM,4BAA4B,CAAC;MAExD,QAAO,KAAK,MAAM;GAEpB;AAEF,IAAG,QAAQ,GAAG,SAAS,UAAkB;EAEvC,MAAM,MAAM,OAAO,WAAW,OAAO,SAAS;AAC9C,eAAa;AACb,MAAI,YAAY,KAAK,UACnB,IAAG,KAAK,yBAAS,IAAI,MAAM,4BAA4B,CAAC;MAExD,QAAO,KAAK,MAAM;GAEpB;AACF,QAAO,CAAC,QAAQ,OAAO;;AAGzB,SAAS,sBACP,UACA,eACM;AACN,6CAAsB,SAAS,4CAAsB,cAAc,CACjE;AAGF,MAAK,MAAM,YAAY,cACrB,UAAS,GAAG,QAAQ,SAAS;;AAIjC,SAAgB,KACd,iBACA,MACqB;CACrB,IAAI,SAAS;CACb,IAAI,gBAAgB;AACpB,KAAIA,mCAAqB,gBAAgB,EAAE;AACzC,2BAAc,gBAAgB,QAAQ;AACtC,MAAI,gBAAgB,kBAAkB,OACpC,iBAAgB,gBAAgB;;AAIpC,QAAO,IAAI,SAAS,SAAS,WAAW;EACtC,IAAI,MAAMC,2BAAa,OAAO;EAC9B,IAAI,OAAiB,EAAE;EACvB,MAAM,YAAY,KAAK,aAAa,KAAK,OAAO;EAGhD,IAAI,QAAQ,KAAK,SAAS;AAC1B,MACED,mCAAqB,gBAAgB,IACrC,gBAAgB,UAAU,OAE1B,SAAQ,gBAAgB;AAI1B,MAAI,UAAU,OAAO;GACnB,MAAM,yBAAc,IAAI;;AAExB,OAAI,OAAO;AACT,UAAM,MAAM;AACZ,WAAO,MAAM,MAAM,EAAE;;;EAIzB,MAAM,sBAAW,KAAK,MAAM;GAC1B,GAAG;GAGH,UAAU,QAAQ,aAAa;GAC/B;GACA,WAAW;GACZ,CAAC;EAGF,MAAM,CAAC,QAAQ,UAAU,oBAAoB,IAAI;GAC/C,GAAG;GACH;GACD,CAAC;AAGF,EAAK,GAAG,GAAG,UAAU,UAAU;AAC7B,QAAK,IAAI,UAAU;AAEnB,UAAO,IAAIE,6BAAU,MAAM,SAAS,YAAY,EAAE,MAAM,CAAC;IACzD;AAEF,EAAK,GAAG,GAAG,SAAS,MAAc,WAA2B;AAC3D,OAAI,QAAQ,SAAS,OAAO,CAC1B;AAEF,OAAI,QAAQ;AACV,SAAK,IAAI,OAAO;AAChB,WACE,IAAIA,6BACF,mBAAmB,GAAG,UAAU,KAAK,IAAI,CAAC,mBAAmB,UAC7D;KACE,GAAG,YAAY;KACf;KACD,CACF,CACF;AACD;;AAEF,OAAI,SAAS,GAAG;AACd,QAAI,kBAAkB,UAAa,kBAAkB,OAAO;AAC1D,YACE,IAAIA,6BACF,mBAAmB,GAAG,UAAU,KAAK,IAAI,CAAC,IAAI,UAAU,OAAO,IAC/D;MACE,GAAG,YAAY;MACf,UAAU;MACX,CACF,CACF;AACD;;AAGF,yBAAO,KAAK,MACV;KACE,SAAS,GAAG,UAAU,KAAK,IAAI;KAC/B,QAAQ,UAAU,OAAO;KACzB,QAAQ,UAAU,OAAO;KACzB,UAAU;KACX,EACD,yCAAyC,GAAG,UAAU,KAAK,IAAI,CAAC,kCACjE;AAED,YAAQ;KACN,QAAQ,UAAU,OAAO;KACzB,QAAQ,UAAU,OAAO;KACzB,UAAU;KACX,CAAC;AACF;;AAEF,WAAQ;IACN,QAAQ,UAAU,OAAO;IACzB,QAAQ,UAAU,OAAO;IAC1B,CAAC;IACF;EAEF,SAAS,aAA4B;AACnC,UAAO;IACL,KAAK,GAAG,UAAU,KAAK,IAAI;IAC3B,SAAS;IACT,QAAQ,UAAU,OAAO;IACzB,QAAQ,UAAU,OAAO;IAC1B;;GAEH;;AAGJ,SAAS,KAAK,IAAkB,QAAiC;AAC/D,KAAI;AACF,MAAI,GAAG,OAAOC,oBAAQ,CAAC;;;;;;;AAOrB,SAAO,QAAQ,KAAK,CAAC,GAAG,KAAK,OAAO;OAC/B;AAIL,MAAG,QAAQ,SAAS;AACpB,MAAG,QAAQ,SAAS;AACpB,MAAG,OAAO;AACV,UAAO,GAAG,KAAK,OAAO;;SAElB;AAEN,SAAO;;;AAIX,MAAa,WAIX,KACA,SAEAC,2BAAW,YAAYC,0BAASJ,2BAAa,IAAI,CAAC,UAAU,KAAK,KAAK,KAAK,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "renovate",
3
3
  "description": "Automated dependency updates. Flexible so you don't need to be.",
4
- "version": "42.96.2",
4
+ "version": "42.96.3",
5
5
  "type": "commonjs",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -218,9 +218,9 @@
218
218
  "devDependencies": {
219
219
  "@biomejs/biome": "2.3.13",
220
220
  "@commander-js/extra-typings": "14.0.0",
221
- "@containerbase/eslint-plugin": "1.1.30",
222
- "@containerbase/istanbul-reports-html": "1.1.28",
223
- "@containerbase/semantic-release-pnpm": "1.3.18",
221
+ "@containerbase/eslint-plugin": "1.1.31",
222
+ "@containerbase/istanbul-reports-html": "1.1.30",
223
+ "@containerbase/semantic-release-pnpm": "1.3.20",
224
224
  "@eslint/js": "9.39.2",
225
225
  "@hyrious/marshal": "0.3.3",
226
226
  "@ls-lint/ls-lint": "2.3.1",
@@ -299,7 +299,7 @@
299
299
  "tmp-promise": "3.0.3",
300
300
  "tsdown": "0.20.1",
301
301
  "tsx": "4.21.0",
302
- "type-fest": "5.4.2",
302
+ "type-fest": "5.4.3",
303
303
  "typescript": "5.9.3",
304
304
  "typescript-eslint": "8.54.0",
305
305
  "unified": "11.0.5",
@@ -1,7 +1,7 @@
1
1
  {
2
- "title": "JSON schema for Renovate 42.96.2 config files (https://renovatebot.com/)",
2
+ "title": "JSON schema for Renovate 42.96.3 config files (https://renovatebot.com/)",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
- "x-renovate-version": "42.96.2",
4
+ "x-renovate-version": "42.96.3",
5
5
  "allowComments": true,
6
6
  "type": "object",
7
7
  "properties": {