renovate 40.22.0 → 40.23.0

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.
Files changed (27) hide show
  1. package/dist/config/options/index.js +6 -0
  2. package/dist/config/options/index.js.map +1 -1
  3. package/dist/logger/once.js +2 -0
  4. package/dist/logger/once.js.map +1 -1
  5. package/dist/modules/datasource/types.d.ts +2 -1
  6. package/dist/modules/datasource/types.js.map +1 -1
  7. package/dist/modules/manager/fingerprint.generated.js +1 -1
  8. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  9. package/dist/modules/manager/helmfile/utils.js +1 -1
  10. package/dist/modules/manager/helmfile/utils.js.map +1 -1
  11. package/dist/modules/manager/helmv3/artifacts.js +1 -1
  12. package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
  13. package/dist/modules/manager/helmv3/common.d.ts +1 -1
  14. package/dist/modules/manager/helmv3/common.js +8 -2
  15. package/dist/modules/manager/helmv3/common.js.map +1 -1
  16. package/dist/workers/repository/process/lookup/abandonment.d.ts +3 -0
  17. package/dist/workers/repository/process/lookup/abandonment.js +45 -0
  18. package/dist/workers/repository/process/lookup/abandonment.js.map +1 -0
  19. package/dist/workers/repository/process/lookup/index.js +2 -0
  20. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  21. package/dist/workers/repository/process/lookup/timestamps.d.ts +4 -4
  22. package/dist/workers/repository/process/lookup/timestamps.js +10 -10
  23. package/dist/workers/repository/process/lookup/timestamps.js.map +1 -1
  24. package/dist/workers/repository/process/lookup/types.d.ts +1 -0
  25. package/dist/workers/repository/process/lookup/types.js.map +1 -1
  26. package/package.json +1 -1
  27. package/renovate-schema.json +8 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/process/lookup/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { mergeChildConfig } from '../../../../config';\nimport type { ValidationMessage } from '../../../../config/types';\nimport { CONFIG_VALIDATION } from '../../../../constants/error-messages';\nimport { logger } from '../../../../logger';\nimport type {\n GetDigestInputConfig,\n Release,\n ReleaseResult,\n} from '../../../../modules/datasource';\nimport {\n applyDatasourceFilters,\n getDigest,\n getRawPkgReleases,\n isGetPkgReleasesConfig,\n supportsDigests,\n} from '../../../../modules/datasource';\nimport {\n getDatasourceFor,\n getDefaultVersioning,\n} from '../../../../modules/datasource/common';\nimport { postprocessRelease } from '../../../../modules/datasource/postprocess-release';\nimport { getRangeStrategy } from '../../../../modules/manager';\nimport * as allVersioning from '../../../../modules/versioning';\nimport { id as dockerVersioningId } from '../../../../modules/versioning/docker';\nimport { ExternalHostError } from '../../../../types/errors/external-host-error';\nimport { assignKeys } from '../../../../util/assign-keys';\nimport { getElapsedDays } from '../../../../util/date';\nimport { applyPackageRules } from '../../../../util/package-rules';\nimport { regEx } from '../../../../util/regex';\nimport { Result } from '../../../../util/result';\nimport type { Timestamp } from '../../../../util/timestamp';\nimport { getBucket } from './bucket';\nimport { getCurrentVersion } from './current';\nimport { filterVersions } from './filter';\nimport { filterInternalChecks } from './filter-checks';\nimport { generateUpdate } from './generate';\nimport { getRollbackUpdate } from './rollback';\nimport { calculateLatestReleaseBump } from './timestamps';\nimport type { LookupUpdateConfig, UpdateResult } from './types';\nimport {\n addReplacementUpdateIfValid,\n isReplacementRulesConfigured,\n} from './utils';\n\nasync function getTimestamp(\n config: LookupUpdateConfig,\n versions: Release[],\n version: string,\n versioningApi: allVersioning.VersioningApi,\n): Promise<Timestamp | null | undefined> {\n const currentRelease = versions.find(\n (v) =>\n versioningApi.isValid(v.version) &&\n versioningApi.equals(v.version, version),\n );\n\n if (!currentRelease) {\n return null;\n }\n\n if (currentRelease.releaseTimestamp) {\n return currentRelease.releaseTimestamp;\n }\n\n const remoteRelease = await postprocessRelease(config, currentRelease);\n return remoteRelease?.releaseTimestamp;\n}\n\nexport async function lookupUpdates(\n inconfig: LookupUpdateConfig,\n): Promise<Result<UpdateResult, Error>> {\n let config: LookupUpdateConfig = { ...inconfig };\n config.versioning ??= getDefaultVersioning(config.datasource);\n\n const versioningApi = allVersioning.get(config.versioning);\n\n let dependency: ReleaseResult | null = null;\n const res: UpdateResult = {\n versioning: config.versioning,\n updates: [],\n warnings: [],\n };\n\n try {\n logger.trace(\n {\n dependency: config.packageName,\n currentValue: config.currentValue,\n },\n 'lookupUpdates',\n );\n if (config.currentValue && !is.string(config.currentValue)) {\n // If currentValue is not a string, then it's invalid\n if (config.currentValue) {\n logger.debug(\n `Invalid currentValue for ${config.packageName}: ${JSON.stringify(config.currentValue)} (${typeof config.currentValue})`,\n );\n }\n res.skipReason = 'invalid-value';\n return Result.ok(res);\n }\n if (\n !isGetPkgReleasesConfig(config) ||\n !getDatasourceFor(config.datasource)\n ) {\n res.skipReason = 'invalid-config';\n return Result.ok(res);\n }\n let compareValue = config.currentValue;\n if (\n is.string(config.currentValue) &&\n is.string(config.versionCompatibility)\n ) {\n const versionCompatbilityRegEx = regEx(config.versionCompatibility);\n const regexMatch = versionCompatbilityRegEx.exec(config.currentValue);\n if (regexMatch?.groups) {\n logger.debug(\n {\n versionCompatibility: config.versionCompatibility,\n currentValue: config.currentValue,\n packageName: config.packageName,\n groups: regexMatch.groups,\n },\n 'version compatibility regex match',\n );\n config.currentCompatibility = regexMatch.groups.compatibility;\n compareValue = regexMatch.groups.version;\n } else {\n logger.debug(\n {\n versionCompatibility: config.versionCompatibility,\n currentValue: config.currentValue,\n packageName: config.packageName,\n },\n 'version compatibility regex mismatch',\n );\n }\n }\n\n const isValid =\n is.string(compareValue) && versioningApi.isValid(compareValue);\n\n const unconstrainedValue =\n !!config.lockedVersion && is.undefined(config.currentValue);\n\n if (isValid || unconstrainedValue) {\n if (\n !config.updatePinnedDependencies &&\n // TODO #22198\n versioningApi.isSingleVersion(compareValue!)\n ) {\n res.skipReason = 'is-pinned';\n return Result.ok(res);\n }\n\n const { val: releaseResult, err: lookupError } = await getRawPkgReleases(\n config,\n )\n .transform((res) => calculateLatestReleaseBump(versioningApi, res))\n .transform((res) => applyDatasourceFilters(res, config))\n .unwrap();\n\n if (lookupError instanceof Error) {\n throw lookupError;\n }\n\n if (lookupError) {\n // If dependency lookup fails then warn and return\n const warning: ValidationMessage = {\n topic: config.packageName,\n message: `Failed to look up ${config.datasource} package ${config.packageName}`,\n };\n logger.debug(\n {\n dependency: config.packageName,\n packageFile: config.packageFile,\n },\n warning.message,\n );\n // TODO: return warnings in own field\n res.warnings.push(warning);\n return Result.ok(res);\n }\n\n dependency = releaseResult;\n\n if (dependency.deprecationMessage) {\n logger.debug(\n `Found deprecationMessage for ${config.datasource} package ${config.packageName}`,\n );\n }\n\n assignKeys(res, dependency, [\n 'deprecationMessage',\n 'sourceUrl',\n 'registryUrl',\n 'sourceDirectory',\n 'homepage',\n 'changelogUrl',\n 'dependencyUrl',\n 'lookupName',\n 'packageScope',\n ]);\n\n const latestVersion = dependency.tags?.latest;\n // Filter out any results from datasource that don't comply with our versioning\n let allVersions = dependency.releases.filter((release) =>\n versioningApi.isVersion(release.version),\n );\n // istanbul ignore if\n if (allVersions.length === 0) {\n const message = `Found no results from datasource that look like a version`;\n logger.info(\n {\n dependency: config.packageName,\n result: dependency,\n },\n message,\n );\n if (!config.currentDigest) {\n return Result.ok(res);\n }\n }\n // Reapply package rules in case we missed something from sourceUrl\n config = await applyPackageRules(\n { ...config, sourceUrl: res.sourceUrl },\n 'source-url',\n );\n if (config.followTag) {\n const taggedVersion = dependency.tags?.[config.followTag];\n if (!taggedVersion) {\n res.warnings.push({\n topic: config.packageName,\n message: `Can't find version with tag ${config.followTag} for ${config.datasource} package ${config.packageName}`,\n });\n return Result.ok(res);\n }\n allVersions = allVersions.filter(\n (v) =>\n v.version === taggedVersion ||\n (v.version === compareValue &&\n versioningApi.isGreaterThan(taggedVersion, compareValue)),\n );\n }\n // Check that existing constraint can be satisfied\n const allSatisfyingVersions = allVersions.filter(\n (v) =>\n // TODO #22198\n unconstrainedValue || versioningApi.matches(v.version, compareValue!),\n );\n if (!allSatisfyingVersions.length) {\n logger.debug(\n `Found no satisfying versions with '${config.versioning}' versioning`,\n );\n }\n\n if (config.rollbackPrs && !allSatisfyingVersions.length) {\n const rollback = getRollbackUpdate(config, allVersions, versioningApi);\n // istanbul ignore if\n if (!rollback) {\n res.warnings.push({\n topic: config.packageName,\n // TODO: types (#22198)\n message: `Can't find version matching ${compareValue!} for ${\n config.datasource\n } package ${config.packageName}`,\n });\n return Result.ok(res);\n }\n res.updates.push(rollback);\n }\n let rangeStrategy = getRangeStrategy(config);\n\n // istanbul ignore next\n if (\n config.isVulnerabilityAlert &&\n rangeStrategy === 'update-lockfile' &&\n !config.lockedVersion\n ) {\n rangeStrategy = 'bump';\n }\n // unconstrained deps with lockedVersion\n if (\n config.isVulnerabilityAlert &&\n !config.currentValue &&\n config.lockedVersion\n ) {\n rangeStrategy = 'update-lockfile';\n }\n const nonDeprecatedVersions = dependency.releases\n .filter((release) => !release.isDeprecated)\n .map((release) => release.version);\n let currentVersion: string;\n if (rangeStrategy === 'update-lockfile') {\n currentVersion = config.lockedVersion!;\n }\n if (allVersions.find((v) => v.version === compareValue)) {\n currentVersion = compareValue!;\n }\n // TODO #22198\n currentVersion ??=\n getCurrentVersion(\n compareValue!,\n config.lockedVersion!,\n versioningApi,\n rangeStrategy!,\n latestVersion!,\n nonDeprecatedVersions,\n ) ??\n getCurrentVersion(\n compareValue!,\n config.lockedVersion!,\n versioningApi,\n rangeStrategy!,\n latestVersion!,\n allVersions.map((v) => v.version),\n )!;\n\n if (!currentVersion) {\n if (!config.lockedVersion) {\n logger.debug(\n `No currentVersion or lockedVersion found for ${config.packageName}`,\n );\n res.skipReason = 'invalid-value';\n }\n return Result.ok(res);\n }\n\n res.currentVersion = currentVersion!;\n const currentVersionTimestamp = await getTimestamp(\n config,\n allVersions,\n currentVersion,\n versioningApi,\n );\n\n if (is.nonEmptyString(currentVersionTimestamp)) {\n res.currentVersionTimestamp = currentVersionTimestamp;\n res.currentVersionAgeInDays = getElapsedDays(currentVersionTimestamp);\n\n if (\n config.packageRules?.some((rule) =>\n is.nonEmptyString(rule.matchCurrentAge),\n )\n ) {\n // Reapply package rules to check matches for matchCurrentAge\n config = await applyPackageRules(\n { ...config, currentVersionTimestamp },\n 'current-timestamp',\n );\n }\n }\n\n if (\n compareValue &&\n currentVersion &&\n rangeStrategy === 'pin' &&\n !versioningApi.isSingleVersion(compareValue)\n ) {\n res.updates.push({\n updateType: 'pin',\n isPin: true,\n // TODO: newValue can be null! (#22198)\n newValue: versioningApi.getNewValue({\n currentValue: compareValue,\n rangeStrategy,\n currentVersion,\n newVersion: currentVersion,\n })!,\n newVersion: currentVersion,\n newMajor: versioningApi.getMajor(currentVersion)!,\n });\n }\n if (rangeStrategy === 'pin') {\n // Fall back to replace once pinning logic is done\n rangeStrategy = 'replace';\n }\n // istanbul ignore if\n if (!versioningApi.isVersion(currentVersion!)) {\n res.skipReason = 'invalid-version';\n return Result.ok(res);\n }\n // Filter latest, unstable, etc\n // TODO #22198\n let filteredReleases = filterVersions(\n config,\n currentVersion!,\n latestVersion!,\n config.rangeStrategy === 'in-range-only'\n ? allSatisfyingVersions\n : allVersions,\n versioningApi,\n ).filter(\n (v) =>\n // Leave only compatible versions\n unconstrainedValue ||\n versioningApi.isCompatible(v.version, compareValue),\n );\n let shrinkedViaVulnerability = false;\n if (config.isVulnerabilityAlert) {\n if (config.vulnerabilityFixVersion) {\n res.vulnerabilityFixVersion = config.vulnerabilityFixVersion;\n res.vulnerabilityFixStrategy = config.vulnerabilityFixStrategy;\n if (versioningApi.isValid(config.vulnerabilityFixVersion)) {\n let fixedFilteredReleases;\n if (versioningApi.isVersion(config.vulnerabilityFixVersion)) {\n // Retain only releases greater than or equal to the fix version\n fixedFilteredReleases = filteredReleases.filter(\n (release) =>\n !versioningApi.isGreaterThan(\n config.vulnerabilityFixVersion!,\n release.version,\n ),\n );\n } else {\n // Retain only releases which max the fix constraint\n fixedFilteredReleases = filteredReleases.filter((release) =>\n versioningApi.matches(\n release.version,\n config.vulnerabilityFixVersion!,\n ),\n );\n }\n // Warn if this filtering results caused zero releases\n if (fixedFilteredReleases.length === 0 && filteredReleases.length) {\n logger.warn(\n {\n releases: filteredReleases,\n vulnerabilityFixVersion: config.vulnerabilityFixVersion,\n packageName: config.packageName,\n },\n 'No releases satisfy vulnerabilityFixVersion',\n );\n }\n // Use the additionally filtered releases\n filteredReleases = fixedFilteredReleases;\n } else {\n logger.warn(\n {\n vulnerabilityFixVersion: config.vulnerabilityFixVersion,\n packageName: config.packageName,\n },\n 'vulnerabilityFixVersion is not valid',\n );\n }\n }\n if (config.vulnerabilityFixStrategy === 'highest') {\n // Don't shrink the list of releases - let Renovate use its normal logic\n logger.once.debug(\n `Using vulnerabilityFixStrategy=highest for ${config.packageName}`,\n );\n } else {\n // Shrink the list of releases to the lowest fixed version\n logger.once.debug(\n `Using vulnerabilityFixStrategy=lowest for ${config.packageName}`,\n );\n filteredReleases = filteredReleases.slice(0, 1);\n shrinkedViaVulnerability = true;\n }\n }\n const buckets: Record<string, [Release]> = {};\n for (const release of filteredReleases) {\n const bucket = getBucket(\n config,\n // TODO #22198\n currentVersion!,\n release.version,\n versioningApi,\n );\n if (is.string(bucket)) {\n if (buckets[bucket]) {\n buckets[bucket].push(release);\n } else {\n buckets[bucket] = [release];\n }\n }\n }\n const depResultConfig = mergeChildConfig(config, res);\n for (const [bucket, releases] of Object.entries(buckets)) {\n const sortedReleases = releases.sort((r1, r2) =>\n versioningApi.sortVersions(r1.version, r2.version),\n );\n const { release, pendingChecks, pendingReleases } =\n await filterInternalChecks(\n depResultConfig,\n versioningApi,\n bucket,\n sortedReleases,\n );\n // istanbul ignore next\n if (!release) {\n return Result.ok(res);\n }\n const newVersion = release.version;\n const update = await generateUpdate(\n config,\n compareValue,\n versioningApi,\n // TODO #22198\n\n rangeStrategy!,\n config.lockedVersion ?? currentVersion!,\n bucket,\n release,\n );\n\n // #29034\n if (\n config.manager === 'gomod' &&\n compareValue?.startsWith('v0.0.0-') &&\n update.newValue?.startsWith('v0.0.0-') &&\n config.currentDigest !== update.newDigest\n ) {\n update.updateType = 'digest';\n }\n\n if (pendingChecks) {\n update.pendingChecks = pendingChecks;\n }\n\n // TODO #22198\n if (pendingReleases!.length) {\n update.pendingVersions = pendingReleases!.map((r) => r.version);\n }\n if (!update.newValue || update.newValue === compareValue) {\n if (!config.lockedVersion) {\n continue;\n }\n // istanbul ignore if\n if (rangeStrategy === 'bump') {\n logger.trace(\n {\n packageName: config.packageName,\n currentValue: config.currentValue,\n lockedVersion: config.lockedVersion,\n newVersion,\n },\n 'Skipping bump because newValue is the same',\n );\n continue;\n }\n res.isSingleVersion = true;\n }\n res.isSingleVersion ??=\n is.string(update.newValue) &&\n versioningApi.isSingleVersion(update.newValue);\n // istanbul ignore if\n if (\n config.versioning === dockerVersioningId &&\n update.updateType !== 'rollback' &&\n update.newValue &&\n versioningApi.isVersion(update.newValue) &&\n compareValue &&\n versioningApi.isVersion(compareValue) &&\n versioningApi.isGreaterThan(compareValue, update.newValue)\n ) {\n logger.warn(\n {\n packageName: config.packageName,\n currentValue: config.currentValue,\n compareValue,\n currentVersion: config.currentVersion,\n update,\n allVersionsLength: allVersions.length,\n filteredReleaseVersions: filteredReleases.map((r) => r.version),\n shrinkedViaVulnerability,\n },\n 'Unexpected downgrade detected: skipping',\n );\n } else {\n res.updates.push(update);\n }\n }\n } else if (compareValue) {\n logger.debug(\n `Dependency ${config.packageName} has unsupported/unversioned value ${compareValue} (versioning=${config.versioning})`,\n );\n\n if (!config.pinDigests && !config.currentDigest) {\n logger.debug(\n `Skipping ${config.packageName} because no currentDigest or pinDigests`,\n );\n res.skipReason = 'invalid-value';\n } else {\n delete res.skipReason;\n }\n } else {\n res.skipReason = 'invalid-value';\n }\n\n if (isReplacementRulesConfigured(config)) {\n addReplacementUpdateIfValid(res.updates, config);\n } else if (dependency?.replacementName && dependency.replacementVersion) {\n res.updates.push({\n updateType: 'replacement',\n newName: dependency.replacementName,\n newValue: dependency.replacementVersion,\n });\n }\n\n // Record if the dep is fixed to a version\n if (config.lockedVersion) {\n res.currentVersion = config.lockedVersion;\n res.fixedVersion = config.lockedVersion;\n } else if (compareValue && versioningApi.isSingleVersion(compareValue)) {\n res.fixedVersion = compareValue.replace(regEx(/^=+/), '');\n }\n\n // massage versionCompatibility\n if (\n is.string(config.currentValue) &&\n is.string(compareValue) &&\n is.string(config.versionCompatibility)\n ) {\n for (const update of res.updates) {\n logger.debug({ update });\n if (is.string(config.currentValue) && is.string(update.newValue)) {\n update.newValue = config.currentValue.replace(\n compareValue,\n update.newValue,\n );\n }\n }\n }\n\n // Add digests if necessary\n if (supportsDigests(config.datasource)) {\n if (config.currentDigest) {\n if (!config.digestOneAndOnly || !res.updates.length) {\n // digest update\n res.updates.push({\n updateType: 'digest',\n newValue: config.currentValue,\n });\n }\n } else if (config.pinDigests) {\n // Create a pin only if one doesn't already exists\n if (!res.updates.some((update) => update.updateType === 'pin')) {\n // pin digest\n res.updates.push({\n isPinDigest: true,\n updateType: 'pinDigest',\n newValue: config.currentValue,\n });\n }\n }\n if (versioningApi.valueToVersion) {\n // TODO #22198\n res.currentVersion = versioningApi.valueToVersion(res.currentVersion!);\n for (const update of res.updates || /* istanbul ignore next*/ []) {\n // TODO #22198\n update.newVersion = versioningApi.valueToVersion(update.newVersion!);\n }\n }\n if (res.registryUrl) {\n config.registryUrls = [res.registryUrl];\n }\n\n // update digest for all\n for (const update of res.updates) {\n if (config.pinDigests === true || config.currentDigest) {\n const getDigestConfig: GetDigestInputConfig = {\n ...config,\n registryUrl: update.registryUrl ?? res.registryUrl,\n lookupName: res.lookupName,\n };\n\n // #20304 only pass it for replacement updates, otherwise we get wrong or invalid digest\n if (update.updateType !== 'replacement') {\n delete getDigestConfig.replacementName;\n }\n\n // #20304 don't use lookupName and currentDigest when we replace image name\n if (\n update.updateType === 'replacement' &&\n update.newName !== config.packageName\n ) {\n delete getDigestConfig.lookupName;\n delete getDigestConfig.currentDigest;\n }\n\n // TODO #22198\n update.newDigest ??=\n dependency?.releases.find((r) => r.version === update.newValue)\n ?.newDigest ??\n (await getDigest(getDigestConfig, update.newValue))!;\n\n // If the digest could not be determined, report this as otherwise the\n // update will be omitted later on without notice.\n if (update.newDigest === null) {\n logger.debug(\n {\n packageName: config.packageName,\n currentValue: config.currentValue,\n datasource: config.datasource,\n newValue: update.newValue,\n bucket: update.bucket,\n },\n 'Could not determine new digest for update.',\n );\n\n // Only report a warning if there is a current digest.\n // Context: https://github.com/renovatebot/renovate/pull/20175#discussion_r1102615059.\n if (config.currentDigest) {\n res.warnings.push({\n message: `Could not determine new digest for update (${config.datasource} package ${config.packageName})`,\n topic: config.packageName,\n });\n }\n }\n } else {\n delete update.newDigest;\n }\n if (update.newVersion) {\n const registryUrl = dependency?.releases?.find(\n (release) => release.version === update.newVersion,\n )?.registryUrl;\n if (registryUrl && registryUrl !== res.registryUrl) {\n update.registryUrl = registryUrl;\n }\n }\n }\n }\n\n if (res.updates.length) {\n delete res.skipReason;\n }\n // Strip out any non-changed ones\n res.updates = res.updates\n .filter(\n (update) => update.newValue !== null || config.currentValue === null,\n )\n .filter((update) => update.newDigest !== null)\n .filter(\n (update) =>\n (is.string(update.newName) &&\n update.newName !== config.packageName) ||\n update.isReplacement === true ||\n update.newValue !== config.currentValue ||\n update.isLockfileUpdate === true ||\n // TODO #22198\n (update.newDigest &&\n !update.newDigest.startsWith(config.currentDigest!)),\n );\n // If range strategy specified in config is 'in-range-only', also strip out updates where currentValue !== newValue\n if (config.rangeStrategy === 'in-range-only') {\n res.updates = res.updates.filter(\n (update) => update.newValue === config.currentValue,\n );\n }\n // Handle a weird edge case involving followTag and fallbacks\n if (config.rollbackPrs && config.followTag) {\n res.updates = res.updates.filter(\n (update) =>\n res.updates.length === 1 ||\n /* istanbul ignore next */ update.updateType !== 'rollback',\n );\n }\n } catch (err) /* istanbul ignore next */ {\n if (err instanceof ExternalHostError) {\n return Result.err(err);\n }\n\n if (err instanceof Error && err.message === CONFIG_VALIDATION) {\n return Result.err(err);\n }\n\n logger.error(\n {\n currentDigest: config.currentDigest,\n currentValue: config.currentValue,\n datasource: config.datasource,\n packageName: config.packageName,\n digestOneAndOnly: config.digestOneAndOnly,\n followTag: config.followTag,\n lockedVersion: config.lockedVersion,\n packageFile: config.packageFile,\n pinDigests: config.pinDigests,\n rollbackPrs: config.rollbackPrs,\n isVulnerabilityAlert: config.isVulnerabilityAlert,\n updatePinnedDependencies: config.updatePinnedDependencies,\n err,\n },\n 'lookupUpdates error',\n );\n res.skipReason = 'internal-error';\n }\n return Result.ok(res);\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/process/lookup/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { mergeChildConfig } from '../../../../config';\nimport type { ValidationMessage } from '../../../../config/types';\nimport { CONFIG_VALIDATION } from '../../../../constants/error-messages';\nimport { logger } from '../../../../logger';\nimport type {\n GetDigestInputConfig,\n Release,\n ReleaseResult,\n} from '../../../../modules/datasource';\nimport {\n applyDatasourceFilters,\n getDigest,\n getRawPkgReleases,\n isGetPkgReleasesConfig,\n supportsDigests,\n} from '../../../../modules/datasource';\nimport {\n getDatasourceFor,\n getDefaultVersioning,\n} from '../../../../modules/datasource/common';\nimport { postprocessRelease } from '../../../../modules/datasource/postprocess-release';\nimport { getRangeStrategy } from '../../../../modules/manager';\nimport * as allVersioning from '../../../../modules/versioning';\nimport { id as dockerVersioningId } from '../../../../modules/versioning/docker';\nimport { ExternalHostError } from '../../../../types/errors/external-host-error';\nimport { assignKeys } from '../../../../util/assign-keys';\nimport { getElapsedDays } from '../../../../util/date';\nimport { applyPackageRules } from '../../../../util/package-rules';\nimport { regEx } from '../../../../util/regex';\nimport { Result } from '../../../../util/result';\nimport type { Timestamp } from '../../../../util/timestamp';\nimport { calculateAbandonment } from './abandonment';\nimport { getBucket } from './bucket';\nimport { getCurrentVersion } from './current';\nimport { filterVersions } from './filter';\nimport { filterInternalChecks } from './filter-checks';\nimport { generateUpdate } from './generate';\nimport { getRollbackUpdate } from './rollback';\nimport { calculateLatestReleaseBump } from './timestamps';\nimport type { LookupUpdateConfig, UpdateResult } from './types';\nimport {\n addReplacementUpdateIfValid,\n isReplacementRulesConfigured,\n} from './utils';\n\nasync function getTimestamp(\n config: LookupUpdateConfig,\n versions: Release[],\n version: string,\n versioningApi: allVersioning.VersioningApi,\n): Promise<Timestamp | null | undefined> {\n const currentRelease = versions.find(\n (v) =>\n versioningApi.isValid(v.version) &&\n versioningApi.equals(v.version, version),\n );\n\n if (!currentRelease) {\n return null;\n }\n\n if (currentRelease.releaseTimestamp) {\n return currentRelease.releaseTimestamp;\n }\n\n const remoteRelease = await postprocessRelease(config, currentRelease);\n return remoteRelease?.releaseTimestamp;\n}\n\nexport async function lookupUpdates(\n inconfig: LookupUpdateConfig,\n): Promise<Result<UpdateResult, Error>> {\n let config: LookupUpdateConfig = { ...inconfig };\n config.versioning ??= getDefaultVersioning(config.datasource);\n\n const versioningApi = allVersioning.get(config.versioning);\n\n let dependency: ReleaseResult | null = null;\n const res: UpdateResult = {\n versioning: config.versioning,\n updates: [],\n warnings: [],\n };\n\n try {\n logger.trace(\n {\n dependency: config.packageName,\n currentValue: config.currentValue,\n },\n 'lookupUpdates',\n );\n if (config.currentValue && !is.string(config.currentValue)) {\n // If currentValue is not a string, then it's invalid\n if (config.currentValue) {\n logger.debug(\n `Invalid currentValue for ${config.packageName}: ${JSON.stringify(config.currentValue)} (${typeof config.currentValue})`,\n );\n }\n res.skipReason = 'invalid-value';\n return Result.ok(res);\n }\n if (\n !isGetPkgReleasesConfig(config) ||\n !getDatasourceFor(config.datasource)\n ) {\n res.skipReason = 'invalid-config';\n return Result.ok(res);\n }\n let compareValue = config.currentValue;\n if (\n is.string(config.currentValue) &&\n is.string(config.versionCompatibility)\n ) {\n const versionCompatbilityRegEx = regEx(config.versionCompatibility);\n const regexMatch = versionCompatbilityRegEx.exec(config.currentValue);\n if (regexMatch?.groups) {\n logger.debug(\n {\n versionCompatibility: config.versionCompatibility,\n currentValue: config.currentValue,\n packageName: config.packageName,\n groups: regexMatch.groups,\n },\n 'version compatibility regex match',\n );\n config.currentCompatibility = regexMatch.groups.compatibility;\n compareValue = regexMatch.groups.version;\n } else {\n logger.debug(\n {\n versionCompatibility: config.versionCompatibility,\n currentValue: config.currentValue,\n packageName: config.packageName,\n },\n 'version compatibility regex mismatch',\n );\n }\n }\n\n const isValid =\n is.string(compareValue) && versioningApi.isValid(compareValue);\n\n const unconstrainedValue =\n !!config.lockedVersion && is.undefined(config.currentValue);\n\n if (isValid || unconstrainedValue) {\n if (\n !config.updatePinnedDependencies &&\n // TODO #22198\n versioningApi.isSingleVersion(compareValue!)\n ) {\n res.skipReason = 'is-pinned';\n return Result.ok(res);\n }\n\n const { val: releaseResult, err: lookupError } = await getRawPkgReleases(\n config,\n )\n .transform((res) => calculateLatestReleaseBump(versioningApi, res))\n .transform((res) => calculateAbandonment(res, config))\n .transform((res) => applyDatasourceFilters(res, config))\n .unwrap();\n\n if (lookupError instanceof Error) {\n throw lookupError;\n }\n\n if (lookupError) {\n // If dependency lookup fails then warn and return\n const warning: ValidationMessage = {\n topic: config.packageName,\n message: `Failed to look up ${config.datasource} package ${config.packageName}`,\n };\n logger.debug(\n {\n dependency: config.packageName,\n packageFile: config.packageFile,\n },\n warning.message,\n );\n // TODO: return warnings in own field\n res.warnings.push(warning);\n return Result.ok(res);\n }\n\n dependency = releaseResult;\n\n if (dependency.deprecationMessage) {\n logger.debug(\n `Found deprecationMessage for ${config.datasource} package ${config.packageName}`,\n );\n }\n\n assignKeys(res, dependency, [\n 'deprecationMessage',\n 'sourceUrl',\n 'registryUrl',\n 'sourceDirectory',\n 'homepage',\n 'changelogUrl',\n 'dependencyUrl',\n 'lookupName',\n 'packageScope',\n ]);\n\n const latestVersion = dependency.tags?.latest;\n // Filter out any results from datasource that don't comply with our versioning\n let allVersions = dependency.releases.filter((release) =>\n versioningApi.isVersion(release.version),\n );\n // istanbul ignore if\n if (allVersions.length === 0) {\n const message = `Found no results from datasource that look like a version`;\n logger.info(\n {\n dependency: config.packageName,\n result: dependency,\n },\n message,\n );\n if (!config.currentDigest) {\n return Result.ok(res);\n }\n }\n // Reapply package rules in case we missed something from sourceUrl\n config = await applyPackageRules(\n { ...config, sourceUrl: res.sourceUrl },\n 'source-url',\n );\n if (config.followTag) {\n const taggedVersion = dependency.tags?.[config.followTag];\n if (!taggedVersion) {\n res.warnings.push({\n topic: config.packageName,\n message: `Can't find version with tag ${config.followTag} for ${config.datasource} package ${config.packageName}`,\n });\n return Result.ok(res);\n }\n allVersions = allVersions.filter(\n (v) =>\n v.version === taggedVersion ||\n (v.version === compareValue &&\n versioningApi.isGreaterThan(taggedVersion, compareValue)),\n );\n }\n // Check that existing constraint can be satisfied\n const allSatisfyingVersions = allVersions.filter(\n (v) =>\n // TODO #22198\n unconstrainedValue || versioningApi.matches(v.version, compareValue!),\n );\n if (!allSatisfyingVersions.length) {\n logger.debug(\n `Found no satisfying versions with '${config.versioning}' versioning`,\n );\n }\n\n if (config.rollbackPrs && !allSatisfyingVersions.length) {\n const rollback = getRollbackUpdate(config, allVersions, versioningApi);\n // istanbul ignore if\n if (!rollback) {\n res.warnings.push({\n topic: config.packageName,\n // TODO: types (#22198)\n message: `Can't find version matching ${compareValue!} for ${\n config.datasource\n } package ${config.packageName}`,\n });\n return Result.ok(res);\n }\n res.updates.push(rollback);\n }\n let rangeStrategy = getRangeStrategy(config);\n\n // istanbul ignore next\n if (\n config.isVulnerabilityAlert &&\n rangeStrategy === 'update-lockfile' &&\n !config.lockedVersion\n ) {\n rangeStrategy = 'bump';\n }\n // unconstrained deps with lockedVersion\n if (\n config.isVulnerabilityAlert &&\n !config.currentValue &&\n config.lockedVersion\n ) {\n rangeStrategy = 'update-lockfile';\n }\n const nonDeprecatedVersions = dependency.releases\n .filter((release) => !release.isDeprecated)\n .map((release) => release.version);\n let currentVersion: string;\n if (rangeStrategy === 'update-lockfile') {\n currentVersion = config.lockedVersion!;\n }\n if (allVersions.find((v) => v.version === compareValue)) {\n currentVersion = compareValue!;\n }\n // TODO #22198\n currentVersion ??=\n getCurrentVersion(\n compareValue!,\n config.lockedVersion!,\n versioningApi,\n rangeStrategy!,\n latestVersion!,\n nonDeprecatedVersions,\n ) ??\n getCurrentVersion(\n compareValue!,\n config.lockedVersion!,\n versioningApi,\n rangeStrategy!,\n latestVersion!,\n allVersions.map((v) => v.version),\n )!;\n\n if (!currentVersion) {\n if (!config.lockedVersion) {\n logger.debug(\n `No currentVersion or lockedVersion found for ${config.packageName}`,\n );\n res.skipReason = 'invalid-value';\n }\n return Result.ok(res);\n }\n\n res.currentVersion = currentVersion!;\n const currentVersionTimestamp = await getTimestamp(\n config,\n allVersions,\n currentVersion,\n versioningApi,\n );\n\n if (is.nonEmptyString(currentVersionTimestamp)) {\n res.currentVersionTimestamp = currentVersionTimestamp;\n res.currentVersionAgeInDays = getElapsedDays(currentVersionTimestamp);\n\n if (\n config.packageRules?.some((rule) =>\n is.nonEmptyString(rule.matchCurrentAge),\n )\n ) {\n // Reapply package rules to check matches for matchCurrentAge\n config = await applyPackageRules(\n { ...config, currentVersionTimestamp },\n 'current-timestamp',\n );\n }\n }\n\n if (\n compareValue &&\n currentVersion &&\n rangeStrategy === 'pin' &&\n !versioningApi.isSingleVersion(compareValue)\n ) {\n res.updates.push({\n updateType: 'pin',\n isPin: true,\n // TODO: newValue can be null! (#22198)\n newValue: versioningApi.getNewValue({\n currentValue: compareValue,\n rangeStrategy,\n currentVersion,\n newVersion: currentVersion,\n })!,\n newVersion: currentVersion,\n newMajor: versioningApi.getMajor(currentVersion)!,\n });\n }\n if (rangeStrategy === 'pin') {\n // Fall back to replace once pinning logic is done\n rangeStrategy = 'replace';\n }\n // istanbul ignore if\n if (!versioningApi.isVersion(currentVersion!)) {\n res.skipReason = 'invalid-version';\n return Result.ok(res);\n }\n // Filter latest, unstable, etc\n // TODO #22198\n let filteredReleases = filterVersions(\n config,\n currentVersion!,\n latestVersion!,\n config.rangeStrategy === 'in-range-only'\n ? allSatisfyingVersions\n : allVersions,\n versioningApi,\n ).filter(\n (v) =>\n // Leave only compatible versions\n unconstrainedValue ||\n versioningApi.isCompatible(v.version, compareValue),\n );\n let shrinkedViaVulnerability = false;\n if (config.isVulnerabilityAlert) {\n if (config.vulnerabilityFixVersion) {\n res.vulnerabilityFixVersion = config.vulnerabilityFixVersion;\n res.vulnerabilityFixStrategy = config.vulnerabilityFixStrategy;\n if (versioningApi.isValid(config.vulnerabilityFixVersion)) {\n let fixedFilteredReleases;\n if (versioningApi.isVersion(config.vulnerabilityFixVersion)) {\n // Retain only releases greater than or equal to the fix version\n fixedFilteredReleases = filteredReleases.filter(\n (release) =>\n !versioningApi.isGreaterThan(\n config.vulnerabilityFixVersion!,\n release.version,\n ),\n );\n } else {\n // Retain only releases which max the fix constraint\n fixedFilteredReleases = filteredReleases.filter((release) =>\n versioningApi.matches(\n release.version,\n config.vulnerabilityFixVersion!,\n ),\n );\n }\n // Warn if this filtering results caused zero releases\n if (fixedFilteredReleases.length === 0 && filteredReleases.length) {\n logger.warn(\n {\n releases: filteredReleases,\n vulnerabilityFixVersion: config.vulnerabilityFixVersion,\n packageName: config.packageName,\n },\n 'No releases satisfy vulnerabilityFixVersion',\n );\n }\n // Use the additionally filtered releases\n filteredReleases = fixedFilteredReleases;\n } else {\n logger.warn(\n {\n vulnerabilityFixVersion: config.vulnerabilityFixVersion,\n packageName: config.packageName,\n },\n 'vulnerabilityFixVersion is not valid',\n );\n }\n }\n if (config.vulnerabilityFixStrategy === 'highest') {\n // Don't shrink the list of releases - let Renovate use its normal logic\n logger.once.debug(\n `Using vulnerabilityFixStrategy=highest for ${config.packageName}`,\n );\n } else {\n // Shrink the list of releases to the lowest fixed version\n logger.once.debug(\n `Using vulnerabilityFixStrategy=lowest for ${config.packageName}`,\n );\n filteredReleases = filteredReleases.slice(0, 1);\n shrinkedViaVulnerability = true;\n }\n }\n const buckets: Record<string, [Release]> = {};\n for (const release of filteredReleases) {\n const bucket = getBucket(\n config,\n // TODO #22198\n currentVersion!,\n release.version,\n versioningApi,\n );\n if (is.string(bucket)) {\n if (buckets[bucket]) {\n buckets[bucket].push(release);\n } else {\n buckets[bucket] = [release];\n }\n }\n }\n const depResultConfig = mergeChildConfig(config, res);\n for (const [bucket, releases] of Object.entries(buckets)) {\n const sortedReleases = releases.sort((r1, r2) =>\n versioningApi.sortVersions(r1.version, r2.version),\n );\n const { release, pendingChecks, pendingReleases } =\n await filterInternalChecks(\n depResultConfig,\n versioningApi,\n bucket,\n sortedReleases,\n );\n // istanbul ignore next\n if (!release) {\n return Result.ok(res);\n }\n const newVersion = release.version;\n const update = await generateUpdate(\n config,\n compareValue,\n versioningApi,\n // TODO #22198\n\n rangeStrategy!,\n config.lockedVersion ?? currentVersion!,\n bucket,\n release,\n );\n\n // #29034\n if (\n config.manager === 'gomod' &&\n compareValue?.startsWith('v0.0.0-') &&\n update.newValue?.startsWith('v0.0.0-') &&\n config.currentDigest !== update.newDigest\n ) {\n update.updateType = 'digest';\n }\n\n if (pendingChecks) {\n update.pendingChecks = pendingChecks;\n }\n\n // TODO #22198\n if (pendingReleases!.length) {\n update.pendingVersions = pendingReleases!.map((r) => r.version);\n }\n if (!update.newValue || update.newValue === compareValue) {\n if (!config.lockedVersion) {\n continue;\n }\n // istanbul ignore if\n if (rangeStrategy === 'bump') {\n logger.trace(\n {\n packageName: config.packageName,\n currentValue: config.currentValue,\n lockedVersion: config.lockedVersion,\n newVersion,\n },\n 'Skipping bump because newValue is the same',\n );\n continue;\n }\n res.isSingleVersion = true;\n }\n res.isSingleVersion ??=\n is.string(update.newValue) &&\n versioningApi.isSingleVersion(update.newValue);\n // istanbul ignore if\n if (\n config.versioning === dockerVersioningId &&\n update.updateType !== 'rollback' &&\n update.newValue &&\n versioningApi.isVersion(update.newValue) &&\n compareValue &&\n versioningApi.isVersion(compareValue) &&\n versioningApi.isGreaterThan(compareValue, update.newValue)\n ) {\n logger.warn(\n {\n packageName: config.packageName,\n currentValue: config.currentValue,\n compareValue,\n currentVersion: config.currentVersion,\n update,\n allVersionsLength: allVersions.length,\n filteredReleaseVersions: filteredReleases.map((r) => r.version),\n shrinkedViaVulnerability,\n },\n 'Unexpected downgrade detected: skipping',\n );\n } else {\n res.updates.push(update);\n }\n }\n } else if (compareValue) {\n logger.debug(\n `Dependency ${config.packageName} has unsupported/unversioned value ${compareValue} (versioning=${config.versioning})`,\n );\n\n if (!config.pinDigests && !config.currentDigest) {\n logger.debug(\n `Skipping ${config.packageName} because no currentDigest or pinDigests`,\n );\n res.skipReason = 'invalid-value';\n } else {\n delete res.skipReason;\n }\n } else {\n res.skipReason = 'invalid-value';\n }\n\n if (isReplacementRulesConfigured(config)) {\n addReplacementUpdateIfValid(res.updates, config);\n } else if (dependency?.replacementName && dependency.replacementVersion) {\n res.updates.push({\n updateType: 'replacement',\n newName: dependency.replacementName,\n newValue: dependency.replacementVersion,\n });\n }\n\n // Record if the dep is fixed to a version\n if (config.lockedVersion) {\n res.currentVersion = config.lockedVersion;\n res.fixedVersion = config.lockedVersion;\n } else if (compareValue && versioningApi.isSingleVersion(compareValue)) {\n res.fixedVersion = compareValue.replace(regEx(/^=+/), '');\n }\n\n // massage versionCompatibility\n if (\n is.string(config.currentValue) &&\n is.string(compareValue) &&\n is.string(config.versionCompatibility)\n ) {\n for (const update of res.updates) {\n logger.debug({ update });\n if (is.string(config.currentValue) && is.string(update.newValue)) {\n update.newValue = config.currentValue.replace(\n compareValue,\n update.newValue,\n );\n }\n }\n }\n\n // Add digests if necessary\n if (supportsDigests(config.datasource)) {\n if (config.currentDigest) {\n if (!config.digestOneAndOnly || !res.updates.length) {\n // digest update\n res.updates.push({\n updateType: 'digest',\n newValue: config.currentValue,\n });\n }\n } else if (config.pinDigests) {\n // Create a pin only if one doesn't already exists\n if (!res.updates.some((update) => update.updateType === 'pin')) {\n // pin digest\n res.updates.push({\n isPinDigest: true,\n updateType: 'pinDigest',\n newValue: config.currentValue,\n });\n }\n }\n if (versioningApi.valueToVersion) {\n // TODO #22198\n res.currentVersion = versioningApi.valueToVersion(res.currentVersion!);\n for (const update of res.updates || /* istanbul ignore next*/ []) {\n // TODO #22198\n update.newVersion = versioningApi.valueToVersion(update.newVersion!);\n }\n }\n if (res.registryUrl) {\n config.registryUrls = [res.registryUrl];\n }\n\n // update digest for all\n for (const update of res.updates) {\n if (config.pinDigests === true || config.currentDigest) {\n const getDigestConfig: GetDigestInputConfig = {\n ...config,\n registryUrl: update.registryUrl ?? res.registryUrl,\n lookupName: res.lookupName,\n };\n\n // #20304 only pass it for replacement updates, otherwise we get wrong or invalid digest\n if (update.updateType !== 'replacement') {\n delete getDigestConfig.replacementName;\n }\n\n // #20304 don't use lookupName and currentDigest when we replace image name\n if (\n update.updateType === 'replacement' &&\n update.newName !== config.packageName\n ) {\n delete getDigestConfig.lookupName;\n delete getDigestConfig.currentDigest;\n }\n\n // TODO #22198\n update.newDigest ??=\n dependency?.releases.find((r) => r.version === update.newValue)\n ?.newDigest ??\n (await getDigest(getDigestConfig, update.newValue))!;\n\n // If the digest could not be determined, report this as otherwise the\n // update will be omitted later on without notice.\n if (update.newDigest === null) {\n logger.debug(\n {\n packageName: config.packageName,\n currentValue: config.currentValue,\n datasource: config.datasource,\n newValue: update.newValue,\n bucket: update.bucket,\n },\n 'Could not determine new digest for update.',\n );\n\n // Only report a warning if there is a current digest.\n // Context: https://github.com/renovatebot/renovate/pull/20175#discussion_r1102615059.\n if (config.currentDigest) {\n res.warnings.push({\n message: `Could not determine new digest for update (${config.datasource} package ${config.packageName})`,\n topic: config.packageName,\n });\n }\n }\n } else {\n delete update.newDigest;\n }\n if (update.newVersion) {\n const registryUrl = dependency?.releases?.find(\n (release) => release.version === update.newVersion,\n )?.registryUrl;\n if (registryUrl && registryUrl !== res.registryUrl) {\n update.registryUrl = registryUrl;\n }\n }\n }\n }\n\n if (res.updates.length) {\n delete res.skipReason;\n }\n // Strip out any non-changed ones\n res.updates = res.updates\n .filter(\n (update) => update.newValue !== null || config.currentValue === null,\n )\n .filter((update) => update.newDigest !== null)\n .filter(\n (update) =>\n (is.string(update.newName) &&\n update.newName !== config.packageName) ||\n update.isReplacement === true ||\n update.newValue !== config.currentValue ||\n update.isLockfileUpdate === true ||\n // TODO #22198\n (update.newDigest &&\n !update.newDigest.startsWith(config.currentDigest!)),\n );\n // If range strategy specified in config is 'in-range-only', also strip out updates where currentValue !== newValue\n if (config.rangeStrategy === 'in-range-only') {\n res.updates = res.updates.filter(\n (update) => update.newValue === config.currentValue,\n );\n }\n // Handle a weird edge case involving followTag and fallbacks\n if (config.rollbackPrs && config.followTag) {\n res.updates = res.updates.filter(\n (update) =>\n res.updates.length === 1 ||\n /* istanbul ignore next */ update.updateType !== 'rollback',\n );\n }\n } catch (err) /* istanbul ignore next */ {\n if (err instanceof ExternalHostError) {\n return Result.err(err);\n }\n\n if (err instanceof Error && err.message === CONFIG_VALIDATION) {\n return Result.err(err);\n }\n\n logger.error(\n {\n currentDigest: config.currentDigest,\n currentValue: config.currentValue,\n datasource: config.datasource,\n packageName: config.packageName,\n digestOneAndOnly: config.digestOneAndOnly,\n followTag: config.followTag,\n lockedVersion: config.lockedVersion,\n packageFile: config.packageFile,\n pinDigests: config.pinDigests,\n rollbackPrs: config.rollbackPrs,\n isVulnerabilityAlert: config.isVulnerabilityAlert,\n updatePinnedDependencies: config.updatePinnedDependencies,\n err,\n },\n 'lookupUpdates error',\n );\n res.skipReason = 'internal-error';\n }\n return Result.ok(res);\n}\n"]}
@@ -1,18 +1,18 @@
1
1
  import type { ReleaseResult } from '../../../../modules/datasource/types';
2
2
  import type { VersioningApi } from '../../../../modules/versioning/types';
3
3
  /**
4
- * Calculates the `bumpedAt` value for a set of releases.
4
+ * Calculates the `mostRecentTimestamp` value for a set of releases.
5
5
  *
6
6
  * This function determines the highest release (a release with the highest version)
7
7
  * and checks if its timestamp is also the highest among all releases.
8
- * If so, it assigns that timestamp as the `bumpedAt` value in the result.
8
+ * If so, it assigns that timestamp as the `mostRecentTimestamp` value in the result.
9
9
  * This helps identify if the package was abandoned.
10
10
  *
11
- * The function skips setting `bumpedAt` if:
11
+ * The function skips setting `mostRecentTimestamp` if:
12
12
  * - No releases could be determined as the highest (e.g. for invalid versions)
13
13
  * - The highest release is deprecated
14
14
  * - A lower version has a more recent timestamp than the highest version
15
15
  *
16
- * @returns The `ReleaseResult` value, potentially updated with a `bumpedAt` timestamp
16
+ * @returns The `ReleaseResult` value, potentially updated with a `mostRecentTimestamp` timestamp
17
17
  */
18
18
  export declare function calculateLatestReleaseBump(versioningApi: VersioningApi, releaseResult: ReleaseResult): ReleaseResult;
@@ -5,19 +5,19 @@ const luxon_1 = require("luxon");
5
5
  const logger_1 = require("../../../../logger");
6
6
  const timestamp_1 = require("../../../../util/timestamp");
7
7
  /**
8
- * Calculates the `bumpedAt` value for a set of releases.
8
+ * Calculates the `mostRecentTimestamp` value for a set of releases.
9
9
  *
10
10
  * This function determines the highest release (a release with the highest version)
11
11
  * and checks if its timestamp is also the highest among all releases.
12
- * If so, it assigns that timestamp as the `bumpedAt` value in the result.
12
+ * If so, it assigns that timestamp as the `mostRecentTimestamp` value in the result.
13
13
  * This helps identify if the package was abandoned.
14
14
  *
15
- * The function skips setting `bumpedAt` if:
15
+ * The function skips setting `mostRecentTimestamp` if:
16
16
  * - No releases could be determined as the highest (e.g. for invalid versions)
17
17
  * - The highest release is deprecated
18
18
  * - A lower version has a more recent timestamp than the highest version
19
19
  *
20
- * @returns The `ReleaseResult` value, potentially updated with a `bumpedAt` timestamp
20
+ * @returns The `ReleaseResult` value, potentially updated with a `mostRecentTimestamp` timestamp
21
21
  */
22
22
  function calculateLatestReleaseBump(versioningApi, releaseResult) {
23
23
  const { lookupName } = releaseResult;
@@ -36,15 +36,15 @@ function calculateLatestReleaseBump(versioningApi, releaseResult) {
36
36
  }
37
37
  }
38
38
  catch {
39
- logger_1.logger.trace({ lookupName }, 'Error calculating "bumpedAt" value');
39
+ logger_1.logger.trace({ lookupName }, 'Error calculating "mostRecentTimestamp" value');
40
40
  }
41
41
  }
42
42
  if (!highestRelease) {
43
- logger_1.logger.trace({ lookupName }, 'Could not determine the highest release to calculate "bumpedAt" value');
43
+ logger_1.logger.trace({ lookupName }, 'Could not determine the highest release to calculate "mostRecentTimestamp" value');
44
44
  return releaseResult;
45
45
  }
46
46
  if (highestRelease.isDeprecated) {
47
- logger_1.logger.trace({ lookupName }, 'Highest release is deprecated, skip calculating "bumpedAt" value');
47
+ logger_1.logger.trace({ lookupName }, 'Highest release is deprecated, skip calculating "mostRecentTimestamp" value');
48
48
  return releaseResult;
49
49
  }
50
50
  const highestReleaseTimestamp = (0, timestamp_1.asTimestamp)(highestRelease.releaseTimestamp);
@@ -58,12 +58,12 @@ function calculateLatestReleaseBump(versioningApi, releaseResult) {
58
58
  return luxon_1.DateTime.fromISO(releaseTimestamp) > highestReleaseDatetime;
59
59
  });
60
60
  if (!higherTimestampExists) {
61
- logger_1.logger.trace({ lookupName }, 'Using "bumpedAt" value because it is the highest timestamp of the highest release version');
62
- releaseResult.bumpedAt = highestReleaseTimestamp;
61
+ logger_1.logger.trace({ lookupName }, 'Using "mostRecentTimestamp" value because it is the highest timestamp of the highest release version');
62
+ releaseResult.mostRecentTimestamp = highestReleaseTimestamp;
63
63
  return releaseResult;
64
64
  }
65
65
  }
