renovate 42.0.0-next.2 → 42.0.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 (778) hide show
  1. package/dist/config/app-strings.d.ts +2 -1
  2. package/dist/config/app-strings.js +10 -2
  3. package/dist/config/app-strings.js.map +1 -1
  4. package/dist/config/decrypt/bcpgp.d.ts +1 -0
  5. package/dist/config/decrypt/bcpgp.js +57 -0
  6. package/dist/config/decrypt/bcpgp.js.map +1 -0
  7. package/dist/config/decrypt/openpgp.js +0 -4
  8. package/dist/config/decrypt/openpgp.js.map +1 -1
  9. package/dist/config/decrypt.d.ts +1 -1
  10. package/dist/config/decrypt.js +9 -26
  11. package/dist/config/decrypt.js.map +1 -1
  12. package/dist/config/global.js +1 -0
  13. package/dist/config/global.js.map +1 -1
  14. package/dist/config/migrations/custom/schedule-migration.js +9 -11
  15. package/dist/config/migrations/custom/schedule-migration.js.map +1 -1
  16. package/dist/config/migrations/custom/unpublish-safe-migration.js +3 -2
  17. package/dist/config/migrations/custom/unpublish-safe-migration.js.map +1 -1
  18. package/dist/config/options/index.js +49 -2
  19. package/dist/config/options/index.js.map +1 -1
  20. package/dist/config/presets/common.js +1 -0
  21. package/dist/config/presets/common.js.map +1 -1
  22. package/dist/config/presets/internal/abandonments.js +4 -1
  23. package/dist/config/presets/internal/abandonments.js.map +1 -1
  24. package/dist/config/presets/internal/config.js +15 -0
  25. package/dist/config/presets/internal/config.js.map +1 -1
  26. package/dist/config/presets/internal/custom-managers.js +2 -2
  27. package/dist/config/presets/internal/custom-managers.js.map +1 -1
  28. package/dist/config/presets/internal/default.js +12 -1
  29. package/dist/config/presets/internal/default.js.map +1 -1
  30. package/dist/config/presets/internal/group.js +13 -0
  31. package/dist/config/presets/internal/group.js.map +1 -1
  32. package/dist/config/presets/internal/npm.js +1 -8
  33. package/dist/config/presets/internal/npm.js.map +1 -1
  34. package/dist/config/presets/internal/packages.js +5 -1
  35. package/dist/config/presets/internal/packages.js.map +1 -1
  36. package/dist/config/presets/internal/security.js +8 -0
  37. package/dist/config/presets/internal/security.js.map +1 -1
  38. package/dist/config/presets/internal/workarounds.js +2 -2
  39. package/dist/config/presets/internal/workarounds.js.map +1 -1
  40. package/dist/config/schema.d.ts +1 -1
  41. package/dist/config/secrets.js +2 -2
  42. package/dist/config/secrets.js.map +1 -1
  43. package/dist/config/types.d.ts +26 -1
  44. package/dist/config/types.js.map +1 -1
  45. package/dist/config/validation.js +4 -3
  46. package/dist/config/validation.js.map +1 -1
  47. package/dist/config-validator.js +1 -1
  48. package/dist/config-validator.js.map +1 -1
  49. package/dist/constants/platforms.js +1 -0
  50. package/dist/constants/platforms.js.map +1 -1
  51. package/dist/data/monorepo.json +13 -2
  52. package/dist/data/node-js-schedule.json +1 -1
  53. package/dist/data/replacements.json +34 -0
  54. package/dist/data-files.generated.js +3 -3
  55. package/dist/data-files.generated.js.map +1 -1
  56. package/dist/logger/renovate-logger.d.ts +1 -0
  57. package/dist/logger/renovate-logger.js +3 -0
  58. package/dist/logger/renovate-logger.js.map +1 -1
  59. package/dist/logger/utils.js +2 -1
  60. package/dist/logger/utils.js.map +1 -1
  61. package/dist/manager-list.generated.d.ts +1 -1
  62. package/dist/manager-list.generated.js +1 -1
  63. package/dist/manager-list.generated.js.map +1 -1
  64. package/dist/modules/datasource/api.js +4 -0
  65. package/dist/modules/datasource/api.js.map +1 -1
  66. package/dist/modules/datasource/aws-eks-addon/schema.d.ts +1 -8
  67. package/dist/modules/datasource/aws-eks-addon/schema.js +7 -5
  68. package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -1
  69. package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +12 -12
  70. package/dist/modules/datasource/bitrise/schema.d.ts +1 -1
  71. package/dist/modules/datasource/buildpacks-registry/index.js +1 -1
  72. package/dist/modules/datasource/buildpacks-registry/index.js.map +1 -1
  73. package/dist/modules/datasource/buildpacks-registry/schema.d.ts +1 -1
  74. package/dist/modules/datasource/buildpacks-registry/schema.js +2 -2
  75. package/dist/modules/datasource/buildpacks-registry/schema.js.map +1 -1
  76. package/dist/modules/datasource/cdnjs/index.js +2 -2
  77. package/dist/modules/datasource/cdnjs/index.js.map +1 -1
  78. package/dist/modules/datasource/cdnjs/schema.d.ts +8 -8
  79. package/dist/modules/datasource/cdnjs/schema.js +3 -3
  80. package/dist/modules/datasource/cdnjs/schema.js.map +1 -1
  81. package/dist/modules/datasource/conan/schema.d.ts +3 -3
  82. package/dist/modules/datasource/conda/prefix-dev.js +1 -1
  83. package/dist/modules/datasource/conda/prefix-dev.js.map +1 -1
  84. package/dist/modules/datasource/conda/schema/prefix-dev.d.ts +7 -7
  85. package/dist/modules/datasource/conda/schema/prefix-dev.js +2 -2
  86. package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -1
  87. package/dist/modules/datasource/cpan/schema.js +2 -2
  88. package/dist/modules/datasource/cpan/schema.js.map +1 -1
  89. package/dist/modules/datasource/crate/index.js +12 -11
  90. package/dist/modules/datasource/crate/index.js.map +1 -1
  91. package/dist/modules/datasource/crate/schema.d.ts +1 -1
  92. package/dist/modules/datasource/crate/schema.js +2 -2
  93. package/dist/modules/datasource/crate/schema.js.map +1 -1
  94. package/dist/modules/datasource/custom/index.d.ts +1 -1
  95. package/dist/modules/datasource/custom/index.js +2 -2
  96. package/dist/modules/datasource/custom/index.js.map +1 -1
  97. package/dist/modules/datasource/custom/schema.d.ts +1 -1
  98. package/dist/modules/datasource/custom/schema.js +2 -2
  99. package/dist/modules/datasource/custom/schema.js.map +1 -1
  100. package/dist/modules/datasource/docker/index.d.ts +1 -1
  101. package/dist/modules/datasource/docker/index.js +4 -1
  102. package/dist/modules/datasource/docker/index.js.map +1 -1
  103. package/dist/modules/datasource/docker/schema.d.ts +4 -4
  104. package/dist/modules/datasource/forgejo-releases/index.js +3 -3
  105. package/dist/modules/datasource/forgejo-releases/index.js.map +1 -1
  106. package/dist/modules/datasource/forgejo-releases/schema.d.ts +6 -6
  107. package/dist/modules/datasource/forgejo-releases/schema.js +3 -3
  108. package/dist/modules/datasource/forgejo-releases/schema.js.map +1 -1
  109. package/dist/modules/datasource/forgejo-tags/index.js +3 -3
  110. package/dist/modules/datasource/forgejo-tags/index.js.map +1 -1
  111. package/dist/modules/datasource/forgejo-tags/schema.d.ts +4 -4
  112. package/dist/modules/datasource/forgejo-tags/schema.js +7 -7
  113. package/dist/modules/datasource/forgejo-tags/schema.js.map +1 -1
  114. package/dist/modules/datasource/gitea-releases/index.js +3 -3
  115. package/dist/modules/datasource/gitea-releases/index.js.map +1 -1
  116. package/dist/modules/datasource/gitea-releases/schema.d.ts +6 -6
  117. package/dist/modules/datasource/gitea-releases/schema.js +3 -3
  118. package/dist/modules/datasource/gitea-releases/schema.js.map +1 -1
  119. package/dist/modules/datasource/gitea-tags/index.js +3 -3
  120. package/dist/modules/datasource/gitea-tags/index.js.map +1 -1
  121. package/dist/modules/datasource/gitea-tags/schema.d.ts +4 -4
  122. package/dist/modules/datasource/gitea-tags/schema.js +7 -7
  123. package/dist/modules/datasource/gitea-tags/schema.js.map +1 -1
  124. package/dist/modules/datasource/github-runners/index.js +5 -3
  125. package/dist/modules/datasource/github-runners/index.js.map +1 -1
  126. package/dist/modules/datasource/go/base.js +3 -2
  127. package/dist/modules/datasource/go/base.js.map +1 -1
  128. package/dist/modules/datasource/go/common.js +13 -9
  129. package/dist/modules/datasource/go/common.js.map +1 -1
  130. package/dist/modules/datasource/go/index.js +7 -2
  131. package/dist/modules/datasource/go/index.js.map +1 -1
  132. package/dist/modules/datasource/go/releases-direct.d.ts +2 -0
  133. package/dist/modules/datasource/go/releases-direct.js +7 -1
  134. package/dist/modules/datasource/go/releases-direct.js.map +1 -1
  135. package/dist/modules/datasource/go/releases-goproxy.js +1 -1
  136. package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
  137. package/dist/modules/datasource/helm/index.js +1 -1
  138. package/dist/modules/datasource/helm/index.js.map +1 -1
  139. package/dist/modules/datasource/helm/schema.d.ts +2 -2
  140. package/dist/modules/datasource/helm/schema.js +4 -4
  141. package/dist/modules/datasource/helm/schema.js.map +1 -1
  142. package/dist/modules/datasource/jsr/common.d.ts +1 -0
  143. package/dist/modules/datasource/jsr/common.js +12 -0
  144. package/dist/modules/datasource/jsr/common.js.map +1 -0
  145. package/dist/modules/datasource/jsr/index.d.ts +12 -0
  146. package/dist/modules/datasource/jsr/index.js +66 -0
  147. package/dist/modules/datasource/jsr/index.js.map +1 -0
  148. package/dist/modules/datasource/jsr/schema.d.ts +27 -0
  149. package/dist/modules/datasource/jsr/schema.js +20 -0
  150. package/dist/modules/datasource/jsr/schema.js.map +1 -0
  151. package/dist/modules/datasource/jsr/util.d.ts +4 -0
  152. package/dist/modules/datasource/jsr/util.js +53 -0
  153. package/dist/modules/datasource/jsr/util.js.map +1 -0
  154. package/dist/modules/datasource/maven/index.js +14 -0
  155. package/dist/modules/datasource/maven/index.js.map +1 -1
  156. package/dist/modules/datasource/maven/util.js +10 -0
  157. package/dist/modules/datasource/maven/util.js.map +1 -1
  158. package/dist/modules/datasource/npm/get.js +2 -1
  159. package/dist/modules/datasource/npm/get.js.map +1 -1
  160. package/dist/modules/datasource/npm/types.d.ts +7 -0
  161. package/dist/modules/datasource/npm/types.js.map +1 -1
  162. package/dist/modules/datasource/nuget/v3.js +3 -1
  163. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  164. package/dist/modules/datasource/packagist/schema.d.ts +12 -12
  165. package/dist/modules/datasource/pypi/index.d.ts +1 -0
  166. package/dist/modules/datasource/pypi/index.js +1 -0
  167. package/dist/modules/datasource/pypi/index.js.map +1 -1
  168. package/dist/modules/datasource/python-version/schema.d.ts +3 -3
  169. package/dist/modules/datasource/rpm/index.d.ts +7 -0
  170. package/dist/modules/datasource/rpm/index.js +7 -0
  171. package/dist/modules/datasource/rpm/index.js.map +1 -1
  172. package/dist/modules/datasource/types.d.ts +2 -0
  173. package/dist/modules/datasource/types.js.map +1 -1
  174. package/dist/modules/datasource/typst/index.d.ts +11 -0
  175. package/dist/modules/datasource/typst/index.js +65 -0
  176. package/dist/modules/datasource/typst/index.js.map +1 -0
  177. package/dist/modules/datasource/typst/schema.d.ts +31 -0
  178. package/dist/modules/datasource/typst/schema.js +28 -0
  179. package/dist/modules/datasource/typst/schema.js.map +1 -0
  180. package/dist/modules/datasource/unity3d-packages/schema.d.ts +4 -4
  181. package/dist/modules/manager/api.js +6 -0
  182. package/dist/modules/manager/api.js.map +1 -1
  183. package/dist/modules/manager/argocd/extract.js +1 -1
  184. package/dist/modules/manager/argocd/extract.js.map +1 -1
  185. package/dist/modules/manager/argocd/schema.d.ts +1 -1
  186. package/dist/modules/manager/argocd/schema.js +2 -2
  187. package/dist/modules/manager/argocd/schema.js.map +1 -1
  188. package/dist/modules/manager/azure-pipelines/schema.d.ts +1 -1
  189. package/dist/modules/manager/batect/extract.js +1 -1
  190. package/dist/modules/manager/batect/extract.js.map +1 -1
  191. package/dist/modules/manager/batect/schema.d.ts +4 -4
  192. package/dist/modules/manager/batect/schema.js +2 -2
  193. package/dist/modules/manager/batect/schema.js.map +1 -1
  194. package/dist/modules/manager/bazel/rules/docker.d.ts +3 -3
  195. package/dist/modules/manager/bazel/rules/git.d.ts +5 -5
  196. package/dist/modules/manager/bazel/rules/go.d.ts +5 -5
  197. package/dist/modules/manager/bazel/rules/oci.d.ts +3 -3
  198. package/dist/modules/manager/bazel-module/extract.js +5 -0
  199. package/dist/modules/manager/bazel-module/extract.js.map +1 -1
  200. package/dist/modules/manager/bazel-module/parser/context.d.ts +6 -0
  201. package/dist/modules/manager/bazel-module/parser/context.js +42 -2
  202. package/dist/modules/manager/bazel-module/parser/context.js.map +1 -1
  203. package/dist/modules/manager/bazel-module/parser/fragments.d.ts +276 -112
  204. package/dist/modules/manager/bazel-module/parser/fragments.js +70 -32
  205. package/dist/modules/manager/bazel-module/parser/fragments.js.map +1 -1
  206. package/dist/modules/manager/bazel-module/parser/index.js +3 -1
  207. package/dist/modules/manager/bazel-module/parser/index.js.map +1 -1
  208. package/dist/modules/manager/bazel-module/parser/maven.d.ts +27 -27
  209. package/dist/modules/manager/bazel-module/parser/maven.js +7 -7
  210. package/dist/modules/manager/bazel-module/parser/maven.js.map +1 -1
  211. package/dist/modules/manager/bazel-module/parser/oci.d.ts +38 -38
  212. package/dist/modules/manager/bazel-module/parser/oci.js +5 -5
  213. package/dist/modules/manager/bazel-module/parser/oci.js.map +1 -1
  214. package/dist/modules/manager/bazel-module/parser/repo-rules.d.ts +5 -0
  215. package/dist/modules/manager/bazel-module/parser/repo-rules.js +71 -0
  216. package/dist/modules/manager/bazel-module/parser/repo-rules.js.map +1 -0
  217. package/dist/modules/manager/bazel-module/rules-img.d.ts +229 -0
  218. package/dist/modules/manager/bazel-module/rules-img.js +74 -0
  219. package/dist/modules/manager/bazel-module/rules-img.js.map +1 -0
  220. package/dist/modules/manager/bazel-module/rules.d.ts +101 -101
  221. package/dist/modules/manager/bazel-module/rules.js +18 -18
  222. package/dist/modules/manager/bazel-module/rules.js.map +1 -1
  223. package/dist/modules/manager/bitrise/schema.d.ts +1 -1
  224. package/dist/modules/manager/bun/artifacts.js +5 -4
  225. package/dist/modules/manager/bun/artifacts.js.map +1 -1
  226. package/dist/modules/manager/bundler/locked-version.js +44 -23
  227. package/dist/modules/manager/bundler/locked-version.js.map +1 -1
  228. package/dist/modules/manager/cargo/artifacts.js +15 -11
  229. package/dist/modules/manager/cargo/artifacts.js.map +1 -1
  230. package/dist/modules/manager/cargo/extract.js +6 -3
  231. package/dist/modules/manager/cargo/extract.js.map +1 -1
  232. package/dist/modules/manager/cargo/index.d.ts +0 -1
  233. package/dist/modules/manager/cargo/index.js +11 -4
  234. package/dist/modules/manager/cargo/index.js.map +1 -1
  235. package/dist/modules/manager/cargo/locked-version.d.ts +2 -2
  236. package/dist/modules/manager/cargo/locked-version.js +1 -1
  237. package/dist/modules/manager/cargo/locked-version.js.map +1 -1
  238. package/dist/modules/manager/cargo/schema.d.ts +206 -35
  239. package/dist/modules/manager/cargo/schema.js +26 -18
  240. package/dist/modules/manager/cargo/schema.js.map +1 -1
  241. package/dist/modules/manager/cloudbuild/schema.d.ts +1 -1
  242. package/dist/modules/manager/composer/schema.d.ts +98 -98
  243. package/dist/modules/manager/conan/artifacts.js +12 -2
  244. package/dist/modules/manager/conan/artifacts.js.map +1 -1
  245. package/dist/modules/manager/conan/extract.js +1 -1
  246. package/dist/modules/manager/conan/extract.js.map +1 -1
  247. package/dist/modules/manager/conan/index.d.ts +0 -1
  248. package/dist/modules/manager/conan/index.js +0 -1
  249. package/dist/modules/manager/conan/index.js.map +1 -1
  250. package/dist/modules/manager/copier/artifacts.js +5 -5
  251. package/dist/modules/manager/copier/artifacts.js.map +1 -1
  252. package/dist/modules/manager/copier/schema.d.ts +2 -2
  253. package/dist/modules/manager/copier/schema.js +5 -1
  254. package/dist/modules/manager/copier/schema.js.map +1 -1
  255. package/dist/modules/manager/crossplane/extract.js +1 -1
  256. package/dist/modules/manager/crossplane/extract.js.map +1 -1
  257. package/dist/modules/manager/crossplane/schema.d.ts +2 -2
  258. package/dist/modules/manager/crossplane/schema.js +2 -2
  259. package/dist/modules/manager/crossplane/schema.js.map +1 -1
  260. package/dist/modules/manager/crow/extract.d.ts +2 -0
  261. package/dist/modules/manager/crow/extract.js +35 -0
  262. package/dist/modules/manager/crow/extract.js.map +1 -0
  263. package/dist/modules/manager/crow/index.d.ts +8 -0
  264. package/dist/modules/manager/crow/index.js +13 -0
  265. package/dist/modules/manager/crow/index.js.map +1 -0
  266. package/dist/modules/manager/crow/schema.d.ts +66 -0
  267. package/dist/modules/manager/crow/schema.js +15 -0
  268. package/dist/modules/manager/crow/schema.js.map +1 -0
  269. package/dist/modules/manager/custom/jsonata/schema.d.ts +1 -1
  270. package/dist/modules/manager/custom/jsonata/schema.js +4 -4
  271. package/dist/modules/manager/custom/jsonata/schema.js.map +1 -1
  272. package/dist/modules/manager/custom/jsonata/utils.js +3 -3
  273. package/dist/modules/manager/custom/jsonata/utils.js.map +1 -1
  274. package/dist/modules/manager/devbox/extract.js +1 -1
  275. package/dist/modules/manager/devbox/extract.js.map +1 -1
  276. package/dist/modules/manager/devbox/schema.d.ts +1 -1
  277. package/dist/modules/manager/devbox/schema.js +2 -2
  278. package/dist/modules/manager/devbox/schema.js.map +1 -1
  279. package/dist/modules/manager/devcontainer/schema.d.ts +1 -1
  280. package/dist/modules/manager/fingerprint.generated.js +35 -32
  281. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  282. package/dist/modules/manager/fleet/schema.d.ts +16 -16
  283. package/dist/modules/manager/flux/schema.d.ts +24 -24
  284. package/dist/modules/manager/github-actions/community.d.ts +96 -0
  285. package/dist/modules/manager/github-actions/community.js +116 -10
  286. package/dist/modules/manager/github-actions/community.js.map +1 -1
  287. package/dist/modules/manager/github-actions/extract.js +2 -1
  288. package/dist/modules/manager/github-actions/extract.js.map +1 -1
  289. package/dist/modules/manager/github-actions/schema.d.ts +3 -3
  290. package/dist/modules/manager/github-actions/schema.js +7 -7
  291. package/dist/modules/manager/github-actions/schema.js.map +1 -1
  292. package/dist/modules/manager/gitlabci/extract.js +2 -0
  293. package/dist/modules/manager/gitlabci/extract.js.map +1 -1
  294. package/dist/modules/manager/glasskube/schema.d.ts +12 -12
  295. package/dist/modules/manager/gleam/schema.d.ts +4 -4
  296. package/dist/modules/manager/gomod/artifacts.js +8 -4
  297. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  298. package/dist/modules/manager/gradle/parser/dependencies.js +23 -2
  299. package/dist/modules/manager/gradle/parser/dependencies.js.map +1 -1
  300. package/dist/modules/manager/gradle/parser/objects.js +15 -0
  301. package/dist/modules/manager/gradle/parser/objects.js.map +1 -1
  302. package/dist/modules/manager/gradle/parser.js +1 -1
  303. package/dist/modules/manager/gradle/parser.js.map +1 -1
  304. package/dist/modules/manager/helmfile/extract.js +26 -21
  305. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  306. package/dist/modules/manager/helmfile/index.js +4 -1
  307. package/dist/modules/manager/helmfile/index.js.map +1 -1
  308. package/dist/modules/manager/helmfile/schema.d.ts +4 -4
  309. package/dist/modules/manager/maven-wrapper/artifacts.js +1 -1
  310. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  311. package/dist/modules/manager/maven-wrapper/extract.js +4 -4
  312. package/dist/modules/manager/maven-wrapper/extract.js.map +1 -1
  313. package/dist/modules/manager/maven-wrapper/index.d.ts +1 -1
  314. package/dist/modules/manager/maven-wrapper/index.js +5 -2
  315. package/dist/modules/manager/maven-wrapper/index.js.map +1 -1
  316. package/dist/modules/manager/mise/backends.d.ts +2 -2
  317. package/dist/modules/manager/mise/backends.js +1 -1
  318. package/dist/modules/manager/mise/backends.js.map +1 -1
  319. package/dist/modules/manager/mise/extract.js.map +1 -1
  320. package/dist/modules/manager/mise/schema.d.ts +6 -29
  321. package/dist/modules/manager/mise/schema.js +7 -8
  322. package/dist/modules/manager/mise/schema.js.map +1 -1
  323. package/dist/modules/manager/mise/upgradeable-tooling.js +1 -1
  324. package/dist/modules/manager/mise/upgradeable-tooling.js.map +1 -1
  325. package/dist/modules/manager/mise/utils.d.ts +2 -2
  326. package/dist/modules/manager/mise/utils.js +1 -1
  327. package/dist/modules/manager/mise/utils.js.map +1 -1
  328. package/dist/modules/manager/nix/artifacts.js +2 -2
  329. package/dist/modules/manager/nix/artifacts.js.map +1 -1
  330. package/dist/modules/manager/nix/extract.d.ts +2 -2
  331. package/dist/modules/manager/nix/extract.js +79 -67
  332. package/dist/modules/manager/nix/extract.js.map +1 -1
  333. package/dist/modules/manager/nix/index.d.ts +1 -0
  334. package/dist/modules/manager/nix/index.js +3 -1
  335. package/dist/modules/manager/nix/index.js.map +1 -1
  336. package/dist/modules/manager/nix/range.d.ts +3 -0
  337. package/dist/modules/manager/nix/range.js +10 -0
  338. package/dist/modules/manager/nix/range.js.map +1 -0
  339. package/dist/modules/manager/nix/schema.d.ts +42 -28
  340. package/dist/modules/manager/nix/schema.js +4 -1
  341. package/dist/modules/manager/nix/schema.js.map +1 -1
  342. package/dist/modules/manager/npm/extract/common/package-file.d.ts +1 -0
  343. package/dist/modules/manager/npm/extract/common/package-file.js +8 -0
  344. package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
  345. package/dist/modules/manager/npm/extract/index.js +24 -7
  346. package/dist/modules/manager/npm/extract/index.js.map +1 -1
  347. package/dist/modules/manager/npm/extract/pnpm.d.ts +4 -3
  348. package/dist/modules/manager/npm/extract/pnpm.js +1 -1
  349. package/dist/modules/manager/npm/extract/pnpm.js.map +1 -1
  350. package/dist/modules/manager/npm/extract/post/locked-versions.js +6 -0
  351. package/dist/modules/manager/npm/extract/post/locked-versions.js.map +1 -1
  352. package/dist/modules/manager/npm/extract/yarn.d.ts +4 -0
  353. package/dist/modules/manager/npm/extract/yarn.js +35 -0
  354. package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
  355. package/dist/modules/manager/npm/extract/yarnrc.d.ts +4 -4
  356. package/dist/modules/manager/npm/extract/yarnrc.js +1 -2
  357. package/dist/modules/manager/npm/extract/yarnrc.js.map +1 -1
  358. package/dist/modules/manager/npm/index.js +1 -0
  359. package/dist/modules/manager/npm/index.js.map +1 -1
  360. package/dist/modules/manager/npm/post-update/index.js +2 -1
  361. package/dist/modules/manager/npm/post-update/index.js.map +1 -1
  362. package/dist/modules/manager/npm/post-update/npm.js +14 -1
  363. package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
  364. package/dist/modules/manager/npm/post-update/pnpm.js +6 -1
  365. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  366. package/dist/modules/manager/npm/post-update/types.d.ts +5 -5
  367. package/dist/modules/manager/npm/post-update/types.js.map +1 -1
  368. package/dist/modules/manager/npm/post-update/utils.d.ts +3 -4
  369. package/dist/modules/manager/npm/post-update/utils.js +2 -13
  370. package/dist/modules/manager/npm/post-update/utils.js.map +1 -1
  371. package/dist/modules/manager/npm/schema.d.ts +35 -97
  372. package/dist/modules/manager/npm/schema.js +21 -16
  373. package/dist/modules/manager/npm/schema.js.map +1 -1
  374. package/dist/modules/manager/npm/update/dependency/index.js +4 -0
  375. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  376. package/dist/modules/manager/npm/update/dependency/pnpm.js +1 -1
  377. package/dist/modules/manager/npm/update/dependency/pnpm.js.map +1 -1
  378. package/dist/modules/manager/npm/update/dependency/yarn.d.ts +2 -0
  379. package/dist/modules/manager/npm/update/dependency/yarn.js +102 -0
  380. package/dist/modules/manager/npm/update/dependency/yarn.js.map +1 -0
  381. package/dist/modules/manager/npm/utils.d.ts +2 -0
  382. package/dist/modules/manager/npm/utils.js +10 -0
  383. package/dist/modules/manager/npm/utils.js.map +1 -1
  384. package/dist/modules/manager/nuget/extract.js +5 -0
  385. package/dist/modules/manager/nuget/extract.js.map +1 -1
  386. package/dist/modules/manager/nuget/schema.d.ts +3 -56
  387. package/dist/modules/manager/nuget/schema.js +5 -6
  388. package/dist/modules/manager/nuget/schema.js.map +1 -1
  389. package/dist/modules/manager/nvm/extract.js +8 -1
  390. package/dist/modules/manager/nvm/extract.js.map +1 -1
  391. package/dist/modules/manager/ocb/extract.js +1 -1
  392. package/dist/modules/manager/ocb/extract.js.map +1 -1
  393. package/dist/modules/manager/ocb/schema.d.ts +4 -4
  394. package/dist/modules/manager/ocb/schema.js +9 -9
  395. package/dist/modules/manager/ocb/schema.js.map +1 -1
  396. package/dist/modules/manager/pep621/extract.d.ts +1 -1
  397. package/dist/modules/manager/pep621/extract.js +11 -3
  398. package/dist/modules/manager/pep621/extract.js.map +1 -1
  399. package/dist/modules/manager/pep621/processors/abstract.d.ts +10 -0
  400. package/dist/modules/manager/pep621/processors/abstract.js +25 -0
  401. package/dist/modules/manager/pep621/processors/abstract.js.map +1 -0
  402. package/dist/modules/manager/pep621/processors/hatch.d.ts +2 -2
  403. package/dist/modules/manager/pep621/processors/hatch.js +2 -1
  404. package/dist/modules/manager/pep621/processors/hatch.js.map +1 -1
  405. package/dist/modules/manager/pep621/processors/index.d.ts +2 -4
  406. package/dist/modules/manager/pep621/processors/index.js.map +1 -1
  407. package/dist/modules/manager/pep621/processors/pdm.d.ts +3 -2
  408. package/dist/modules/manager/pep621/processors/pdm.js +5 -4
  409. package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
  410. package/dist/modules/manager/pep621/processors/types.d.ts +1 -0
  411. package/dist/modules/manager/pep621/processors/types.js.map +1 -1
  412. package/dist/modules/manager/pep621/processors/uv.d.ts +3 -2
  413. package/dist/modules/manager/pep621/processors/uv.js +8 -6
  414. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  415. package/dist/modules/manager/pep621/schema.d.ts +35 -257
  416. package/dist/modules/manager/pep621/schema.js +17 -21
  417. package/dist/modules/manager/pep621/schema.js.map +1 -1
  418. package/dist/modules/manager/pep723/extract.js +1 -1
  419. package/dist/modules/manager/pep723/extract.js.map +1 -1
  420. package/dist/modules/manager/pep723/schema.d.ts +1 -1
  421. package/dist/modules/manager/pep723/schema.js +2 -2
  422. package/dist/modules/manager/pep723/schema.js.map +1 -1
  423. package/dist/modules/manager/pip-compile/extract.d.ts +1 -1
  424. package/dist/modules/manager/pip-compile/extract.js +9 -6
  425. package/dist/modules/manager/pip-compile/extract.js.map +1 -1
  426. package/dist/modules/manager/pixi/extract.js +4 -7
  427. package/dist/modules/manager/pixi/extract.js.map +1 -1
  428. package/dist/modules/manager/pixi/schema.d.ts +296 -4
  429. package/dist/modules/manager/pixi/schema.js +11 -4
  430. package/dist/modules/manager/pixi/schema.js.map +1 -1
  431. package/dist/modules/manager/poetry/artifacts.js +2 -2
  432. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  433. package/dist/modules/manager/poetry/extract.js +1 -1
  434. package/dist/modules/manager/poetry/extract.js.map +1 -1
  435. package/dist/modules/manager/poetry/index.d.ts +1 -0
  436. package/dist/modules/manager/poetry/index.js +2 -1
  437. package/dist/modules/manager/poetry/index.js.map +1 -1
  438. package/dist/modules/manager/poetry/schema.d.ts +45 -138
  439. package/dist/modules/manager/poetry/schema.js +49 -32
  440. package/dist/modules/manager/poetry/schema.js.map +1 -1
  441. package/dist/modules/manager/poetry/update-locked.js +2 -2
  442. package/dist/modules/manager/poetry/update-locked.js.map +1 -1
  443. package/dist/modules/manager/pre-commit/extract.js +2 -1
  444. package/dist/modules/manager/pre-commit/extract.js.map +1 -1
  445. package/dist/modules/manager/pub/extract.js +38 -8
  446. package/dist/modules/manager/pub/extract.js.map +1 -1
  447. package/dist/modules/manager/pub/index.d.ts +0 -1
  448. package/dist/modules/manager/pub/index.js +0 -3
  449. package/dist/modules/manager/pub/index.js.map +1 -1
  450. package/dist/modules/manager/pub/schema.d.ts +25 -79
  451. package/dist/modules/manager/pub/schema.js +17 -10
  452. package/dist/modules/manager/pub/schema.js.map +1 -1
  453. package/dist/modules/manager/pub/utils.d.ts +3 -3
  454. package/dist/modules/manager/pub/utils.js +2 -2
  455. package/dist/modules/manager/pub/utils.js.map +1 -1
  456. package/dist/modules/manager/quadlet/extract.d.ts +2 -0
  457. package/dist/modules/manager/quadlet/extract.js +54 -0
  458. package/dist/modules/manager/quadlet/extract.js.map +1 -0
  459. package/dist/modules/manager/quadlet/index.d.ts +8 -0
  460. package/dist/modules/manager/quadlet/index.js +13 -0
  461. package/dist/modules/manager/quadlet/index.js.map +1 -0
  462. package/dist/modules/manager/quadlet/schema.d.ts +45 -0
  463. package/dist/modules/manager/quadlet/schema.js +23 -0
  464. package/dist/modules/manager/quadlet/schema.js.map +1 -0
  465. package/dist/modules/manager/renovate-config-presets/extract.js +1 -1
  466. package/dist/modules/manager/renovate-config-presets/extract.js.map +1 -1
  467. package/dist/modules/manager/renovate-config-presets/index.js +1 -1
  468. package/dist/modules/manager/renovate-config-presets/index.js.map +1 -1
  469. package/dist/modules/manager/renovate-config-presets/schema.d.ts +1 -1
  470. package/dist/modules/manager/renovate-config-presets/schema.js +2 -2
  471. package/dist/modules/manager/renovate-config-presets/schema.js.map +1 -1
  472. package/dist/modules/manager/swift/extract.js +25 -9
  473. package/dist/modules/manager/swift/extract.js.map +1 -1
  474. package/dist/modules/manager/swift/index.js +7 -1
  475. package/dist/modules/manager/swift/index.js.map +1 -1
  476. package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js +1 -1
  477. package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js.map +1 -1
  478. package/dist/modules/manager/terraform/lockfile/hash.js +1 -1
  479. package/dist/modules/manager/terraform/lockfile/hash.js.map +1 -1
  480. package/dist/modules/manager/terragrunt/util.js +1 -1
  481. package/dist/modules/manager/terragrunt/util.js.map +1 -1
  482. package/dist/modules/manager/types.d.ts +2 -0
  483. package/dist/modules/manager/types.js.map +1 -1
  484. package/dist/modules/manager/typst/extract.d.ts +2 -0
  485. package/dist/modules/manager/typst/extract.js +31 -0
  486. package/dist/modules/manager/typst/extract.js.map +1 -0
  487. package/dist/modules/manager/typst/index.d.ts +7 -0
  488. package/dist/modules/manager/typst/index.js +12 -0
  489. package/dist/modules/manager/typst/index.js.map +1 -0
  490. package/dist/modules/manager/util.js +3 -2
  491. package/dist/modules/manager/util.js.map +1 -1
  492. package/dist/modules/manager/vendir/schema.d.ts +13 -13
  493. package/dist/modules/platform/azure/azure-helper.js +1 -1
  494. package/dist/modules/platform/azure/azure-helper.js.map +1 -1
  495. package/dist/modules/platform/azure/schema.d.ts +3 -3
  496. package/dist/modules/platform/azure/schema.js +4 -4
  497. package/dist/modules/platform/azure/schema.js.map +1 -1
  498. package/dist/modules/platform/bitbucket/index.js +12 -9
  499. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  500. package/dist/modules/platform/bitbucket/schema.d.ts +7 -7
  501. package/dist/modules/platform/bitbucket/schema.js +7 -7
  502. package/dist/modules/platform/bitbucket/schema.js.map +1 -1
  503. package/dist/modules/platform/bitbucket-server/index.js +7 -6
  504. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  505. package/dist/modules/platform/bitbucket-server/schema.d.ts +16 -17
  506. package/dist/modules/platform/bitbucket-server/schema.js +6 -8
  507. package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
  508. package/dist/modules/platform/codecommit/index.d.ts +0 -8
  509. package/dist/modules/platform/codecommit/index.js +16 -16
  510. package/dist/modules/platform/codecommit/index.js.map +1 -1
  511. package/dist/modules/platform/forgejo/index.js +39 -38
  512. package/dist/modules/platform/forgejo/index.js.map +1 -1
  513. package/dist/modules/platform/forgejo/types.d.ts +3 -2
  514. package/dist/modules/platform/forgejo/types.js.map +1 -1
  515. package/dist/modules/platform/forgejo/utils.d.ts +1 -0
  516. package/dist/modules/platform/forgejo/utils.js +17 -0
  517. package/dist/modules/platform/forgejo/utils.js.map +1 -1
  518. package/dist/modules/platform/gerrit/client.d.ts +1 -1
  519. package/dist/modules/platform/gerrit/client.js +32 -33
  520. package/dist/modules/platform/gerrit/client.js.map +1 -1
  521. package/dist/modules/platform/gerrit/index.d.ts +1 -2
  522. package/dist/modules/platform/gerrit/index.js +8 -16
  523. package/dist/modules/platform/gerrit/index.js.map +1 -1
  524. package/dist/modules/platform/gerrit/scm.js +7 -13
  525. package/dist/modules/platform/gerrit/scm.js.map +1 -1
  526. package/dist/modules/platform/gerrit/types.d.ts +27 -1
  527. package/dist/modules/platform/gerrit/types.js.map +1 -1
  528. package/dist/modules/platform/gitea/index.js +34 -37
  529. package/dist/modules/platform/gitea/index.js.map +1 -1
  530. package/dist/modules/platform/gitea/schema.d.ts +3 -3
  531. package/dist/modules/platform/gitea/schema.js +3 -3
  532. package/dist/modules/platform/gitea/schema.js.map +1 -1
  533. package/dist/modules/platform/gitea/types.d.ts +3 -2
  534. package/dist/modules/platform/gitea/types.js.map +1 -1
  535. package/dist/modules/platform/gitea/utils.d.ts +1 -0
  536. package/dist/modules/platform/gitea/utils.js +17 -0
  537. package/dist/modules/platform/gitea/utils.js.map +1 -1
  538. package/dist/modules/platform/github/index.d.ts +1 -1
  539. package/dist/modules/platform/github/index.js +92 -33
  540. package/dist/modules/platform/github/index.js.map +1 -1
  541. package/dist/modules/platform/github/schema.d.ts +32 -2
  542. package/dist/modules/platform/github/schema.js +32 -8
  543. package/dist/modules/platform/github/schema.js.map +1 -1
  544. package/dist/modules/platform/github/types.d.ts +2 -2
  545. package/dist/modules/platform/github/types.js.map +1 -1
  546. package/dist/modules/platform/github/user.d.ts +2 -1
  547. package/dist/modules/platform/github/user.js.map +1 -1
  548. package/dist/modules/platform/gitlab/index.js.map +1 -1
  549. package/dist/modules/platform/gitlab/pr-cache.d.ts +0 -2
  550. package/dist/modules/platform/gitlab/pr-cache.js +28 -37
  551. package/dist/modules/platform/gitlab/pr-cache.js.map +1 -1
  552. package/dist/modules/platform/gitlab/utils.js +1 -0
  553. package/dist/modules/platform/gitlab/utils.js.map +1 -1
  554. package/dist/modules/platform/types.d.ts +1 -1
  555. package/dist/modules/platform/types.js.map +1 -1
  556. package/dist/modules/versioning/api.js +2 -0
  557. package/dist/modules/versioning/api.js.map +1 -1
  558. package/dist/modules/versioning/cargo/index.js +7 -7
  559. package/dist/modules/versioning/cargo/index.js.map +1 -1
  560. package/dist/modules/versioning/composer/index.js +0 -4
  561. package/dist/modules/versioning/composer/index.js.map +1 -1
  562. package/dist/modules/versioning/conan/index.js +1 -1
  563. package/dist/modules/versioning/conan/index.js.map +1 -1
  564. package/dist/modules/versioning/conda/index.d.ts +2 -0
  565. package/dist/modules/versioning/conda/index.js +4 -4
  566. package/dist/modules/versioning/conda/index.js.map +1 -1
  567. package/dist/modules/versioning/debian/index.d.ts +1 -1
  568. package/dist/modules/versioning/debian/index.js +2 -17
  569. package/dist/modules/versioning/debian/index.js.map +1 -1
  570. package/dist/modules/versioning/gradle/index.js +2 -2
  571. package/dist/modules/versioning/gradle/index.js.map +1 -1
  572. package/dist/modules/versioning/hashicorp/index.js +0 -1
  573. package/dist/modules/versioning/hashicorp/index.js.map +1 -1
  574. package/dist/modules/versioning/helm/index.js +0 -1
  575. package/dist/modules/versioning/helm/index.js.map +1 -1
  576. package/dist/modules/versioning/hex/index.js +0 -1
  577. package/dist/modules/versioning/hex/index.js.map +1 -1
  578. package/dist/modules/versioning/ivy/index.js +1 -2
  579. package/dist/modules/versioning/ivy/index.js.map +1 -1
  580. package/dist/modules/versioning/npm/index.js +0 -1
  581. package/dist/modules/versioning/npm/index.js.map +1 -1
  582. package/dist/modules/versioning/npm/range.js +2 -3
  583. package/dist/modules/versioning/npm/range.js.map +1 -1
  584. package/dist/modules/versioning/nuget/index.js +8 -4
  585. package/dist/modules/versioning/nuget/index.js.map +1 -1
  586. package/dist/modules/versioning/pep440/index.js +1 -1
  587. package/dist/modules/versioning/pep440/index.js.map +1 -1
  588. package/dist/modules/versioning/pep440/range.d.ts +1 -0
  589. package/dist/modules/versioning/pep440/range.js +4 -3
  590. package/dist/modules/versioning/pep440/range.js.map +1 -1
  591. package/dist/modules/versioning/poetry/index.js +0 -4
  592. package/dist/modules/versioning/poetry/index.js.map +1 -1
  593. package/dist/modules/versioning/rez/index.js +0 -1
  594. package/dist/modules/versioning/rez/index.js.map +1 -1
  595. package/dist/modules/versioning/ruby/index.js +5 -5
  596. package/dist/modules/versioning/ruby/index.js.map +1 -1
  597. package/dist/modules/versioning/ruby/strategies/index.d.ts +1 -2
  598. package/dist/modules/versioning/ruby/strategies/index.js +1 -3
  599. package/dist/modules/versioning/ruby/strategies/index.js.map +1 -1
  600. package/dist/modules/versioning/semver-partial/index.d.ts +8 -0
  601. package/dist/modules/versioning/semver-partial/index.js +211 -0
  602. package/dist/modules/versioning/semver-partial/index.js.map +1 -0
  603. package/dist/modules/versioning/swift/index.js +0 -1
  604. package/dist/modules/versioning/swift/index.js.map +1 -1
  605. package/dist/modules/versioning/types.d.ts +5 -0
  606. package/dist/modules/versioning/types.js.map +1 -1
  607. package/dist/renovate.js +0 -0
  608. package/dist/util/cache/package/decorator.js +20 -9
  609. package/dist/util/cache/package/decorator.js.map +1 -1
  610. package/dist/util/cache/package/file.d.ts +1 -1
  611. package/dist/util/cache/package/file.js +3 -3
  612. package/dist/util/cache/package/file.js.map +1 -1
  613. package/dist/util/cache/package/index.d.ts +9 -2
  614. package/dist/util/cache/package/index.js +19 -4
  615. package/dist/util/cache/package/index.js.map +1 -1
  616. package/dist/util/cache/package/namespaces.d.ts +1 -1
  617. package/dist/util/cache/package/namespaces.js +3 -0
  618. package/dist/util/cache/package/namespaces.js.map +1 -1
  619. package/dist/util/cache/package/redis.d.ts +1 -1
  620. package/dist/util/cache/package/redis.js +17 -7
  621. package/dist/util/cache/package/redis.js.map +1 -1
  622. package/dist/util/cache/package/sqlite.d.ts +1 -1
  623. package/dist/util/cache/package/sqlite.js +2 -2
  624. package/dist/util/cache/package/sqlite.js.map +1 -1
  625. package/dist/util/cache/package/types.d.ts +1 -1
  626. package/dist/util/cache/package/types.js.map +1 -1
  627. package/dist/util/cache/repository/http-cache.js +1 -1
  628. package/dist/util/cache/repository/http-cache.js.map +1 -1
  629. package/dist/util/cache/repository/schema.d.ts +1 -1
  630. package/dist/util/cache/repository/types.d.ts +1 -0
  631. package/dist/util/cache/repository/types.js.map +1 -1
  632. package/dist/util/emoji.js +2 -2
  633. package/dist/util/emoji.js.map +1 -1
  634. package/dist/util/exec/containerbase.js +5 -0
  635. package/dist/util/exec/containerbase.js.map +1 -1
  636. package/dist/util/git/index.js +6 -3
  637. package/dist/util/git/index.js.map +1 -1
  638. package/dist/util/git/private-key.js +23 -3
  639. package/dist/util/git/private-key.js.map +1 -1
  640. package/dist/util/git/types.d.ts +2 -1
  641. package/dist/util/git/types.js.map +1 -1
  642. package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +6 -6
  643. package/dist/util/http/bitbucket.js +0 -1
  644. package/dist/util/http/bitbucket.js.map +1 -1
  645. package/dist/util/http/cache/abstract-http-cache-provider.d.ts +7 -7
  646. package/dist/util/http/cache/abstract-http-cache-provider.js +11 -11
  647. package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
  648. package/dist/util/http/cache/memory-http-cache-provider.d.ts +3 -3
  649. package/dist/util/http/cache/memory-http-cache-provider.js +8 -8
  650. package/dist/util/http/cache/memory-http-cache-provider.js.map +1 -1
  651. package/dist/util/http/cache/package-http-cache-provider.d.ts +5 -4
  652. package/dist/util/http/cache/package-http-cache-provider.js +17 -11
  653. package/dist/util/http/cache/package-http-cache-provider.js.map +1 -1
  654. package/dist/util/http/cache/repository-http-cache-provider.d.ts +16 -3
  655. package/dist/util/http/cache/repository-http-cache-provider.js +60 -3
  656. package/dist/util/http/cache/repository-http-cache-provider.js.map +1 -1
  657. package/dist/util/http/cache/schema.d.ts +2 -2
  658. package/dist/util/http/cache/schema.js +2 -2
  659. package/dist/util/http/cache/schema.js.map +1 -1
  660. package/dist/util/http/cache/types.d.ts +3 -3
  661. package/dist/util/http/cache/types.js.map +1 -1
  662. package/dist/util/http/gerrit.d.ts +1 -1
  663. package/dist/util/http/gerrit.js +1 -1
  664. package/dist/util/http/gerrit.js.map +1 -1
  665. package/dist/util/http/gitlab.js +0 -1
  666. package/dist/util/http/gitlab.js.map +1 -1
  667. package/dist/util/http/host-rules.js +10 -0
  668. package/dist/util/http/host-rules.js.map +1 -1
  669. package/dist/util/http/http.d.ts +1 -1
  670. package/dist/util/http/http.js +17 -15
  671. package/dist/util/http/http.js.map +1 -1
  672. package/dist/util/http/retry-after.js +1 -1
  673. package/dist/util/http/retry-after.js.map +1 -1
  674. package/dist/util/interpolator.js +2 -0
  675. package/dist/util/interpolator.js.map +1 -1
  676. package/dist/util/markdown.js +3 -3
  677. package/dist/util/markdown.js.map +1 -1
  678. package/dist/util/merge-confidence/index.js +3 -1
  679. package/dist/util/merge-confidence/index.js.map +1 -1
  680. package/dist/util/schema-utils/index.d.ts +8 -4
  681. package/dist/util/schema-utils/index.js +16 -1
  682. package/dist/util/schema-utils/index.js.map +1 -1
  683. package/dist/util/template/index.d.ts +1 -0
  684. package/dist/util/template/index.js +70 -64
  685. package/dist/util/template/index.js.map +1 -1
  686. package/dist/workers/global/config/parse/file.js +6 -0
  687. package/dist/workers/global/config/parse/file.js.map +1 -1
  688. package/dist/workers/global/config/parse/index.js +2 -1
  689. package/dist/workers/global/config/parse/index.js.map +1 -1
  690. package/dist/workers/repository/config-migration/branch/commit-message.js +2 -1
  691. package/dist/workers/repository/config-migration/branch/commit-message.js.map +1 -1
  692. package/dist/workers/repository/config-migration/branch/create.js +1 -0
  693. package/dist/workers/repository/config-migration/branch/create.js.map +1 -1
  694. package/dist/workers/repository/config-migration/branch/rebase.js +1 -0
  695. package/dist/workers/repository/config-migration/branch/rebase.js.map +1 -1
  696. package/dist/workers/repository/dependency-dashboard.js +42 -5
  697. package/dist/workers/repository/dependency-dashboard.js.map +1 -1
  698. package/dist/workers/repository/error-config.js +1 -1
  699. package/dist/workers/repository/error-config.js.map +1 -1
  700. package/dist/workers/repository/error.js +1 -1
  701. package/dist/workers/repository/error.js.map +1 -1
  702. package/dist/workers/repository/extract/supersedes.d.ts +1 -1
  703. package/dist/workers/repository/extract/supersedes.js +31 -17
  704. package/dist/workers/repository/extract/supersedes.js.map +1 -1
  705. package/dist/workers/repository/finalize/index.js +1 -1
  706. package/dist/workers/repository/finalize/index.js.map +1 -1
  707. package/dist/workers/repository/finalize/prune.js +4 -3
  708. package/dist/workers/repository/finalize/prune.js.map +1 -1
  709. package/dist/workers/repository/index.js +49 -20
  710. package/dist/workers/repository/index.js.map +1 -1
  711. package/dist/workers/repository/init/inherited.js +7 -0
  712. package/dist/workers/repository/init/inherited.js.map +1 -1
  713. package/dist/workers/repository/init/merge.js +1 -1
  714. package/dist/workers/repository/init/merge.js.map +1 -1
  715. package/dist/workers/repository/onboarding/branch/check.js +5 -3
  716. package/dist/workers/repository/onboarding/branch/check.js.map +1 -1
  717. package/dist/workers/repository/onboarding/branch/create.js +1 -0
  718. package/dist/workers/repository/onboarding/branch/create.js.map +1 -1
  719. package/dist/workers/repository/onboarding/branch/rebase.js +1 -0
  720. package/dist/workers/repository/onboarding/branch/rebase.js.map +1 -1
  721. package/dist/workers/repository/onboarding/common.js +3 -2
  722. package/dist/workers/repository/onboarding/common.js.map +1 -1
  723. package/dist/workers/repository/process/extract-update.js +2 -2
  724. package/dist/workers/repository/process/extract-update.js.map +1 -1
  725. package/dist/workers/repository/process/fetch.js +4 -3
  726. package/dist/workers/repository/process/fetch.js.map +1 -1
  727. package/dist/workers/repository/process/index.d.ts +1 -0
  728. package/dist/workers/repository/process/index.js +25 -5
  729. package/dist/workers/repository/process/index.js.map +1 -1
  730. package/dist/workers/repository/process/lookup/filter-checks.js +42 -8
  731. package/dist/workers/repository/process/lookup/filter-checks.js.map +1 -1
  732. package/dist/workers/repository/process/lookup/filter.js +5 -7
  733. package/dist/workers/repository/process/lookup/filter.js.map +1 -1
  734. package/dist/workers/repository/process/lookup/index.js +10 -13
  735. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  736. package/dist/workers/repository/process/vulnerabilities.d.ts +1 -1
  737. package/dist/workers/repository/process/vulnerabilities.js +13 -8
  738. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  739. package/dist/workers/repository/reconfigure/comment.js +1 -1
  740. package/dist/workers/repository/reconfigure/comment.js.map +1 -1
  741. package/dist/workers/repository/reconfigure/index.js +1 -1
  742. package/dist/workers/repository/reconfigure/index.js.map +1 -1
  743. package/dist/workers/repository/update/branch/commit.js +2 -0
  744. package/dist/workers/repository/update/branch/commit.js.map +1 -1
  745. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +12 -1
  746. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  747. package/dist/workers/repository/update/branch/index.js +65 -20
  748. package/dist/workers/repository/update/branch/index.js.map +1 -1
  749. package/dist/workers/repository/update/branch/status-checks.js +5 -0
  750. package/dist/workers/repository/update/branch/status-checks.js.map +1 -1
  751. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +1 -1
  752. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
  753. package/dist/workers/repository/update/pr/changelog/forgejo/index.js +3 -3
  754. package/dist/workers/repository/update/pr/changelog/forgejo/index.js.map +1 -1
  755. package/dist/workers/repository/update/pr/changelog/gitea/index.js +3 -3
  756. package/dist/workers/repository/update/pr/changelog/gitea/index.js.map +1 -1
  757. package/dist/workers/repository/update/pr/changelog/release-notes.js +9 -4
  758. package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
  759. package/dist/workers/repository/update/pr/index.js +28 -11
  760. package/dist/workers/repository/update/pr/index.js.map +1 -1
  761. package/dist/workers/repository/update/pr/pr-reuse.d.ts +1 -1
  762. package/dist/workers/repository/update/pr/pr-reuse.js +2 -2
  763. package/dist/workers/repository/update/pr/pr-reuse.js.map +1 -1
  764. package/dist/workers/repository/updates/generate.js +1 -0
  765. package/dist/workers/repository/updates/generate.js.map +1 -1
  766. package/dist/workers/types.d.ts +1 -0
  767. package/dist/workers/types.js.map +1 -1
  768. package/package.json +136 -153
  769. package/renovate-schema.json +325 -111
  770. package/dist/config/decrypt/kbpgp.d.ts +0 -1
  771. package/dist/config/decrypt/kbpgp.js +0 -58
  772. package/dist/config/decrypt/kbpgp.js.map +0 -1
  773. package/dist/config/decrypt/legacy.d.ts +0 -2
  774. package/dist/config/decrypt/legacy.js +0 -36
  775. package/dist/config/decrypt/legacy.js.map +0 -1
  776. package/dist/modules/versioning/ruby/strategies/pin.d.ts +0 -4
  777. package/dist/modules/versioning/ruby/strategies/pin.js +0 -4
  778. package/dist/modules/versioning/ruby/strategies/pin.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"rebase.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/config-migration/branch/rebase.ts"],"names":[],"mappings":";;AAYA,sDA6CC;AAMD,oDAeC;;AA9ED,0DAA0B;AAC1B,sDAAyD;AAEzD,+CAA4C;AAC5C,0DAAuD;AACvD,8CAA+C;AAC/C,0DAA4D;AAC5D,sCAAmD;AACnD,qDAAuE;AACvE,mDAAsD;AAG/C,KAAK,UAAU,qBAAqB,CACzC,MAAsB,EACtB,kBAAgC;IAEhC,eAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,aAAc,CAAC;IACzC,MAAM,UAAU,GAAG,IAAA,+BAAsB,EAAC,MAAM,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,kBAAkB,CAAC,QAAQ,CAAC;IACnD,IAAI,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAC1C,MAAM,gBAAgB,GAAG,MAAM,IAAA,aAAO,EAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IACnE,IACE,oBAAoB,CAAC,QAAQ,CAAC,KAAK,oBAAoB,CAAC,gBAAgB,CAAC,EACzE,CAAC;QACD,eAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,eAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAE1C,IAAI,qBAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,eAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,oBAAoB,GAAG,IAAI,oDAAmC,CAClE,MAAM,EACN,cAAc,CACf,CAAC;IACF,MAAM,aAAa,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,CAAC;IAE9D,MAAM,SAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACrC,QAAQ;QACN,MAAM,mCAAmB,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;IACxE,OAAO,SAAG,CAAC,aAAa,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU;QACV,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,cAAc;gBACpB,QAAQ;aACT;SACF;QACD,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE;QACjC,cAAc,EAAE,MAAM,CAAC,cAAc;KACtC,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,IAAmB;IACtD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD;;;;;;OAMG;IACH,OAAO,CACL,IAAA,0BAAc,EAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,+CAA+C,CAAC,IAAI,CACrD,CAAC;AACJ,CAAC","sourcesContent":["import JSON5 from 'json5';\nimport { GlobalConfig } from '../../../../config/global';\nimport type { RenovateConfig } from '../../../../config/types';\nimport { logger } from '../../../../logger';\nimport { scm } from '../../../../modules/platform/scm';\nimport { getFile } from '../../../../util/git';\nimport { quickStringify } from '../../../../util/stringify';\nimport { getMigrationBranchName } from '../common';\nimport { ConfigMigrationCommitMessageFactory } from './commit-message';\nimport { MigratedDataFactory } from './migrated-data';\nimport type { MigratedData } from './migrated-data';\n\nexport async function rebaseMigrationBranch(\n config: RenovateConfig,\n migratedConfigData: MigratedData,\n): Promise<string | null> {\n logger.debug('Checking if migration branch needs rebasing');\n const baseBranch = config.defaultBranch!;\n const branchName = getMigrationBranchName(config);\n const configFileName = migratedConfigData.filename;\n let contents = migratedConfigData.content;\n const existingContents = await getFile(configFileName, branchName);\n if (\n jsonStripWhitespaces(contents) === jsonStripWhitespaces(existingContents)\n ) {\n logger.debug('Migration branch is up to date');\n return null;\n }\n logger.debug('Rebasing migration branch');\n\n if (GlobalConfig.get('dryRun')) {\n logger.info('DRY-RUN: Would rebase files in migration branch');\n return null;\n }\n\n const commitMessageFactory = new ConfigMigrationCommitMessageFactory(\n config,\n configFileName,\n );\n const commitMessage = commitMessageFactory.getCommitMessage();\n\n await scm.checkoutBranch(baseBranch);\n contents =\n await MigratedDataFactory.applyPrettierFormatting(migratedConfigData);\n return scm.commitAndPush({\n baseBranch: config.baseBranch,\n branchName,\n files: [\n {\n type: 'addition',\n path: configFileName,\n contents,\n },\n ],\n message: commitMessage.toString(),\n platformCommit: config.platformCommit,\n });\n}\n\n/**\n * @param json a JSON string\n * @return a minimal json string. i.e. does not contain any formatting/whitespaces\n */\nexport function jsonStripWhitespaces(json: string | null): string | null {\n if (!json) {\n return null;\n }\n /**\n * JSON.stringify(value, replacer, space):\n * If \"space\" is anything other than a string or number —\n * for example, is null or not provided — no white space is used.\n *\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#parameters\n */\n return (\n quickStringify(JSON5.parse(json)) ??\n /* istanbul ignore next: should never happen */ null\n );\n}\n"]}
