renovate 39.176.3 → 40.0.0-next.1

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 (244) hide show
  1. package/dist/config/migrations/custom/package-rules-migration.js.map +1 -1
  2. package/dist/config/migrations/migrations-service.d.ts +2 -2
  3. package/dist/config/migrations/migrations-service.js.map +1 -1
  4. package/dist/config/migrations/types.d.ts +1 -3
  5. package/dist/config/migrations/types.js.map +1 -1
  6. package/dist/config/options/index.js +1 -1
  7. package/dist/config/options/index.js.map +1 -1
  8. package/dist/config/presets/internal/group.js +0 -1
  9. package/dist/config/presets/internal/group.js.map +1 -1
  10. package/dist/config/presets/types.d.ts +4 -4
  11. package/dist/config/presets/types.js.map +1 -1
  12. package/dist/config-validator.js.map +1 -1
  13. package/dist/logger/utils.js +4 -2
  14. package/dist/logger/utils.js.map +1 -1
  15. package/dist/modules/datasource/artifactory/index.js +1 -1
  16. package/dist/modules/datasource/artifactory/index.js.map +1 -1
  17. package/dist/modules/datasource/conan/index.js +1 -1
  18. package/dist/modules/datasource/conan/index.js.map +1 -1
  19. package/dist/modules/datasource/crate/index.js.map +1 -1
  20. package/dist/modules/datasource/datasource.d.ts +1 -1
  21. package/dist/modules/datasource/datasource.js +3 -1
  22. package/dist/modules/datasource/datasource.js.map +1 -1
  23. package/dist/modules/datasource/deb/common.d.ts +3 -3
  24. package/dist/modules/datasource/deb/common.js.map +1 -1
  25. package/dist/modules/datasource/docker/ecr.js +1 -1
  26. package/dist/modules/datasource/docker/ecr.js.map +1 -1
  27. package/dist/modules/datasource/docker/index.js.map +1 -1
  28. package/dist/modules/datasource/hexpm-bob/index.js +1 -1
  29. package/dist/modules/datasource/hexpm-bob/index.js.map +1 -1
  30. package/dist/modules/datasource/nuget/v2.js +1 -1
  31. package/dist/modules/datasource/nuget/v2.js.map +1 -1
  32. package/dist/modules/datasource/pod/index.js +1 -2
  33. package/dist/modules/datasource/pod/index.js.map +1 -1
  34. package/dist/modules/datasource/rubygems/metadata-cache.js.map +1 -1
  35. package/dist/modules/datasource/sbt-plugin/index.js +1 -2
  36. package/dist/modules/datasource/sbt-plugin/index.js.map +1 -1
  37. package/dist/modules/manager/ansible-galaxy/collections-metadata.js +1 -2
  38. package/dist/modules/manager/ansible-galaxy/collections-metadata.js.map +1 -1
  39. package/dist/modules/manager/asdf/upgradeable-tooling.js +4 -4
  40. package/dist/modules/manager/asdf/upgradeable-tooling.js.map +1 -1
  41. package/dist/modules/manager/batect/extract.js.map +1 -1
  42. package/dist/modules/manager/bazel/artifacts.js +2 -2
  43. package/dist/modules/manager/bazel/artifacts.js.map +1 -1
  44. package/dist/modules/manager/bazel/common.js +1 -2
  45. package/dist/modules/manager/bazel/common.js.map +1 -1
  46. package/dist/modules/manager/bazel/parser.js +1 -1
  47. package/dist/modules/manager/bazel/parser.js.map +1 -1
  48. package/dist/modules/manager/bazel-module/parser/context.d.ts +4 -3
  49. package/dist/modules/manager/bazel-module/parser/context.js +9 -6
  50. package/dist/modules/manager/bazel-module/parser/context.js.map +1 -1
  51. package/dist/modules/manager/bazel-module/parser/extension-tags.js +10 -2
  52. package/dist/modules/manager/bazel-module/parser/extension-tags.js.map +1 -1
  53. package/dist/modules/manager/bazel-module/parser/fragments.d.ts +20 -2
  54. package/dist/modules/manager/bazel-module/parser/fragments.js +8 -2
  55. package/dist/modules/manager/bazel-module/parser/fragments.js.map +1 -1
  56. package/dist/modules/manager/bazel-module/parser/index.js +1 -1
  57. package/dist/modules/manager/bazel-module/parser/index.js.map +1 -1
  58. package/dist/modules/manager/bazel-module/parser/maven.d.ts +16 -0
  59. package/dist/modules/manager/bazel-module/parser/oci.d.ts +8 -0
  60. package/dist/modules/manager/bazel-module/parser/oci.js +4 -1
  61. package/dist/modules/manager/bazel-module/parser/oci.js.map +1 -1
  62. package/dist/modules/manager/bun/artifacts.js +1 -1
  63. package/dist/modules/manager/bun/artifacts.js.map +1 -1
  64. package/dist/modules/manager/bundler/extract.js.map +1 -1
  65. package/dist/modules/manager/cargo/artifacts.js +1 -1
  66. package/dist/modules/manager/cargo/artifacts.js.map +1 -1
  67. package/dist/modules/manager/cargo/extract.js.map +1 -1
  68. package/dist/modules/manager/cargo/types.d.ts +1 -3
  69. package/dist/modules/manager/cargo/types.js.map +1 -1
  70. package/dist/modules/manager/composer/utils.js +4 -4
  71. package/dist/modules/manager/composer/utils.js.map +1 -1
  72. package/dist/modules/manager/deps-edn/extract.js +3 -3
  73. package/dist/modules/manager/deps-edn/extract.js.map +1 -1
  74. package/dist/modules/manager/deps-edn/types.js.map +1 -1
  75. package/dist/modules/manager/dockerfile/extract.js +2 -3
  76. package/dist/modules/manager/dockerfile/extract.js.map +1 -1
  77. package/dist/modules/manager/fingerprint.generated.js +17 -17
  78. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  79. package/dist/modules/manager/flux/types.d.ts +3 -3
  80. package/dist/modules/manager/flux/types.js.map +1 -1
  81. package/dist/modules/manager/git-submodules/types.d.ts +2 -2
  82. package/dist/modules/manager/git-submodules/types.js.map +1 -1
  83. package/dist/modules/manager/github-actions/extract.js +2 -2
  84. package/dist/modules/manager/github-actions/extract.js.map +1 -1
  85. package/dist/modules/manager/glasskube/types.d.ts +2 -2
  86. package/dist/modules/manager/glasskube/types.js.map +1 -1
  87. package/dist/modules/manager/gleam/artifacts.js +1 -1
  88. package/dist/modules/manager/gleam/artifacts.js.map +1 -1
  89. package/dist/modules/manager/gradle/utils.js +6 -2
  90. package/dist/modules/manager/gradle/utils.js.map +1 -1
  91. package/dist/modules/manager/haskell-cabal/extract.js +1 -1
  92. package/dist/modules/manager/haskell-cabal/extract.js.map +1 -1
  93. package/dist/modules/manager/helmfile/artifacts.js +1 -1
  94. package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
  95. package/dist/modules/manager/helmfile/extract.js +2 -2
  96. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  97. package/dist/modules/manager/helmv3/artifacts.js +1 -1
  98. package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
  99. package/dist/modules/manager/helmv3/extract.js.map +1 -1
  100. package/dist/modules/manager/helmv3/utils.js +1 -1
  101. package/dist/modules/manager/helmv3/utils.js.map +1 -1
  102. package/dist/modules/manager/homebrew/util.js +1 -2
  103. package/dist/modules/manager/homebrew/util.js.map +1 -1
  104. package/dist/modules/manager/jsonnet-bundler/extract.js +1 -1
  105. package/dist/modules/manager/jsonnet-bundler/extract.js.map +1 -1
  106. package/dist/modules/manager/leiningen/extract.js +1 -2
  107. package/dist/modules/manager/leiningen/extract.js.map +1 -1
  108. package/dist/modules/manager/maven/extract.js.map +1 -1
  109. package/dist/modules/manager/maven/update.js.map +1 -1
  110. package/dist/modules/manager/mise/upgradeable-tooling.js +7 -7
  111. package/dist/modules/manager/mise/upgradeable-tooling.js.map +1 -1
  112. package/dist/modules/manager/nix/extract.js +1 -1
  113. package/dist/modules/manager/nix/extract.js.map +1 -1
  114. package/dist/modules/manager/npm/extract/pnpm.js +1 -1
  115. package/dist/modules/manager/npm/extract/pnpm.js.map +1 -1
  116. package/dist/modules/manager/npm/post-update/index.js +1 -1
  117. package/dist/modules/manager/npm/post-update/index.js.map +1 -1
  118. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  119. package/dist/modules/manager/npm/update/dependency/index.js +1 -1
  120. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  121. package/dist/modules/manager/nuget/config-formatter.js +1 -2
  122. package/dist/modules/manager/nuget/config-formatter.js.map +1 -1
  123. package/dist/modules/manager/nuget/package-tree.js +1 -1
  124. package/dist/modules/manager/nuget/package-tree.js.map +1 -1
  125. package/dist/modules/manager/nuget/util.js +2 -2
  126. package/dist/modules/manager/nuget/util.js.map +1 -1
  127. package/dist/modules/manager/osgi/extract.js +3 -3
  128. package/dist/modules/manager/osgi/extract.js.map +1 -1
  129. package/dist/modules/manager/pep621/processors/pdm.js +1 -1
  130. package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
  131. package/dist/modules/manager/pep621/processors/uv.js +3 -2
  132. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  133. package/dist/modules/manager/pip-compile/artifacts.js +8 -2
  134. package/dist/modules/manager/pip-compile/artifacts.js.map +1 -1
  135. package/dist/modules/manager/pip-compile/common.d.ts +5 -3
  136. package/dist/modules/manager/pip-compile/common.js +34 -13
  137. package/dist/modules/manager/pip-compile/common.js.map +1 -1
  138. package/dist/modules/manager/pip-compile/extract.js.map +1 -1
  139. package/dist/modules/manager/pip-compile/types.d.ts +1 -0
  140. package/dist/modules/manager/pip-compile/types.js.map +1 -1
  141. package/dist/modules/manager/poetry/artifacts.js +2 -2
  142. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  143. package/dist/modules/manager/pre-commit/types.d.ts +2 -2
  144. package/dist/modules/manager/pre-commit/types.js.map +1 -1
  145. package/dist/modules/manager/pub/artifacts.js +1 -1
  146. package/dist/modules/manager/pub/artifacts.js.map +1 -1
  147. package/dist/modules/manager/swift/extract.js +1 -2
  148. package/dist/modules/manager/swift/extract.js.map +1 -1
  149. package/dist/modules/manager/terraform/extractors/terraform-block/required-provider.js +2 -2
  150. package/dist/modules/manager/terraform/extractors/terraform-block/required-provider.js.map +1 -1
  151. package/dist/modules/manager/terraform/hcl/types.d.ts +1 -3
  152. package/dist/modules/manager/terraform/hcl/types.js.map +1 -1
  153. package/dist/modules/manager/terraform/lockfile/index.js +1 -1
  154. package/dist/modules/manager/terraform/lockfile/index.js.map +1 -1
  155. package/dist/modules/manager/terragrunt/artifacts.js +1 -1
  156. package/dist/modules/manager/terragrunt/artifacts.js.map +1 -1
  157. package/dist/modules/manager/types.d.ts +1 -0
  158. package/dist/modules/manager/types.js.map +1 -1
  159. package/dist/modules/manager/woodpecker/types.d.ts +2 -2
  160. package/dist/modules/manager/woodpecker/types.js.map +1 -1
  161. package/dist/modules/platform/azure/azure-helper.js.map +1 -1
  162. package/dist/modules/platform/azure/index.js +1 -1
  163. package/dist/modules/platform/azure/index.js.map +1 -1
  164. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  165. package/dist/modules/platform/bitbucket/utils.js.map +1 -1
  166. package/dist/modules/platform/bitbucket-server/index.js +2 -2
  167. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  168. package/dist/modules/platform/gerrit/scm.js +1 -1
  169. package/dist/modules/platform/gerrit/scm.js.map +1 -1
  170. package/dist/modules/platform/gitea/index.js +6 -5
  171. package/dist/modules/platform/gitea/index.js.map +1 -1
  172. package/dist/modules/platform/gitea/pr-cache.d.ts +3 -2
  173. package/dist/modules/platform/gitea/pr-cache.js +21 -12
  174. package/dist/modules/platform/gitea/pr-cache.js.map +1 -1
  175. package/dist/modules/platform/github/index.js.map +1 -1
  176. package/dist/modules/platform/gitlab/index.js +20 -16
  177. package/dist/modules/platform/gitlab/index.js.map +1 -1
  178. package/dist/modules/platform/types.d.ts +2 -2
  179. package/dist/modules/platform/types.js.map +1 -1
  180. package/dist/modules/versioning/bazel-module/bzlmod-version.d.ts +1 -1
  181. package/dist/modules/versioning/bazel-module/bzlmod-version.js.map +1 -1
  182. package/dist/modules/versioning/generic.d.ts +2 -6
  183. package/dist/modules/versioning/generic.js.map +1 -1
  184. package/dist/modules/versioning/gradle/compare.d.ts +2 -2
  185. package/dist/modules/versioning/gradle/compare.js.map +1 -1
  186. package/dist/modules/versioning/gradle/index.js +1 -1
  187. package/dist/modules/versioning/gradle/index.js.map +1 -1
  188. package/dist/modules/versioning/pvp/range.js +2 -2
  189. package/dist/modules/versioning/pvp/range.js.map +1 -1
  190. package/dist/modules/versioning/rpm/index.js +5 -5
  191. package/dist/modules/versioning/rpm/index.js.map +1 -1
  192. package/dist/modules/versioning/semver-coerced/index.js +4 -4
  193. package/dist/modules/versioning/semver-coerced/index.js.map +1 -1
  194. package/dist/modules/versioning/types.d.ts +1 -3
  195. package/dist/modules/versioning/types.js.map +1 -1
  196. package/dist/types/git.d.ts +2 -2
  197. package/dist/types/git.js.map +1 -1
  198. package/dist/types/platform/github/index.d.ts +4 -4
  199. package/dist/types/platform/github/index.js.map +1 -1
  200. package/dist/types/platform/gitlab/index.d.ts +2 -2
  201. package/dist/types/platform/gitlab/index.js.map +1 -1
  202. package/dist/util/assign-keys.d.ts +1 -3
  203. package/dist/util/assign-keys.js.map +1 -1
  204. package/dist/util/cache/repository/http-cache.js +1 -1
  205. package/dist/util/cache/repository/http-cache.js.map +1 -1
  206. package/dist/util/exec/types.d.ts +2 -2
  207. package/dist/util/exec/types.js.map +1 -1
  208. package/dist/util/git/auth.js +1 -1
  209. package/dist/util/git/auth.js.map +1 -1
  210. package/dist/util/git/index.d.ts +10 -10
  211. package/dist/util/git/index.js +22 -26
  212. package/dist/util/git/index.js.map +1 -1
  213. package/dist/util/http/bitbucket.js.map +1 -1
  214. package/dist/util/http/cache/abstract-http-cache-provider.js +1 -1
  215. package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
  216. package/dist/util/http/index.js.map +1 -1
  217. package/dist/util/http/types.d.ts +3 -5
  218. package/dist/util/http/types.js.map +1 -1
  219. package/dist/util/pretty-time.js.map +1 -1
  220. package/dist/util/schema-utils.js.map +1 -1
  221. package/dist/util/stats.js +1 -0
  222. package/dist/util/stats.js.map +1 -1
  223. package/dist/workers/repository/dependency-dashboard.js +2 -2
  224. package/dist/workers/repository/dependency-dashboard.js.map +1 -1
  225. package/dist/workers/repository/init/config.d.ts +1 -2
  226. package/dist/workers/repository/init/config.js +0 -13
  227. package/dist/workers/repository/init/config.js.map +1 -1
  228. package/dist/workers/repository/init/merge.d.ts +2 -1
  229. package/dist/workers/repository/init/merge.js +13 -3
  230. package/dist/workers/repository/init/merge.js.map +1 -1
  231. package/dist/workers/repository/model/commit-message.js.map +1 -1
  232. package/dist/workers/repository/process/vulnerabilities.js +3 -1
  233. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  234. package/dist/workers/repository/process/write.js +1 -1
  235. package/dist/workers/repository/process/write.js.map +1 -1
  236. package/dist/workers/repository/reconfigure/validate.js +3 -1
  237. package/dist/workers/repository/reconfigure/validate.js.map +1 -1
  238. package/dist/workers/repository/update/branch/schedule.js +1 -1
  239. package/dist/workers/repository/update/branch/schedule.js.map +1 -1
  240. package/dist/workers/repository/update/pr/body/updates-table.js.map +1 -1
  241. package/dist/workers/repository/updates/generate.js +9 -0
  242. package/dist/workers/repository/updates/generate.js.map +1 -1
  243. package/package.json +32 -25
  244. package/renovate-schema.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../lib/workers/repository/updates/generate.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { DateTime } from 'luxon';\nimport mdTable from 'markdown-table';\nimport semver from 'semver';\nimport { mergeChildConfig } from '../../../config';\nimport { CONFIG_SECRETS_EXPOSED } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport { sanitize } from '../../../util/sanitize';\nimport { safeStringify } from '../../../util/stringify';\nimport * as template from '../../../util/template';\nimport type { Timestamp } from '../../../util/timestamp';\nimport { uniq } from '../../../util/uniq';\nimport type { BranchConfig, BranchUpgradeConfig } from '../../types';\nimport { CommitMessage } from '../model/commit-message';\n\nfunction prettifyVersion(version: string): string {\n if (regEx(/^\\d/).test(version)) {\n return `v${version}`;\n }\n\n return version;\n}\n\nfunction isTypesGroup(branchUpgrades: BranchUpgradeConfig[]): boolean {\n return (\n branchUpgrades.some(({ depName }) => depName?.startsWith('@types/')) &&\n new Set(\n branchUpgrades.map(({ depName }) => depName?.replace(/^@types\\//, '')),\n ).size === 1\n );\n}\n\nfunction sortTypesGroup(upgrades: BranchUpgradeConfig[]): void {\n const isTypesUpgrade = ({ depName }: BranchUpgradeConfig): boolean =>\n !!depName?.startsWith('@types/');\n const regularUpgrades = upgrades.filter(\n (upgrade) => !isTypesUpgrade(upgrade),\n );\n const typesUpgrades = upgrades.filter(isTypesUpgrade);\n upgrades.splice(0, upgrades.length);\n upgrades.push(...regularUpgrades, ...typesUpgrades);\n}\n\nfunction getTableValues(upgrade: BranchUpgradeConfig): string[] | null {\n if (!upgrade.commitBodyTable) {\n return null;\n }\n const { datasource, packageName, depName, currentVersion, newVersion } =\n upgrade;\n const name = packageName ?? depName;\n if (datasource && name && currentVersion && newVersion) {\n return [datasource, name, currentVersion, newVersion];\n }\n logger.trace(\n {\n datasource,\n packageName,\n depName,\n currentVersion,\n newVersion,\n },\n 'Cannot determine table values',\n );\n return null;\n}\n\nfunction compileCommitMessage(upgrade: BranchUpgradeConfig): string {\n if (upgrade.semanticCommits === 'enabled' && !upgrade.commitMessagePrefix) {\n logger.trace('Upgrade has semantic commits enabled');\n let semanticPrefix = upgrade.semanticCommitType;\n if (upgrade.semanticCommitScope) {\n semanticPrefix += `(${template.compile(\n upgrade.semanticCommitScope,\n upgrade,\n )})`;\n }\n upgrade.commitMessagePrefix = CommitMessage.formatPrefix(semanticPrefix!);\n upgrade.toLowerCase =\n regEx(/[A-Z]/).exec(upgrade.semanticCommitType!) === null &&\n !upgrade.semanticCommitType!.startsWith(':');\n }\n\n // Compile a few times in case there are nested templates\n upgrade.commitMessage = template.compile(\n upgrade.commitMessage ?? '',\n upgrade,\n );\n upgrade.commitMessage = template.compile(upgrade.commitMessage, upgrade);\n upgrade.commitMessage = template.compile(upgrade.commitMessage, upgrade);\n // istanbul ignore if\n if (upgrade.commitMessage !== sanitize(upgrade.commitMessage)) {\n logger.debug(\n { branchName: upgrade.branchName },\n 'Secrets exposed in commit message',\n );\n throw new Error(CONFIG_SECRETS_EXPOSED);\n }\n upgrade.commitMessage = upgrade.commitMessage.trim(); // Trim exterior whitespace\n upgrade.commitMessage = upgrade.commitMessage.replace(regEx(/\\s+/g), ' '); // Trim extra whitespace inside string\n upgrade.commitMessage = upgrade.commitMessage.replace(\n regEx(/to vv(\\d)/),\n 'to v$1',\n );\n if (upgrade.toLowerCase && upgrade.commitMessageLowerCase !== 'never') {\n // We only need to lowercase the first line\n const splitMessage = upgrade.commitMessage.split(newlineRegex);\n splitMessage[0] = splitMessage[0].toLowerCase();\n upgrade.commitMessage = splitMessage.join('\\n');\n }\n\n logger.trace(`commitMessage: ` + JSON.stringify(upgrade.commitMessage));\n return upgrade.commitMessage;\n}\n\nfunction compilePrTitle(\n upgrade: BranchUpgradeConfig,\n commitMessage: string,\n): void {\n if (upgrade.prTitle) {\n upgrade.prTitle = template.compile(upgrade.prTitle, upgrade);\n upgrade.prTitle = template.compile(upgrade.prTitle, upgrade);\n upgrade.prTitle = template\n .compile(upgrade.prTitle, upgrade)\n .trim()\n .replace(regEx(/\\s+/g), ' ');\n // istanbul ignore if\n if (upgrade.prTitle !== sanitize(upgrade.prTitle)) {\n logger.debug(\n { branchName: upgrade.branchName },\n 'Secrets were exposed in PR title',\n );\n throw new Error(CONFIG_SECRETS_EXPOSED);\n }\n if (upgrade.toLowerCase && upgrade.commitMessageLowerCase !== 'never') {\n upgrade.prTitle = upgrade.prTitle.toLowerCase();\n }\n } else {\n [upgrade.prTitle] = commitMessage.split(newlineRegex);\n }\n if (!upgrade.prTitleStrict) {\n upgrade.prTitle += upgrade.hasBaseBranches ? ' ({{baseBranch}})' : '';\n if (upgrade.isGroup) {\n upgrade.prTitle +=\n upgrade.updateType === 'major' && upgrade.separateMajorMinor\n ? ' (major)'\n : '';\n upgrade.prTitle +=\n upgrade.updateType === 'minor' && upgrade.separateMinorPatch\n ? ' (minor)'\n : '';\n upgrade.prTitle +=\n upgrade.updateType === 'patch' && upgrade.separateMinorPatch\n ? ' (patch)'\n : '';\n }\n }\n // Compile again to allow for nested templates\n upgrade.prTitle = template.compile(upgrade.prTitle, upgrade);\n logger.trace(`prTitle: ` + JSON.stringify(upgrade.prTitle));\n}\n\n// Sorted by priority, from low to high\nconst semanticCommitTypeByPriority = ['chore', 'ci', 'build', 'fix', 'feat'];\n\nexport function generateBranchConfig(\n upgrades: BranchUpgradeConfig[],\n): BranchConfig {\n let branchUpgrades = upgrades;\n if (!branchUpgrades.every((upgrade) => upgrade.pendingChecks)) {\n // If the branch isn't pending, then remove any upgrades within which *are*\n branchUpgrades = branchUpgrades.filter((upgrade) => !upgrade.pendingChecks);\n }\n logger.trace({ config: branchUpgrades }, 'generateBranchConfig');\n let config: BranchConfig = {\n upgrades: [],\n } as any;\n const hasGroupName = branchUpgrades[0].groupName !== null;\n logger.trace(`hasGroupName: ${hasGroupName}`);\n // Use group settings only if multiple upgrades or lazy grouping is disabled\n const depNames: string[] = [];\n const newValue: string[] = [];\n const toVersions: string[] = [];\n const toValues = new Set<string>();\n const depTypes = new Set<string>();\n for (const upg of branchUpgrades) {\n upg.recreateClosed = upg.recreateWhen === 'always';\n\n if (upg.currentDigest) {\n upg.currentDigestShort =\n upg.currentDigestShort ??\n upg.currentDigest.replace('sha256:', '').substring(0, 7);\n }\n if (upg.newDigest) {\n upg.newDigestShort =\n upg.newDigestShort ||\n upg.newDigest.replace('sha256:', '').substring(0, 7);\n }\n if (upg.isDigest || upg.isPinDigest) {\n upg.displayFrom = upg.currentDigestShort;\n upg.displayTo = upg.newDigestShort;\n } else if (upg.isLockfileUpdate) {\n upg.displayFrom = upg.currentVersion;\n upg.displayTo = upg.newVersion;\n } else if (!upg.isLockFileMaintenance) {\n upg.displayFrom = upg.currentValue;\n upg.displayTo = upg.newValue;\n }\n\n if (upg.isLockFileMaintenance) {\n upg.recreateClosed = upg.recreateWhen !== 'never';\n }\n upg.displayFrom ??= '';\n upg.displayTo ??= '';\n if (!depNames.includes(upg.depName!)) {\n depNames.push(upg.depName!);\n }\n if (!toVersions.includes(upg.newVersion!)) {\n toVersions.push(upg.newVersion!);\n }\n toValues.add(upg.newValue!);\n if (upg.depType) {\n depTypes.add(upg.depType);\n }\n // prettify newVersion and newMajor for printing\n if (upg.newVersion) {\n upg.prettyNewVersion = prettifyVersion(upg.newVersion);\n }\n if (upg.newMajor) {\n upg.prettyNewMajor = `v${upg.newMajor}`;\n }\n if (upg.commitMessageExtra) {\n const extra = template.compile(upg.commitMessageExtra, upg);\n if (!newValue.includes(extra)) {\n newValue.push(extra);\n }\n }\n }\n const groupEligible =\n depNames.length > 1 ||\n toVersions.length > 1 ||\n (!toVersions[0] && newValue.length > 1);\n\n const typesGroup =\n depNames.length > 1 && !hasGroupName && isTypesGroup(branchUpgrades);\n logger.trace(`groupEligible: ${groupEligible}`);\n const useGroupSettings = hasGroupName && groupEligible;\n logger.trace(`useGroupSettings: ${useGroupSettings}`);\n let releaseTimestamp: Timestamp;\n\n if (depTypes.size) {\n config.depTypes = Array.from(depTypes).sort();\n }\n\n for (const branchUpgrade of branchUpgrades) {\n let upgrade: BranchUpgradeConfig = { ...branchUpgrade };\n\n upgrade.depTypes = config.depTypes;\n\n // needs to be done for each upgrade, as we reorder them below\n if (newValue.length > 1 && !groupEligible) {\n upgrade.commitMessageExtra = `to v${toVersions[0]}`;\n }\n\n const pendingVersionsLength = upgrade.pendingVersions?.length;\n if (pendingVersionsLength) {\n upgrade.displayPending = `\\`${upgrade\n .pendingVersions!.slice(-1)\n .pop()!}\\``;\n if (pendingVersionsLength > 1) {\n upgrade.displayPending += ` (+${pendingVersionsLength - 1})`;\n }\n } else {\n upgrade.displayPending = '';\n }\n upgrade.prettyDepType =\n upgrade.prettyDepType ?? upgrade.depType ?? 'dependency';\n if (useGroupSettings) {\n // Now overwrite original config with group config\n upgrade = mergeChildConfig(upgrade, upgrade.group);\n upgrade.isGroup = true;\n } else {\n delete upgrade.groupName;\n }\n // Delete group config regardless of whether it was applied\n delete upgrade.group;\n\n // istanbul ignore else\n if (\n toVersions.length > 1 &&\n toValues.size > 1 &&\n newValue.length > 1 &&\n !typesGroup\n ) {\n logger.trace({ toVersions });\n logger.trace({ toValues });\n delete upgrade.commitMessageExtra;\n upgrade.recreateClosed = upgrade.recreateWhen !== 'never';\n } else if (\n newValue.length > 1 &&\n (upgrade.isDigest || upgrade.isPinDigest)\n ) {\n logger.trace({ newValue });\n delete upgrade.commitMessageExtra;\n upgrade.recreateClosed = upgrade.recreateWhen !== 'never';\n } else if (semver.valid(toVersions[0])) {\n upgrade.isRange = false;\n }\n config.upgrades.push(upgrade);\n if (upgrade.releaseTimestamp) {\n if (releaseTimestamp!) {\n const existingStamp = DateTime.fromISO(releaseTimestamp);\n const upgradeStamp = DateTime.fromISO(upgrade.releaseTimestamp);\n if (upgradeStamp > existingStamp) {\n releaseTimestamp = upgrade.releaseTimestamp;\n }\n } else {\n releaseTimestamp = upgrade.releaseTimestamp;\n }\n }\n }\n\n if (typesGroup) {\n if (config.upgrades[0].depName?.startsWith('@types/')) {\n logger.debug('Found @types - reversing upgrades to use depName in PR');\n sortTypesGroup(config.upgrades);\n config.upgrades[0].recreateClosed = false;\n config.hasTypes = true;\n }\n } else {\n config.upgrades.sort((a, b) => {\n if (a.fileReplacePosition && b.fileReplacePosition) {\n // This is because we need to replace from the bottom of the file up\n return a.fileReplacePosition > b.fileReplacePosition ? -1 : 1;\n }\n\n // make sure that ordering is consistent :\n // items without position will be first in the list.\n if (a.fileReplacePosition) {\n return 1;\n }\n if (b.fileReplacePosition) {\n return -1;\n }\n\n if (a.depName! < b.depName!) {\n return -1;\n }\n if (a.depName! > b.depName!) {\n return 1;\n }\n return 0;\n });\n }\n // Now assign first upgrade's config as branch config\n config = {\n ...config,\n ...config.upgrades[0],\n releaseTimestamp: releaseTimestamp!,\n }; // TODO: fixme (#9666)\n\n // Enable `semanticCommits` if one of the branches has it enabled\n if (\n config.upgrades.some((upgrade) => upgrade.semanticCommits === 'enabled')\n ) {\n config.semanticCommits = 'enabled';\n // Calculate the highest priority `semanticCommitType`\n let highestIndex = -1;\n for (const upgrade of config.upgrades) {\n if (upgrade.semanticCommits === 'enabled' && upgrade.semanticCommitType) {\n const priorityIndex = semanticCommitTypeByPriority.indexOf(\n upgrade.semanticCommitType,\n );\n\n if (priorityIndex > highestIndex) {\n highestIndex = priorityIndex;\n }\n }\n }\n\n if (highestIndex > -1) {\n config.semanticCommitType = semanticCommitTypeByPriority[highestIndex];\n }\n }\n\n // Use templates to generate strings\n const commitMessage = compileCommitMessage(config);\n compilePrTitle(config, commitMessage);\n\n config.dependencyDashboardApproval = config.upgrades.some(\n (upgrade) => upgrade.dependencyDashboardApproval,\n );\n config.dependencyDashboardPrApproval = config.upgrades.some(\n (upgrade) => upgrade.prCreation === 'approval',\n );\n config.prBodyColumns = [\n ...new Set(\n config.upgrades.reduce(\n (existing: string[], upgrade) =>\n existing.concat(upgrade.prBodyColumns!),\n [],\n ),\n ),\n ].filter(is.nonEmptyString);\n // combine excludeCommitPaths for multiple manager experience\n const hasExcludeCommitPaths = config.upgrades.some(\n (u) => u.excludeCommitPaths && u.excludeCommitPaths.length > 0,\n );\n if (hasExcludeCommitPaths) {\n config.excludeCommitPaths = Object.keys(\n config.upgrades.reduce((acc: Record<string, boolean>, upgrade) => {\n if (upgrade.excludeCommitPaths) {\n upgrade.excludeCommitPaths.forEach((p) => {\n acc[p] = true;\n });\n }\n\n return acc;\n }, {}),\n );\n }\n\n config.automerge = config.upgrades.every((upgrade) => upgrade.automerge);\n // combine all labels\n config.labels = [\n ...new Set(\n config.upgrades\n .map((upgrade) => upgrade.labels ?? [])\n .reduce((a, b) => a.concat(b), []),\n ),\n ];\n config.addLabels = [\n ...new Set(\n config.upgrades\n .map((upgrade) => upgrade.addLabels ?? [])\n .reduce((a, b) => a.concat(b), []),\n ),\n ];\n if (config.upgrades.some((upgrade) => upgrade.updateType === 'major')) {\n config.updateType = 'major';\n }\n config.constraints = {};\n for (const upgrade of config.upgrades) {\n if (upgrade.constraints) {\n config.constraints = { ...config.constraints, ...upgrade.constraints };\n }\n }\n\n const tableRows = config.upgrades\n .map(getTableValues)\n .filter((x): x is string[] => is.array(x, is.string));\n\n if (tableRows.length) {\n const table: string[][] = [];\n table.push(['datasource', 'package', 'from', 'to']);\n\n const seenRows = new Set<string>();\n\n for (const row of tableRows) {\n const key = safeStringify(row);\n if (seenRows.has(key)) {\n continue;\n }\n seenRows.add(key);\n table.push(row);\n }\n config.commitMessage += '\\n\\n' + mdTable(table) + '\\n';\n }\n const additionalReviewers = uniq(\n config.upgrades\n .map((upgrade) => upgrade.additionalReviewers)\n .flat()\n .filter(is.nonEmptyString),\n );\n if (additionalReviewers.length > 0) {\n config.additionalReviewers = additionalReviewers;\n }\n return config;\n}\n"]}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../../lib/workers/repository/updates/generate.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { DateTime } from 'luxon';\nimport mdTable from 'markdown-table';\nimport semver from 'semver';\nimport { mergeChildConfig } from '../../../config';\nimport { CONFIG_SECRETS_EXPOSED } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport { sanitize } from '../../../util/sanitize';\nimport { safeStringify } from '../../../util/stringify';\nimport * as template from '../../../util/template';\nimport type { Timestamp } from '../../../util/timestamp';\nimport { uniq } from '../../../util/uniq';\nimport type { BranchConfig, BranchUpgradeConfig } from '../../types';\nimport { CommitMessage } from '../model/commit-message';\n\nfunction prettifyVersion(version: string): string {\n if (regEx(/^\\d/).test(version)) {\n return `v${version}`;\n }\n\n return version;\n}\n\nfunction isTypesGroup(branchUpgrades: BranchUpgradeConfig[]): boolean {\n return (\n branchUpgrades.some(({ depName }) => depName?.startsWith('@types/')) &&\n new Set(\n branchUpgrades.map(({ depName }) => depName?.replace(/^@types\\//, '')),\n ).size === 1\n );\n}\n\nfunction sortTypesGroup(upgrades: BranchUpgradeConfig[]): void {\n const isTypesUpgrade = ({ depName }: BranchUpgradeConfig): boolean =>\n !!depName?.startsWith('@types/');\n const regularUpgrades = upgrades.filter(\n (upgrade) => !isTypesUpgrade(upgrade),\n );\n const typesUpgrades = upgrades.filter(isTypesUpgrade);\n upgrades.splice(0, upgrades.length);\n upgrades.push(...regularUpgrades, ...typesUpgrades);\n}\n\nfunction getTableValues(upgrade: BranchUpgradeConfig): string[] | null {\n if (!upgrade.commitBodyTable) {\n return null;\n }\n const { datasource, packageName, depName, currentVersion, newVersion } =\n upgrade;\n const name = packageName ?? depName;\n if (datasource && name && currentVersion && newVersion) {\n return [datasource, name, currentVersion, newVersion];\n }\n logger.trace(\n {\n datasource,\n packageName,\n depName,\n currentVersion,\n newVersion,\n },\n 'Cannot determine table values',\n );\n return null;\n}\n\nfunction compileCommitMessage(upgrade: BranchUpgradeConfig): string {\n if (upgrade.semanticCommits === 'enabled' && !upgrade.commitMessagePrefix) {\n logger.trace('Upgrade has semantic commits enabled');\n let semanticPrefix = upgrade.semanticCommitType;\n if (upgrade.semanticCommitScope) {\n semanticPrefix += `(${template.compile(\n upgrade.semanticCommitScope,\n upgrade,\n )})`;\n }\n upgrade.commitMessagePrefix = CommitMessage.formatPrefix(semanticPrefix!);\n upgrade.toLowerCase =\n regEx(/[A-Z]/).exec(upgrade.semanticCommitType!) === null &&\n !upgrade.semanticCommitType!.startsWith(':');\n }\n\n // Compile a few times in case there are nested templates\n upgrade.commitMessage = template.compile(\n upgrade.commitMessage ?? '',\n upgrade,\n );\n upgrade.commitMessage = template.compile(upgrade.commitMessage, upgrade);\n upgrade.commitMessage = template.compile(upgrade.commitMessage, upgrade);\n // istanbul ignore if\n if (upgrade.commitMessage !== sanitize(upgrade.commitMessage)) {\n logger.debug(\n { branchName: upgrade.branchName },\n 'Secrets exposed in commit message',\n );\n throw new Error(CONFIG_SECRETS_EXPOSED);\n }\n upgrade.commitMessage = upgrade.commitMessage.trim(); // Trim exterior whitespace\n upgrade.commitMessage = upgrade.commitMessage.replace(regEx(/\\s+/g), ' '); // Trim extra whitespace inside string\n upgrade.commitMessage = upgrade.commitMessage.replace(\n regEx(/to vv(\\d)/),\n 'to v$1',\n );\n if (upgrade.toLowerCase && upgrade.commitMessageLowerCase !== 'never') {\n // We only need to lowercase the first line\n const splitMessage = upgrade.commitMessage.split(newlineRegex);\n splitMessage[0] = splitMessage[0].toLowerCase();\n upgrade.commitMessage = splitMessage.join('\\n');\n }\n\n logger.trace(`commitMessage: ` + JSON.stringify(upgrade.commitMessage));\n return upgrade.commitMessage;\n}\n\nfunction compilePrTitle(\n upgrade: BranchUpgradeConfig,\n commitMessage: string,\n): void {\n if (upgrade.prTitle) {\n upgrade.prTitle = template.compile(upgrade.prTitle, upgrade);\n upgrade.prTitle = template.compile(upgrade.prTitle, upgrade);\n upgrade.prTitle = template\n .compile(upgrade.prTitle, upgrade)\n .trim()\n .replace(regEx(/\\s+/g), ' ');\n // istanbul ignore if\n if (upgrade.prTitle !== sanitize(upgrade.prTitle)) {\n logger.debug(\n { branchName: upgrade.branchName },\n 'Secrets were exposed in PR title',\n );\n throw new Error(CONFIG_SECRETS_EXPOSED);\n }\n if (upgrade.toLowerCase && upgrade.commitMessageLowerCase !== 'never') {\n upgrade.prTitle = upgrade.prTitle.toLowerCase();\n }\n } else {\n [upgrade.prTitle] = commitMessage.split(newlineRegex);\n }\n if (!upgrade.prTitleStrict) {\n upgrade.prTitle += upgrade.hasBaseBranches ? ' ({{baseBranch}})' : '';\n if (upgrade.isGroup) {\n upgrade.prTitle +=\n upgrade.updateType === 'major' && upgrade.separateMajorMinor\n ? ' (major)'\n : '';\n upgrade.prTitle +=\n upgrade.updateType === 'minor' && upgrade.separateMinorPatch\n ? ' (minor)'\n : '';\n upgrade.prTitle +=\n upgrade.updateType === 'patch' && upgrade.separateMinorPatch\n ? ' (patch)'\n : '';\n }\n }\n // Compile again to allow for nested templates\n upgrade.prTitle = template.compile(upgrade.prTitle, upgrade);\n logger.trace(`prTitle: ` + JSON.stringify(upgrade.prTitle));\n}\n\n// Sorted by priority, from low to high\nconst semanticCommitTypeByPriority = ['chore', 'ci', 'build', 'fix', 'feat'];\n\nexport function generateBranchConfig(\n upgrades: BranchUpgradeConfig[],\n): BranchConfig {\n let branchUpgrades = upgrades;\n if (!branchUpgrades.every((upgrade) => upgrade.pendingChecks)) {\n // If the branch isn't pending, then remove any upgrades within which *are*\n branchUpgrades = branchUpgrades.filter((upgrade) => !upgrade.pendingChecks);\n }\n logger.trace({ config: branchUpgrades }, 'generateBranchConfig');\n let config: BranchConfig = {\n upgrades: [],\n } as any;\n const hasGroupName = branchUpgrades[0].groupName !== null;\n logger.trace(`hasGroupName: ${hasGroupName}`);\n // Use group settings only if multiple upgrades or lazy grouping is disabled\n const depNames: string[] = [];\n const newValue: string[] = [];\n const toVersions: string[] = [];\n const toValues = new Set<string>();\n const depTypes = new Set<string>();\n for (const upg of branchUpgrades) {\n upg.recreateClosed = upg.recreateWhen === 'always';\n\n if (upg.currentDigest) {\n upg.currentDigestShort =\n upg.currentDigestShort ??\n upg.currentDigest.replace('sha256:', '').substring(0, 7);\n }\n if (upg.newDigest) {\n upg.newDigestShort =\n upg.newDigestShort ||\n upg.newDigest.replace('sha256:', '').substring(0, 7);\n }\n if (upg.isDigest || upg.isPinDigest) {\n upg.displayFrom = upg.currentDigestShort;\n upg.displayTo = upg.newDigestShort;\n } else if (upg.isLockfileUpdate) {\n upg.displayFrom = upg.currentVersion;\n upg.displayTo = upg.newVersion;\n } else if (!upg.isLockFileMaintenance) {\n upg.displayFrom = upg.currentValue;\n upg.displayTo = upg.newValue;\n }\n\n if (upg.isLockFileMaintenance) {\n upg.recreateClosed = upg.recreateWhen !== 'never';\n }\n upg.displayFrom ??= '';\n upg.displayTo ??= '';\n if (!depNames.includes(upg.depName!)) {\n depNames.push(upg.depName!);\n }\n if (!toVersions.includes(upg.newVersion!)) {\n toVersions.push(upg.newVersion!);\n }\n toValues.add(upg.newValue!);\n if (upg.depType) {\n depTypes.add(upg.depType);\n }\n // prettify newVersion and newMajor for printing\n if (upg.newVersion) {\n upg.prettyNewVersion = prettifyVersion(upg.newVersion);\n }\n if (upg.newMajor) {\n upg.prettyNewMajor = `v${upg.newMajor}`;\n }\n if (upg.commitMessageExtra) {\n const extra = template.compile(upg.commitMessageExtra, upg);\n if (!newValue.includes(extra)) {\n newValue.push(extra);\n }\n }\n }\n const groupEligible =\n depNames.length > 1 ||\n toVersions.length > 1 ||\n (!toVersions[0] && newValue.length > 1);\n\n const typesGroup =\n depNames.length > 1 && !hasGroupName && isTypesGroup(branchUpgrades);\n logger.trace(`groupEligible: ${groupEligible}`);\n const useGroupSettings = hasGroupName && groupEligible;\n logger.trace(`useGroupSettings: ${useGroupSettings}`);\n let releaseTimestamp: Timestamp;\n\n if (depTypes.size) {\n config.depTypes = Array.from(depTypes).sort();\n }\n\n for (const branchUpgrade of branchUpgrades) {\n let upgrade: BranchUpgradeConfig = { ...branchUpgrade };\n\n upgrade.depTypes = config.depTypes;\n\n // needs to be done for each upgrade, as we reorder them below\n if (newValue.length > 1 && !groupEligible) {\n upgrade.commitMessageExtra = `to v${toVersions[0]}`;\n }\n\n const pendingVersionsLength = upgrade.pendingVersions?.length;\n if (pendingVersionsLength) {\n upgrade.displayPending = `\\`${upgrade\n .pendingVersions!.slice(-1)\n .pop()!}\\``;\n if (pendingVersionsLength > 1) {\n upgrade.displayPending += ` (+${pendingVersionsLength - 1})`;\n }\n } else {\n upgrade.displayPending = '';\n }\n upgrade.prettyDepType =\n upgrade.prettyDepType ?? upgrade.depType ?? 'dependency';\n if (useGroupSettings) {\n // Now overwrite original config with group config\n upgrade = mergeChildConfig(upgrade, upgrade.group);\n upgrade.isGroup = true;\n } else {\n delete upgrade.groupName;\n }\n // Delete group config regardless of whether it was applied\n delete upgrade.group;\n\n // istanbul ignore else\n if (\n toVersions.length > 1 &&\n toValues.size > 1 &&\n newValue.length > 1 &&\n !typesGroup\n ) {\n logger.trace({ toVersions });\n logger.trace({ toValues });\n delete upgrade.commitMessageExtra;\n upgrade.recreateClosed = upgrade.recreateWhen !== 'never';\n } else if (\n newValue.length > 1 &&\n (upgrade.isDigest || upgrade.isPinDigest)\n ) {\n logger.trace({ newValue });\n delete upgrade.commitMessageExtra;\n upgrade.recreateClosed = upgrade.recreateWhen !== 'never';\n } else if (semver.valid(toVersions[0])) {\n upgrade.isRange = false;\n }\n config.upgrades.push(upgrade);\n if (upgrade.releaseTimestamp) {\n if (releaseTimestamp!) {\n const existingStamp = DateTime.fromISO(releaseTimestamp);\n const upgradeStamp = DateTime.fromISO(upgrade.releaseTimestamp);\n if (upgradeStamp > existingStamp) {\n releaseTimestamp = upgrade.releaseTimestamp;\n }\n } else {\n releaseTimestamp = upgrade.releaseTimestamp;\n }\n }\n }\n\n if (typesGroup) {\n if (config.upgrades[0].depName?.startsWith('@types/')) {\n logger.debug('Found @types - reversing upgrades to use depName in PR');\n sortTypesGroup(config.upgrades);\n config.upgrades[0].recreateClosed = false;\n config.hasTypes = true;\n }\n } else {\n config.upgrades.sort((a, b) => {\n if (a.fileReplacePosition && b.fileReplacePosition) {\n // This is because we need to replace from the bottom of the file up\n return a.fileReplacePosition > b.fileReplacePosition ? -1 : 1;\n }\n\n // make sure that ordering is consistent :\n // items without position will be first in the list.\n if (a.fileReplacePosition) {\n return 1;\n }\n if (b.fileReplacePosition) {\n return -1;\n }\n\n if (a.depName! < b.depName!) {\n return -1;\n }\n if (a.depName! > b.depName!) {\n return 1;\n }\n return 0;\n });\n }\n // Now assign first upgrade's config as branch config\n config = {\n ...config,\n ...config.upgrades[0],\n releaseTimestamp: releaseTimestamp!,\n }; // TODO: fixme (#9666)\n\n // Enable `semanticCommits` if one of the branches has it enabled\n if (\n config.upgrades.some((upgrade) => upgrade.semanticCommits === 'enabled')\n ) {\n config.semanticCommits = 'enabled';\n // Calculate the highest priority `semanticCommitType`\n let highestIndex = -1;\n for (const upgrade of config.upgrades) {\n if (upgrade.semanticCommits === 'enabled' && upgrade.semanticCommitType) {\n const priorityIndex = semanticCommitTypeByPriority.indexOf(\n upgrade.semanticCommitType,\n );\n\n if (priorityIndex > highestIndex) {\n highestIndex = priorityIndex;\n }\n }\n }\n\n if (highestIndex > -1) {\n config.semanticCommitType = semanticCommitTypeByPriority[highestIndex];\n }\n }\n\n // Use templates to generate strings\n const commitMessage = compileCommitMessage(config);\n compilePrTitle(config, commitMessage);\n\n config.dependencyDashboardApproval = config.upgrades.some(\n (upgrade) => upgrade.dependencyDashboardApproval,\n );\n config.dependencyDashboardPrApproval = config.upgrades.some(\n (upgrade) => upgrade.prCreation === 'approval',\n );\n config.prBodyColumns = [\n ...new Set(\n config.upgrades.reduce(\n (existing: string[], upgrade) =>\n existing.concat(upgrade.prBodyColumns!),\n [],\n ),\n ),\n ].filter(is.nonEmptyString);\n // combine excludeCommitPaths for multiple manager experience\n const hasExcludeCommitPaths = config.upgrades.some(\n (u) => u.excludeCommitPaths && u.excludeCommitPaths.length > 0,\n );\n if (hasExcludeCommitPaths) {\n config.excludeCommitPaths = Object.keys(\n config.upgrades.reduce((acc: Record<string, boolean>, upgrade) => {\n if (upgrade.excludeCommitPaths) {\n upgrade.excludeCommitPaths.forEach((p) => {\n acc[p] = true;\n });\n }\n\n return acc;\n }, {}),\n );\n }\n\n config.automerge = config.upgrades.every((upgrade) => upgrade.automerge);\n // combine all labels\n config.labels = [\n ...new Set(\n config.upgrades\n .map((upgrade) => upgrade.labels ?? [])\n .reduce((a, b) => a.concat(b), []),\n ),\n ];\n config.addLabels = [\n ...new Set(\n config.upgrades\n .map((upgrade) => upgrade.addLabels ?? [])\n .reduce((a, b) => a.concat(b), []),\n ),\n ];\n\n if (config.upgrades.some((upgrade) => upgrade.updateType === 'major')) {\n config.updateType = 'major';\n }\n\n // explicit set `isLockFileMaintenance` for the branch for groups\n if (config.upgrades.some((upgrade) => upgrade.isLockFileMaintenance)) {\n config.isLockFileMaintenance = true;\n // istanbul ignore if: not worth testing\n if (config.upgrades.some((upgrade) => !upgrade.isLockFileMaintenance)) {\n // TODO: warn?\n logger.debug(\n 'Grouping lockfile maintenance with other update types is not supported',\n );\n }\n }\n\n config.constraints = {};\n for (const upgrade of config.upgrades) {\n if (upgrade.constraints) {\n config.constraints = { ...config.constraints, ...upgrade.constraints };\n }\n }\n\n const tableRows = config.upgrades\n .map(getTableValues)\n .filter((x): x is string[] => is.array(x, is.string));\n\n if (tableRows.length) {\n const table: string[][] = [];\n table.push(['datasource', 'package', 'from', 'to']);\n\n const seenRows = new Set<string>();\n\n for (const row of tableRows) {\n const key = safeStringify(row);\n if (seenRows.has(key)) {\n continue;\n }\n seenRows.add(key);\n table.push(row);\n }\n config.commitMessage += '\\n\\n' + mdTable(table) + '\\n';\n }\n const additionalReviewers = uniq(\n config.upgrades\n .map((upgrade) => upgrade.additionalReviewers)\n .flat()\n .filter(is.nonEmptyString),\n );\n if (additionalReviewers.length > 0) {\n config.additionalReviewers = additionalReviewers;\n }\n return config;\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": "39.176.3",
4
+ "version": "40.0.0-next.1",
5
5
  "type": "commonjs",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -22,9 +22,9 @@
22
22
  "doc-fence-check": "node tools/check-fenced-code.mjs",
23
23
  "lint-documentation": "jest --coverage false test/docs/**.spec.ts",
24
24
  "lint-other": "jest --coverage false test/other/**.spec.ts",
25
- "eslint": "eslint . --cache --cache-location .cache/eslint --report-unused-disable-directives",
26
- "eslint-fix": "eslint --cache --cache-location .cache/eslint --fix . --report-unused-disable-directives",
27
- "eslint-ci": "eslint . --cache --cache-strategy content --cache-location .cache/eslint --format gha --report-unused-disable-directives",
25
+ "eslint": "eslint . --cache --cache-location .cache/eslint",
26
+ "eslint-fix": "eslint --cache --cache-location .cache/eslint --fix .",
27
+ "eslint-ci": "eslint . --cache --cache-strategy content --cache-location .cache/eslint --format gha",
28
28
  "generate": "run-s 'generate:*'",
29
29
  "generate:imports": "node tools/generate-imports.mjs",
30
30
  "git-check": "node tools/check-git-version.mjs",
@@ -136,12 +136,12 @@
136
136
  },
137
137
  "homepage": "https://renovatebot.com",
138
138
  "engines": {
139
- "node": "^20.15.1 || ^22.11.0",
140
- "pnpm": "^9.0.0"
139
+ "node": "^22.13.0",
140
+ "pnpm": "^10.0.0"
141
141
  },
142
142
  "volta": {
143
143
  "node": "22.14.0",
144
- "pnpm": "9.15.5"
144
+ "pnpm": "10.4.0"
145
145
  },
146
146
  "dependencies": {
147
147
  "@aws-sdk/client-codecommit": "3.738.0",
@@ -154,10 +154,10 @@
154
154
  "@cdktf/hcl2json": "0.20.11",
155
155
  "@opentelemetry/api": "1.9.0",
156
156
  "@opentelemetry/context-async-hooks": "1.30.1",
157
- "@opentelemetry/exporter-trace-otlp-http": "0.57.1",
158
- "@opentelemetry/instrumentation": "0.57.1",
157
+ "@opentelemetry/exporter-trace-otlp-http": "0.57.2",
158
+ "@opentelemetry/instrumentation": "0.57.2",
159
159
  "@opentelemetry/instrumentation-bunyan": "0.45.0",
160
- "@opentelemetry/instrumentation-http": "0.57.1",
160
+ "@opentelemetry/instrumentation-http": "0.57.2",
161
161
  "@opentelemetry/resources": "1.30.1",
162
162
  "@opentelemetry/sdk-trace-base": "1.30.1",
163
163
  "@opentelemetry/sdk-trace-node": "1.30.1",
@@ -200,7 +200,7 @@
200
200
  "find-packages": "10.0.4",
201
201
  "find-up": "5.0.0",
202
202
  "fs-extra": "11.3.0",
203
- "git-url-parse": "16.0.0",
203
+ "git-url-parse": "16.0.1",
204
204
  "github-url-from-git": "1.5.0",
205
205
  "glob": "11.0.1",
206
206
  "global-agent": "3.0.0",
@@ -261,6 +261,8 @@
261
261
  "re2": "1.21.4"
262
262
  },
263
263
  "devDependencies": {
264
+ "@containerbase/eslint-plugin": "1.1.4",
265
+ "@eslint/js": "9.20.0",
264
266
  "@hyrious/marshal": "0.3.3",
265
267
  "@jest/environment": "29.7.0",
266
268
  "@jest/globals": "29.7.0",
@@ -269,9 +271,7 @@
269
271
  "@jest/types": "29.6.3",
270
272
  "@ls-lint/ls-lint": "2.2.3",
271
273
  "@openpgp/web-stream-tools": "0.1.3",
272
- "@renovate/eslint-plugin": "file:tools/eslint",
273
274
  "@semantic-release/exec": "7.0.3",
274
- "@swc/core": "1.10.16",
275
275
  "@types/auth-header": "1.0.6",
276
276
  "@types/aws4": "1.11.6",
277
277
  "@types/better-sqlite3": "7.6.12",
@@ -284,7 +284,7 @@
284
284
  "@types/common-tags": "1.8.4",
285
285
  "@types/conventional-commits-detector": "1.0.2",
286
286
  "@types/diff": "7.0.1",
287
- "@types/eslint": "8.56.12",
287
+ "@types/eslint-config-prettier": "6.11.3",
288
288
  "@types/fs-extra": "11.0.4",
289
289
  "@types/git-url-parse": "9.0.3",
290
290
  "@types/github-url-from-git": "1.5.3",
@@ -300,8 +300,8 @@
300
300
  "@types/marshal": "0.5.3",
301
301
  "@types/mdast": "3.0.15",
302
302
  "@types/moo": "0.5.10",
303
- "@types/ms": "0.7.34",
304
- "@types/node": "22.13.2",
303
+ "@types/ms": "2.1.0",
304
+ "@types/node": "22.13.4",
305
305
  "@types/parse-link-header": "2.0.3",
306
306
  "@types/punycode": "2.1.4",
307
307
  "@types/semver": "7.5.8",
@@ -313,23 +313,21 @@
313
313
  "@types/url-join": "4.0.3",
314
314
  "@types/validate-npm-package-name": "4.0.2",
315
315
  "@types/xmldoc": "1.1.9",
316
- "@typescript-eslint/eslint-plugin": "8.24.0",
317
- "@typescript-eslint/parser": "8.24.0",
318
316
  "aws-sdk-client-mock": "4.1.0",
319
317
  "callsite": "1.0.0",
320
318
  "common-tags": "1.8.2",
321
319
  "conventional-changelog-conventionalcommits": "8.0.0",
322
320
  "emojibase-data": "16.0.2",
323
- "eslint": "8.57.1",
321
+ "eslint": "9.20.1",
322
+ "eslint-config-prettier": "10.0.1",
324
323
  "eslint-formatter-gha": "1.5.2",
325
- "eslint-import-resolver-typescript": "3.7.0",
324
+ "eslint-import-resolver-typescript": "3.8.0",
326
325
  "eslint-plugin-import": "2.31.0",
327
326
  "eslint-plugin-jest": "28.11.0",
328
- "eslint-plugin-jest-formatting": "3.1.0",
329
327
  "eslint-plugin-promise": "7.2.1",
330
- "eslint-plugin-typescript-enum": "2.1.0",
331
328
  "expect": "29.7.0",
332
329
  "expect-more-jest": "5.5.0",
330
+ "globals": "15.15.0",
333
331
  "graphql": "16.10.0",
334
332
  "husky": "9.1.7",
335
333
  "jest": "29.7.0",
@@ -337,6 +335,7 @@
337
335
  "jest-mock": "29.7.0",
338
336
  "jest-mock-extended": "3.0.7",
339
337
  "jest-snapshot": "29.7.0",
338
+ "lint-staged": "15.4.3",
340
339
  "markdownlint-cli2": "0.17.2",
341
340
  "memfs": "4.17.0",
342
341
  "nock": "13.5.6",
@@ -344,16 +343,17 @@
344
343
  "nyc": "17.1.0",
345
344
  "pretty-format": "29.7.0",
346
345
  "rimraf": "6.0.1",
347
- "semantic-release": "24.2.2",
346
+ "semantic-release": "24.2.3",
348
347
  "tar": "7.4.3",
349
348
  "tmp-promise": "3.0.3",
350
349
  "ts-jest": "29.2.5",
351
350
  "ts-node": "10.9.2",
352
351
  "type-fest": "4.34.1",
353
352
  "typescript": "5.7.3",
353
+ "typescript-eslint": "8.24.1",
354
354
  "unified": "9.2.2"
355
355
  },
356
- "packageManager": "pnpm@9.15.5",
356
+ "packageManager": "pnpm@10.4.0",
357
357
  "files": [
358
358
  "dist",
359
359
  "renovate-schema.json"
@@ -365,8 +365,15 @@
365
365
  "mv",
366
366
  "safe-json-stringify"
367
367
  ],
368
+ "onlyBuiltDependencies": [
369
+ "better-sqlite3",
370
+ "re2"
371
+ ],
368
372
  "overrides": {
369
- "@semantic-release/github>@octokit/plugin-paginate-rest": "11.4.1"
373
+ "@semantic-release/github>@octokit/plugin-paginate-rest": "11.4.2"
374
+ },
375
+ "patchedDependencies": {
376
+ "re2": "patches/re2.patch"
370
377
  }
371
378
  }
372
379
  }
@@ -1090,7 +1090,7 @@
1090
1090
  "dockerSidecarImage": {
1091
1091
  "description": "Change this value to override the default Renovate sidecar image.",
1092
1092
  "type": "string",
1093
- "default": "ghcr.io/containerbase/sidecar:13.7.2"
1093
+ "default": "ghcr.io/containerbase/sidecar:13.7.17"
1094
1094
  },
1095
1095
  "dockerUser": {
1096
1096
  "description": "Set the `UID` and `GID` for Docker-based binaries if you use `binarySource=docker`.",