66
- logger_1.logger.trace({ lookupName }, 'Skip using "bumpedAt" value because the higher timestamp exists for lower version');
66
+ logger_1.logger.trace({ lookupName }, 'Skip using "mostRecentTimestamp" value because the higher timestamp exists for lower version');
67
67
  return releaseResult;
68
68
  }
69
69
  //# sourceMappingURL=timestamps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"timestamps.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/process/lookup/timestamps.ts"],"names":[],"mappings":";;AAwBA,gEAuEC;AA/FD,iCAAiC;AACjC,+CAA4C;AAM5C,0DAAyD;AAEzD;;;;;;;;;;;;;;GAcG;AACH,SAAgB,0BAA0B,CACxC,aAA4B,EAC5B,aAA4B;IAE5B,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;IAErC,IAAI,cAAmC,CAAC;IACxC,KAAK,MAAM,OAAO,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC7C,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,IAAI,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7C,cAAc,GAAG,OAAO,CAAC;YAC3B,CAAC;YAED,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,IACE,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EACpE,CAAC;gBACD,cAAc,GAAG,OAAO,CAAC;gBACzB,SAAS;YACX,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,eAAM,CAAC,KAAK,CAAC,EAAE,UAAU,EAAE,EAAE,oCAAoC,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,EACd,uEAAuE,CACxE,CAAC;QACF,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;QAChC,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,EACd,kEAAkE,CACnE,CAAC;QACF,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,uBAAuB,GAAG,IAAA,uBAAW,EAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC7E,IAAI,uBAAuB,EAAE,CAAC;QAC5B,MAAM,sBAAsB,GAAG,gBAAQ,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACzE,MAAM,qBAAqB,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YACpE,MAAM,gBAAgB,GAAG,IAAA,uBAAW,EAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC/D,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,gBAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,sBAAsB,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3B,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,EACd,2FAA2F,CAC5F,CAAC;YACF,aAAa,CAAC,QAAQ,GAAG,uBAAuB,CAAC;YACjD,OAAO,aAAa,CAAC;QACvB,CAAC;IACH,CAAC;IAED,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,EACd,mFAAmF,CACpF,CAAC;IACF,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["import { DateTime } from 'luxon';\nimport { logger } from '../../../../logger';\nimport type {\n Release,\n ReleaseResult,\n} from '../../../../modules/datasource/types';\nimport type { VersioningApi } from '../../../../modules/versioning/types';\nimport { asTimestamp } from '../../../../util/timestamp';\n\n/**\n * Calculates the `bumpedAt` value for a set of releases.\n *\n * This function determines the highest release (a release with the highest version)\n * and checks if its timestamp is also the highest among all releases.\n * If so, it assigns that timestamp as the `bumpedAt` value in the result.\n * This helps identify if the package was abandoned.\n *\n * The function skips setting `bumpedAt` if:\n * - No releases could be determined as the highest (e.g. for invalid versions)\n * - The highest release is deprecated\n * - A lower version has a more recent timestamp than the highest version\n *\n * @returns The `ReleaseResult` value, potentially updated with a `bumpedAt` timestamp\n */\nexport function calculateLatestReleaseBump(\n versioningApi: VersioningApi,\n releaseResult: ReleaseResult,\n): ReleaseResult {\n const { lookupName } = releaseResult;\n\n let highestRelease: Release | undefined;\n for (const release of releaseResult.releases) {\n if (!highestRelease) {\n if (versioningApi.isVersion(release.version)) {\n highestRelease = release;\n }\n\n continue;\n }\n\n try {\n if (\n versioningApi.isGreaterThan(release.version, highestRelease.version)\n ) {\n highestRelease = release;\n continue;\n }\n } catch {\n logger.trace({ lookupName }, 'Error calculating \"bumpedAt\" value');\n }\n }\n\n if (!highestRelease) {\n logger.trace(\n { lookupName },\n 'Could not determine the highest release to calculate \"bumpedAt\" value',\n );\n return releaseResult;\n }\n\n if (highestRelease.isDeprecated) {\n logger.trace(\n { lookupName },\n 'Highest release is deprecated, skip calculating \"bumpedAt\" value',\n );\n return releaseResult;\n }\n\n const highestReleaseTimestamp = asTimestamp(highestRelease.releaseTimestamp);\n if (highestReleaseTimestamp) {\n const highestReleaseDatetime = DateTime.fromISO(highestReleaseTimestamp);\n const higherTimestampExists = releaseResult.releases.some((release) => {\n const releaseTimestamp = asTimestamp(release.releaseTimestamp);\n if (!releaseTimestamp) {\n return false;\n }\n\n return DateTime.fromISO(releaseTimestamp) > highestReleaseDatetime;\n });\n\n if (!higherTimestampExists) {\n logger.trace(\n { lookupName },\n 'Using \"bumpedAt\" value because it is the highest timestamp of the highest release version',\n );\n releaseResult.bumpedAt = highestReleaseTimestamp;\n return releaseResult;\n }\n }\n\n logger.trace(\n { lookupName },\n 'Skip using \"bumpedAt\" value because the higher timestamp exists for lower version',\n );\n return releaseResult;\n}\n"]}