1
+ {"version":3,"file":"rebase.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/config-migration/branch/rebase.ts"],"names":[],"mappings":";;AAYA,sDA8CC;AAMD,oDAeC;;AA/ED,0DAA0B;AAC1B,sDAAyD;AAEzD,+CAA4C;AAC5C,0DAAuD;AACvD,8CAA+C;AAC/C,0DAA4D;AAC5D,sCAAmD;AACnD,qDAAuE;AACvE,mDAAsD;AAG/C,KAAK,UAAU,qBAAqB,CACzC,MAAsB,EACtB,kBAAgC;IAEhC,eAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,aAAc,CAAC;IACzC,MAAM,UAAU,GAAG,IAAA,+BAAsB,EAAC,MAAM,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,kBAAkB,CAAC,QAAQ,CAAC;IACnD,IAAI,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC;IAC1C,MAAM,gBAAgB,GAAG,MAAM,IAAA,aAAO,EAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IACnE,IACE,oBAAoB,CAAC,QAAQ,CAAC,KAAK,oBAAoB,CAAC,gBAAgB,CAAC,EACzE,CAAC;QACD,eAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,eAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAE1C,IAAI,qBAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,eAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,oBAAoB,GAAG,IAAI,oDAAmC,CAClE,MAAM,EACN,cAAc,CACf,CAAC;IACF,MAAM,aAAa,GAAG,oBAAoB,CAAC,gBAAgB,EAAE,CAAC;IAE9D,MAAM,SAAG,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACrC,QAAQ;QACN,MAAM,mCAAmB,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;IACxE,OAAO,SAAG,CAAC,aAAa,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU;QACV,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,cAAc;gBACpB,QAAQ;aACT;SACF;QACD,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE;QACjC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,MAAM,EAAE,MAAM,CAAC,MAAM;KACtB,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,IAAmB;IACtD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IACD;;;;;;OAMG;IACH,OAAO,CACL,IAAA,0BAAc,EAAC,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,+CAA+C,CAAC,IAAI,CACrD,CAAC;AACJ,CAAC","sourcesContent":["import JSON5 from 'json5';\nimport { GlobalConfig } from '../../../../config/global';\nimport type { RenovateConfig } from '../../../../config/types';\nimport { logger } from '../../../../logger';\nimport { scm } from '../../../../modules/platform/scm';\nimport { getFile } from '../../../../util/git';\nimport { quickStringify } from '../../../../util/stringify';\nimport { getMigrationBranchName } from '../common';\nimport { ConfigMigrationCommitMessageFactory } from './commit-message';\nimport { MigratedDataFactory } from './migrated-data';\nimport type { MigratedData } from './migrated-data';\n\nexport async function rebaseMigrationBranch(\n config: RenovateConfig,\n migratedConfigData: MigratedData,\n): Promise<string | null> {\n logger.debug('Checking if migration branch needs rebasing');\n const baseBranch = config.defaultBranch!;\n const branchName = getMigrationBranchName(config);\n const configFileName = migratedConfigData.filename;\n let contents = migratedConfigData.content;\n const existingContents = await getFile(configFileName, branchName);\n if (\n jsonStripWhitespaces(contents) === jsonStripWhitespaces(existingContents)\n ) {\n logger.debug('Migration branch is up to date');\n return null;\n }\n logger.debug('Rebasing migration branch');\n\n if (GlobalConfig.get('dryRun')) {\n logger.info('DRY-RUN: Would rebase files in migration branch');\n return null;\n }\n\n const commitMessageFactory = new ConfigMigrationCommitMessageFactory(\n config,\n configFileName,\n );\n const commitMessage = commitMessageFactory.getCommitMessage();\n\n await scm.checkoutBranch(baseBranch);\n contents =\n await MigratedDataFactory.applyPrettierFormatting(migratedConfigData);\n return scm.commitAndPush({\n baseBranch: config.baseBranch,\n branchName,\n files: [\n {\n type: 'addition',\n path: configFileName,\n contents,\n },\n ],\n message: commitMessage.toString(),\n platformCommit: config.platformCommit,\n labels: config.labels,\n });\n}\n\n/**\n * @param json a JSON string\n * @return a minimal json string. i.e. does not contain any formatting/whitespaces\n */\nexport function jsonStripWhitespaces(json: string | null): string | null {\n if (!json) {\n return null;\n }\n /**\n * JSON.stringify(value, replacer, space):\n * If \"space\" is anything other than a string or number —\n * for example, is null or not provided — no white space is used.\n *\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#parameters\n */\n return (\n quickStringify(JSON5.parse(json)) ??\n /* istanbul ignore next: should never happen */ null\n );\n}\n"]}
@@ -150,20 +150,57 @@ function getListItem(branch, type) {
150
150
  }
