renovate 44.50.1 → 44.50.2
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.
package/dist/util/exec/common.js
CHANGED
|
@@ -4,7 +4,7 @@ import { sanitize } from "../sanitize.js";
|
|
|
4
4
|
import { logger } from "../../logger/index.js";
|
|
5
5
|
import { instrument } from "../../instrumentation/index.js";
|
|
6
6
|
import { asRawCommand, isCommandWithOptions } from "./utils.js";
|
|
7
|
-
import { isNullOrUndefined } from "@sindresorhus/is";
|
|
7
|
+
import { isFunction, isNullOrUndefined } from "@sindresorhus/is";
|
|
8
8
|
import { join, split } from "shlex";
|
|
9
9
|
import { execa } from "execa";
|
|
10
10
|
//#region lib/util/exec/common.ts
|
|
@@ -83,6 +83,7 @@ function exec(commandArgument, opts) {
|
|
|
83
83
|
shell,
|
|
84
84
|
extendEnv: false
|
|
85
85
|
});
|
|
86
|
+
if (isFunction(cp.catch)) cp.catch((err) => logger.warn({ err }, "execa promise rejection suppressed"));
|
|
86
87
|
const [stdout, stderr] = initStreamListeners(cp, {
|
|
87
88
|
...opts,
|
|
88
89
|
maxBuffer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","names":[],"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 OutputWriter,\n RawExecOptions,\n} from './types.ts';\nimport { asRawCommand, isCommandWithOptions } from './utils.ts';\n\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[], writer: OutputWriter | undefined): string {\n return writer?.toString() ?? 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 if (opts.outputWriters?.stdout) {\n opts.outputWriters.stdout.write(chunk);\n return;\n }\n\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 if (opts.outputWriters?.stderr) {\n opts.outputWriters.stderr.write(chunk);\n return;\n }\n\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, opts.outputWriters?.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, opts.outputWriters?.stdout),\n stderr: stringify(stderr, opts.outputWriters?.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, opts.outputWriters?.stderr),\n stdout: stringify(stdout, opts.outputWriters?.stdout),\n exitCode: code,\n });\n return;\n }\n resolve({\n stderr: stringify(stderr, opts.outputWriters?.stderr),\n stdout: stringify(stdout, opts.outputWriters?.stdout),\n });\n });\n\n function rejectInfo(): ExecErrorData {\n return {\n cmd: cp.spawnargs.join(' '),\n options: opts,\n stdout: stringify(stdout, opts.outputWriters?.stdout),\n stderr: stringify(stderr, opts.outputWriters?.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 }\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 } 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 function rawExec(\n cmd: string | CommandWithOptions,\n opts: RawExecOptions,\n): Promise<ExecResult> {\n return instrument(`rawExec: ${sanitize(asRawCommand(cmd))}`, () =>\n exec(cmd, opts),\n );\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"common.js","names":[],"sources":["../../../lib/util/exec/common.ts"],"sourcesContent":["import type { ChildProcess } from 'node:child_process';\nimport type { Readable } from 'node:stream';\nimport { isFunction, 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 OutputWriter,\n RawExecOptions,\n} from './types.ts';\nimport { asRawCommand, isCommandWithOptions } from './utils.ts';\n\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[], writer: OutputWriter | undefined): string {\n return writer?.toString() ?? 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 if (opts.outputWriters?.stdout) {\n opts.outputWriters.stdout.write(chunk);\n return;\n }\n\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 if (opts.outputWriters?.stderr) {\n opts.outputWriters.stderr.write(chunk);\n return;\n }\n\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 // Suppress execa's internal promise rejection (e.g., from timeout).\n // We handle all exit scenarios via 'exit' and 'error' event listeners below,\n // so the promise rejection would otherwise surface as an unhandledRejection.\n if (isFunction(cp.catch)) {\n cp.catch((err) =>\n logger.warn({ err }, 'execa promise rejection suppressed'),\n );\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, opts.outputWriters?.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, opts.outputWriters?.stdout),\n stderr: stringify(stderr, opts.outputWriters?.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, opts.outputWriters?.stderr),\n stdout: stringify(stdout, opts.outputWriters?.stdout),\n exitCode: code,\n });\n return;\n }\n resolve({\n stderr: stringify(stderr, opts.outputWriters?.stderr),\n stdout: stringify(stdout, opts.outputWriters?.stdout),\n });\n });\n\n function rejectInfo(): ExecErrorData {\n return {\n cmd: cp.spawnargs.join(' '),\n options: opts,\n stdout: stringify(stdout, opts.outputWriters?.stdout),\n stderr: stringify(stderr, opts.outputWriters?.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 }\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 } 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 function rawExec(\n cmd: string | CommandWithOptions,\n opts: RawExecOptions,\n): Promise<ExecResult> {\n return instrument(`rawExec: ${sanitize(asRawCommand(cmd))}`, () =>\n exec(cmd, opts),\n );\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
package/renovate-schema.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$id": "https://docs.renovatebot.com/renovate-schema.json",
|
|
3
|
-
"title": "JSON schema for Renovate 44.50.
|
|
3
|
+
"title": "JSON schema for Renovate 44.50.2 config files (https://renovatebot.com/)",
|
|
4
4
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
5
|
-
"x-renovate-version": "44.50.
|
|
5
|
+
"x-renovate-version": "44.50.2",
|
|
6
6
|
"allowComments": true,
|
|
7
7
|
"type": "object",
|
|
8
8
|
"definitions": {
|