1
+ {"version":3,"file":"timestamps.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/process/lookup/timestamps.ts"],"names":[],"mappings":";;AAwBA,gEA0EC;AAlGD,iCAAiC;AACjC,+CAA4C;AAM5C,0DAAyD;AAEzD;;;;;;;;;;;;;;GAcG;AACH,SAAgB,0BAA0B,CACxC,aAA4B,EAC5B,aAA4B;IAE5B,MAAM,EAAE,UAAU,EAAE,GAAG,aAAa,CAAC;IAErC,IAAI,cAAmC,CAAC;IACxC,KAAK,MAAM,OAAO,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;QAC7C,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,IAAI,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7C,cAAc,GAAG,OAAO,CAAC;YAC3B,CAAC;YAED,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,IACE,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,EACpE,CAAC;gBACD,cAAc,GAAG,OAAO,CAAC;gBACzB,SAAS;YACX,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,EACd,+CAA+C,CAChD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,EACd,kFAAkF,CACnF,CAAC;QACF,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,IAAI,cAAc,CAAC,YAAY,EAAE,CAAC;QAChC,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,EACd,6EAA6E,CAC9E,CAAC;QACF,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,uBAAuB,GAAG,IAAA,uBAAW,EAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IAC7E,IAAI,uBAAuB,EAAE,CAAC;QAC5B,MAAM,sBAAsB,GAAG,gBAAQ,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACzE,MAAM,qBAAqB,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YACpE,MAAM,gBAAgB,GAAG,IAAA,uBAAW,EAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC/D,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,gBAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,sBAAsB,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3B,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,EACd,sGAAsG,CACvG,CAAC;YACF,aAAa,CAAC,mBAAmB,GAAG,uBAAuB,CAAC;YAC5D,OAAO,aAAa,CAAC;QACvB,CAAC;IACH,CAAC;IAED,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,EACd,8FAA8F,CAC/F,CAAC;IACF,OAAO,aAAa,CAAC;AACvB,CAAC","sourcesContent":["import { DateTime } from 'luxon';\nimport { logger } from '../../../../logger';\nimport type {\n Release,\n ReleaseResult,\n} from '../../../../modules/datasource/types';\nimport type { VersioningApi } from '../../../../modules/versioning/types';\nimport { asTimestamp } from '../../../../util/timestamp';\n\n/**\n * Calculates the `mostRecentTimestamp` value for a set of releases.\n *\n * This function determines the highest release (a release with the highest version)\n * and checks if its timestamp is also the highest among all releases.\n * If so, it assigns that timestamp as the `mostRecentTimestamp` value in the result.\n * This helps identify if the package was abandoned.\n *\n * The function skips setting `mostRecentTimestamp` if:\n * - No releases could be determined as the highest (e.g. for invalid versions)\n * - The highest release is deprecated\n * - A lower version has a more recent timestamp than the highest version\n *\n * @returns The `ReleaseResult` value, potentially updated with a `mostRecentTimestamp` timestamp\n */\nexport function calculateLatestReleaseBump(\n versioningApi: VersioningApi,\n releaseResult: ReleaseResult,\n): ReleaseResult {\n const { lookupName } = releaseResult;\n\n let highestRelease: Release | undefined;\n for (const release of releaseResult.releases) {\n if (!highestRelease) {\n if (versioningApi.isVersion(release.version)) {\n highestRelease = release;\n }\n\n continue;\n }\n\n try {\n if (\n versioningApi.isGreaterThan(release.version, highestRelease.version)\n ) {\n highestRelease = release;\n continue;\n }\n } catch {\n logger.trace(\n { lookupName },\n 'Error calculating \"mostRecentTimestamp\" value',\n );\n }\n }\n\n if (!highestRelease) {\n logger.trace(\n { lookupName },\n 'Could not determine the highest release to calculate \"mostRecentTimestamp\" value',\n );\n return releaseResult;\n }\n\n if (highestRelease.isDeprecated) {\n logger.trace(\n { lookupName },\n 'Highest release is deprecated, skip calculating \"mostRecentTimestamp\" value',\n );\n return releaseResult;\n }\n\n const highestReleaseTimestamp = asTimestamp(highestRelease.releaseTimestamp);\n if (highestReleaseTimestamp) {\n const highestReleaseDatetime = DateTime.fromISO(highestReleaseTimestamp);\n const higherTimestampExists = releaseResult.releases.some((release) => {\n const releaseTimestamp = asTimestamp(release.releaseTimestamp);\n if (!releaseTimestamp) {\n return false;\n }\n\n return DateTime.fromISO(releaseTimestamp) > highestReleaseDatetime;\n });\n\n if (!higherTimestampExists) {\n logger.trace(\n { lookupName },\n 'Using \"mostRecentTimestamp\" value because it is the highest timestamp of the highest release version',\n );\n releaseResult.mostRecentTimestamp = highestReleaseTimestamp;\n return releaseResult;\n }\n }\n\n logger.trace(\n { lookupName },\n 'Skip using \"mostRecentTimestamp\" value because the higher timestamp exists for lower version',\n );\n return releaseResult;\n}\n"]}
@@ -39,6 +39,7 @@ export interface LookupUpdateConfig extends RollbackConfig, FilterConfig, RangeC
39
39
  extractVersion?: string;