151
151
  return item + ' (' + uniquePackages.join(', ') + ')\n';
152
152
  }
153
+ function splitBranchesByCategory(filteredBranches) {
154
+ const categories = {};
155
+ const uncategorized = [];
156
+ let hasCategorized = false;
157
+ let hasUncategorized = false;
158
+ for (const branch of filteredBranches) {
159
+ if (branch.dependencyDashboardCategory) {
160
+ categories[branch.dependencyDashboardCategory] ??= [];
161
+ categories[branch.dependencyDashboardCategory].push(branch);
162
+ hasCategorized = true;
163
+ continue;
164
+ }
165
+ uncategorized.push(branch);
166
+ hasUncategorized = true;
167
+ }
168
+ return { categories, uncategorized, hasCategorized, hasUncategorized };
169
+ }
170
+ function getBranchList(branches, listItemType) {
171
+ return branches
172
+ .map((branch) => getListItem(branch, listItemType))
173
+ .join('');
174
+ }
153
175
  function getBranchesListMd(branches, predicate, title, description, listItemType = 'approvePr', bulkComment, bulkMessage, bulkIcon) {
154
176
  const filteredBranches = branches.filter(predicate);
155
177
  if (filteredBranches.length === 0) {
156
178
  return '';
157
179
  }
158
180
  let result = `## ${title}\n\n${description}\n\n`;
159
- result += `${filteredBranches
160
- .map((branch) => getListItem(branch, listItemType))
161
- .join('')}`;
181
+ const { categories, uncategorized, hasCategorized, hasUncategorized } = splitBranchesByCategory(filteredBranches);
182
+ if (hasCategorized) {
183
+ for (const [category, branches] of Object.entries(categories).sort(([keyA], [keyB]) => keyA.localeCompare(keyB, undefined, { numeric: true }))) {
184
+ result = result.trimEnd() + '\n\n';
185
+ result += `### ${category}\n\n`;
186
+ result += getBranchList(branches, listItemType);
187
+ }
188
+ if (hasUncategorized) {
189
+ result = result.trimEnd() + '\n\n';
190
+ result += `### Others`;
191
+ }
192
+ }
193
+ result = result.trimEnd() + '\n\n';
194
+ result += getBranchList(uncategorized, listItemType);
162
195
  if (bulkComment && bulkMessage && filteredBranches.length > 1) {
196
+ if (hasCategorized) {
197
+ result = result.trimEnd() + '\n\n';
198
+ result += '### All\n\n';
199
+ }
163
200
  result += getCheckbox(bulkComment);
164
- result += `${bulkIcon ? bulkIcon + ' ' : ''}**${bulkMessage}**${bulkIcon ? ' ' + bulkIcon : ''}\n`;
201
+ result += `${bulkIcon ? bulkIcon + ' ' : ''}**${bulkMessage}**${bulkIcon ? ' ' + bulkIcon : ''}`;
165
202
  }
166
- return result + '\n';
203
+ return result.trimEnd() + '\n\n';
167
204
  }
