renovate 44.171.7 → 44.171.8
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.
|
@@ -36,6 +36,12 @@ function applyUpdateConfig(input) {
|
|
|
36
36
|
generateBranchName(updateConfig);
|
|
37
37
|
return updateConfig;
|
|
38
38
|
}
|
|
39
|
+
function applyVulnerabilityConcurrentLimits(updateConfig) {
|
|
40
|
+
if (!updateConfig.isVulnerabilityAlert) return;
|
|
41
|
+
const vulnerabilityAlerts = updateConfig.vulnerabilityAlerts;
|
|
42
|
+
if (!isUndefined(vulnerabilityAlerts?.prConcurrentLimit)) updateConfig.prConcurrentLimit = vulnerabilityAlerts.prConcurrentLimit;
|
|
43
|
+
if (!isUndefined(vulnerabilityAlerts?.branchConcurrentLimit)) updateConfig.branchConcurrentLimit = vulnerabilityAlerts.branchConcurrentLimit;
|
|
44
|
+
}
|
|
39
45
|
async function flattenUpdates(config, packageFiles) {
|
|
40
46
|
const updates = [];
|
|
41
47
|
const updateTypes = [
|
|
@@ -82,6 +88,7 @@ async function flattenUpdates(config, packageFiles) {
|
|
|
82
88
|
updateConfig = mergeChildConfig(updateConfig, updateConfig[updateConfig.updateType]);
|
|
83
89
|
for (const updateType of updateTypes) delete updateConfig[updateType];
|
|
84
90
|
updateConfig = await applyPackageRules(updateConfig, "update-type-merge");
|
|
91
|
+
applyVulnerabilityConcurrentLimits(updateConfig);
|
|
85
92
|
updateConfig = applyUpdateConfig(updateConfig);
|
|
86
93
|
updateConfig.baseDeps = packageFile.deps;
|
|
87
94
|
update.branchName = updateConfig.branchName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flatten.js","names":["template.compile"],"sources":["../../../../lib/workers/repository/updates/flatten.ts"],"sourcesContent":["import { isUndefined } from '@sindresorhus/is';\nimport {\n applyDatasourceDefaultConfig,\n filterConfig,\n getManagerConfig,\n mergeChildConfig,\n} from '../../../config/index.ts';\nimport type { RenovateConfig } from '../../../config/types.ts';\nimport { logger } from '../../../logger/index.ts';\nimport { get } from '../../../modules/manager/index.ts';\nimport type { PackageFile } from '../../../modules/manager/types.ts';\nimport { coerceArray } from '../../../util/array.ts';\nimport { detectSemanticCommits } from '../../../util/git/semantic.ts';\nimport { applyPackageRules } from '../../../util/package-rules/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport * as template from '../../../util/template/index.ts';\nimport { parseUrl, withoutUrlCredentials } from '../../../util/url.ts';\nimport type { BranchUpgradeConfig } from '../../types.ts';\nimport { replacementAlreadyExists } from '../common.ts';\nimport { generateBranchName } from './branch-name.ts';\n\nfunction upper(str: string): string {\n return str.charAt(0).toUpperCase() + str.substring(1);\n}\n\nexport function sanitizeDepName(depName: string): string {\n return withoutUrlCredentials(depName)\n .replace(regEx(/\\$\\{[^}]+\\}\\/?/g), '')\n .replace(regEx(/[${}]/g), '')\n .replace('@types/', '')\n .replace('@', '')\n .replace(regEx(/\\//g), '-')\n .replace(regEx(/\\s+/g), '-')\n .replace(regEx(/:/g), '-')\n .replace(regEx(/-+/), '-')\n .toLowerCase();\n}\n\nexport function applyUpdateConfig(input: BranchUpgradeConfig): any {\n const updateConfig = { ...input };\n delete updateConfig.packageRules;\n // TODO: Remove next line once #8075 is complete\n updateConfig.depNameSanitized = updateConfig.depName\n ? sanitizeDepName(updateConfig.depName)\n : undefined;\n updateConfig.newNameSanitized = updateConfig.newName\n ? sanitizeDepName(updateConfig.newName)\n : undefined;\n if (updateConfig.sourceUrl) {\n const parsedSourceUrl = parseUrl(updateConfig.sourceUrl);\n if (parsedSourceUrl?.pathname) {\n updateConfig.sourceRepoSlug = parsedSourceUrl.pathname\n .replace(regEx(/^\\//), '') // remove leading slash\n .replace(regEx(/\\//g), '-') // change slashes to hyphens\n .replace(regEx(/-+/g), '-'); // remove multiple hyphens\n updateConfig.sourceRepo = parsedSourceUrl.pathname.replace(\n regEx(/^\\//),\n '',\n ); // remove leading slash\n updateConfig.sourceRepoOrg = updateConfig.sourceRepo.replace(\n regEx(/\\/.*/g),\n '',\n ); // remove everything after first slash\n updateConfig.sourceRepoName = updateConfig.sourceRepo.replace(\n regEx(/.*\\//g),\n '',\n ); // remove everything up to the last slash\n }\n }\n if (updateConfig.sourceDirectory) {\n updateConfig.sourceDirectory = template.compile(\n updateConfig.sourceDirectory,\n updateConfig,\n );\n }\n generateBranchName(updateConfig);\n return updateConfig;\n}\n\nexport async function flattenUpdates(\n config: RenovateConfig,\n packageFiles: Record<string, PackageFile[]>,\n): Promise<BranchUpgradeConfig[]> {\n const updates = [];\n const updateTypes = [\n 'major',\n 'minor',\n 'patch',\n 'pin',\n 'digest',\n 'lockFileMaintenance',\n 'replacement',\n ];\n for (const [manager, files] of Object.entries(packageFiles)) {\n const managerConfig = getManagerConfig(config, manager);\n for (const packageFile of files) {\n const packageFileConfig: BranchUpgradeConfig = mergeChildConfig(\n managerConfig,\n packageFile,\n ) as never;\n const packagePath = packageFile.packageFile?.split('/');\n // `split` always yields at least one element, so there is always a file\n // name to drop here\n packagePath.splice(-1, 1);\n if (packagePath.length > 0) {\n packageFileConfig.parentDir = packagePath.at(-1);\n packageFileConfig.packageFileDir = packagePath.join('/');\n } else {\n packageFileConfig.parentDir = '';\n packageFileConfig.packageFileDir = '';\n }\n let depIndex = 0;\n for (const dep of packageFile.deps) {\n if (dep.updates!.length) {\n const depConfig = mergeChildConfig(packageFileConfig, dep);\n // @ts-expect-error -- not easily typed\n delete depConfig.deps;\n depConfig.depIndex = depIndex; // used for autoreplace\n for (const update of dep.updates!) {\n if (\n update.updateType === 'replacement' &&\n update.newName &&\n replacementAlreadyExists(packageFile.deps, dep, update.newName)\n ) {\n logger.debug(\n { fileName: packageFile.packageFile },\n `Skipping replacement of ${dep.depName} with ${update.newName}: replacement already exists in ${packageFile.packageFile}`,\n );\n continue;\n }\n let updateConfig = mergeChildConfig(depConfig, update);\n delete updateConfig.updates;\n if (updateConfig.updateType) {\n // @ts-expect-error -- not easily typed\n updateConfig[`is${upper(updateConfig.updateType)}`] = true;\n }\n if (updateConfig.updateTypes) {\n updateConfig.updateTypes.forEach((updateType: string) => {\n // @ts-expect-error -- not easily typed\n updateConfig[`is${upper(updateType)}`] = true;\n });\n }\n updateConfig = await applyDatasourceDefaultConfig(updateConfig);\n updateConfig = await applyPackageRules(\n updateConfig,\n 'datasource-merge',\n );\n // apply major/minor/patch/pin/digest\n updateConfig = mergeChildConfig(\n updateConfig,\n // @ts-expect-error -- not easily typed\n updateConfig[updateConfig.updateType],\n );\n for (const updateType of updateTypes) {\n // @ts-expect-error -- not easily typed\n delete updateConfig[updateType];\n }\n // Apply again in case any were added by the updateType config\n updateConfig = await applyPackageRules(\n updateConfig,\n 'update-type-merge',\n );\n updateConfig = applyUpdateConfig(updateConfig);\n updateConfig.baseDeps = packageFile.deps;\n update.branchName = updateConfig.branchName;\n\n // make sure that we use the dependency's current state of attestation, rather than using the new update's value\n updateConfig.hasAttestation = depConfig.hasAttestation;\n\n updates.push(updateConfig);\n }\n }\n depIndex += 1;\n }\n if (\n get(manager, 'supportsLockFileMaintenance') &&\n packageFileConfig.lockFileMaintenance!.enabled\n ) {\n // Apply lockFileMaintenance config before packageRules\n let lockFileConfig = mergeChildConfig(\n packageFileConfig,\n packageFileConfig.lockFileMaintenance!,\n );\n lockFileConfig.updateType = 'lockFileMaintenance';\n lockFileConfig.isLockFileMaintenance = true;\n lockFileConfig = await applyPackageRules(\n lockFileConfig,\n 'lock-file-maintenance-merge',\n );\n // Apply lockFileMaintenance and packageRules again\n lockFileConfig = mergeChildConfig(\n lockFileConfig,\n lockFileConfig.lockFileMaintenance!,\n );\n lockFileConfig = await applyPackageRules(\n lockFileConfig,\n 'lock-file-maintenance-merge-2',\n );\n // Remove unnecessary objects\n for (const updateType of updateTypes) {\n // @ts-expect-error -- not easily typed\n delete lockFileConfig[updateType];\n }\n delete lockFileConfig.packageRules;\n // @ts-expect-error -- not easily typed\n delete lockFileConfig.deps;\n generateBranchName(lockFileConfig);\n updates.push(lockFileConfig);\n }\n if (get(manager, 'updateLockedDependency')) {\n for (const lockFile of coerceArray(packageFileConfig.lockFiles)) {\n const lockfileRemediations = config.remediations as Record<\n string,\n Record<string, any>[]\n >;\n const remediations = lockfileRemediations?.[lockFile];\n if (remediations) {\n for (const remediation of remediations) {\n let updateConfig = mergeChildConfig(\n packageFileConfig,\n remediation,\n );\n updateConfig = mergeChildConfig(\n updateConfig,\n config.vulnerabilityAlerts,\n );\n delete updateConfig.vulnerabilityAlerts;\n updateConfig.isVulnerabilityAlert = true;\n updateConfig.isRemediation = true;\n updateConfig.lockFile = lockFile;\n updateConfig.currentValue = updateConfig.currentVersion;\n updateConfig.newValue = updateConfig.newVersion;\n updateConfig = applyUpdateConfig(updateConfig);\n updateConfig.enabled = true;\n updates.push(updateConfig);\n }\n }\n }\n }\n }\n }\n if (config.semanticCommits === 'auto') {\n const semanticCommits = await detectSemanticCommits();\n for (const update of updates) {\n update.semanticCommits = semanticCommits;\n }\n }\n const filteredUpdates = updates\n .filter((update) => update.enabled !== false)\n .filter((update) => isUndefined(update.skipReason))\n .map(({ vulnerabilityAlerts: _, ...update }) => update)\n .map((update) => filterConfig(update, 'branch'));\n if (filteredUpdates.length < updates.length) {\n logger.debug(\n `Filtered out ${updates.length - filteredUpdates.length} disabled update(s). ${filteredUpdates.length} update(s) remaining.`,\n );\n }\n return filteredUpdates;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flatten.js","names":["template.compile"],"sources":["../../../../lib/workers/repository/updates/flatten.ts"],"sourcesContent":["import { isUndefined } from '@sindresorhus/is';\nimport {\n applyDatasourceDefaultConfig,\n filterConfig,\n getManagerConfig,\n mergeChildConfig,\n} from '../../../config/index.ts';\nimport type { RenovateConfig } from '../../../config/types.ts';\nimport { logger } from '../../../logger/index.ts';\nimport { get } from '../../../modules/manager/index.ts';\nimport type { PackageFile } from '../../../modules/manager/types.ts';\nimport { coerceArray } from '../../../util/array.ts';\nimport { detectSemanticCommits } from '../../../util/git/semantic.ts';\nimport { applyPackageRules } from '../../../util/package-rules/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport * as template from '../../../util/template/index.ts';\nimport { parseUrl, withoutUrlCredentials } from '../../../util/url.ts';\nimport type { BranchUpgradeConfig } from '../../types.ts';\nimport { replacementAlreadyExists } from '../common.ts';\nimport { generateBranchName } from './branch-name.ts';\n\nfunction upper(str: string): string {\n return str.charAt(0).toUpperCase() + str.substring(1);\n}\n\nexport function sanitizeDepName(depName: string): string {\n return withoutUrlCredentials(depName)\n .replace(regEx(/\\$\\{[^}]+\\}\\/?/g), '')\n .replace(regEx(/[${}]/g), '')\n .replace('@types/', '')\n .replace('@', '')\n .replace(regEx(/\\//g), '-')\n .replace(regEx(/\\s+/g), '-')\n .replace(regEx(/:/g), '-')\n .replace(regEx(/-+/), '-')\n .toLowerCase();\n}\n\nexport function applyUpdateConfig(input: BranchUpgradeConfig): any {\n const updateConfig = { ...input };\n delete updateConfig.packageRules;\n // TODO: Remove next line once #8075 is complete\n updateConfig.depNameSanitized = updateConfig.depName\n ? sanitizeDepName(updateConfig.depName)\n : undefined;\n updateConfig.newNameSanitized = updateConfig.newName\n ? sanitizeDepName(updateConfig.newName)\n : undefined;\n if (updateConfig.sourceUrl) {\n const parsedSourceUrl = parseUrl(updateConfig.sourceUrl);\n if (parsedSourceUrl?.pathname) {\n updateConfig.sourceRepoSlug = parsedSourceUrl.pathname\n .replace(regEx(/^\\//), '') // remove leading slash\n .replace(regEx(/\\//g), '-') // change slashes to hyphens\n .replace(regEx(/-+/g), '-'); // remove multiple hyphens\n updateConfig.sourceRepo = parsedSourceUrl.pathname.replace(\n regEx(/^\\//),\n '',\n ); // remove leading slash\n updateConfig.sourceRepoOrg = updateConfig.sourceRepo.replace(\n regEx(/\\/.*/g),\n '',\n ); // remove everything after first slash\n updateConfig.sourceRepoName = updateConfig.sourceRepo.replace(\n regEx(/.*\\//g),\n '',\n ); // remove everything up to the last slash\n }\n }\n if (updateConfig.sourceDirectory) {\n updateConfig.sourceDirectory = template.compile(\n updateConfig.sourceDirectory,\n updateConfig,\n );\n }\n generateBranchName(updateConfig);\n return updateConfig;\n}\n\n// packageRules can set `isVulnerabilityAlert` without forcing `vulnerabilityAlerts`,\n// so the security concurrency limits are applied here\nfunction applyVulnerabilityConcurrentLimits(\n updateConfig: BranchUpgradeConfig,\n): void {\n if (!updateConfig.isVulnerabilityAlert) {\n return;\n }\n // `vulnerabilityAlerts` is typed as `RenovateSharedConfig`, which doesn't declare `prConcurrentLimit`/\n // `branchConcurrentLimit`, even though both are valid nested options\n // oxlint-disable-next-line typescript/no-unnecessary-type-assertion\n const vulnerabilityAlerts = updateConfig.vulnerabilityAlerts as\n RenovateConfig | undefined;\n if (!isUndefined(vulnerabilityAlerts?.prConcurrentLimit)) {\n updateConfig.prConcurrentLimit = vulnerabilityAlerts.prConcurrentLimit;\n }\n if (!isUndefined(vulnerabilityAlerts?.branchConcurrentLimit)) {\n updateConfig.branchConcurrentLimit =\n vulnerabilityAlerts.branchConcurrentLimit;\n }\n}\n\nexport async function flattenUpdates(\n config: RenovateConfig,\n packageFiles: Record<string, PackageFile[]>,\n): Promise<BranchUpgradeConfig[]> {\n const updates = [];\n const updateTypes = [\n 'major',\n 'minor',\n 'patch',\n 'pin',\n 'digest',\n 'lockFileMaintenance',\n 'replacement',\n ];\n for (const [manager, files] of Object.entries(packageFiles)) {\n const managerConfig = getManagerConfig(config, manager);\n for (const packageFile of files) {\n const packageFileConfig: BranchUpgradeConfig = mergeChildConfig(\n managerConfig,\n packageFile,\n ) as never;\n const packagePath = packageFile.packageFile?.split('/');\n // `split` always yields at least one element, so there is always a file\n // name to drop here\n packagePath.splice(-1, 1);\n if (packagePath.length > 0) {\n packageFileConfig.parentDir = packagePath.at(-1);\n packageFileConfig.packageFileDir = packagePath.join('/');\n } else {\n packageFileConfig.parentDir = '';\n packageFileConfig.packageFileDir = '';\n }\n let depIndex = 0;\n for (const dep of packageFile.deps) {\n if (dep.updates!.length) {\n const depConfig = mergeChildConfig(packageFileConfig, dep);\n // @ts-expect-error -- not easily typed\n delete depConfig.deps;\n depConfig.depIndex = depIndex; // used for autoreplace\n for (const update of dep.updates!) {\n if (\n update.updateType === 'replacement' &&\n update.newName &&\n replacementAlreadyExists(packageFile.deps, dep, update.newName)\n ) {\n logger.debug(\n { fileName: packageFile.packageFile },\n `Skipping replacement of ${dep.depName} with ${update.newName}: replacement already exists in ${packageFile.packageFile}`,\n );\n continue;\n }\n let updateConfig = mergeChildConfig(depConfig, update);\n delete updateConfig.updates;\n if (updateConfig.updateType) {\n // @ts-expect-error -- not easily typed\n updateConfig[`is${upper(updateConfig.updateType)}`] = true;\n }\n if (updateConfig.updateTypes) {\n updateConfig.updateTypes.forEach((updateType: string) => {\n // @ts-expect-error -- not easily typed\n updateConfig[`is${upper(updateType)}`] = true;\n });\n }\n updateConfig = await applyDatasourceDefaultConfig(updateConfig);\n updateConfig = await applyPackageRules(\n updateConfig,\n 'datasource-merge',\n );\n // apply major/minor/patch/pin/digest\n updateConfig = mergeChildConfig(\n updateConfig,\n // @ts-expect-error -- not easily typed\n updateConfig[updateConfig.updateType],\n );\n for (const updateType of updateTypes) {\n // @ts-expect-error -- not easily typed\n delete updateConfig[updateType];\n }\n // Apply again in case any were added by the updateType config\n updateConfig = await applyPackageRules(\n updateConfig,\n 'update-type-merge',\n );\n applyVulnerabilityConcurrentLimits(updateConfig);\n updateConfig = applyUpdateConfig(updateConfig);\n updateConfig.baseDeps = packageFile.deps;\n update.branchName = updateConfig.branchName;\n\n // make sure that we use the dependency's current state of attestation, rather than using the new update's value\n updateConfig.hasAttestation = depConfig.hasAttestation;\n\n updates.push(updateConfig);\n }\n }\n depIndex += 1;\n }\n if (\n get(manager, 'supportsLockFileMaintenance') &&\n packageFileConfig.lockFileMaintenance!.enabled\n ) {\n // Apply lockFileMaintenance config before packageRules\n let lockFileConfig = mergeChildConfig(\n packageFileConfig,\n packageFileConfig.lockFileMaintenance!,\n );\n lockFileConfig.updateType = 'lockFileMaintenance';\n lockFileConfig.isLockFileMaintenance = true;\n lockFileConfig = await applyPackageRules(\n lockFileConfig,\n 'lock-file-maintenance-merge',\n );\n // Apply lockFileMaintenance and packageRules again\n lockFileConfig = mergeChildConfig(\n lockFileConfig,\n lockFileConfig.lockFileMaintenance!,\n );\n lockFileConfig = await applyPackageRules(\n lockFileConfig,\n 'lock-file-maintenance-merge-2',\n );\n // Remove unnecessary objects\n for (const updateType of updateTypes) {\n // @ts-expect-error -- not easily typed\n delete lockFileConfig[updateType];\n }\n delete lockFileConfig.packageRules;\n // @ts-expect-error -- not easily typed\n delete lockFileConfig.deps;\n generateBranchName(lockFileConfig);\n updates.push(lockFileConfig);\n }\n if (get(manager, 'updateLockedDependency')) {\n for (const lockFile of coerceArray(packageFileConfig.lockFiles)) {\n const lockfileRemediations = config.remediations as Record<\n string,\n Record<string, any>[]\n >;\n const remediations = lockfileRemediations?.[lockFile];\n if (remediations) {\n for (const remediation of remediations) {\n let updateConfig = mergeChildConfig(\n packageFileConfig,\n remediation,\n );\n updateConfig = mergeChildConfig(\n updateConfig,\n config.vulnerabilityAlerts,\n );\n delete updateConfig.vulnerabilityAlerts;\n updateConfig.isVulnerabilityAlert = true;\n updateConfig.isRemediation = true;\n updateConfig.lockFile = lockFile;\n updateConfig.currentValue = updateConfig.currentVersion;\n updateConfig.newValue = updateConfig.newVersion;\n updateConfig = applyUpdateConfig(updateConfig);\n updateConfig.enabled = true;\n updates.push(updateConfig);\n }\n }\n }\n }\n }\n }\n if (config.semanticCommits === 'auto') {\n const semanticCommits = await detectSemanticCommits();\n for (const update of updates) {\n update.semanticCommits = semanticCommits;\n }\n }\n const filteredUpdates = updates\n .filter((update) => update.enabled !== false)\n .filter((update) => isUndefined(update.skipReason))\n .map(({ vulnerabilityAlerts: _, ...update }) => update)\n .map((update) => filterConfig(update, 'branch'));\n if (filteredUpdates.length < updates.length) {\n logger.debug(\n `Filtered out ${updates.length - filteredUpdates.length} disabled update(s). ${filteredUpdates.length} update(s) remaining.`,\n );\n }\n return filteredUpdates;\n}\n"],"mappings":"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"}
|
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": "44.171.
|
|
4
|
+
"version": "44.171.8",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"renovate": "dist/renovate.js",
|
|
@@ -159,7 +159,7 @@
|
|
|
159
159
|
"github-url-from-git": "1.5.0",
|
|
160
160
|
"glob": "13.0.6",
|
|
161
161
|
"global-agent": "3.0.0",
|
|
162
|
-
"google-auth-library": "11.
|
|
162
|
+
"google-auth-library": "11.3.0",
|
|
163
163
|
"got": "16.0.0",
|
|
164
164
|
"graph-data-structure": "4.5.0",
|
|
165
165
|
"handlebars": "4.7.10",
|
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.171.
|
|
3
|
+
"title": "JSON schema for Renovate 44.171.8 config files (https://renovatebot.com/)",
|
|
4
4
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
5
|
-
"x-renovate-version": "44.171.
|
|
5
|
+
"x-renovate-version": "44.171.8",
|
|
6
6
|
"allowComments": true,
|
|
7
7
|
"type": "object",
|
|
8
8
|
"definitions": {
|