40
40
  vulnerabilityFixVersion?: string;
41
41
  vulnerabilityFixStrategy?: string;
42
+ abandonmentThreshold?: string;
42
43
  }
43
44
  export interface UpdateResult {
44
45
  sourceDirectory?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/process/lookup/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n RenovateConfig,\n ValidationMessage,\n} from '../../../../config/types';\nimport type {\n LookupUpdate,\n RangeConfig,\n} from '../../../../modules/manager/types';\nimport type { SkipReason } from '../../../../types';\nimport type { MergeConfidence } from '../../../../util/merge-confidence/types';\n\nexport interface FilterConfig {\n allowedVersions?: string;\n depName?: string;\n followTag?: string;\n ignoreDeprecated?: boolean;\n ignoreUnstable?: boolean;\n respectLatest?: boolean;\n updatePinnedDependencies?: boolean;\n versioning: string;\n}\n\nexport interface RollbackConfig {\n currentValue?: string;\n depName?: string;\n packageFile?: string;\n versioning: string;\n}\n\nexport interface LookupUpdateConfig\n extends RollbackConfig,\n FilterConfig,\n RangeConfig,\n RenovateConfig {\n separateMinorPatch?: boolean;\n digestOneAndOnly?: boolean;\n pinDigests?: boolean;\n rollbackPrs?: boolean;\n currentDigest?: string;\n lockedVersion?: string;\n isVulnerabilityAlert?: boolean;\n separateMajorMinor?: boolean;\n separateMultipleMajor?: boolean;\n separateMultipleMinor?: boolean;\n datasource: string;\n packageName: string;\n minimumConfidence?: MergeConfidence | undefined;\n replacementName?: string;\n replacementNameTemplate?: string;\n replacementVersion?: string;\n replacementVersionTemplate?: string;\n extractVersion?: string;\n vulnerabilityFixVersion?: string;\n vulnerabilityFixStrategy?: string;\n}\n\nexport interface UpdateResult {\n sourceDirectory?: string;\n changelogUrl?: string;\n dependencyUrl?: string;\n homepage?: string;\n deprecationMessage?: string;\n sourceUrl?: string | null;\n currentVersion?: string;\n isSingleVersion?: boolean;\n lookupName?: string;\n skipReason?: SkipReason;\n registryUrl?: string;\n fixedVersion?: string;\n updates: LookupUpdate[];\n warnings: ValidationMessage[];\n versioning?: string;\n currentVersionAgeInDays?: number;\n currentVersionTimestamp?: string;\n vulnerabilityFixVersion?: string;\n vulnerabilityFixStrategy?: string;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/process/lookup/types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n RenovateConfig,\n ValidationMessage,\n} from '../../../../config/types';\nimport type {\n LookupUpdate,\n RangeConfig,\n} from '../../../../modules/manager/types';\nimport type { SkipReason } from '../../../../types';\nimport type { MergeConfidence } from '../../../../util/merge-confidence/types';\n\nexport interface FilterConfig {\n allowedVersions?: string;\n depName?: string;\n followTag?: string;\n ignoreDeprecated?: boolean;\n ignoreUnstable?: boolean;\n respectLatest?: boolean;\n updatePinnedDependencies?: boolean;\n versioning: string;\n}\n\nexport interface RollbackConfig {\n currentValue?: string;\n depName?: string;\n packageFile?: string;\n versioning: string;\n}\n\nexport interface LookupUpdateConfig\n extends RollbackConfig,\n FilterConfig,\n RangeConfig,\n RenovateConfig {\n separateMinorPatch?: boolean;\n digestOneAndOnly?: boolean;\n pinDigests?: boolean;\n rollbackPrs?: boolean;\n currentDigest?: string;\n lockedVersion?: string;\n isVulnerabilityAlert?: boolean;\n separateMajorMinor?: boolean;\n separateMultipleMajor?: boolean;\n separateMultipleMinor?: boolean;\n datasource: string;\n packageName: string;\n minimumConfidence?: MergeConfidence | undefined;\n replacementName?: string;\n replacementNameTemplate?: string;\n replacementVersion?: string;\n replacementVersionTemplate?: string;\n extractVersion?: string;\n vulnerabilityFixVersion?: string;\n vulnerabilityFixStrategy?: string;\n abandonmentThreshold?: string;\n}\n\nexport interface UpdateResult {\n sourceDirectory?: string;\n changelogUrl?: string;\n dependencyUrl?: string;\n homepage?: string;\n deprecationMessage?: string;\n sourceUrl?: string | null;\n currentVersion?: string;\n isSingleVersion?: boolean;\n lookupName?: string;\n skipReason?: SkipReason;\n registryUrl?: string;\n fixedVersion?: string;\n updates: LookupUpdate[];\n warnings: ValidationMessage[];\n versioning?: string;\n currentVersionAgeInDays?: number;\n currentVersionTimestamp?: string;\n vulnerabilityFixVersion?: string;\n vulnerabilityFixStrategy?: string;\n}\n"]}
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": "40.22.0",
4
+ "version": "40.23.0",
5
5
  "type": "commonjs",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -3,6 +3,14 @@
3
3
  "$schema": "http://json-schema.org/draft-04/schema#",
4
4
  "type": "object",
5
5
  "properties": {
6
+ "abandonmentThreshold": {
7
+ "description": "Flags packages that have not been updated within this period as abandoned.",
8
+ "type": [
9
+ "string",
10
+ "null"
11
+ ],
12
+ "default": null
13
+ },
6
14
  "addLabels": {
7
15
  "description": "Labels to add to Pull Request.",
8
16
  "type": "array",