168
205
  function appendRepoProblems(config, issueBody) {
169
206
  let newIssueBody = issueBody;
@@ -1 +1 @@
1
- {"version":3,"file":"dependency-dashboard.js","sourceRoot":"","sources":["../../../lib/workers/repository/dependency-dashboard.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { DateTime } from 'luxon';\nimport { GlobalConfig } from '../../config/global';\nimport type { RenovateConfig } from '../../config/types';\nimport { logger } from '../../logger';\nimport type { PackageFile } from '../../modules/manager/types';\nimport { platform } from '../../modules/platform';\nimport { coerceArray } from '../../util/array';\nimport { regEx } from '../../util/regex';\nimport { coerceString } from '../../util/string';\nimport * as template from '../../util/template';\nimport type { BranchConfig, SelectAllConfig } from '../types';\nimport { extractRepoProblems } from './common';\nimport type { ConfigMigrationResult } from './config-migration';\nimport { getDepWarningsDashboard } from './errors-warnings';\nimport { PackageFiles } from './package-files';\nimport type { Vulnerability } from './process/types';\nimport { Vulnerabilities } from './process/vulnerabilities';\n\ninterface DependencyDashboard {\n dependencyDashboardChecks: Record<string, string>;\n dependencyDashboardRebaseAllOpen: boolean;\n dependencyDashboardAllPending: boolean;\n dependencyDashboardAllRateLimited: boolean;\n}\n\nconst rateLimitedRe = regEx(\n ` - \\\\[ \\\\] ${getMarkdownComment('unlimit-branch=([^\\\\s]+)')}`,\n 'g',\n);\nconst pendingApprovalRe = regEx(\n ` - \\\\[ \\\\] ${getMarkdownComment('approve-branch=([^\\\\s]+)')}`,\n 'g',\n);\nconst generalBranchRe = regEx(\n ` ${getMarkdownComment('([a-zA-Z]+)-branch=([^\\\\s]+)')}`,\n);\nconst markedBranchesRe = regEx(\n ` - \\\\[x\\\\] ${getMarkdownComment('([a-zA-Z]+)-branch=([^\\\\s]+)')}`,\n 'g',\n);\n\nconst approveAllPendingPrs = 'approve-all-pending-prs';\nconst createAllRateLimitedPrs = 'create-all-rate-limited-prs';\nconst createConfigMigrationPr = 'create-config-migration-pr';\nconst configMigrationPrInfo = 'config-migration-pr-info';\nconst rebaseAllOpenPrs = 'rebase-all-open-prs';\n\nfunction getMarkdownComment(comment: string): string {\n return `<!-- ${comment} -->`;\n}\n\nfunction isBoxChecked(issueBody: string, type: string): boolean {\n return issueBody.includes(getCheckbox(type, true));\n}\n\nfunction isBoxUnchecked(issueBody: string, type: string): boolean {\n return issueBody.includes(getCheckbox(type));\n}\n\nfunction getCheckbox(type: string, checked = false): string {\n return ` - [${checked ? 'x' : ' '}] ${getMarkdownComment(type)}`;\n}\n\nfunction checkOpenAllRateLimitedPR(issueBody: string): boolean {\n return isBoxChecked(issueBody, createAllRateLimitedPrs);\n}\n\nfunction checkApproveAllPendingPR(issueBody: string): boolean {\n return isBoxChecked(issueBody, approveAllPendingPrs);\n}\n\nfunction checkRebaseAll(issueBody: string): boolean {\n return isBoxChecked(issueBody, rebaseAllOpenPrs);\n}\n\nfunction getConfigMigrationCheckboxState(\n issueBody: string,\n): 'no-checkbox' | 'checked' | 'unchecked' | 'migration-pr-exists' {\n if (issueBody.includes(getMarkdownComment(configMigrationPrInfo))) {\n return 'migration-pr-exists';\n }\n\n if (isBoxChecked(issueBody, createConfigMigrationPr)) {\n return 'checked';\n }\n\n if (isBoxUnchecked(issueBody, createConfigMigrationPr)) {\n return 'unchecked';\n }\n\n return 'no-checkbox';\n}\n\nfunction selectAllRelevantBranches(issueBody: string): string[] {\n const checkedBranches = [];\n if (checkOpenAllRateLimitedPR(issueBody)) {\n for (const match of issueBody.matchAll(rateLimitedRe)) {\n checkedBranches.push(match[0]);\n }\n }\n if (checkApproveAllPendingPR(issueBody)) {\n for (const match of issueBody.matchAll(pendingApprovalRe)) {\n checkedBranches.push(match[0]);\n }\n }\n return checkedBranches;\n}\n\nfunction getAllSelectedBranches(\n issueBody: string,\n dependencyDashboardChecks: Record<string, string>,\n): Record<string, string> {\n const allRelevantBranches = selectAllRelevantBranches(issueBody);\n for (const branch of allRelevantBranches) {\n const [, type, branchName] = generalBranchRe.exec(branch)!;\n dependencyDashboardChecks[branchName] = type;\n }\n return dependencyDashboardChecks;\n}\n\nfunction getCheckedBranches(issueBody: string): Record<string, string> {\n let dependencyDashboardChecks: Record<string, string> = {};\n for (const [, type, branchName] of issueBody.matchAll(markedBranchesRe)) {\n dependencyDashboardChecks[branchName] = type;\n }\n dependencyDashboardChecks = getAllSelectedBranches(\n issueBody,\n dependencyDashboardChecks,\n );\n return dependencyDashboardChecks;\n}\n\nfunction parseDashboardIssue(issueBody: string): DependencyDashboard {\n const dependencyDashboardChecks = getCheckedBranches(issueBody);\n const dependencyDashboardRebaseAllOpen = checkRebaseAll(issueBody);\n const dependencyDashboardAllPending = checkApproveAllPendingPR(issueBody);\n const dependencyDashboardAllRateLimited =\n checkOpenAllRateLimitedPR(issueBody);\n dependencyDashboardChecks.configMigrationCheckboxState =\n getConfigMigrationCheckboxState(issueBody);\n return {\n dependencyDashboardChecks,\n dependencyDashboardRebaseAllOpen,\n dependencyDashboardAllPending,\n dependencyDashboardAllRateLimited,\n };\n}\n\nexport async function readDashboardBody(\n config: SelectAllConfig,\n): Promise<void> {\n let dashboardChecks: DependencyDashboard = {\n dependencyDashboardChecks: {},\n dependencyDashboardAllPending: false,\n dependencyDashboardRebaseAllOpen: false,\n dependencyDashboardAllRateLimited: false,\n };\n const stringifiedConfig = JSON.stringify(config);\n if (\n config.dependencyDashboard === true ||\n stringifiedConfig.includes('\"dependencyDashboardApproval\":true') ||\n stringifiedConfig.includes('\"prCreation\":\"approval\"')\n ) {\n config.dependencyDashboardTitle =\n config.dependencyDashboardTitle ?? `Dependency Dashboard`;\n const issue = await platform.findIssue(config.dependencyDashboardTitle);\n if (issue) {\n config.dependencyDashboardIssue = issue.number;\n dashboardChecks = parseDashboardIssue(issue.body ?? '');\n }\n }\n\n if (config.checkedBranches) {\n const checkedBranchesRec: Record<string, string> = Object.fromEntries(\n config.checkedBranches.map((branchName) => [branchName, 'global-config']),\n );\n dashboardChecks.dependencyDashboardChecks = {\n ...dashboardChecks.dependencyDashboardChecks,\n ...checkedBranchesRec,\n };\n }\n\n Object.assign(config, dashboardChecks);\n}\n\nfunction getListItem(branch: BranchConfig, type: string): string {\n let item = getCheckbox(`${type}-branch=${branch.branchName}`);\n if (branch.prNo) {\n // TODO: types (#22198)\n item += `[${branch.prTitle!}](../pull/${branch.prNo})`;\n } else {\n item += branch.prTitle;\n }\n const uniquePackages = [\n // TODO: types (#22198)\n ...new Set(branch.upgrades.map((upgrade) => `\\`${upgrade.depName!}\\``)),\n ];\n if (uniquePackages.length < 2) {\n return item + '\\n';\n }\n return item + ' (' + uniquePackages.join(', ') + ')\\n';\n}\n\nfunction getBranchesListMd(\n branches: BranchConfig[],\n predicate: (\n value: BranchConfig,\n index: number,\n array: BranchConfig[],\n ) => unknown,\n title: string,\n description: string,\n listItemType = 'approvePr',\n bulkComment?: string,\n bulkMessage?: string,\n bulkIcon?: string,\n): string {\n const filteredBranches = branches.filter(predicate);\n if (filteredBranches.length === 0) {\n return '';\n }\n let result = `## ${title}\\n\\n${description}\\n\\n`;\n result += `${filteredBranches\n .map((branch: BranchConfig): string => getListItem(branch, listItemType))\n .join('')}`;\n if (bulkComment && bulkMessage && filteredBranches.length > 1) {\n result += getCheckbox(bulkComment);\n result += `${bulkIcon ? bulkIcon + ' ' : ''}**${bulkMessage}**${bulkIcon ? ' ' + bulkIcon : ''}\\n`;\n }\n return result + '\\n';\n}\n\nfunction appendRepoProblems(config: RenovateConfig, issueBody: string): string {\n let newIssueBody = issueBody;\n const repoProblems = extractRepoProblems(config.repository);\n if (repoProblems.size) {\n newIssueBody += '## Repository problems\\n\\n';\n const repoProblemsHeader =\n config.customizeDashboard?.repoProblemsHeader ??\n 'Renovate tried to run on this repository, but found these problems.';\n newIssueBody += template.compile(repoProblemsHeader, config) + '\\n\\n';\n\n for (const repoProblem of repoProblems) {\n newIssueBody += ` - ${repoProblem}\\n`;\n }\n newIssueBody += '\\n';\n }\n return newIssueBody;\n}\n\nexport async function ensureDependencyDashboard(\n config: SelectAllConfig,\n allBranches: BranchConfig[],\n packageFiles: Record<string, PackageFile[]> = {},\n configMigrationRes: ConfigMigrationResult,\n): Promise<void> {\n logger.debug('ensureDependencyDashboard()');\n if (config.mode === 'silent') {\n logger.debug(\n 'Dependency Dashboard issue is not created, updated or closed when mode=silent',\n );\n return;\n }\n // legacy/migrated issue\n const reuseTitle = 'Update Dependencies (Renovate Bot)';\n const branches = allBranches.filter(\n (branch) =>\n branch.result !== 'automerged' &&\n !branch.upgrades?.every((upgrade) => upgrade.remediationNotPossible),\n );\n if (\n !(\n config.dependencyDashboard === true ||\n config.dependencyDashboardApproval === true ||\n config.packageRules?.some((rule) => rule.dependencyDashboardApproval) ===\n true ||\n branches.some(\n (branch) =>\n !!branch.dependencyDashboardApproval ||\n !!branch.dependencyDashboardPrApproval,\n )\n )\n ) {\n if (GlobalConfig.get('dryRun')) {\n logger.info(\n { title: config.dependencyDashboardTitle },\n 'DRY-RUN: Would close Dependency Dashboard',\n );\n } else {\n logger.debug('Closing Dependency Dashboard');\n await platform.ensureIssueClosing(config.dependencyDashboardTitle!);\n }\n return;\n }\n // istanbul ignore if\n if (config.repoIsOnboarded === false) {\n logger.debug('Repo is onboarding - skipping dependency dashboard');\n return;\n }\n logger.debug('Ensuring Dependency Dashboard');\n\n // Check packageFiles for any deprecations\n let hasDeprecations = false;\n const deprecatedPackages: Record<string, Record<string, boolean>> = {};\n logger.debug('Checking packageFiles for deprecated packages');\n if (is.nonEmptyObject(packageFiles)) {\n for (const [manager, fileNames] of Object.entries(packageFiles)) {\n for (const fileName of fileNames) {\n for (const dep of fileName.deps) {\n const name = dep.packageName ?? dep.depName;\n const hasReplacement = !!dep.updates?.find(\n (updates) => updates.updateType === 'replacement',\n );\n if (name && (dep.deprecationMessage ?? hasReplacement)) {\n hasDeprecations = true;\n deprecatedPackages[manager] ??= {};\n deprecatedPackages[manager][name] ??= hasReplacement;\n }\n }\n }\n }\n }\n\n const hasBranches = is.nonEmptyArray(branches);\n if (config.dependencyDashboardAutoclose && !hasBranches && !hasDeprecations) {\n if (GlobalConfig.get('dryRun')) {\n logger.info(\n { title: config.dependencyDashboardTitle },\n 'DRY-RUN: Would close Dependency Dashboard',\n );\n } else {\n logger.debug('Closing Dependency Dashboard');\n await platform.ensureIssueClosing(config.dependencyDashboardTitle!);\n }\n return;\n }\n let issueBody = '';\n\n if (config.dependencyDashboardHeader?.length) {\n issueBody +=\n template.compile(config.dependencyDashboardHeader, config) + '\\n\\n';\n }\n\n if (configMigrationRes.result === 'pr-exists') {\n issueBody +=\n '## Config Migration Needed\\n\\n' +\n getMarkdownComment(configMigrationPrInfo) +\n ` See Config Migration PR: #${configMigrationRes.prNumber}.\\n\\n`;\n } else if (configMigrationRes?.result === 'pr-modified') {\n issueBody +=\n '## Config Migration Needed (error)\\n\\n' +\n getMarkdownComment(configMigrationPrInfo) +\n ` The Config Migration branch exists but has been modified by another user. Renovate will not push to this branch unless it is first deleted. \\n\\n See Config Migration PR: #${configMigrationRes.prNumber}.\\n\\n`;\n } else if (configMigrationRes?.result === 'add-checkbox') {\n issueBody +=\n '## Config Migration Needed\\n\\n' +\n getCheckbox(createConfigMigrationPr) +\n ' Select this checkbox to let Renovate create an automated Config Migration PR.' +\n '\\n\\n';\n }\n\n issueBody = appendRepoProblems(config, issueBody);\n\n if (hasDeprecations) {\n issueBody += '> ⚠ **Warning**\\n> \\n';\n issueBody += 'These dependencies are deprecated:\\n\\n';\n issueBody += '| Datasource | Name | Replacement PR? |\\n';\n issueBody += '|------------|------|--------------|\\n';\n for (const manager of Object.keys(deprecatedPackages).sort()) {\n const deps = deprecatedPackages[manager];\n for (const depName of Object.keys(deps).sort()) {\n const hasReplacement = deps[depName];\n issueBody += `| ${manager} | \\`${depName}\\` | ${\n hasReplacement\n ? '![Available](https://img.shields.io/badge/available-green?style=flat-square)'\n : '![Unavailable](https://img.shields.io/badge/unavailable-orange?style=flat-square)'\n } |\\n`;\n }\n }\n issueBody += '\\n';\n }\n\n if (config.dependencyDashboardReportAbandonment) {\n issueBody += getAbandonedPackagesMd(packageFiles);\n }\n\n issueBody += getBranchesListMd(\n branches,\n (branch) => branch.result === 'needs-approval',\n 'Pending Approval',\n 'The following branches are pending approval. To create them, click on a checkbox below.',\n 'approve',\n approveAllPendingPrs,\n 'Create all pending approval PRs at once',\n '🔐',\n );\n issueBody += getBranchesListMd(\n branches,\n (branch) => branch.result === 'minimum-group-size-not-met',\n 'Group Size Not Met',\n 'The following branches have not met their minimum group size. To create them, click on a checkbox below.',\n 'approveGroup',\n );\n issueBody += getBranchesListMd(\n branches,\n (branch) => branch.result === 'not-scheduled',\n 'Awaiting Schedule',\n 'The following updates are awaiting their schedule. To get an update now, click on a checkbox below.',\n 'unschedule',\n );\n issueBody += getBranchesListMd(\n branches,\n (branch) =>\n branch.result === 'branch-limit-reached' ||\n branch.result === 'pr-limit-reached' ||\n branch.result === 'commit-limit-reached',\n 'Rate-Limited',\n 'The following updates are currently rate-limited. To force their creation now, click on a checkbox below.',\n 'unlimit',\n createAllRateLimitedPrs,\n 'Create all rate-limited PRs at once',\n '🔐',\n );\n issueBody += getBranchesListMd(\n branches,\n (branch) => branch.result === 'error',\n 'Errored',\n 'The following updates encountered an error and will be retried. To force a retry now, click on a checkbox below.',\n 'retry',\n );\n issueBody += getBranchesListMd(\n branches,\n (branch) => branch.result === 'needs-pr-approval',\n 'PR Creation Approval Required',\n 'The following branches exist but PR creation requires approval. To approve PR creation, click on a checkbox below.',\n );\n issueBody += getBranchesListMd(\n branches,\n (branch) => branch.result === 'pr-edited',\n 'Edited/Blocked',\n 'The following updates have been manually edited so Renovate will no longer make changes. To discard all commits and start over, click on a checkbox below.',\n 'rebase',\n );\n issueBody += getBranchesListMd(\n branches,\n (branch) => branch.result === 'pending',\n 'Pending Status Checks',\n 'The following updates await pending status checks. To force their creation now, click on a checkbox below.',\n );\n issueBody += getBranchesListMd(\n branches,\n (branch) => branch.prBlockedBy === 'BranchAutomerge',\n 'Pending Branch Automerge',\n 'The following updates await pending status checks before automerging. To abort the branch automerge and create a PR instead, click on a checkbox below.',\n );\n\n const warn = getDepWarningsDashboard(packageFiles, config);\n if (warn) {\n issueBody += warn;\n issueBody += '\\n';\n }\n\n const otherRes = [\n 'pending',\n 'needs-approval',\n 'needs-pr-approval',\n 'not-scheduled',\n 'pr-limit-reached',\n 'commit-limit-reached',\n 'branch-limit-reached',\n 'already-existed',\n 'error',\n 'automerged',\n 'pr-edited',\n 'minimum-group-size-not-met',\n ];\n const inProgress = branches.filter(\n (branch) =>\n !otherRes.includes(branch.result!) &&\n branch.prBlockedBy !== 'BranchAutomerge',\n );\n issueBody += getBranchesListMd(\n inProgress,\n (branch) => !!branch.prBlockedBy || !branch.prNo,\n 'Other Branches',\n 'The following updates are pending. To force the creation of a PR, click on a checkbox below.',\n 'other',\n );\n issueBody += getBranchesListMd(\n inProgress,\n (branch) => branch.prNo && !branch.prBlockedBy,\n 'Open',\n 'The following updates have all been created. To force a retry/rebase of any, click on a checkbox below.',\n 'rebase',\n rebaseAllOpenPrs,\n 'Click on this checkbox to rebase all open PRs at once',\n );\n\n issueBody += getBranchesListMd(\n branches,\n (branch) => branch.result === 'already-existed',\n 'Ignored or Blocked',\n 'The following updates are blocked by an existing closed PR. To recreate the PR, click on a checkbox below.',\n 'recreate',\n );\n\n if (!hasBranches) {\n issueBody +=\n 'This repository currently has no open or pending branches.\\n\\n';\n }\n\n // add CVE section\n issueBody += await getDashboardMarkdownVulnerabilities(config, packageFiles);\n\n // fit the detected dependencies section\n const footer = getFooter(config);\n issueBody += PackageFiles.getDashboardMarkdown(\n platform.maxBodyLength() - issueBody.length - footer.length,\n );\n\n issueBody += footer;\n\n if (config.dependencyDashboardIssue) {\n // If we're not changing the dashboard issue, then we can skip checking if the user changed it.\n // The cached issue we get back here will reflect its state at the _start_ of our run\n const cachedIssue = await platform.getIssue?.(\n config.dependencyDashboardIssue,\n );\n if (cachedIssue?.body === issueBody) {\n logger.debug('No changes to dependency dashboard issue needed');\n return;\n }\n\n // Skip cache when getting the issue to ensure we get the latest body,\n // including any updates the user made after we started the run\n const updatedIssue = await platform.getIssue?.(\n config.dependencyDashboardIssue,\n false,\n );\n if (updatedIssue) {\n const { dependencyDashboardChecks } = parseDashboardIssue(\n coerceString(updatedIssue.body),\n );\n for (const branchName of Object.keys(config.dependencyDashboardChecks!)) {\n delete dependencyDashboardChecks[branchName];\n }\n for (const branchName of Object.keys(dependencyDashboardChecks)) {\n const checkText = getCheckbox(\n `${dependencyDashboardChecks[branchName]}-branch=${branchName}`,\n );\n issueBody = issueBody.replace(\n checkText,\n checkText.replace('[ ]', '[x]'),\n );\n }\n }\n }\n\n if (GlobalConfig.get('dryRun')) {\n logger.info(\n { title: config.dependencyDashboardTitle },\n 'DRY-RUN: Would ensure Dependency Dashboard',\n );\n } else {\n await platform.ensureIssue({\n title: config.dependencyDashboardTitle!,\n reuseTitle,\n body: platform.massageMarkdown(issueBody, config.rebaseLabel),\n labels: config.dependencyDashboardLabels,\n confidential: config.confidential,\n });\n }\n}\n\nexport function getAbandonedPackagesMd(\n packageFiles: Record<string, PackageFile[]>,\n): string {\n const abandonedPackages: Record<\n string,\n Record<string, string | undefined | null>\n > = {};\n let abandonedCount = 0;\n\n for (const [manager, managerPackageFiles] of Object.entries(packageFiles)) {\n for (const packageFile of managerPackageFiles) {\n for (const dep of coerceArray(packageFile.deps)) {\n if (dep.depName && dep.isAbandoned) {\n abandonedCount++;\n abandonedPackages[manager] = abandonedPackages[manager] || {};\n abandonedPackages[manager][dep.depName] = dep.mostRecentTimestamp;\n }\n }\n }\n }\n\n if (abandonedCount === 0) {\n return '';\n }\n\n let abandonedMd = '> ℹ **Note**\\n> \\n';\n abandonedMd +=\n 'These dependencies have not received updates for an extended period and may be unmaintained:\\n\\n';\n\n abandonedMd += '<details>\\n';\n abandonedMd += `<summary>View abandoned dependencies (${abandonedCount})</summary>\\n\\n`;\n abandonedMd += '| Datasource | Name | Last Updated |\\n';\n abandonedMd += '|------------|------|-------------|\\n';\n\n for (const manager of Object.keys(abandonedPackages).sort()) {\n const deps = abandonedPackages[manager];\n for (const depName of Object.keys(deps).sort()) {\n const mostRecentTimestamp = deps[depName];\n const formattedDate = mostRecentTimestamp\n ? DateTime.fromISO(mostRecentTimestamp).toFormat('yyyy-MM-dd')\n : 'unknown';\n abandonedMd += `| ${manager} | \\`${depName}\\` | \\`${formattedDate}\\` |\\n`;\n }\n }\n\n abandonedMd += '\\n</details>\\n\\n';\n abandonedMd +=\n 'Packages are marked as abandoned when they exceed the [`abandonmentThreshold`](https://docs.renovatebot.com/configuration-options/#abandonmentthreshold) since their last release.\\n';\n abandonedMd +=\n 'Unlike deprecated packages with official notices, abandonment is detected by release inactivity.\\n\\n';\n\n return abandonedMd + '\\n';\n}\n\nfunction getFooter(config: RenovateConfig): string {\n let footer = '';\n if (config.dependencyDashboardFooter?.length) {\n footer +=\n '---\\n' +\n template.compile(config.dependencyDashboardFooter, config) +\n '\\n';\n }\n\n return footer;\n}\n\nexport async function getDashboardMarkdownVulnerabilities(\n config: RenovateConfig,\n packageFiles: Record<string, PackageFile[]>,\n): Promise<string> {\n let result = '';\n\n if (\n is.nullOrUndefined(config.dependencyDashboardOSVVulnerabilitySummary) ||\n config.dependencyDashboardOSVVulnerabilitySummary === 'none'\n ) {\n return result;\n }\n\n result += '## Vulnerabilities\\n\\n';\n\n const vulnerabilityFetcher = await Vulnerabilities.create();\n const vulnerabilities = await vulnerabilityFetcher.fetchVulnerabilities(\n config,\n packageFiles,\n );\n\n if (vulnerabilities.length === 0) {\n result +=\n 'Renovate has not found any CVEs on [osv.dev](https://osv.dev).\\n\\n';\n return result;\n }\n\n const unresolvedVulnerabilities = vulnerabilities.filter((value) =>\n is.nullOrUndefined(value.fixedVersion),\n );\n const resolvedVulnerabilitiesLength =\n vulnerabilities.length - unresolvedVulnerabilities.length;\n\n result += `\\`${resolvedVulnerabilitiesLength}\\`/\\`${vulnerabilities.length}\\``;\n if (is.truthy(config.osvVulnerabilityAlerts)) {\n result += ' CVEs have Renovate fixes.\\n';\n } else {\n result +=\n ' CVEs have possible Renovate fixes.\\nSee [`osvVulnerabilityAlerts`](https://docs.renovatebot.com/configuration-options/#osvvulnerabilityalerts) to allow Renovate to supply fixes.\\n';\n }\n\n let renderedVulnerabilities: Vulnerability[];\n switch (config.dependencyDashboardOSVVulnerabilitySummary) {\n // filter vulnerabilities to display based on configuration\n case 'unresolved':\n renderedVulnerabilities = unresolvedVulnerabilities;\n break;\n default:\n renderedVulnerabilities = vulnerabilities;\n }\n\n const managerRecords: Record<\n string,\n Record<string, Record<string, Vulnerability[]>>\n > = {};\n for (const vulnerability of renderedVulnerabilities) {\n const { manager, packageFile } = vulnerability.packageFileConfig;\n if (is.nullOrUndefined(managerRecords[manager!])) {\n managerRecords[manager!] = {};\n }\n if (is.nullOrUndefined(managerRecords[manager!][packageFile])) {\n managerRecords[manager!][packageFile] = {};\n }\n if (\n is.nullOrUndefined(\n managerRecords[manager!][packageFile][vulnerability.packageName],\n )\n ) {\n managerRecords[manager!][packageFile][vulnerability.packageName] = [];\n }\n managerRecords[manager!][packageFile][vulnerability.packageName].push(\n vulnerability,\n );\n }\n\n for (const [manager, packageFileRecords] of Object.entries(managerRecords)) {\n result += `<details><summary>${manager}</summary>\\n<blockquote>\\n\\n`;\n for (const [packageFile, packageNameRecords] of Object.entries(\n packageFileRecords,\n )) {\n result += `<details><summary>${packageFile}</summary>\\n<blockquote>\\n\\n`;\n for (const [packageName, cves] of Object.entries(packageNameRecords)) {\n result += `<details><summary>${packageName}</summary>\\n<blockquote>\\n\\n`;\n for (const vul of cves) {\n const id = vul.vulnerability.id;\n const suffix = is.nonEmptyString(vul.fixedVersion)\n ? ` (fixed in ${vul.fixedVersion})`\n : '';\n result += `- [${id}](https://osv.dev/vulnerability/${id})${suffix}\\n`;\n }\n result += `</blockquote>\\n</details>\\n\\n`;\n }\n result += `</blockquote>\\n</details>\\n\\n`;\n }\n result += `</blockquote>\\n</details>\\n\\n`;\n }\n\n return result;\n}\n"]}
1
+ {"version":3,"file":"dependency-dashboard.js","sourceRoot":"","sources":["../../../lib/workers/repository/dependency-dashboard.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { DateTime } from 'luxon';\nimport { GlobalConfig } from '../../config/global';\nimport type { RenovateConfig } from '../../config/types';\nimport { logger } from '../../logger';\nimport type { PackageFile } from '../../modules/manager/types';\nimport { platform } from '../../modules/platform';\nimport { coerceArray } from '../../util/array';\nimport { regEx } from '../../util/regex';\nimport { coerceString } from '../../util/string';\nimport * as template from '../../util/template';\nimport type { BranchConfig, SelectAllConfig } from '../types';\nimport { extractRepoProblems } from './common';\nimport type { ConfigMigrationResult } from './config-migration';\nimport { getDepWarningsDashboard } from './errors-warnings';\nimport { PackageFiles } from './package-files';\nimport type { Vulnerability } from './process/types';\nimport { Vulnerabilities } from './process/vulnerabilities';\n\ninterface DependencyDashboard {\n dependencyDashboardChecks: Record<string, string>;\n dependencyDashboardRebaseAllOpen: boolean;\n dependencyDashboardAllPending: boolean;\n dependencyDashboardAllRateLimited: boolean;\n}\n\nconst rateLimitedRe = regEx(\n ` - \\\\[ \\\\] ${getMarkdownComment('unlimit-branch=([^\\\\s]+)')}`,\n 'g',\n);\nconst pendingApprovalRe = regEx(\n ` - \\\\[ \\\\] ${getMarkdownComment('approve-branch=([^\\\\s]+)')}`,\n 'g',\n);\nconst generalBranchRe = regEx(\n ` ${getMarkdownComment('([a-zA-Z]+)-branch=([^\\\\s]+)')}`,\n);\nconst markedBranchesRe = regEx(\n ` - \\\\[x\\\\] ${getMarkdownComment('([a-zA-Z]+)-branch=([^\\\\s]+)')}`,\n 'g',\n);\n\nconst approveAllPendingPrs = 'approve-all-pending-prs';\nconst createAllRateLimitedPrs = 'create-all-rate-limited-prs';\nconst createConfigMigrationPr = 'create-config-migration-pr';\nconst configMigrationPrInfo = 'config-migration-pr-info';\nconst rebaseAllOpenPrs = 'rebase-all-open-prs';\n\nfunction getMarkdownComment(comment: string): string {\n return `<!-- ${comment} -->`;\n}\n\nfunction isBoxChecked(issueBody: string, type: string): boolean {\n return issueBody.includes(getCheckbox(type, true));\n}\n\nfunction isBoxUnchecked(issueBody: string, type: string): boolean {\n return issueBody.includes(getCheckbox(type));\n}\n\nfunction getCheckbox(type: string, checked = false): string {\n return ` - [${checked ? 'x' : ' '}] ${getMarkdownComment(type)}`;\n}\n\nfunction checkOpenAllRateLimitedPR(issueBody: string): boolean {\n return isBoxChecked(issueBody, createAllRateLimitedPrs);\n}\n\nfunction checkApproveAllPendingPR(issueBody: string): boolean {\n return isBoxChecked(issueBody, approveAllPendingPrs);\n}\n\nfunction checkRebaseAll(issueBody: string): boolean {\n return isBoxChecked(issueBody, rebaseAllOpenPrs);\n}\n\nfunction getConfigMigrationCheckboxState(\n issueBody: string,\n): 'no-checkbox' | 'checked' | 'unchecked' | 'migration-pr-exists' {\n if (issueBody.includes(getMarkdownComment(configMigrationPrInfo))) {\n return 'migration-pr-exists';\n }\n\n if (isBoxChecked(issueBody, createConfigMigrationPr)) {\n return 'checked';\n }\n\n if (isBoxUnchecked(issueBody, createConfigMigrationPr)) {\n return 'unchecked';\n }\n\n return 'no-checkbox';\n}\n\nfunction selectAllRelevantBranches(issueBody: string): string[] {\n const checkedBranches = [];\n if (checkOpenAllRateLimitedPR(issueBody)) {\n for (const match of issueBody.matchAll(rateLimitedRe)) {\n checkedBranches.push(match[0]);\n }\n }\n if (checkApproveAllPendingPR(issueBody)) {\n for (const match of issueBody.matchAll(pendingApprovalRe)) {\n checkedBranches.push(match[0]);\n }\n }\n return checkedBranches;\n}\n\nfunction getAllSelectedBranches(\n issueBody: string,\n dependencyDashboardChecks: Record<string, string>,\n): Record<string, string> {\n const allRelevantBranches = selectAllRelevantBranches(issueBody);\n for (const branch of allRelevantBranches) {\n const [, type, branchName] = generalBranchRe.exec(branch)!;\n dependencyDashboardChecks[branchName] = type;\n }\n return dependencyDashboardChecks;\n}\n\nfunction getCheckedBranches(issueBody: string): Record<string, string> {\n let dependencyDashboardChecks: Record<string, string> = {};\n for (const [, type, branchName] of issueBody.matchAll(markedBranchesRe)) {\n dependencyDashboardChecks[branchName] = type;\n }\n dependencyDashboardChecks = getAllSelectedBranches(\n issueBody,\n dependencyDashboardChecks,\n );\n return dependencyDashboardChecks;\n}\n\nfunction parseDashboardIssue(issueBody: string): DependencyDashboard {\n const dependencyDashboardChecks = getCheckedBranches(issueBody);\n const dependencyDashboardRebaseAllOpen = checkRebaseAll(issueBody);\n const dependencyDashboardAllPending = checkApproveAllPendingPR(issueBody);\n const dependencyDashboardAllRateLimited =\n checkOpenAllRateLimitedPR(issueBody);\n dependencyDashboardChecks.configMigrationCheckboxState =\n getConfigMigrationCheckboxState(issueBody);\n return {\n dependencyDashboardChecks,\n dependencyDashboardRebaseAllOpen,\n dependencyDashboardAllPending,\n dependencyDashboardAllRateLimited,\n };\n}\n\nexport async function readDashboardBody(\n config: SelectAllConfig,\n): Promise<void> {\n let dashboardChecks: DependencyDashboard = {\n dependencyDashboardChecks: {},\n dependencyDashboardAllPending: false,\n dependencyDashboardRebaseAllOpen: false,\n dependencyDashboardAllRateLimited: false,\n };\n const stringifiedConfig = JSON.stringify(config);\n if (\n config.dependencyDashboard === true ||\n stringifiedConfig.includes('\"dependencyDashboardApproval\":true') ||\n stringifiedConfig.includes('\"prCreation\":\"approval\"')\n ) {\n config.dependencyDashboardTitle =\n config.dependencyDashboardTitle ?? `Dependency Dashboard`;\n const issue = await platform.findIssue(config.dependencyDashboardTitle);\n if (issue) {\n config.dependencyDashboardIssue = issue.number;\n dashboardChecks = parseDashboardIssue(issue.body ?? '');\n }\n }\n\n if (config.checkedBranches) {\n const checkedBranchesRec: Record<string, string> = Object.fromEntries(\n config.checkedBranches.map((branchName) => [branchName, 'global-config']),\n );\n dashboardChecks.dependencyDashboardChecks = {\n ...dashboardChecks.dependencyDashboardChecks,\n ...checkedBranchesRec,\n };\n }\n\n Object.assign(config, dashboardChecks);\n}\n\nfunction getListItem(branch: BranchConfig, type: string): string {\n let item = getCheckbox(`${type}-branch=${branch.branchName}`);\n if (branch.prNo) {\n // TODO: types (#22198)\n item += `[${branch.prTitle!}](../pull/${branch.prNo})`;\n } else {\n item += branch.prTitle;\n }\n const uniquePackages = [\n // TODO: types (#22198)\n ...new Set(branch.upgrades.map((upgrade) => `\\`${upgrade.depName!}\\``)),\n ];\n if (uniquePackages.length < 2) {\n return item + '\\n';\n }\n return item + ' (' + uniquePackages.join(', ') + ')\\n';\n}\n\nfunction splitBranchesByCategory(filteredBranches: BranchConfig[]): {\n categories: Record<string, BranchConfig[]>;\n uncategorized: BranchConfig[];\n hasCategorized: boolean;\n hasUncategorized: boolean;\n} {\n const categories: Record<string, BranchConfig[]> = {};\n const uncategorized: BranchConfig[] = [];\n let hasCategorized = false;\n let hasUncategorized = false;\n for (const branch of filteredBranches) {\n if (branch.dependencyDashboardCategory) {\n categories[branch.dependencyDashboardCategory] ??= [];\n categories[branch.dependencyDashboardCategory].push(branch);\n hasCategorized = true;\n continue;\n }\n uncategorized.push(branch);\n hasUncategorized = true;\n }\n return { categories, uncategorized, hasCategorized, hasUncategorized };\n}\n\nfunction getBranchList(branches: BranchConfig[], listItemType: string): string {\n return branches\n .map((branch: BranchConfig): string => getListItem(branch, listItemType))\n .join('');\n}\n\nfunction getBranchesListMd(\n branches: BranchConfig[],\n predicate: (\n value: BranchConfig,\n index: number,\n array: BranchConfig[],\n ) => unknown,\n title: string,\n description: string,\n listItemType = 'approvePr',\n bulkComment?: string,\n bulkMessage?: string,\n bulkIcon?: '🔐',\n): string {\n const filteredBranches = branches.filter(predicate);\n if (filteredBranches.length === 0) {\n return '';\n }\n let result = `## ${title}\\n\\n${description}\\n\\n`;\n const { categories, uncategorized, hasCategorized, hasUncategorized } =\n splitBranchesByCategory(filteredBranches);\n if (hasCategorized) {\n for (const [category, branches] of Object.entries(categories).sort(\n ([keyA], [keyB]) =>\n keyA.localeCompare(keyB, undefined, { numeric: true }),\n )) {\n result = result.trimEnd() + '\\n\\n';\n result += `### ${category}\\n\\n`;\n result += getBranchList(branches, listItemType);\n }\n if (hasUncategorized) {\n result = result.trimEnd() + '\\n\\n';\n result += `### Others`;\n }\n }\n result = result.trimEnd() + '\\n\\n';\n result += getBranchList(uncategorized, listItemType);\n\n if (bulkComment && bulkMessage && filteredBranches.length > 1) {\n if (hasCategorized) {\n result = result.trimEnd() + '\\n\\n';\n result += '### All\\n\\n';\n }\n result += getCheckbox(bulkComment);\n result += `${bulkIcon ? bulkIcon + ' ' : ''}**${bulkMessage}**${bulkIcon ? ' ' + bulkIcon : ''}`;\n }\n return result.trimEnd() + '\\n\\n';\n}\n\nfunction appendRepoProblems(config: RenovateConfig, issueBody: string): string {\n let newIssueBody = issueBody;\n const repoProblems = extractRepoProblems(config.repository);\n if (repoProblems.size) {\n newIssueBody += '## Repository problems\\n\\n';\n const repoProblemsHeader =\n config.customizeDashboard?.repoProblemsHeader ??\n 'Renovate tried to run on this repository, but found these problems.';\n newIssueBody += template.compile(repoProblemsHeader, config) + '\\n\\n';\n\n for (const repoProblem of repoProblems) {\n newIssueBody += ` - ${repoProblem}\\n`;\n }\n newIssueBody += '\\n';\n }\n return newIssueBody;\n}\n\nexport async function ensureDependencyDashboard(\n config: SelectAllConfig,\n allBranches: BranchConfig[],\n packageFiles: Record<string, PackageFile[]> = {},\n configMigrationRes: ConfigMigrationResult,\n): Promise<void> {\n logger.debug('ensureDependencyDashboard()');\n if (config.mode === 'silent') {\n logger.debug(\n 'Dependency Dashboard issue is not created, updated or closed when mode=silent',\n );\n return;\n }\n // legacy/migrated issue\n const reuseTitle = 'Update Dependencies (Renovate Bot)';\n const branches = allBranches.filter(\n (branch) =>\n branch.result !== 'automerged' &&\n !branch.upgrades?.every((upgrade) => upgrade.remediationNotPossible),\n );\n if (\n !(\n config.dependencyDashboard === true ||\n config.dependencyDashboardApproval === true ||\n config.packageRules?.some((rule) => rule.dependencyDashboardApproval) ===\n true ||\n branches.some(\n (branch) =>\n !!branch.dependencyDashboardApproval ||\n !!branch.dependencyDashboardPrApproval,\n )\n )\n ) {\n if (GlobalConfig.get('dryRun')) {\n logger.info(\n { title: config.dependencyDashboardTitle },\n 'DRY-RUN: Would close Dependency Dashboard',\n );\n } else {\n logger.debug('Closing Dependency Dashboard');\n await platform.ensureIssueClosing(config.dependencyDashboardTitle!);\n }\n return;\n }\n // istanbul ignore if\n if (config.repoIsOnboarded === false) {\n logger.debug('Repo is onboarding - skipping dependency dashboard');\n return;\n }\n logger.debug('Ensuring Dependency Dashboard');\n\n // Check packageFiles for any deprecations\n let hasDeprecations = false;\n const deprecatedPackages: Record<string, Record<string, boolean>> = {};\n logger.debug('Checking packageFiles for deprecated packages');\n if (is.nonEmptyObject(packageFiles)) {\n for (const [manager, fileNames] of Object.entries(packageFiles)) {\n for (const fileName of fileNames) {\n for (const dep of fileName.deps) {\n const name = dep.packageName ?? dep.depName;\n const hasReplacement = !!dep.updates?.find(\n (updates) => updates.updateType === 'replacement',\n );\n if (name && (dep.deprecationMessage ?? hasReplacement)) {\n hasDeprecations = true;\n deprecatedPackages[manager] ??= {};\n deprecatedPackages[manager][name] ??= hasReplacement;\n }\n }\n }\n }\n }\n\n const hasBranches = is.nonEmptyArray(branches);\n if (config.dependencyDashboardAutoclose && !hasBranches && !hasDeprecations) {\n if (GlobalConfig.get('dryRun')) {\n logger.info(\n { title: config.dependencyDashboardTitle },\n 'DRY-RUN: Would close Dependency Dashboard',\n );\n } else {\n logger.debug('Closing Dependency Dashboard');\n await platform.ensureIssueClosing(config.dependencyDashboardTitle!);\n }\n return;\n }\n let issueBody = '';\n\n if (config.dependencyDashboardHeader?.length) {\n issueBody +=\n template.compile(config.dependencyDashboardHeader, config) + '\\n\\n';\n }\n\n if (configMigrationRes.result === 'pr-exists') {\n issueBody +=\n '## Config Migration Needed\\n\\n' +\n getMarkdownComment(configMigrationPrInfo) +\n ` See Config Migration PR: #${configMigrationRes.prNumber}.\\n\\n`;\n } else if (configMigrationRes?.result === 'pr-modified') {\n issueBody +=\n '## Config Migration Needed (error)\\n\\n' +\n getMarkdownComment(configMigrationPrInfo) +\n ` The Config Migration branch exists but has been modified by another user. Renovate will not push to this branch unless it is first deleted. \\n\\n See Config Migration PR: #${configMigrationRes.prNumber}.\\n\\n`;\n } else if (configMigrationRes?.result === 'add-checkbox') {\n issueBody +=\n '## Config Migration Needed\\n\\n' +\n getCheckbox(createConfigMigrationPr) +\n ' Select this checkbox to let Renovate create an automated Config Migration PR.' +\n '\\n\\n';\n }\n\n issueBody = appendRepoProblems(config, issueBody);\n\n if (hasDeprecations) {\n issueBody += '> ⚠ **Warning**\\n> \\n';\n issueBody += 'These dependencies are deprecated:\\n\\n';\n issueBody += '| Datasource | Name | Replacement PR? |\\n';\n issueBody += '|------------|------|--------------|\\n';\n for (const manager of Object.keys(deprecatedPackages).sort()) {\n const deps = deprecatedPackages[manager];\n for (const depName of Object.keys(deps).sort()) {\n const hasReplacement = deps[depName];\n issueBody += `| ${manager} | \\`${depName}\\` | ${\n hasReplacement\n ? '![Available](https://img.shields.io/badge/available-green?style=flat-square)'\n : '![Unavailable](https://img.shields.io/badge/unavailable-orange?style=flat-square)'\n } |\\n`;\n }\n }\n issueBody += '\\n';\n }\n\n if (config.dependencyDashboardReportAbandonment) {\n issueBody += getAbandonedPackagesMd(packageFiles);\n }\n\n issueBody += getBranchesListMd(\n branches,\n (branch) => branch.result === 'needs-approval',\n 'Pending Approval',\n 'The following branches are pending approval. To create them, click on a checkbox below.',\n 'approve',\n approveAllPendingPrs,\n 'Create all pending approval PRs at once',\n '🔐',\n );\n issueBody += getBranchesListMd(\n branches,\n (branch) => branch.result === 'minimum-group-size-not-met',\n 'Group Size Not Met',\n 'The following branches have not met their minimum group size. To create them, click on a checkbox below.',\n 'approveGroup',\n );\n issueBody += getBranchesListMd(\n branches,\n (branch) => branch.result === 'not-scheduled',\n 'Awaiting Schedule',\n 'The following updates are awaiting their schedule. To get an update now, click on a checkbox below.',\n 'unschedule',\n );\n issueBody += getBranchesListMd(\n branches,\n (branch) =>\n branch.result === 'branch-limit-reached' ||\n branch.result === 'pr-limit-reached' ||\n branch.result === 'commit-limit-reached',\n 'Rate-Limited',\n 'The following updates are currently rate-limited. To force their creation now, click on a checkbox below.',\n 'unlimit',\n createAllRateLimitedPrs,\n 'Create all rate-limited PRs at once',\n '🔐',\n );\n issueBody += getBranchesListMd(\n branches,\n (branch) => branch.result === 'error',\n 'Errored',\n 'The following updates encountered an error and will be retried. To force a retry now, click on a checkbox below.',\n 'retry',\n );\n issueBody += getBranchesListMd(\n branches,\n (branch) => branch.result === 'needs-pr-approval',\n 'PR Creation Approval Required',\n 'The following branches exist but PR creation requires approval. To approve PR creation, click on a checkbox below.',\n );\n issueBody += getBranchesListMd(\n branches,\n (branch) => branch.result === 'pr-edited',\n 'Edited/Blocked',\n 'The following updates have been manually edited so Renovate will no longer make changes. To discard all commits and start over, click on a checkbox below.',\n 'rebase',\n );\n issueBody += getBranchesListMd(\n branches,\n (branch) => branch.result === 'pending',\n 'Pending Status Checks',\n 'The following updates await pending status checks. To force their creation now, click on a checkbox below.',\n );\n issueBody += getBranchesListMd(\n branches,\n (branch) => branch.prBlockedBy === 'BranchAutomerge',\n 'Pending Branch Automerge',\n 'The following updates await pending status checks before automerging. To abort the branch automerge and create a PR instead, click on a checkbox below.',\n );\n\n const warn = getDepWarningsDashboard(packageFiles, config);\n if (warn) {\n issueBody += warn;\n issueBody += '\\n';\n }\n\n const otherRes = [\n 'pending',\n 'needs-approval',\n 'needs-pr-approval',\n 'not-scheduled',\n 'pr-limit-reached',\n 'commit-limit-reached',\n 'branch-limit-reached',\n 'already-existed',\n 'error',\n 'automerged',\n 'pr-edited',\n 'minimum-group-size-not-met',\n ];\n const inProgress = branches.filter(\n (branch) =>\n !otherRes.includes(branch.result!) &&\n branch.prBlockedBy !== 'BranchAutomerge',\n );\n issueBody += getBranchesListMd(\n inProgress,\n (branch) => !!branch.prBlockedBy || !branch.prNo,\n 'Other Branches',\n 'The following updates are pending. To force the creation of a PR, click on a checkbox below.',\n 'other',\n );\n issueBody += getBranchesListMd(\n inProgress,\n (branch) => branch.prNo && !branch.prBlockedBy,\n 'Open',\n 'The following updates have all been created. To force a retry/rebase of any, click on a checkbox below.',\n 'rebase',\n rebaseAllOpenPrs,\n 'Click on this checkbox to rebase all open PRs at once',\n );\n\n issueBody += getBranchesListMd(\n branches,\n (branch) => branch.result === 'already-existed',\n 'Ignored or Blocked',\n 'The following updates are blocked by an existing closed PR. To recreate the PR, click on a checkbox below.',\n 'recreate',\n );\n\n if (!hasBranches) {\n issueBody +=\n 'This repository currently has no open or pending branches.\\n\\n';\n }\n\n // add CVE section\n issueBody += await getDashboardMarkdownVulnerabilities(config, packageFiles);\n\n // fit the detected dependencies section\n const footer = getFooter(config);\n issueBody += PackageFiles.getDashboardMarkdown(\n platform.maxBodyLength() - issueBody.length - footer.length,\n );\n\n issueBody += footer;\n\n if (config.dependencyDashboardIssue) {\n // If we're not changing the dashboard issue, then we can skip checking if the user changed it.\n // The cached issue we get back here will reflect its state at the _start_ of our run\n const cachedIssue = await platform.getIssue?.(\n config.dependencyDashboardIssue,\n );\n if (cachedIssue?.body === issueBody) {\n logger.debug('No changes to dependency dashboard issue needed');\n return;\n }\n\n // Skip cache when getting the issue to ensure we get the latest body,\n // including any updates the user made after we started the run\n const updatedIssue = await platform.getIssue?.(\n config.dependencyDashboardIssue,\n false,\n );\n if (updatedIssue) {\n const { dependencyDashboardChecks } = parseDashboardIssue(\n coerceString(updatedIssue.body),\n );\n for (const branchName of Object.keys(config.dependencyDashboardChecks!)) {\n delete dependencyDashboardChecks[branchName];\n }\n for (const branchName of Object.keys(dependencyDashboardChecks)) {\n const checkText = getCheckbox(\n `${dependencyDashboardChecks[branchName]}-branch=${branchName}`,\n );\n issueBody = issueBody.replace(\n checkText,\n checkText.replace('[ ]', '[x]'),\n );\n }\n }\n }\n\n if (GlobalConfig.get('dryRun')) {\n logger.info(\n { title: config.dependencyDashboardTitle },\n 'DRY-RUN: Would ensure Dependency Dashboard',\n );\n } else {\n await platform.ensureIssue({\n title: config.dependencyDashboardTitle!,\n reuseTitle,\n body: platform.massageMarkdown(issueBody, config.rebaseLabel),\n labels: config.dependencyDashboardLabels,\n confidential: config.confidential,\n });\n }\n}\n\nexport function getAbandonedPackagesMd(\n packageFiles: Record<string, PackageFile[]>,\n): string {\n const abandonedPackages: Record<\n string,\n Record<string, string | undefined | null>\n > = {};\n let abandonedCount = 0;\n\n for (const [manager, managerPackageFiles] of Object.entries(packageFiles)) {\n for (const packageFile of managerPackageFiles) {\n for (const dep of coerceArray(packageFile.deps)) {\n if (dep.depName && dep.isAbandoned) {\n abandonedCount++;\n abandonedPackages[manager] = abandonedPackages[manager] || {};\n abandonedPackages[manager][dep.depName] = dep.mostRecentTimestamp;\n }\n }\n }\n }\n\n if (abandonedCount === 0) {\n return '';\n }\n\n let abandonedMd = '> ℹ **Note**\\n> \\n';\n abandonedMd +=\n 'These dependencies have not received updates for an extended period and may be unmaintained:\\n\\n';\n\n abandonedMd += '<details>\\n';\n abandonedMd += `<summary>View abandoned dependencies (${abandonedCount})</summary>\\n\\n`;\n abandonedMd += '| Datasource | Name | Last Updated |\\n';\n abandonedMd += '|------------|------|-------------|\\n';\n\n for (const manager of Object.keys(abandonedPackages).sort()) {\n const deps = abandonedPackages[manager];\n for (const depName of Object.keys(deps).sort()) {\n const mostRecentTimestamp = deps[depName];\n const formattedDate = mostRecentTimestamp\n ? DateTime.fromISO(mostRecentTimestamp).toFormat('yyyy-MM-dd')\n : 'unknown';\n abandonedMd += `| ${manager} | \\`${depName}\\` | \\`${formattedDate}\\` |\\n`;\n }\n }\n\n abandonedMd += '\\n</details>\\n\\n';\n abandonedMd +=\n 'Packages are marked as abandoned when they exceed the [`abandonmentThreshold`](https://docs.renovatebot.com/configuration-options/#abandonmentthreshold) since their last release.\\n';\n abandonedMd +=\n 'Unlike deprecated packages with official notices, abandonment is detected by release inactivity.\\n\\n';\n\n return abandonedMd + '\\n';\n}\n\nfunction getFooter(config: RenovateConfig): string {\n let footer = '';\n if (config.dependencyDashboardFooter?.length) {\n footer +=\n '---\\n' +\n template.compile(config.dependencyDashboardFooter, config) +\n '\\n';\n }\n\n return footer;\n}\n\nexport async function getDashboardMarkdownVulnerabilities(\n config: RenovateConfig,\n packageFiles: Record<string, PackageFile[]>,\n): Promise<string> {\n let result = '';\n\n if (\n is.nullOrUndefined(config.dependencyDashboardOSVVulnerabilitySummary) ||\n config.dependencyDashboardOSVVulnerabilitySummary === 'none'\n ) {\n return result;\n }\n\n result += '## Vulnerabilities\\n\\n';\n\n const vulnerabilityFetcher = await Vulnerabilities.create();\n const vulnerabilities = await vulnerabilityFetcher.fetchVulnerabilities(\n config,\n packageFiles,\n );\n\n if (vulnerabilities.length === 0) {\n result +=\n 'Renovate has not found any CVEs on [osv.dev](https://osv.dev).\\n\\n';\n return result;\n }\n\n const unresolvedVulnerabilities = vulnerabilities.filter((value) =>\n is.nullOrUndefined(value.fixedVersion),\n );\n const resolvedVulnerabilitiesLength =\n vulnerabilities.length - unresolvedVulnerabilities.length;\n\n result += `\\`${resolvedVulnerabilitiesLength}\\`/\\`${vulnerabilities.length}\\``;\n if (is.truthy(config.osvVulnerabilityAlerts)) {\n result += ' CVEs have Renovate fixes.\\n';\n } else {\n result +=\n ' CVEs have possible Renovate fixes.\\nSee [`osvVulnerabilityAlerts`](https://docs.renovatebot.com/configuration-options/#osvvulnerabilityalerts) to allow Renovate to supply fixes.\\n';\n }\n\n let renderedVulnerabilities: Vulnerability[];\n switch (config.dependencyDashboardOSVVulnerabilitySummary) {\n // filter vulnerabilities to display based on configuration\n case 'unresolved':\n renderedVulnerabilities = unresolvedVulnerabilities;\n break;\n default:\n renderedVulnerabilities = vulnerabilities;\n }\n\n const managerRecords: Record<\n string,\n Record<string, Record<string, Vulnerability[]>>\n > = {};\n for (const vulnerability of renderedVulnerabilities) {\n const { manager, packageFile } = vulnerability.packageFileConfig;\n if (is.nullOrUndefined(managerRecords[manager!])) {\n managerRecords[manager!] = {};\n }\n if (is.nullOrUndefined(managerRecords[manager!][packageFile])) {\n managerRecords[manager!][packageFile] = {};\n }\n if (\n is.nullOrUndefined(\n managerRecords[manager!][packageFile][vulnerability.packageName],\n )\n ) {\n managerRecords[manager!][packageFile][vulnerability.packageName] = [];\n }\n managerRecords[manager!][packageFile][vulnerability.packageName].push(\n vulnerability,\n );\n }\n\n for (const [manager, packageFileRecords] of Object.entries(managerRecords)) {\n result += `<details><summary>${manager}</summary>\\n<blockquote>\\n\\n`;\n for (const [packageFile, packageNameRecords] of Object.entries(\n packageFileRecords,\n )) {\n result += `<details><summary>${packageFile}</summary>\\n<blockquote>\\n\\n`;\n for (const [packageName, cves] of Object.entries(packageNameRecords)) {\n result += `<details><summary>${packageName}</summary>\\n<blockquote>\\n\\n`;\n for (const vul of cves) {\n const id = vul.vulnerability.id;\n const suffix = is.nonEmptyString(vul.fixedVersion)\n ? ` (fixed in ${vul.fixedVersion})`\n : '';\n result += `- [${id}](https://osv.dev/vulnerability/${id})${suffix}\\n`;\n }\n result += `</blockquote>\\n</details>\\n\\n`;\n }\n result += `</blockquote>\\n</details>\\n\\n`;\n }\n result += `</blockquote>\\n</details>\\n\\n`;\n }\n\n return result;\n}\n"]}
@@ -55,7 +55,7 @@ async function raiseWarningIssue(config, notificationName, title, initialBody, e
55
55
  shouldReOpen: config.configWarningReuseIssue,
56
56
  confidential: config.confidential,
57
57
  });
58
- if (res === 'created') {
58
+ if (res === 'updated' || res === 'created') {
59
59
  logger_1.logger.warn({ configError: error, res }, 'Configuration Warning');
60
60
  }
61
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"error-config.js","sourceRoot":"","sources":["../../../lib/workers/repository/error-config.ts"],"names":[],"mappings":";;AAOA,0DASC;AAED,oEASC;AA3BD,cAAc;AACd,gDAAmD;AAEnD,yCAAsC;AAEtC,qDAAkD;AAElD,SAAgB,uBAAuB,CACrC,MAAsB,EACtB,KAAY;IAEZ,eAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,6CAA6C,CAAC;IAC5D,MAAM,IAAI,GAAG,2JAA2J,CAAC;IACzK,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;IAC5C,OAAO,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACzE,CAAC;AAED,SAAgB,4BAA4B,CAC1C,MAAsB,EACtB,KAAY;IAEZ,eAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,0CAA0C,CAAC;IACzD,MAAM,IAAI,GAAG,2IAA2I,CAAC;IACzJ,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;IACnD,OAAO,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACzE,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,MAAsB,EACtB,gBAAwB,EACxB,KAAa,EACb,WAAmB,EACnB,KAAY;IAEZ,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,eAAM,CAAC,KAAK,CACV,2EAA2E,CAC5E,CAAC;QACF,OAAO;IACT,CAAC;IACD,IAAI,IAAI,GAAG,WAAW,CAAC;IACvB,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAC3B,IAAI,IAAI,eAAe,KAAK,CAAC,gBAAgB,MAAM,CAAC;IACtD,CAAC;IACD,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,IAAI,IAAI,eAAe,KAAK,CAAC,eAAe,IAAI,CAAC;IACnD,CAAC;IACD,IAAI,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC5B,IAAI,IAAI,YAAY,KAAK,CAAC,iBAAiB,IAAI,CAAC;IAClD,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,mBAAQ,CAAC,WAAW,CACnC,MAAM,CAAC,gBAAiB,EACxB,MAAM,CAAC,UAAU,CAClB,CAAC;IACF,IAAI,EAAE,EAAE,KAAK,KAAK,MAAM,EAAE,CAAC;QACzB,MAAM,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACnC,OAAO;IACT,CAAC;IAED,IAAI,qBAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,eAAM,CAAC,IAAI,CACT,EAAE,WAAW,EAAE,KAAK,EAAE,EACtB,iDAAiD,CAClD,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,MAAM,CAAC,qBAAqB,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7D,eAAM,CAAC,IAAI,CACT,EAAE,gBAAgB,EAAE,EACpB,kDAAkD,CACnD,CAAC;QACF,OAAO;IACT,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,mBAAQ,CAAC,WAAW,CAAC;QACrC,KAAK;QACL,IAAI;QACJ,IAAI,EAAE,KAAK;QACX,YAAY,EAAE,MAAM,CAAC,uBAAuB;QAC5C,YAAY,EAAE,MAAM,CAAC,YAAY;KAClC,CAAC,CAAC;IACH,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,eAAM,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,uBAAuB,CAAC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,EAAM,EAAE,YAAoB;IAC5D,eAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAChE,IAAI,qBAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,eAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,IAAI,MAAM,GAAG,qDAAqD,YAAY,EAAE,CAAC;IACjF,MAAM,IAAI,+JAA+J,CAAC;IAE1K,IAAI,CAAC;QACH,MAAM,mBAAQ,CAAC,QAAQ,CAAC;YACtB,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,OAAO,EAAE,EAAE,CAAC,KAAK;YACjB,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,0BAA0B,CAAC,CAAC;QACxC,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,8BAA8B,CAAC,CAAC;IACvD,CAAC;AACH,CAAC","sourcesContent":["// TODO #22198\nimport { GlobalConfig } from '../../config/global';\nimport type { RenovateConfig } from '../../config/types';\nimport { logger } from '../../logger';\nimport type { Pr } from '../../modules/platform';\nimport { platform } from '../../modules/platform';\n\nexport function raiseConfigWarningIssue(\n config: RenovateConfig,\n error: Error,\n): Promise<void> {\n logger.debug('raiseConfigWarningIssue()');\n const title = `Action Required: Fix Renovate Configuration`;\n const body = `There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.\\n\\n`;\n const notificationName = 'configErrorIssue';\n return raiseWarningIssue(config, notificationName, title, body, error);\n}\n\nexport function raiseCredentialsWarningIssue(\n config: RenovateConfig,\n error: Error,\n): Promise<void> {\n logger.debug('raiseCredentialsWarningIssue()');\n const title = `Action Required: Add missing credentials`;\n const body = `There are missing credentials for the authentication-required feature. As a precaution, Renovate will pause PRs until it is resolved.\\n\\n`;\n const notificationName = 'missingCredentialsError';\n return raiseWarningIssue(config, notificationName, title, body, error);\n}\n\nasync function raiseWarningIssue(\n config: RenovateConfig,\n notificationName: string,\n title: string,\n initialBody: string,\n error: Error,\n): Promise<void> {\n if (config.mode === 'silent') {\n logger.debug(\n `Config warning issues are not created, updated or closed when mode=silent`,\n );\n return;\n }\n let body = initialBody;\n if (error.validationSource) {\n body += `Location: \\`${error.validationSource}\\`\\n`;\n }\n if (error.validationError) {\n body += `Error type: ${error.validationError}\\n`;\n }\n if (error.validationMessage) {\n body += `Message: ${error.validationMessage}\\n`;\n }\n\n const pr = await platform.getBranchPr(\n config.onboardingBranch!,\n config.baseBranch,\n );\n if (pr?.state === 'open') {\n await handleOnboardingPr(pr, body);\n return;\n }\n\n if (GlobalConfig.get('dryRun')) {\n logger.info(\n { configError: error },\n 'DRY-RUN: Would ensure configuration error issue',\n );\n return;\n }\n\n if (config.suppressNotifications?.includes(notificationName)) {\n logger.info(\n { notificationName },\n 'Configuration failure, issues will be suppressed',\n );\n return;\n }\n\n const res = await platform.ensureIssue({\n title,\n body,\n once: false,\n shouldReOpen: config.configWarningReuseIssue,\n confidential: config.confidential,\n });\n if (res === 'created') {\n logger.warn({ configError: error, res }, 'Configuration Warning');\n }\n}\n\nasync function handleOnboardingPr(pr: Pr, issueMessage: string): Promise<void> {\n logger.debug('Updating onboarding PR with config error notice');\n if (GlobalConfig.get('dryRun')) {\n logger.info(`DRY-RUN: Would update PR #${pr.number}`);\n return;\n }\n\n let prBody = `## Action Required: Fix Renovate Configuration\\n\\n${issueMessage}`;\n prBody += `\\n\\nOnce you have resolved this problem (in this onboarding branch), Renovate will return to providing you with a preview of your repository's configuration.`;\n\n try {\n await platform.updatePr({\n number: pr.number,\n prTitle: pr.title,\n prBody,\n });\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ err }, 'Error updating onboarding PR');\n }\n}\n"]}
1
+ {"version":3,"file":"error-config.js","sourceRoot":"","sources":["../../../lib/workers/repository/error-config.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO #22198\nimport { GlobalConfig } from '../../config/global';\nimport type { RenovateConfig } from '../../config/types';\nimport { logger } from '../../logger';\nimport type { Pr } from '../../modules/platform';\nimport { platform } from '../../modules/platform';\n\nexport function raiseConfigWarningIssue(\n config: RenovateConfig,\n error: Error,\n): Promise<void> {\n logger.debug('raiseConfigWarningIssue()');\n const title = `Action Required: Fix Renovate Configuration`;\n const body = `There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.\\n\\n`;\n const notificationName = 'configErrorIssue';\n return raiseWarningIssue(config, notificationName, title, body, error);\n}\n\nexport function raiseCredentialsWarningIssue(\n config: RenovateConfig,\n error: Error,\n): Promise<void> {\n logger.debug('raiseCredentialsWarningIssue()');\n const title = `Action Required: Add missing credentials`;\n const body = `There are missing credentials for the authentication-required feature. As a precaution, Renovate will pause PRs until it is resolved.\\n\\n`;\n const notificationName = 'missingCredentialsError';\n return raiseWarningIssue(config, notificationName, title, body, error);\n}\n\nasync function raiseWarningIssue(\n config: RenovateConfig,\n notificationName: string,\n title: string,\n initialBody: string,\n error: Error,\n): Promise<void> {\n if (config.mode === 'silent') {\n logger.debug(\n `Config warning issues are not created, updated or closed when mode=silent`,\n );\n return;\n }\n let body = initialBody;\n if (error.validationSource) {\n body += `Location: \\`${error.validationSource}\\`\\n`;\n }\n if (error.validationError) {\n body += `Error type: ${error.validationError}\\n`;\n }\n if (error.validationMessage) {\n body += `Message: ${error.validationMessage}\\n`;\n }\n\n const pr = await platform.getBranchPr(\n config.onboardingBranch!,\n config.baseBranch,\n );\n if (pr?.state === 'open') {\n await handleOnboardingPr(pr, body);\n return;\n }\n\n if (GlobalConfig.get('dryRun')) {\n logger.info(\n { configError: error },\n 'DRY-RUN: Would ensure configuration error issue',\n );\n return;\n }\n\n if (config.suppressNotifications?.includes(notificationName)) {\n logger.info(\n { notificationName },\n 'Configuration failure, issues will be suppressed',\n );\n return;\n }\n\n const res = await platform.ensureIssue({\n title,\n body,\n once: false,\n shouldReOpen: config.configWarningReuseIssue,\n confidential: config.confidential,\n });\n if (res === 'updated' || res === 'created') {\n logger.warn({ configError: error, res }, 'Configuration Warning');\n }\n}\n\nasync function handleOnboardingPr(pr: Pr, issueMessage: string): Promise<void> {\n logger.debug('Updating onboarding PR with config error notice');\n if (GlobalConfig.get('dryRun')) {\n logger.info(`DRY-RUN: Would update PR #${pr.number}`);\n return;\n }\n\n let prBody = `## Action Required: Fix Renovate Configuration\\n\\n${issueMessage}`;\n prBody += `\\n\\nOnce you have resolved this problem (in this onboarding branch), Renovate will return to providing you with a preview of your repository's configuration.`;\n\n try {\n await platform.updatePr({\n number: pr.number,\n prTitle: pr.title,\n prBody,\n });\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ err }, 'Error updating onboarding PR');\n }\n}\n"]}
@@ -87,7 +87,7 @@ async function handleError(config, err) {
87
87
  }
88
88
  if (err.message === error_messages_1.CONFIG_VALIDATION) {
89
89
  delete config.branchList;
90
- logger_1.logger.info({ error: err }, 'Repository has invalid config');
90
+ logger_1.logger.warn({ error: err }, 'Repository has invalid config');
91
91
  await (0, error_config_1.raiseConfigWarningIssue)(config, err);
92
92
  return err.message;
93
93
  }
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../lib/workers/repository/error.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RenovateConfig } from '../../config/types';\n\nimport {\n CONFIG_SECRETS_EXPOSED,\n CONFIG_VALIDATION,\n EXTERNAL_HOST_ERROR,\n MANAGER_LOCKFILE_ERROR,\n MISSING_API_CREDENTIALS,\n NO_VULNERABILITY_ALERTS,\n PLATFORM_AUTHENTICATION_ERROR,\n PLATFORM_BAD_CREDENTIALS,\n PLATFORM_INTEGRATION_UNAUTHORIZED,\n PLATFORM_RATE_LIMIT_EXCEEDED,\n REPOSITORY_ACCESS_FORBIDDEN,\n REPOSITORY_ARCHIVED,\n REPOSITORY_BLOCKED,\n REPOSITORY_CANNOT_FORK,\n REPOSITORY_CHANGED,\n REPOSITORY_CLOSED_ONBOARDING,\n REPOSITORY_DISABLED,\n REPOSITORY_DISABLED_BY_CONFIG,\n REPOSITORY_EMPTY,\n REPOSITORY_FORKED,\n REPOSITORY_FORK_MISSING,\n REPOSITORY_FORK_MODE_FORKED,\n REPOSITORY_MIRRORED,\n REPOSITORY_NOT_FOUND,\n REPOSITORY_NO_CONFIG,\n REPOSITORY_NO_PACKAGE_FILES,\n REPOSITORY_RENAMED,\n REPOSITORY_UNINITIATED,\n SYSTEM_INSUFFICIENT_DISK_SPACE,\n SYSTEM_INSUFFICIENT_MEMORY,\n TEMPORARY_ERROR,\n UNKNOWN_ERROR,\n} from '../../constants/error-messages';\nimport { logger } from '../../logger';\nimport { ExternalHostError } from '../../types/errors/external-host-error';\nimport {\n raiseConfigWarningIssue,\n raiseCredentialsWarningIssue,\n} from './error-config';\n\nexport default async function handleError(\n config: RenovateConfig,\n err: Error,\n): Promise<string> {\n if (err.message === REPOSITORY_UNINITIATED) {\n logger.info('Repository is uninitiated - skipping');\n delete config.branchList;\n return err.message;\n }\n if (err.message === REPOSITORY_EMPTY) {\n logger.info('Repository is empty - skipping');\n delete config.branchList;\n return err.message;\n }\n const disabledMessages = [\n REPOSITORY_CLOSED_ONBOARDING,\n REPOSITORY_DISABLED,\n REPOSITORY_DISABLED_BY_CONFIG,\n REPOSITORY_NO_CONFIG,\n ];\n if (disabledMessages.includes(err.message)) {\n logger.info('Repository is disabled - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_ARCHIVED) {\n logger.info('Repository is archived - skipping');\n delete config.branchList;\n return err.message;\n }\n if (err.message === REPOSITORY_MIRRORED) {\n logger.info('Repository is a mirror - skipping');\n delete config.branchList;\n return err.message;\n }\n if (err.message === REPOSITORY_RENAMED) {\n logger.info('Repository has been renamed - skipping');\n delete config.branchList;\n return err.message;\n }\n if (err.message === REPOSITORY_BLOCKED) {\n delete config.branchList;\n logger.info('Repository is blocked - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_ACCESS_FORBIDDEN) {\n delete config.branchList;\n logger.info('Repository is forbidden');\n return err.message;\n }\n if (err.message === REPOSITORY_NOT_FOUND) {\n delete config.branchList;\n logger.error('Repository is not found');\n return err.message;\n }\n if (err.message === REPOSITORY_FORK_MODE_FORKED) {\n logger.info(\n 'Repository is a fork and cannot be processed when Renovate is running in fork mode itself',\n );\n return err.message;\n }\n if (err.message === REPOSITORY_FORKED) {\n logger.info(\n 'Repository is a fork and not manually configured - skipping - did you want to run with --fork-processing=enabled?',\n );\n return err.message;\n }\n if (err.message === REPOSITORY_CANNOT_FORK) {\n logger.info('Cannot fork repository - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_FORK_MISSING) {\n logger.info('Cannot find fork required for fork mode - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_NO_PACKAGE_FILES) {\n logger.info('Repository has no package files - skipping');\n return err.message;\n }\n if (err.message === NO_VULNERABILITY_ALERTS) {\n logger.info('Repository has no vulnerability alerts - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_CHANGED) {\n logger.info('Repository has changed during renovation - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === CONFIG_VALIDATION) {\n delete config.branchList;\n logger.info({ error: err }, 'Repository has invalid config');\n await raiseConfigWarningIssue(config, err);\n return err.message;\n }\n if (err.message === MISSING_API_CREDENTIALS) {\n delete config.branchList;\n logger.info({ error: err }, MISSING_API_CREDENTIALS);\n await raiseCredentialsWarningIssue(config, err);\n return err.message;\n }\n if (err.message === CONFIG_SECRETS_EXPOSED) {\n delete config.branchList;\n logger.warn(\n { error: err },\n 'Repository aborted due to potential secrets exposure',\n );\n return err.message;\n }\n if (err instanceof ExternalHostError) {\n logger.warn(\n { hostType: err.hostType, packageName: err.packageName, err: err.err },\n 'Host error',\n );\n logger.info('External host error causing abort - skipping');\n delete config.branchList;\n return err.message;\n }\n if (\n err.message.includes('No space left on device') ||\n err.message === SYSTEM_INSUFFICIENT_DISK_SPACE\n ) {\n logger.error('Disk space error - skipping');\n delete config.branchList;\n return err.message;\n }\n if (err.message === PLATFORM_RATE_LIMIT_EXCEEDED) {\n logger.warn('Rate limit exceeded - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === SYSTEM_INSUFFICIENT_MEMORY) {\n logger.warn('Insufficient memory - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === PLATFORM_BAD_CREDENTIALS) {\n logger.warn('Bad credentials - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === PLATFORM_INTEGRATION_UNAUTHORIZED) {\n logger.warn('Integration unauthorized - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === PLATFORM_AUTHENTICATION_ERROR) {\n logger.warn('Authentication error - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === TEMPORARY_ERROR) {\n logger.info('Temporary error - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === MANAGER_LOCKFILE_ERROR) {\n delete config.branchList;\n logger.info('Lock file error - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message.includes('The requested URL returned error: 5')) {\n logger.warn({ err }, 'Git error - aborting');\n delete config.branchList;\n // rewrite this error\n return EXTERNAL_HOST_ERROR;\n }\n if (\n err.message.includes('remote end hung up unexpectedly') ||\n err.message.includes('access denied or repository not exported')\n ) {\n logger.warn({ err }, 'Git error - aborting');\n delete config.branchList;\n // rewrite this error\n return EXTERNAL_HOST_ERROR;\n }\n if (err.message.includes('fatal: not a git repository')) {\n delete config.branchList;\n return TEMPORARY_ERROR;\n }\n // Swallow this error so that other repositories can be processed\n logger.error({ err }, `Repository has unknown error`);\n // delete branchList to avoid cleaning up branches\n delete config.branchList;\n\n return UNKNOWN_ERROR;\n}\n"]}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../lib/workers/repository/error.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RenovateConfig } from '../../config/types';\n\nimport {\n CONFIG_SECRETS_EXPOSED,\n CONFIG_VALIDATION,\n EXTERNAL_HOST_ERROR,\n MANAGER_LOCKFILE_ERROR,\n MISSING_API_CREDENTIALS,\n NO_VULNERABILITY_ALERTS,\n PLATFORM_AUTHENTICATION_ERROR,\n PLATFORM_BAD_CREDENTIALS,\n PLATFORM_INTEGRATION_UNAUTHORIZED,\n PLATFORM_RATE_LIMIT_EXCEEDED,\n REPOSITORY_ACCESS_FORBIDDEN,\n REPOSITORY_ARCHIVED,\n REPOSITORY_BLOCKED,\n REPOSITORY_CANNOT_FORK,\n REPOSITORY_CHANGED,\n REPOSITORY_CLOSED_ONBOARDING,\n REPOSITORY_DISABLED,\n REPOSITORY_DISABLED_BY_CONFIG,\n REPOSITORY_EMPTY,\n REPOSITORY_FORKED,\n REPOSITORY_FORK_MISSING,\n REPOSITORY_FORK_MODE_FORKED,\n REPOSITORY_MIRRORED,\n REPOSITORY_NOT_FOUND,\n REPOSITORY_NO_CONFIG,\n REPOSITORY_NO_PACKAGE_FILES,\n REPOSITORY_RENAMED,\n REPOSITORY_UNINITIATED,\n SYSTEM_INSUFFICIENT_DISK_SPACE,\n SYSTEM_INSUFFICIENT_MEMORY,\n TEMPORARY_ERROR,\n UNKNOWN_ERROR,\n} from '../../constants/error-messages';\nimport { logger } from '../../logger';\nimport { ExternalHostError } from '../../types/errors/external-host-error';\nimport {\n raiseConfigWarningIssue,\n raiseCredentialsWarningIssue,\n} from './error-config';\n\nexport default async function handleError(\n config: RenovateConfig,\n err: Error,\n): Promise<string> {\n if (err.message === REPOSITORY_UNINITIATED) {\n logger.info('Repository is uninitiated - skipping');\n delete config.branchList;\n return err.message;\n }\n if (err.message === REPOSITORY_EMPTY) {\n logger.info('Repository is empty - skipping');\n delete config.branchList;\n return err.message;\n }\n const disabledMessages = [\n REPOSITORY_CLOSED_ONBOARDING,\n REPOSITORY_DISABLED,\n REPOSITORY_DISABLED_BY_CONFIG,\n REPOSITORY_NO_CONFIG,\n ];\n if (disabledMessages.includes(err.message)) {\n logger.info('Repository is disabled - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_ARCHIVED) {\n logger.info('Repository is archived - skipping');\n delete config.branchList;\n return err.message;\n }\n if (err.message === REPOSITORY_MIRRORED) {\n logger.info('Repository is a mirror - skipping');\n delete config.branchList;\n return err.message;\n }\n if (err.message === REPOSITORY_RENAMED) {\n logger.info('Repository has been renamed - skipping');\n delete config.branchList;\n return err.message;\n }\n if (err.message === REPOSITORY_BLOCKED) {\n delete config.branchList;\n logger.info('Repository is blocked - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_ACCESS_FORBIDDEN) {\n delete config.branchList;\n logger.info('Repository is forbidden');\n return err.message;\n }\n if (err.message === REPOSITORY_NOT_FOUND) {\n delete config.branchList;\n logger.error('Repository is not found');\n return err.message;\n }\n if (err.message === REPOSITORY_FORK_MODE_FORKED) {\n logger.info(\n 'Repository is a fork and cannot be processed when Renovate is running in fork mode itself',\n );\n return err.message;\n }\n if (err.message === REPOSITORY_FORKED) {\n logger.info(\n 'Repository is a fork and not manually configured - skipping - did you want to run with --fork-processing=enabled?',\n );\n return err.message;\n }\n if (err.message === REPOSITORY_CANNOT_FORK) {\n logger.info('Cannot fork repository - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_FORK_MISSING) {\n logger.info('Cannot find fork required for fork mode - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_NO_PACKAGE_FILES) {\n logger.info('Repository has no package files - skipping');\n return err.message;\n }\n if (err.message === NO_VULNERABILITY_ALERTS) {\n logger.info('Repository has no vulnerability alerts - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_CHANGED) {\n logger.info('Repository has changed during renovation - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === CONFIG_VALIDATION) {\n delete config.branchList;\n logger.warn({ error: err }, 'Repository has invalid config');\n await raiseConfigWarningIssue(config, err);\n return err.message;\n }\n if (err.message === MISSING_API_CREDENTIALS) {\n delete config.branchList;\n logger.info({ error: err }, MISSING_API_CREDENTIALS);\n await raiseCredentialsWarningIssue(config, err);\n return err.message;\n }\n if (err.message === CONFIG_SECRETS_EXPOSED) {\n delete config.branchList;\n logger.warn(\n { error: err },\n 'Repository aborted due to potential secrets exposure',\n );\n return err.message;\n }\n if (err instanceof ExternalHostError) {\n logger.warn(\n { hostType: err.hostType, packageName: err.packageName, err: err.err },\n 'Host error',\n );\n logger.info('External host error causing abort - skipping');\n delete config.branchList;\n return err.message;\n }\n if (\n err.message.includes('No space left on device') ||\n err.message === SYSTEM_INSUFFICIENT_DISK_SPACE\n ) {\n logger.error('Disk space error - skipping');\n delete config.branchList;\n return err.message;\n }\n if (err.message === PLATFORM_RATE_LIMIT_EXCEEDED) {\n logger.warn('Rate limit exceeded - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === SYSTEM_INSUFFICIENT_MEMORY) {\n logger.warn('Insufficient memory - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === PLATFORM_BAD_CREDENTIALS) {\n logger.warn('Bad credentials - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === PLATFORM_INTEGRATION_UNAUTHORIZED) {\n logger.warn('Integration unauthorized - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === PLATFORM_AUTHENTICATION_ERROR) {\n logger.warn('Authentication error - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === TEMPORARY_ERROR) {\n logger.info('Temporary error - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === MANAGER_LOCKFILE_ERROR) {\n delete config.branchList;\n logger.info('Lock file error - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message.includes('The requested URL returned error: 5')) {\n logger.warn({ err }, 'Git error - aborting');\n delete config.branchList;\n // rewrite this error\n return EXTERNAL_HOST_ERROR;\n }\n if (\n err.message.includes('remote end hung up unexpectedly') ||\n err.message.includes('access denied or repository not exported')\n ) {\n logger.warn({ err }, 'Git error - aborting');\n delete config.branchList;\n // rewrite this error\n return EXTERNAL_HOST_ERROR;\n }\n if (err.message.includes('fatal: not a git repository')) {\n delete config.branchList;\n return TEMPORARY_ERROR;\n }\n // Swallow this error so that other repositories can be processed\n logger.error({ err }, `Repository has unknown error`);\n // delete branchList to avoid cleaning up branches\n delete config.branchList;\n\n return UNKNOWN_ERROR;\n}\n"]}
@@ -1,2 +1,2 @@
1
1
  import type { ExtractResults } from './types';
2
- export declare function processSupersedesManagers(extractResults: ExtractResults[]): void;
2
+ export declare function processSupersedesManagers(extracts: ExtractResults[]): void;
@@ -4,28 +4,42 @@ exports.processSupersedesManagers = processSupersedesManagers;
4
4
  const tslib_1 = require("tslib");
5
5
  const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
6
6
  const manager_1 = require("../../../modules/manager");
7
- function processSupersedesManagers(extractResults) {
8
- for (const { manager, packageFiles } of extractResults) {
9
- if (!packageFiles) {
7
+ function processSupersedesManagers(extracts) {
8
+ const rejected = {};
9
+ for (const primaryExtract of extracts) {
10
+ const primaryManager = primaryExtract.manager;
11
+ const secondaryManagers = (0, manager_1.get)(primaryExtract.manager, 'supersedesManagers');
12
+ if (!is_1.default.nonEmptyArray(secondaryManagers)) {
10
13
  continue;
11
14
  }
12
- const supersedesManagers = (0, manager_1.get)(manager, 'supersedesManagers');
13
- if (is_1.default.nonEmptyArray(supersedesManagers)) {
14
- const supercedingPackageFileNames = packageFiles.map((packageFile) => packageFile.packageFile);
15
- for (const supercededManager of supersedesManagers) {
16
- const supercededManagerResults = extractResults.find((result) => result.manager === supercededManager);
17
- if (supercededManagerResults?.packageFiles) {
18
- supercededManagerResults.packageFiles =
19
- supercededManagerResults.packageFiles.filter((packageFile) => {
20
- if (!packageFile.lockFiles?.length &&
21
- supercedingPackageFileNames.includes(packageFile.packageFile)) {
22
- return false;
23
- }
24
- return true;
25
- });
15
+ if (!primaryExtract.packageFiles) {
16
+ continue;
17
+ }
18
+ const primaryPackageFiles = primaryExtract.packageFiles.map(({ packageFile }) => packageFile);
19
+ for (const secondaryManager of secondaryManagers) {
20
+ const secondaryExtract = extracts.find(({ manager }) => manager === secondaryManager);
21
+ if (!secondaryExtract?.packageFiles) {
22
+ continue;
23
+ }
24
+ for (const { packageFile, lockFiles } of secondaryExtract.packageFiles) {
25
+ if (is_1.default.nonEmptyArray(lockFiles)) {
26
+ rejected[primaryManager] ??= [];
27
+ rejected[primaryManager].push(packageFile);
28
+ continue;
29
+ }
30
+ if (primaryPackageFiles.includes(packageFile)) {
31
+ rejected[secondaryManager] ??= [];
32
+ rejected[secondaryManager].push(packageFile);
26
33
  }
27
34
  }
28
35
  }
29
36
  }
37
+ for (const extract of extracts) {
38
+ const rejectedFiles = rejected[extract.manager];
39
+ if (!is_1.default.nonEmptyArray(rejectedFiles) || !extract.packageFiles) {
40
+ continue;
41
+ }
42
+ extract.packageFiles = extract.packageFiles.filter(({ packageFile }) => !rejectedFiles.includes(packageFile));
43
+ }
30
44
  }
31
45
  //# sourceMappingURL=supersedes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"supersedes.js","sourceRoot":"","sources":["../../../../lib/workers/repository/extract/supersedes.ts"],"names":[],"mappings":";;AAIA,8DA+BC;;AAnCD,kEAAkC;AAClC,sDAA+C;AAG/C,SAAgB,yBAAyB,CACvC,cAAgC;IAEhC,KAAK,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,cAAc,EAAE,CAAC;QACvD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QACD,MAAM,kBAAkB,GAAG,IAAA,aAAG,EAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAC9D,IAAI,YAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACzC,MAAM,2BAA2B,GAAG,YAAY,CAAC,GAAG,CAClD,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,CACzC,CAAC;YACF,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;gBACnD,MAAM,wBAAwB,GAAG,cAAc,CAAC,IAAI,CAClD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,iBAAiB,CACjD,CAAC;gBACF,IAAI,wBAAwB,EAAE,YAAY,EAAE,CAAC;oBAC3C,wBAAwB,CAAC,YAAY;wBACnC,wBAAwB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE;4BAC3D,IACE,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM;gCAC9B,2BAA2B,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,EAC7D,CAAC;gCACD,OAAO,KAAK,CAAC;4BACf,CAAC;4BACD,OAAO,IAAI,CAAC;wBACd,CAAC,CAAC,CAAC;gBACP,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport { get } from '../../../modules/manager';\nimport type { ExtractResults } from './types';\n\nexport function processSupersedesManagers(\n extractResults: ExtractResults[],\n): void {\n for (const { manager, packageFiles } of extractResults) {\n if (!packageFiles) {\n continue;\n }\n const supersedesManagers = get(manager, 'supersedesManagers');\n if (is.nonEmptyArray(supersedesManagers)) {\n const supercedingPackageFileNames = packageFiles.map(\n (packageFile) => packageFile.packageFile,\n );\n for (const supercededManager of supersedesManagers) {\n const supercededManagerResults = extractResults.find(\n (result) => result.manager === supercededManager,\n );\n if (supercededManagerResults?.packageFiles) {\n supercededManagerResults.packageFiles =\n supercededManagerResults.packageFiles.filter((packageFile) => {\n if (\n !packageFile.lockFiles?.length &&\n supercedingPackageFileNames.includes(packageFile.packageFile)\n ) {\n return false;\n }\n return true;\n });\n }\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"supersedes.js","sourceRoot":"","sources":["../../../../lib/workers/repository/extract/supersedes.ts"],"names":[],"mappings":";;AAIA,8DAoDC;;AAxDD,kEAAkC;AAClC,sDAA+C;AAG/C,SAAgB,yBAAyB,CAAC,QAA0B;IAClE,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAE9C,KAAK,MAAM,cAAc,IAAI,QAAQ,EAAE,CAAC;QACtC,MAAM,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC;QAC9C,MAAM,iBAAiB,GAAG,IAAA,aAAG,EAAC,cAAc,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;QAC5E,IAAI,CAAC,YAAE,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACzC,SAAS;QACX,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YACjC,SAAS;QACX,CAAC;QAED,MAAM,mBAAmB,GAAG,cAAc,CAAC,YAAY,CAAC,GAAG,CACzD,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,CACjC,CAAC;QAEF,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;YACjD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CACpC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,KAAK,gBAAgB,CAC9C,CAAC;YAEF,IAAI,CAAC,gBAAgB,EAAE,YAAY,EAAE,CAAC;gBACpC,SAAS;YACX,CAAC;YAED,KAAK,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,gBAAgB,CAAC,YAAY,EAAE,CAAC;gBACvE,IAAI,YAAE,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;oBAChC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;oBAChC,QAAQ,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBAC3C,SAAS;gBACX,CAAC;gBAED,IAAI,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9C,QAAQ,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;oBAClC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,YAAE,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC9D,SAAS;QACX,CAAC;QAED,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAChD,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC1D,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport { get } from '../../../modules/manager';\nimport type { ExtractResults } from './types';\n\nexport function processSupersedesManagers(extracts: ExtractResults[]): void {\n const rejected: Record<string, string[]> = {};\n\n for (const primaryExtract of extracts) {\n const primaryManager = primaryExtract.manager;\n const secondaryManagers = get(primaryExtract.manager, 'supersedesManagers');\n if (!is.nonEmptyArray(secondaryManagers)) {\n continue;\n }\n\n if (!primaryExtract.packageFiles) {\n continue;\n }\n\n const primaryPackageFiles = primaryExtract.packageFiles.map(\n ({ packageFile }) => packageFile,\n );\n\n for (const secondaryManager of secondaryManagers) {\n const secondaryExtract = extracts.find(\n ({ manager }) => manager === secondaryManager,\n );\n\n if (!secondaryExtract?.packageFiles) {\n continue;\n }\n\n for (const { packageFile, lockFiles } of secondaryExtract.packageFiles) {\n if (is.nonEmptyArray(lockFiles)) {\n rejected[primaryManager] ??= [];\n rejected[primaryManager].push(packageFile);\n continue;\n }\n\n if (primaryPackageFiles.includes(packageFile)) {\n rejected[secondaryManager] ??= [];\n rejected[secondaryManager].push(packageFile);\n }\n }\n }\n }\n\n for (const extract of extracts) {\n const rejectedFiles = rejected[extract.manager];\n if (!is.nonEmptyArray(rejectedFiles) || !extract.packageFiles) {\n continue;\n }\n\n extract.packageFiles = extract.packageFiles.filter(\n ({ packageFile }) => !rejectedFiles.includes(packageFile),\n );\n }\n}\n"]}
@@ -13,8 +13,8 @@ const repository_statistics_1 = require("./repository-statistics");
13
13
  // istanbul ignore next
14
14
  async function finalizeRepo(config, branchList, repoConfig) {
15
15
  await (0, reconfigure_1.checkReconfigureBranch)(config, repoConfig);
16
- await repositoryCache.saveCache();
17
16
  await (0, prune_1.pruneStaleBranches)(config, branchList);
17
+ await repositoryCache.saveCache();
18
18
  await ensureIssuesClosing();
19
19
  await (0, git_1.clearRenovateRefs)();
20
20
  package_files_1.PackageFiles.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/workers/repository/finalize/index.ts"],"names":[],"mappings":";;AAcA,oCA0BC;;AAvCD,4CAAyC;AACzC,wDAAqD;AACrD,wFAAkE;AAClE,2CAAsD;AACtD,oDAAgD;AAChD,gDAAwD;AACxD,mCAA6C;AAC7C,mEAGiC;AAEjC,uBAAuB;AAChB,KAAK,UAAU,YAAY,CAChC,MAAsB,EACtB,UAAoB,EACpB,UAAqB;IAErB,MAAM,IAAA,oCAAsB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjD,MAAM,eAAe,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,IAAA,0BAAkB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC7C,MAAM,mBAAmB,EAAE,CAAC;IAC5B,MAAM,IAAA,uBAAiB,GAAE,CAAC;IAC1B,4BAAY,CAAC,KAAK,EAAE,CAAC;IACrB,MAAM,MAAM,GAAG,MAAM,mBAAQ,CAAC,SAAS,EAAE,CAAC;IAC1C,IACE,MAAM,EAAE,IAAI,CACV,CAAC,EAAE,EAAE,EAAE,CACL,EAAE,CAAC,KAAK,KAAK,QAAQ;QACrB,EAAE,CAAC,KAAK,KAAK,oBAAoB;QACjC,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,iBAAiB;QACrC,EAAE,CAAC,YAAY,KAAK,MAAM,CAAC,gBAAgB,CAC9C,EACD,CAAC;QACD,eAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAClC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;IAChC,CAAC;IACD,IAAA,wCAAgB,EAAC,MAAM,CAAC,CAAC;IACzB,IAAA,4CAAoB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,uBAAuB;AACvB,SAAS,mBAAmB;IAC1B,OAAO,OAAO,CAAC,GAAG,CAAC;QACjB,mBAAQ,CAAC,kBAAkB,CAAC,6CAA6C,CAAC;QAC1E,mBAAQ,CAAC,kBAAkB,CAAC,0CAA0C,CAAC;KACxE,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type { AllConfig, RenovateConfig } from '../../../config/types';\nimport { logger } from '../../../logger';\nimport { platform } from '../../../modules/platform';\nimport * as repositoryCache from '../../../util/cache/repository';\nimport { clearRenovateRefs } from '../../../util/git';\nimport { PackageFiles } from '../package-files';\nimport { checkReconfigureBranch } from '../reconfigure';\nimport { pruneStaleBranches } from './prune';\nimport {\n runBranchSummary,\n runRenovateRepoStats,\n} from './repository-statistics';\n\n// istanbul ignore next\nexport async function finalizeRepo(\n config: RenovateConfig,\n branchList: string[],\n repoConfig: AllConfig,\n): Promise<void> {\n await checkReconfigureBranch(config, repoConfig);\n await repositoryCache.saveCache();\n await pruneStaleBranches(config, branchList);\n await ensureIssuesClosing();\n await clearRenovateRefs();\n PackageFiles.clear();\n const prList = await platform.getPrList();\n if (\n prList?.some(\n (pr) =>\n pr.state === 'merged' &&\n pr.title !== 'Configure Renovate' &&\n pr.title !== config.onboardingPrTitle &&\n pr.sourceBranch !== config.onboardingBranch,\n )\n ) {\n logger.debug('Repo is activated');\n config.repoIsActivated = true;\n }\n runBranchSummary(config);\n runRenovateRepoStats(config, prList);\n}\n\n// istanbul ignore next\nfunction ensureIssuesClosing(): Promise<Awaited<void>[]> {\n return Promise.all([\n platform.ensureIssueClosing(`Action Required: Fix Renovate Configuration`),\n platform.ensureIssueClosing(`Action Required: Add missing credentials`),\n ]);\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/workers/repository/finalize/index.ts"],"names":[],"mappings":";;AAcA,oCA0BC;;AAvCD,4CAAyC;AACzC,wDAAqD;AACrD,wFAAkE;AAClE,2CAAsD;AACtD,oDAAgD;AAChD,gDAAwD;AACxD,mCAA6C;AAC7C,mEAGiC;AAEjC,uBAAuB;AAChB,KAAK,UAAU,YAAY,CAChC,MAAsB,EACtB,UAAoB,EACpB,UAAqB;IAErB,MAAM,IAAA,oCAAsB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACjD,MAAM,IAAA,0BAAkB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC7C,MAAM,eAAe,CAAC,SAAS,EAAE,CAAC;IAClC,MAAM,mBAAmB,EAAE,CAAC;IAC5B,MAAM,IAAA,uBAAiB,GAAE,CAAC;IAC1B,4BAAY,CAAC,KAAK,EAAE,CAAC;IACrB,MAAM,MAAM,GAAG,MAAM,mBAAQ,CAAC,SAAS,EAAE,CAAC;IAC1C,IACE,MAAM,EAAE,IAAI,CACV,CAAC,EAAE,EAAE,EAAE,CACL,EAAE,CAAC,KAAK,KAAK,QAAQ;QACrB,EAAE,CAAC,KAAK,KAAK,oBAAoB;QACjC,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,iBAAiB;QACrC,EAAE,CAAC,YAAY,KAAK,MAAM,CAAC,gBAAgB,CAC9C,EACD,CAAC;QACD,eAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAClC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;IAChC,CAAC;IACD,IAAA,wCAAgB,EAAC,MAAM,CAAC,CAAC;IACzB,IAAA,4CAAoB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACvC,CAAC;AAED,uBAAuB;AACvB,SAAS,mBAAmB;IAC1B,OAAO,OAAO,CAAC,GAAG,CAAC;QACjB,mBAAQ,CAAC,kBAAkB,CAAC,6CAA6C,CAAC;QAC1E,mBAAQ,CAAC,kBAAkB,CAAC,0CAA0C,CAAC;KACxE,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type { AllConfig, RenovateConfig } from '../../../config/types';\nimport { logger } from '../../../logger';\nimport { platform } from '../../../modules/platform';\nimport * as repositoryCache from '../../../util/cache/repository';\nimport { clearRenovateRefs } from '../../../util/git';\nimport { PackageFiles } from '../package-files';\nimport { checkReconfigureBranch } from '../reconfigure';\nimport { pruneStaleBranches } from './prune';\nimport {\n runBranchSummary,\n runRenovateRepoStats,\n} from './repository-statistics';\n\n// istanbul ignore next\nexport async function finalizeRepo(\n config: RenovateConfig,\n branchList: string[],\n repoConfig: AllConfig,\n): Promise<void> {\n await checkReconfigureBranch(config, repoConfig);\n await pruneStaleBranches(config, branchList);\n await repositoryCache.saveCache();\n await ensureIssuesClosing();\n await clearRenovateRefs();\n PackageFiles.clear();\n const prList = await platform.getPrList();\n if (\n prList?.some(\n (pr) =>\n pr.state === 'merged' &&\n pr.title !== 'Configure Renovate' &&\n pr.title !== config.onboardingPrTitle &&\n pr.sourceBranch !== config.onboardingBranch,\n )\n ) {\n logger.debug('Repo is activated');\n config.repoIsActivated = true;\n }\n runBranchSummary(config);\n runRenovateRepoStats(config, prList);\n}\n\n// istanbul ignore next\nfunction ensureIssuesClosing(): Promise<Awaited<void>[]> {\n return Promise.all([\n platform.ensureIssueClosing(`Action Required: Fix Renovate Configuration`),\n platform.ensureIssueClosing(`Action Required: Add missing credentials`),\n ]);\n}\n"]}
@@ -74,7 +74,7 @@ async function cleanUpBranches(config, remainingBranches) {
74
74
  }
75
75
  }
76
76
  else if (branchIsModified) {
77
- logger_1.logger.debug('Orphan Branch is modified - skipping branch deletion');
77
+ logger_1.logger.debug({ branch: branchName }, 'Orphan Branch is modified - skipping branch deletion');
78
78
  }
79
79
  else if (global_1.GlobalConfig.get('dryRun')) {
80
80
  logger_1.logger.info(`DRY-RUN: Would delete orphan branch ${branchName}`);
@@ -98,7 +98,7 @@ async function cleanUpBranches(config, remainingBranches) {
98
98
  }
99
99
  }
100
100
  /**
101
- * Calculates a {RegExp} to extract the base branch from a branch name if base branches are configured.
101
+ * Calculates a {RegExp} to extract the base branch from a branch name if base branch patterns is configured.
102
102
  * @param config Renovate configuration
103
103
  */
104
104
  function calculateBaseBranchRegex(config) {
@@ -111,7 +111,8 @@ function calculateBaseBranchRegex(config) {
111
111
  .filter(string_1.uniqueStrings)
112
112
  .map(regex_1.escapeRegExp);
113
113
  // calculate possible base branches and escape for regex
114
- const baseBranches = config.baseBranchPatterns.map(regex_1.escapeRegExp);
114
+ // if baseBranchPatterns is configured, baseBranches will be defined too
115
+ const baseBranches = config.baseBranches.map(regex_1.escapeRegExp);
115
116
  // create regex to extract base branche from branch name
116
117
  const baseBranchRe = (0, regex_1.regEx)(`^(?:${branchPrefixes.join('|')})(${baseBranches.join('|')})-`);
117
118
  return baseBranchRe;