renovate 40.0.0-next.26 → 40.0.0-next.27

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 (520) hide show
  1. package/dist/config/decrypt.js +1 -1
  2. package/dist/config/decrypt.js.map +1 -1
  3. package/dist/config/migrate-validate.js +2 -2
  4. package/dist/config/migrate-validate.js.map +1 -1
  5. package/dist/config/migration.js +1 -1
  6. package/dist/config/migration.js.map +1 -1
  7. package/dist/config/options/index.js +2 -1
  8. package/dist/config/options/index.js.map +1 -1
  9. package/dist/config/presets/internal/group.js +30 -1
  10. package/dist/config/presets/internal/group.js.map +1 -1
  11. package/dist/config/presets/internal/workarounds.js +1 -0
  12. package/dist/config/presets/internal/workarounds.js.map +1 -1
  13. package/dist/config/presets/parse.js +2 -1
  14. package/dist/config/presets/parse.js.map +1 -1
  15. package/dist/config/types.d.ts +4 -1
  16. package/dist/config/types.js.map +1 -1
  17. package/dist/config/validation.js +2 -2
  18. package/dist/config/validation.js.map +1 -1
  19. package/dist/data/monorepo.json +3 -0
  20. package/dist/data/source-urls.json +1 -0
  21. package/dist/instrumentation/index.js +14 -12
  22. package/dist/instrumentation/index.js.map +1 -1
  23. package/dist/logger/index.js +1 -1
  24. package/dist/logger/index.js.map +1 -1
  25. package/dist/logger/once.js +2 -2
  26. package/dist/logger/once.js.map +1 -1
  27. package/dist/logger/renovate-logger.js +1 -1
  28. package/dist/logger/renovate-logger.js.map +1 -1
  29. package/dist/logger/utils.js +1 -1
  30. package/dist/logger/utils.js.map +1 -1
  31. package/dist/modules/datasource/api.js +2 -0
  32. package/dist/modules/datasource/api.js.map +1 -1
  33. package/dist/modules/datasource/artifactory/index.js +0 -1
  34. package/dist/modules/datasource/artifactory/index.js.map +1 -1
  35. package/dist/modules/datasource/aws-eks-addon/index.d.ts +11 -0
  36. package/dist/modules/datasource/aws-eks-addon/index.js +75 -0
  37. package/dist/modules/datasource/aws-eks-addon/index.js.map +1 -0
  38. package/dist/modules/datasource/aws-eks-addon/schema.d.ts +40 -0
  39. package/dist/modules/datasource/aws-eks-addon/schema.js +31 -0
  40. package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -0
  41. package/dist/modules/datasource/aws-machine-image/index.js +6 -5
  42. package/dist/modules/datasource/aws-machine-image/index.js.map +1 -1
  43. package/dist/modules/datasource/bazel/index.js +0 -1
  44. package/dist/modules/datasource/bazel/index.js.map +1 -1
  45. package/dist/modules/datasource/bitrise/index.js +1 -1
  46. package/dist/modules/datasource/bitrise/index.js.map +1 -1
  47. package/dist/modules/datasource/cdnjs/schema.d.ts +2 -2
  48. package/dist/modules/datasource/conda/index.js +18 -1
  49. package/dist/modules/datasource/conda/index.js.map +1 -1
  50. package/dist/modules/datasource/conda/prefix-dev.d.ts +3 -0
  51. package/dist/modules/datasource/conda/prefix-dev.js +83 -0
  52. package/dist/modules/datasource/conda/prefix-dev.js.map +1 -0
  53. package/dist/modules/datasource/conda/schema/prefix-dev.d.ts +189 -0
  54. package/dist/modules/datasource/conda/schema/prefix-dev.js +31 -0
  55. package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -0
  56. package/dist/modules/datasource/conda/types.d.ts +1 -20
  57. package/dist/modules/datasource/conda/types.js.map +1 -1
  58. package/dist/modules/datasource/cpan/index.js +1 -1
  59. package/dist/modules/datasource/cpan/index.js.map +1 -1
  60. package/dist/modules/datasource/crate/index.js +2 -2
  61. package/dist/modules/datasource/crate/index.js.map +1 -1
  62. package/dist/modules/datasource/custom/index.js +4 -2
  63. package/dist/modules/datasource/custom/index.js.map +1 -1
  64. package/dist/modules/datasource/custom/schema.d.ts +27 -27
  65. package/dist/modules/datasource/custom/utils.js +1 -0
  66. package/dist/modules/datasource/custom/utils.js.map +1 -1
  67. package/dist/modules/datasource/dart/index.js +1 -1
  68. package/dist/modules/datasource/dart/index.js.map +1 -1
  69. package/dist/modules/datasource/dart-version/index.js +1 -1
  70. package/dist/modules/datasource/dart-version/index.js.map +1 -1
  71. package/dist/modules/datasource/datasource.js +0 -1
  72. package/dist/modules/datasource/datasource.js.map +1 -1
  73. package/dist/modules/datasource/deb/index.js +1 -1
  74. package/dist/modules/datasource/deb/index.js.map +1 -1
  75. package/dist/modules/datasource/deno/index.js +1 -1
  76. package/dist/modules/datasource/deno/index.js.map +1 -1
  77. package/dist/modules/datasource/deno/schema.d.ts +7 -7
  78. package/dist/modules/datasource/devbox/index.js +0 -1
  79. package/dist/modules/datasource/devbox/index.js.map +1 -1
  80. package/dist/modules/datasource/docker/common.js +4 -1
  81. package/dist/modules/datasource/docker/common.js.map +1 -1
  82. package/dist/modules/datasource/docker/index.js +5 -5
  83. package/dist/modules/datasource/docker/index.js.map +1 -1
  84. package/dist/modules/datasource/docker/schema.d.ts +27 -27
  85. package/dist/modules/datasource/docker/schema.js +2 -1
  86. package/dist/modules/datasource/docker/schema.js.map +1 -1
  87. package/dist/modules/datasource/flutter-version/index.js +1 -1
  88. package/dist/modules/datasource/flutter-version/index.js.map +1 -1
  89. package/dist/modules/datasource/galaxy-collection/schema.d.ts +5 -5
  90. package/dist/modules/datasource/git-refs/index.js +1 -1
  91. package/dist/modules/datasource/git-refs/index.js.map +1 -1
  92. package/dist/modules/datasource/gitea-releases/schema.d.ts +6 -6
  93. package/dist/modules/datasource/gitlab-packages/index.js +1 -1
  94. package/dist/modules/datasource/gitlab-packages/index.js.map +1 -1
  95. package/dist/modules/datasource/gitlab-releases/index.js +1 -3
  96. package/dist/modules/datasource/gitlab-releases/index.js.map +1 -1
  97. package/dist/modules/datasource/go/index.js +1 -1
  98. package/dist/modules/datasource/go/index.js.map +1 -1
  99. package/dist/modules/datasource/go/releases-direct.js +7 -4
  100. package/dist/modules/datasource/go/releases-direct.js.map +1 -1
  101. package/dist/modules/datasource/golang-version/index.js +1 -1
  102. package/dist/modules/datasource/golang-version/index.js.map +1 -1
  103. package/dist/modules/datasource/gradle-version/index.js +1 -1
  104. package/dist/modules/datasource/gradle-version/index.js.map +1 -1
  105. package/dist/modules/datasource/helm/index.js +1 -1
  106. package/dist/modules/datasource/helm/index.js.map +1 -1
  107. package/dist/modules/datasource/hex/index.js +1 -1
  108. package/dist/modules/datasource/hex/index.js.map +1 -1
  109. package/dist/modules/datasource/index.js +2 -2
  110. package/dist/modules/datasource/index.js.map +1 -1
  111. package/dist/modules/datasource/java-version/index.js +0 -1
  112. package/dist/modules/datasource/java-version/index.js.map +1 -1
  113. package/dist/modules/datasource/jenkins-plugins/index.js +1 -1
  114. package/dist/modules/datasource/jenkins-plugins/index.js.map +1 -1
  115. package/dist/modules/datasource/maven/index.js +35 -27
  116. package/dist/modules/datasource/maven/index.js.map +1 -1
  117. package/dist/modules/datasource/maven/types.d.ts +3 -6
  118. package/dist/modules/datasource/maven/types.js.map +1 -1
  119. package/dist/modules/datasource/maven/util.d.ts +4 -5
  120. package/dist/modules/datasource/maven/util.js +93 -156
  121. package/dist/modules/datasource/maven/util.js.map +1 -1
  122. package/dist/modules/datasource/node-version/index.js +1 -1
  123. package/dist/modules/datasource/node-version/index.js.map +1 -1
  124. package/dist/modules/datasource/npm/index.js +1 -1
  125. package/dist/modules/datasource/npm/index.js.map +1 -1
  126. package/dist/modules/datasource/npm/npmrc.js +1 -1
  127. package/dist/modules/datasource/npm/npmrc.js.map +1 -1
  128. package/dist/modules/datasource/nuget/index.js +1 -1
  129. package/dist/modules/datasource/nuget/index.js.map +1 -1
  130. package/dist/modules/datasource/nuget/v3.js +5 -5
  131. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  132. package/dist/modules/datasource/orb/index.js +1 -1
  133. package/dist/modules/datasource/orb/index.js.map +1 -1
  134. package/dist/modules/datasource/packagist/index.js +2 -2
  135. package/dist/modules/datasource/packagist/index.js.map +1 -1
  136. package/dist/modules/datasource/packagist/schema.d.ts +18 -18
  137. package/dist/modules/datasource/pod/index.js +1 -1
  138. package/dist/modules/datasource/pod/index.js.map +1 -1
  139. package/dist/modules/datasource/postprocess-release.js +1 -1
  140. package/dist/modules/datasource/postprocess-release.js.map +1 -1
  141. package/dist/modules/datasource/python-version/index.js +1 -1
  142. package/dist/modules/datasource/python-version/index.js.map +1 -1
  143. package/dist/modules/datasource/repology/index.js +1 -1
  144. package/dist/modules/datasource/repology/index.js.map +1 -1
  145. package/dist/modules/datasource/rubygems/index.js +1 -1
  146. package/dist/modules/datasource/rubygems/index.js.map +1 -1
  147. package/dist/modules/datasource/sbt-package/index.js +1 -1
  148. package/dist/modules/datasource/sbt-package/index.js.map +1 -1
  149. package/dist/modules/datasource/sbt-plugin/index.js +1 -1
  150. package/dist/modules/datasource/sbt-plugin/index.js.map +1 -1
  151. package/dist/modules/datasource/schema.d.ts +4 -4
  152. package/dist/modules/datasource/terraform-module/index.js +1 -1
  153. package/dist/modules/datasource/terraform-module/index.js.map +1 -1
  154. package/dist/modules/datasource/terraform-provider/index.js +1 -2
  155. package/dist/modules/datasource/terraform-provider/index.js.map +1 -1
  156. package/dist/modules/datasource/types.d.ts +1 -0
  157. package/dist/modules/datasource/types.js.map +1 -1
  158. package/dist/modules/manager/api.js +2 -0
  159. package/dist/modules/manager/api.js.map +1 -1
  160. package/dist/modules/manager/argocd/extract.js +1 -1
  161. package/dist/modules/manager/argocd/extract.js.map +1 -1
  162. package/dist/modules/manager/asdf/upgradeable-tooling.js +94 -0
  163. package/dist/modules/manager/asdf/upgradeable-tooling.js.map +1 -1
  164. package/dist/modules/manager/azure-pipelines/schema.d.ts +24 -24
  165. package/dist/modules/manager/batect/schema.d.ts +2 -2
  166. package/dist/modules/manager/bazel/rules/docker.d.ts +3 -3
  167. package/dist/modules/manager/bazel/rules/git.js +2 -1
  168. package/dist/modules/manager/bazel/rules/git.js.map +1 -1
  169. package/dist/modules/manager/bazel/rules/maven.d.ts +7 -7
  170. package/dist/modules/manager/bazel/rules/oci.d.ts +3 -3
  171. package/dist/modules/manager/bazel-module/parser/maven.d.ts +13 -13
  172. package/dist/modules/manager/bun/artifacts.js +0 -1
  173. package/dist/modules/manager/bun/artifacts.js.map +1 -1
  174. package/dist/modules/manager/bundler/artifacts.js +0 -1
  175. package/dist/modules/manager/bundler/artifacts.js.map +1 -1
  176. package/dist/modules/manager/bundler/extract.js +2 -1
  177. package/dist/modules/manager/bundler/extract.js.map +1 -1
  178. package/dist/modules/manager/cake/index.js +4 -2
  179. package/dist/modules/manager/cake/index.js.map +1 -1
  180. package/dist/modules/manager/cargo/artifacts.js +5 -7
  181. package/dist/modules/manager/cargo/artifacts.js.map +1 -1
  182. package/dist/modules/manager/cargo/schema.d.ts +164 -164
  183. package/dist/modules/manager/circleci/schema.d.ts +6 -6
  184. package/dist/modules/manager/cocoapods/artifacts.js +1 -2
  185. package/dist/modules/manager/cocoapods/artifacts.js.map +1 -1
  186. package/dist/modules/manager/composer/artifacts.js +1 -2
  187. package/dist/modules/manager/composer/artifacts.js.map +1 -1
  188. package/dist/modules/manager/composer/schema.d.ts +36 -36
  189. package/dist/modules/manager/composer/schema.js +1 -1
  190. package/dist/modules/manager/composer/schema.js.map +1 -1
  191. package/dist/modules/manager/composer/utils.d.ts +1 -0
  192. package/dist/modules/manager/composer/utils.js +9 -0
  193. package/dist/modules/manager/composer/utils.js.map +1 -1
  194. package/dist/modules/manager/copier/artifacts.js +0 -1
  195. package/dist/modules/manager/copier/artifacts.js.map +1 -1
  196. package/dist/modules/manager/custom/jsonata/schema.d.ts +28 -28
  197. package/dist/modules/manager/custom/regex/index.js +2 -0
  198. package/dist/modules/manager/custom/regex/index.js.map +1 -1
  199. package/dist/modules/manager/deps-edn/extract.js +2 -1
  200. package/dist/modules/manager/deps-edn/extract.js.map +1 -1
  201. package/dist/modules/manager/devbox/artifacts.d.ts +1 -1
  202. package/dist/modules/manager/devbox/artifacts.js +1 -2
  203. package/dist/modules/manager/devbox/artifacts.js.map +1 -1
  204. package/dist/modules/manager/devbox/schema.js +1 -1
  205. package/dist/modules/manager/devbox/schema.js.map +1 -1
  206. package/dist/modules/manager/devcontainer/extract.js +43 -1
  207. package/dist/modules/manager/devcontainer/extract.js.map +1 -1
  208. package/dist/modules/manager/devcontainer/index.js +11 -1
  209. package/dist/modules/manager/devcontainer/index.js.map +1 -1
  210. package/dist/modules/manager/devcontainer/schema.d.ts +7 -3
  211. package/dist/modules/manager/devcontainer/schema.js +3 -1
  212. package/dist/modules/manager/devcontainer/schema.js.map +1 -1
  213. package/dist/modules/manager/docker-compose/schema.d.ts +6 -6
  214. package/dist/modules/manager/fingerprint.generated.js +83 -82
  215. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  216. package/dist/modules/manager/fleet/schema.d.ts +12 -12
  217. package/dist/modules/manager/flux/artifacts.js +0 -1
  218. package/dist/modules/manager/flux/artifacts.js.map +1 -1
  219. package/dist/modules/manager/flux/extract.js +27 -24
  220. package/dist/modules/manager/flux/extract.js.map +1 -1
  221. package/dist/modules/manager/flux/schema.d.ts +44 -44
  222. package/dist/modules/manager/github-actions/extract.js +60 -39
  223. package/dist/modules/manager/github-actions/extract.js.map +1 -1
  224. package/dist/modules/manager/github-actions/schema.d.ts +66 -0
  225. package/dist/modules/manager/github-actions/schema.js +38 -0
  226. package/dist/modules/manager/github-actions/schema.js.map +1 -0
  227. package/dist/modules/manager/gitlabci/extract.d.ts +1 -5
  228. package/dist/modules/manager/gitlabci/extract.js +27 -126
  229. package/dist/modules/manager/gitlabci/extract.js.map +1 -1
  230. package/dist/modules/manager/gitlabci/schema.d.ts +55 -0
  231. package/dist/modules/manager/gitlabci/schema.js +63 -0
  232. package/dist/modules/manager/gitlabci/schema.js.map +1 -0
  233. package/dist/modules/manager/gitlabci-include/extract.js +6 -54
  234. package/dist/modules/manager/gitlabci-include/extract.js.map +1 -1
  235. package/dist/modules/manager/gitlabci-include/schema.d.ts +13 -0
  236. package/dist/modules/manager/gitlabci-include/schema.js +46 -0
  237. package/dist/modules/manager/gitlabci-include/schema.js.map +1 -0
  238. package/dist/modules/manager/gomod/artifacts.js +24 -10
  239. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  240. package/dist/modules/manager/gomod/extract.js +23 -0
  241. package/dist/modules/manager/gomod/extract.js.map +1 -1
  242. package/dist/modules/manager/gomod/line-parser.js +16 -0
  243. package/dist/modules/manager/gomod/line-parser.js.map +1 -1
  244. package/dist/modules/manager/gomod/update.js +2 -2
  245. package/dist/modules/manager/gomod/update.js.map +1 -1
  246. package/dist/modules/manager/gradle/artifacts.js +0 -1
  247. package/dist/modules/manager/gradle/artifacts.js.map +1 -1
  248. package/dist/modules/manager/gradle/extract/catalog.js +1 -1
  249. package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
  250. package/dist/modules/manager/gradle/parser/assignments.js +2 -2
  251. package/dist/modules/manager/gradle/parser/assignments.js.map +1 -1
  252. package/dist/modules/manager/gradle/parser/handlers.d.ts +1 -2
  253. package/dist/modules/manager/gradle/parser/handlers.js +10 -25
  254. package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
  255. package/dist/modules/manager/gradle/parser/registry-urls.js +11 -3
  256. package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
  257. package/dist/modules/manager/gradle-wrapper/artifacts.js +0 -1
  258. package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
  259. package/dist/modules/manager/helmfile/artifacts.js +0 -1
  260. package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
  261. package/dist/modules/manager/helmfile/extract.js +4 -0
  262. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  263. package/dist/modules/manager/helmfile/schema.d.ts +9 -9
  264. package/dist/modules/manager/helmv3/artifacts.js +0 -1
  265. package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
  266. package/dist/modules/manager/helmv3/utils.js +3 -1
  267. package/dist/modules/manager/helmv3/utils.js.map +1 -1
  268. package/dist/modules/manager/hermit/artifacts.js +0 -1
  269. package/dist/modules/manager/hermit/artifacts.js.map +1 -1
  270. package/dist/modules/manager/homebrew/extract.js +0 -1
  271. package/dist/modules/manager/homebrew/extract.js.map +1 -1
  272. package/dist/modules/manager/jsonnet-bundler/artifacts.js +0 -1
  273. package/dist/modules/manager/jsonnet-bundler/artifacts.js.map +1 -1
  274. package/dist/modules/manager/kustomize/artifacts.d.ts +2 -0
  275. package/dist/modules/manager/kustomize/artifacts.js +154 -0
  276. package/dist/modules/manager/kustomize/artifacts.js.map +1 -0
  277. package/dist/modules/manager/kustomize/common.d.ts +3 -0
  278. package/dist/modules/manager/kustomize/common.js +22 -0
  279. package/dist/modules/manager/kustomize/common.js.map +1 -0
  280. package/dist/modules/manager/kustomize/index.d.ts +1 -0
  281. package/dist/modules/manager/kustomize/index.js +3 -1
  282. package/dist/modules/manager/kustomize/index.js.map +1 -1
  283. package/dist/modules/manager/kustomize/types.d.ts +4 -0
  284. package/dist/modules/manager/kustomize/types.js.map +1 -1
  285. package/dist/modules/manager/maven-wrapper/artifacts.js +0 -1
  286. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  287. package/dist/modules/manager/mix/artifacts.js +64 -14
  288. package/dist/modules/manager/mix/artifacts.js.map +1 -1
  289. package/dist/modules/manager/mix/index.d.ts +1 -0
  290. package/dist/modules/manager/mix/index.js +2 -1
  291. package/dist/modules/manager/mix/index.js.map +1 -1
  292. package/dist/modules/manager/nix/artifacts.js +0 -1
  293. package/dist/modules/manager/nix/artifacts.js.map +1 -1
  294. package/dist/modules/manager/nix/extract.js +1 -1
  295. package/dist/modules/manager/nix/extract.js.map +1 -1
  296. package/dist/modules/manager/nix/schema.d.ts +6 -6
  297. package/dist/modules/manager/npm/artifacts.js +0 -1
  298. package/dist/modules/manager/npm/artifacts.js.map +1 -1
  299. package/dist/modules/manager/npm/extract/yarn.js +2 -2
  300. package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
  301. package/dist/modules/manager/npm/post-update/npm.js +0 -1
  302. package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
  303. package/dist/modules/manager/npm/post-update/pnpm.js +13 -2
  304. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  305. package/dist/modules/manager/npm/post-update/rules.js +11 -1
  306. package/dist/modules/manager/npm/post-update/rules.js.map +1 -1
  307. package/dist/modules/manager/npm/post-update/yarn.js +0 -1
  308. package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
  309. package/dist/modules/manager/npm/update/dependency/index.js +1 -1
  310. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  311. package/dist/modules/manager/nuget/artifacts.js +1 -2
  312. package/dist/modules/manager/nuget/artifacts.js.map +1 -1
  313. package/dist/modules/manager/nuget/package-tree.js +4 -0
  314. package/dist/modules/manager/nuget/package-tree.js.map +1 -1
  315. package/dist/modules/manager/nuget/util.js +4 -1
  316. package/dist/modules/manager/nuget/util.js.map +1 -1
  317. package/dist/modules/manager/pep621/processors/pdm.js +0 -1
  318. package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
  319. package/dist/modules/manager/pep621/processors/uv.js +0 -1
  320. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  321. package/dist/modules/manager/pep621/schema.d.ts +35 -30
  322. package/dist/modules/manager/pep621/schema.js +2 -0
  323. package/dist/modules/manager/pep621/schema.js.map +1 -1
  324. package/dist/modules/manager/pip-compile/common.js +0 -1
  325. package/dist/modules/manager/pip-compile/common.js.map +1 -1
  326. package/dist/modules/manager/pip_requirements/artifacts.js +0 -1
  327. package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
  328. package/dist/modules/manager/pipenv/artifacts.js +0 -1
  329. package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
  330. package/dist/modules/manager/pixi/artifacts.d.ts +3 -0
  331. package/dist/modules/manager/pixi/artifacts.js +84 -0
  332. package/dist/modules/manager/pixi/artifacts.js.map +1 -0
  333. package/dist/modules/manager/pixi/extract.d.ts +2 -0
  334. package/dist/modules/manager/pixi/extract.js +53 -0
  335. package/dist/modules/manager/pixi/extract.js.map +1 -0
  336. package/dist/modules/manager/pixi/index.d.ts +11 -0
  337. package/dist/modules/manager/pixi/index.js +22 -0
  338. package/dist/modules/manager/pixi/index.js.map +1 -0
  339. package/dist/modules/manager/pixi/lockfile.d.ts +6 -0
  340. package/dist/modules/manager/pixi/lockfile.js +25 -0
  341. package/dist/modules/manager/pixi/lockfile.js.map +1 -0
  342. package/dist/modules/manager/pixi/schema.d.ts +14 -0
  343. package/dist/modules/manager/pixi/schema.js +14 -0
  344. package/dist/modules/manager/pixi/schema.js.map +1 -0
  345. package/dist/modules/manager/poetry/artifacts.js +0 -1
  346. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  347. package/dist/modules/manager/poetry/schema.d.ts +31 -31
  348. package/dist/modules/manager/pub/artifacts.js +0 -1
  349. package/dist/modules/manager/pub/artifacts.js.map +1 -1
  350. package/dist/modules/manager/pub/schema.d.ts +8 -8
  351. package/dist/modules/manager/scalafmt/extract.js +1 -1
  352. package/dist/modules/manager/scalafmt/extract.js.map +1 -1
  353. package/dist/modules/manager/types.d.ts +6 -2
  354. package/dist/modules/manager/types.js.map +1 -1
  355. package/dist/modules/manager/vendir/schema.d.ts +23 -23
  356. package/dist/modules/platform/azure/azure-helper.js +2 -2
  357. package/dist/modules/platform/azure/azure-helper.js.map +1 -1
  358. package/dist/modules/platform/azure/index.js +14 -14
  359. package/dist/modules/platform/azure/index.js.map +1 -1
  360. package/dist/modules/platform/bitbucket/comments.js +4 -4
  361. package/dist/modules/platform/bitbucket/comments.js.map +1 -1
  362. package/dist/modules/platform/bitbucket/index.js +48 -43
  363. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  364. package/dist/modules/platform/bitbucket/schema.d.ts +13 -13
  365. package/dist/modules/platform/bitbucket/utils.js +3 -3
  366. package/dist/modules/platform/bitbucket/utils.js.map +1 -1
  367. package/dist/modules/platform/bitbucket-server/index.d.ts +2 -2
  368. package/dist/modules/platform/bitbucket-server/index.js +70 -72
  369. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  370. package/dist/modules/platform/bitbucket-server/pr-cache.d.ts +23 -0
  371. package/dist/modules/platform/bitbucket-server/pr-cache.js +125 -0
  372. package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -0
  373. package/dist/modules/platform/bitbucket-server/types.d.ts +6 -1
  374. package/dist/modules/platform/bitbucket-server/types.js.map +1 -1
  375. package/dist/modules/platform/bitbucket-server/utils.js +5 -1
  376. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  377. package/dist/modules/platform/codecommit/codecommit-client.js +6 -6
  378. package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
  379. package/dist/modules/platform/codecommit/index.js +24 -24
  380. package/dist/modules/platform/codecommit/index.js.map +1 -1
  381. package/dist/modules/platform/gerrit/client.js +12 -1
  382. package/dist/modules/platform/gerrit/client.js.map +1 -1
  383. package/dist/modules/platform/gerrit/utils.js +1 -1
  384. package/dist/modules/platform/gerrit/utils.js.map +1 -1
  385. package/dist/modules/platform/gitea/gitea-helper.d.ts +1 -0
  386. package/dist/modules/platform/gitea/gitea-helper.js +16 -0
  387. package/dist/modules/platform/gitea/gitea-helper.js.map +1 -1
  388. package/dist/modules/platform/gitea/index.js +15 -7
  389. package/dist/modules/platform/gitea/index.js.map +1 -1
  390. package/dist/modules/platform/gitea/schema.d.ts +4 -4
  391. package/dist/modules/platform/gitea/types.d.ts +1 -1
  392. package/dist/modules/platform/gitea/types.js.map +1 -1
  393. package/dist/modules/platform/github/index.js +81 -78
  394. package/dist/modules/platform/github/index.js.map +1 -1
  395. package/dist/modules/platform/github/issue.d.ts +3 -3
  396. package/dist/modules/platform/github/massage-markdown-links.js +2 -2
  397. package/dist/modules/platform/github/massage-markdown-links.js.map +1 -1
  398. package/dist/modules/platform/github/pr.js +3 -3
  399. package/dist/modules/platform/github/pr.js.map +1 -1
  400. package/dist/modules/platform/github/schema.d.ts +11 -11
  401. package/dist/modules/platform/github/schema.js +3 -1
  402. package/dist/modules/platform/github/schema.js.map +1 -1
  403. package/dist/modules/platform/gitlab/index.js +61 -43
  404. package/dist/modules/platform/gitlab/index.js.map +1 -1
  405. package/dist/modules/platform/index.js +0 -1
  406. package/dist/modules/platform/index.js.map +1 -1
  407. package/dist/modules/versioning/api.js +2 -0
  408. package/dist/modules/versioning/api.js.map +1 -1
  409. package/dist/modules/versioning/conda/index.d.ts +41 -0
  410. package/dist/modules/versioning/conda/index.js +178 -0
  411. package/dist/modules/versioning/conda/index.js.map +1 -0
  412. package/dist/modules/versioning/hashicorp/convertor.d.ts +2 -1
  413. package/dist/modules/versioning/hashicorp/convertor.js +13 -8
  414. package/dist/modules/versioning/hashicorp/convertor.js.map +1 -1
  415. package/dist/modules/versioning/hex/index.js +3 -3
  416. package/dist/modules/versioning/hex/index.js.map +1 -1
  417. package/dist/proxy.js +1 -1
  418. package/dist/proxy.js.map +1 -1
  419. package/dist/renovate.js +2 -2
  420. package/dist/renovate.js.map +1 -1
  421. package/dist/util/cache/package/types.d.ts +1 -1
  422. package/dist/util/cache/package/types.js.map +1 -1
  423. package/dist/util/cache/repository/schema.d.ts +4 -4
  424. package/dist/util/cache/repository/types.d.ts +3 -0
  425. package/dist/util/cache/repository/types.js.map +1 -1
  426. package/dist/util/env.d.ts +4 -0
  427. package/dist/util/env.js +22 -0
  428. package/dist/util/env.js.map +1 -0
  429. package/dist/util/exec/containerbase.js +6 -0
  430. package/dist/util/exec/containerbase.js.map +1 -1
  431. package/dist/util/exec/index.js +5 -2
  432. package/dist/util/exec/index.js.map +1 -1
  433. package/dist/util/exec/types.d.ts +0 -2
  434. package/dist/util/exec/types.js.map +1 -1
  435. package/dist/util/exec/utils.d.ts +1 -1
  436. package/dist/util/exec/utils.js +6 -5
  437. package/dist/util/exec/utils.js.map +1 -1
  438. package/dist/util/git/author.js +1 -1
  439. package/dist/util/git/author.js.map +1 -1
  440. package/dist/util/git/config.js +0 -1
  441. package/dist/util/git/config.js.map +1 -1
  442. package/dist/util/git/error.js +4 -2
  443. package/dist/util/git/error.js.map +1 -1
  444. package/dist/util/git/index.js +73 -46
  445. package/dist/util/git/index.js.map +1 -1
  446. package/dist/util/git/private-key.js +1 -1
  447. package/dist/util/git/private-key.js.map +1 -1
  448. package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +5 -5
  449. package/dist/util/github/graphql/query-adapters/tags-query-adapter.d.ts +2 -2
  450. package/dist/util/http/bitbucket-server.js +4 -0
  451. package/dist/util/http/bitbucket-server.js.map +1 -1
  452. package/dist/util/http/bitbucket.js +5 -1
  453. package/dist/util/http/bitbucket.js.map +1 -1
  454. package/dist/util/http/cache/abstract-http-cache-provider.js +2 -2
  455. package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
  456. package/dist/util/http/cache/memory-http-cache-provider.d.ts +10 -0
  457. package/dist/util/http/cache/memory-http-cache-provider.js +29 -0
  458. package/dist/util/http/cache/memory-http-cache-provider.js.map +1 -0
  459. package/dist/util/http/gitea.js +2 -0
  460. package/dist/util/http/gitea.js.map +1 -1
  461. package/dist/util/http/github.js +1 -0
  462. package/dist/util/http/github.js.map +1 -1
  463. package/dist/util/http/gitlab.js +2 -0
  464. package/dist/util/http/gitlab.js.map +1 -1
  465. package/dist/util/http/host-rules.js +5 -4
  466. package/dist/util/http/host-rules.js.map +1 -1
  467. package/dist/util/http/http.js +12 -5
  468. package/dist/util/http/http.js.map +1 -1
  469. package/dist/util/stats.d.ts +10 -0
  470. package/dist/util/stats.js +45 -1
  471. package/dist/util/stats.js.map +1 -1
  472. package/dist/workers/global/config/parse/file.js +2 -2
  473. package/dist/workers/global/config/parse/file.js.map +1 -1
  474. package/dist/workers/global/config/parse/index.js +5 -0
  475. package/dist/workers/global/config/parse/index.js.map +1 -1
  476. package/dist/workers/repository/cache.js +1 -1
  477. package/dist/workers/repository/cache.js.map +1 -1
  478. package/dist/workers/repository/config-migration/branch/migrated-data.js +2 -0
  479. package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
  480. package/dist/workers/repository/index.js +1 -0
  481. package/dist/workers/repository/index.js.map +1 -1
  482. package/dist/workers/repository/init/merge.js +6 -3
  483. package/dist/workers/repository/init/merge.js.map +1 -1
  484. package/dist/workers/repository/process/extract-update.js +0 -1
  485. package/dist/workers/repository/process/extract-update.js.map +1 -1
  486. package/dist/workers/repository/process/fingerprint-fields.js +0 -1
  487. package/dist/workers/repository/process/fingerprint-fields.js.map +1 -1
  488. package/dist/workers/repository/process/libyear.js +2 -2
  489. package/dist/workers/repository/process/libyear.js.map +1 -1
  490. package/dist/workers/repository/process/lookup/index.js +13 -4
  491. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  492. package/dist/workers/repository/process/vulnerabilities.js +1 -1
  493. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  494. package/dist/workers/repository/process/write.js +1 -8
  495. package/dist/workers/repository/process/write.js.map +1 -1
  496. package/dist/workers/repository/reconfigure/validate.js +1 -0
  497. package/dist/workers/repository/reconfigure/validate.js.map +1 -1
  498. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +10 -1
  499. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  500. package/dist/workers/repository/update/pr/changelog/github/index.js +6 -3
  501. package/dist/workers/repository/update/pr/changelog/github/index.js.map +1 -1
  502. package/dist/workers/repository/update/pr/changelog/source.js +1 -0
  503. package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
  504. package/dist/workers/repository/updates/flatten.js +8 -4
  505. package/dist/workers/repository/updates/flatten.js.map +1 -1
  506. package/dist/workers/repository/updates/generate.js +1 -2
  507. package/dist/workers/repository/updates/generate.js.map +1 -1
  508. package/dist/workers/types.d.ts +1 -4
  509. package/dist/workers/types.js.map +1 -1
  510. package/package.json +45 -43
  511. package/renovate-schema.json +14 -1
  512. package/dist/modules/manager/github-actions/types.d.ts +0 -30
  513. package/dist/modules/manager/github-actions/types.js +0 -3
  514. package/dist/modules/manager/github-actions/types.js.map +0 -1
  515. package/dist/modules/manager/gitlabci/common.d.ts +0 -6
  516. package/dist/modules/manager/gitlabci/common.js +0 -30
  517. package/dist/modules/manager/gitlabci/common.js.map +0 -1
  518. package/dist/modules/manager/gitlabci/types.d.ts +0 -35
  519. package/dist/modules/manager/gitlabci/types.js +0 -3
  520. package/dist/modules/manager/gitlabci/types.js.map +0 -1
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateArtifacts = updateArtifacts;
4
+ const tslib_1 = require("tslib");
5
+ const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
6
+ const shlex_1 = require("shlex");
7
+ const upath_1 = tslib_1.__importDefault(require("upath"));
8
+ const error_messages_1 = require("../../../constants/error-messages");
9
+ const logger_1 = require("../../../logger");
10
+ const exec_1 = require("../../../util/exec");
11
+ const fs_1 = require("../../../util/fs");
12
+ const git_1 = require("../../../util/git");
13
+ const docker_1 = require("../../datasource/docker");
14
+ const helm_1 = require("../../datasource/helm");
15
+ const common_1 = require("./common");
16
+ const extract_1 = require("./extract");
17
+ async function localExistingChartPath(chartHome, dependencyName, version) {
18
+ const folderName = `${dependencyName}-${version}`;
19
+ const path = upath_1.default.join(chartHome, folderName);
20
+ const pathExists = await (0, fs_1.localPathExists)(path);
21
+ return pathExists ? path : null;
22
+ }
23
+ function helmRepositoryArgs(repository, depName, datasource) {
24
+ switch (datasource) {
25
+ case helm_1.HelmDatasource.id:
26
+ return `--repo ${(0, shlex_1.quote)(repository)} ${depName}`;
27
+ case docker_1.DockerDatasource.id:
28
+ return (0, shlex_1.quote)(`oci://${repository}`);
29
+ /* v8 ignore next 2: should never happen */
30
+ default:
31
+ throw new Error(`Unknown datasource: ${datasource}`);
32
+ }
33
+ }
34
+ async function inflateHelmChart(flagEnabled, execOptions, chartHome, depName, repository, currentVersion, newVersion, datasource) {
35
+ const currentChartExistingPath = await localExistingChartPath(chartHome, depName, currentVersion);
36
+ if (!flagEnabled && is_1.default.nullOrUndefined(currentChartExistingPath)) {
37
+ logger_1.logger.debug(`Not inflating Helm chart for ${depName} as kustomizeInflateHelmCharts is not enabled and the current version isn't inflated`);
38
+ return;
39
+ }
40
+ if (is_1.default.nonEmptyString(currentChartExistingPath) &&
41
+ is_1.default.nonEmptyString(newVersion)) {
42
+ logger_1.logger.debug(`Deleting previous helm chart: ${currentChartExistingPath}`);
43
+ await (0, fs_1.deleteLocalFile)(currentChartExistingPath);
44
+ }
45
+ const versionToPull = newVersion ?? currentVersion;
46
+ const versionToPullExistingPath = await localExistingChartPath(chartHome, depName, versionToPull);
47
+ if (is_1.default.nonEmptyString(versionToPullExistingPath)) {
48
+ logger_1.logger.debug(`Helm chart ${depName} version ${versionToPull} already exists at ${versionToPullExistingPath}`);
49
+ return;
50
+ }
51
+ const folderName = `${depName}-${versionToPull}`;
52
+ const untarDir = upath_1.default.join(chartHome, folderName);
53
+ logger_1.logger.debug(`Pulling helm chart ${depName} version ${versionToPull} to ${untarDir}`);
54
+ const cmd = `helm pull --untar --untardir ${(0, shlex_1.quote)(untarDir)} ` +
55
+ `--version ${(0, shlex_1.quote)(versionToPull)} ${helmRepositoryArgs(repository, depName, datasource)}`;
56
+ await (0, exec_1.exec)(cmd, execOptions);
57
+ }
58
+ async function updateArtifacts({ packageFileName, updatedDeps, newPackageFileContent, config, }) {
59
+ logger_1.logger.debug(`kustomize.updateArtifacts(${packageFileName})`);
60
+ const project = (0, extract_1.parseKustomize)(newPackageFileContent);
61
+ const isUpdateOptionInflateChartArchives = config.postUpdateOptions?.includes('kustomizeInflateHelmCharts') === true;
62
+ if (is_1.default.nullOrUndefined(project)) {
63
+ return [
64
+ {
65
+ artifactError: {
66
+ stderr: 'Failed to parse new package file content',
67
+ },
68
+ },
69
+ ];
70
+ }
71
+ const chartHome = (0, fs_1.getSiblingFileName)(packageFileName, project.helmGlobals?.chartHome ?? 'charts');
72
+ try {
73
+ const helmToolConstraint = {
74
+ toolName: 'helm',
75
+ constraint: config.constraints?.helm,
76
+ };
77
+ const execOptions = {
78
+ docker: {},
79
+ extraEnv: (0, common_1.generateHelmEnvs)(config),
80
+ toolConstraints: [helmToolConstraint],
81
+ };
82
+ for (const dependency of updatedDeps) {
83
+ if (!dependency.currentVersion) {
84
+ continue;
85
+ }
86
+ if (dependency.newVersion === dependency.currentVersion) {
87
+ continue;
88
+ }
89
+ if (!is_1.default.nonEmptyString(dependency.depName)) {
90
+ continue;
91
+ }
92
+ if (dependency.depType !== 'HelmChart') {
93
+ continue;
94
+ }
95
+ let repository = null;
96
+ switch (dependency.datasource) {
97
+ case helm_1.HelmDatasource.id:
98
+ repository = dependency.registryUrls?.[0];
99
+ break;
100
+ case docker_1.DockerDatasource.id:
101
+ repository = dependency.packageName;
102
+ break;
103
+ }
104
+ if (is_1.default.nullOrUndefined(repository)) {
105
+ continue;
106
+ }
107
+ await inflateHelmChart(isUpdateOptionInflateChartArchives, execOptions, chartHome, dependency.depName, repository, dependency.currentVersion, dependency.newVersion, dependency.datasource);
108
+ }
109
+ const status = await (0, git_1.getRepoStatus)();
110
+ const chartsAddition = status?.not_added ?? [];
111
+ const chartsDeletion = status?.deleted ?? [];
112
+ const fileChanges = [];
113
+ for (const file of chartsAddition) {
114
+ // only add artifacts in the chartHome path
115
+ if (!file.startsWith(chartHome)) {
116
+ continue;
117
+ }
118
+ fileChanges.push({
119
+ file: {
120
+ type: 'addition',
121
+ path: file,
122
+ contents: await (0, fs_1.readLocalFile)(file),
123
+ },
124
+ });
125
+ }
126
+ for (const file of chartsDeletion) {
127
+ // only add artifacts in the chartHome path
128
+ if (!file.startsWith(chartHome)) {
129
+ continue;
130
+ }
131
+ fileChanges.push({
132
+ file: {
133
+ type: 'deletion',
134
+ path: file,
135
+ },
136
+ });
137
+ }
138
+ return fileChanges.length > 0 ? fileChanges : null;
139
+ }
140
+ catch (err) {
141
+ if (err.message === error_messages_1.TEMPORARY_ERROR) {
142
+ throw err;
143
+ }
144
+ logger_1.logger.debug({ err }, 'Failed to inflate helm chart');
145
+ return [
146
+ {
147
+ artifactError: {
148
+ stderr: err.message,
149
+ },
150
+ },
151
+ ];
152
+ }
153
+ }
154
+ //# sourceMappingURL=artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/kustomize/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport upath from 'upath';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions, ToolConstraint } from '../../../util/exec/types';\nimport {\n deleteLocalFile,\n getSiblingFileName,\n localPathExists,\n readLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { HelmDatasource } from '../../datasource/helm';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport { generateHelmEnvs } from './common';\nimport { parseKustomize } from './extract';\n\nasync function localExistingChartPath(\n chartHome: string,\n dependencyName: string,\n version?: string,\n): Promise<string | null> {\n const folderName = `${dependencyName}-${version}`;\n const path = upath.join(chartHome, folderName);\n const pathExists = await localPathExists(path);\n\n return pathExists ? path : null;\n}\n\nfunction helmRepositoryArgs(\n repository: string,\n depName: string,\n datasource?: string,\n): string {\n switch (datasource) {\n case HelmDatasource.id:\n return `--repo ${quote(repository)} ${depName}`;\n case DockerDatasource.id:\n return quote(`oci://${repository}`);\n /* v8 ignore next 2: should never happen */\n default:\n throw new Error(`Unknown datasource: ${datasource}`);\n }\n}\n\nasync function inflateHelmChart(\n flagEnabled: boolean,\n execOptions: ExecOptions,\n chartHome: string,\n depName: string,\n repository: string,\n currentVersion: string,\n newVersion?: string,\n datasource?: string,\n): Promise<void> {\n const currentChartExistingPath = await localExistingChartPath(\n chartHome,\n depName,\n currentVersion,\n );\n\n if (!flagEnabled && is.nullOrUndefined(currentChartExistingPath)) {\n logger.debug(\n `Not inflating Helm chart for ${depName} as kustomizeInflateHelmCharts is not enabled and the current version isn't inflated`,\n );\n return;\n }\n\n if (\n is.nonEmptyString(currentChartExistingPath) &&\n is.nonEmptyString(newVersion)\n ) {\n logger.debug(`Deleting previous helm chart: ${currentChartExistingPath}`);\n await deleteLocalFile(currentChartExistingPath);\n }\n\n const versionToPull = newVersion ?? currentVersion;\n const versionToPullExistingPath = await localExistingChartPath(\n chartHome,\n depName,\n versionToPull,\n );\n\n if (is.nonEmptyString(versionToPullExistingPath)) {\n logger.debug(\n `Helm chart ${depName} version ${versionToPull} already exists at ${versionToPullExistingPath}`,\n );\n return;\n }\n\n const folderName = `${depName}-${versionToPull}`;\n const untarDir = upath.join(chartHome, folderName);\n logger.debug(\n `Pulling helm chart ${depName} version ${versionToPull} to ${untarDir}`,\n );\n\n const cmd =\n `helm pull --untar --untardir ${quote(untarDir)} ` +\n `--version ${quote(versionToPull)} ${helmRepositoryArgs(repository, depName, datasource)}`;\n\n await exec(cmd, execOptions);\n}\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n newPackageFileContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`kustomize.updateArtifacts(${packageFileName})`);\n const project = parseKustomize(newPackageFileContent);\n const isUpdateOptionInflateChartArchives =\n config.postUpdateOptions?.includes('kustomizeInflateHelmCharts') === true;\n if (is.nullOrUndefined(project)) {\n return [\n {\n artifactError: {\n stderr: 'Failed to parse new package file content',\n },\n },\n ];\n }\n\n const chartHome = getSiblingFileName(\n packageFileName,\n project.helmGlobals?.chartHome ?? 'charts',\n );\n\n try {\n const helmToolConstraint: ToolConstraint = {\n toolName: 'helm',\n constraint: config.constraints?.helm,\n };\n\n const execOptions: ExecOptions = {\n docker: {},\n extraEnv: generateHelmEnvs(config),\n toolConstraints: [helmToolConstraint],\n };\n\n for (const dependency of updatedDeps) {\n if (!dependency.currentVersion) {\n continue;\n }\n\n if (dependency.newVersion === dependency.currentVersion) {\n continue;\n }\n\n if (!is.nonEmptyString(dependency.depName)) {\n continue;\n }\n\n if (dependency.depType !== 'HelmChart') {\n continue;\n }\n\n let repository = null;\n\n switch (dependency.datasource) {\n case HelmDatasource.id:\n repository = dependency.registryUrls?.[0];\n break;\n case DockerDatasource.id:\n repository = dependency.packageName;\n break;\n }\n\n if (is.nullOrUndefined(repository)) {\n continue;\n }\n\n await inflateHelmChart(\n isUpdateOptionInflateChartArchives,\n execOptions,\n chartHome,\n dependency.depName,\n repository,\n dependency.currentVersion,\n dependency.newVersion,\n dependency.datasource,\n );\n }\n\n const status = await getRepoStatus();\n const chartsAddition = status?.not_added ?? [];\n const chartsDeletion = status?.deleted ?? [];\n\n const fileChanges: UpdateArtifactsResult[] = [];\n\n for (const file of chartsAddition) {\n // only add artifacts in the chartHome path\n if (!file.startsWith(chartHome)) {\n continue;\n }\n fileChanges.push({\n file: {\n type: 'addition',\n path: file,\n contents: await readLocalFile(file),\n },\n });\n }\n\n for (const file of chartsDeletion) {\n // only add artifacts in the chartHome path\n if (!file.startsWith(chartHome)) {\n continue;\n }\n fileChanges.push({\n file: {\n type: 'deletion',\n path: file,\n },\n });\n }\n\n return fileChanges.length > 0 ? fileChanges : null;\n } catch (err) {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to inflate helm chart');\n return [\n {\n artifactError: {\n stderr: err.message,\n },\n },\n ];\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { ExtraEnv } from '../../../util/exec/types';
2
+ import type { UpdateArtifactsConfig } from '../types';
3
+ export declare function generateHelmEnvs(config: UpdateArtifactsConfig): ExtraEnv;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateHelmEnvs = generateHelmEnvs;
4
+ const tslib_1 = require("tslib");
5
+ const semver_1 = tslib_1.__importDefault(require("semver"));
6
+ const upath_1 = tslib_1.__importDefault(require("upath"));
7
+ const fs_1 = require("../../../util/fs");
8
+ function generateHelmEnvs(config) {
9
+ const cacheDir = (0, fs_1.privateCacheDir)();
10
+ const envs = {
11
+ // set cache and config files to a path in privateCacheDir to prevent file and credential leakage
12
+ HELM_REGISTRY_CONFIG: upath_1.default.join(cacheDir, 'registry.json'),
13
+ HELM_REPOSITORY_CONFIG: upath_1.default.join(cacheDir, 'repositories.yaml'),
14
+ HELM_REPOSITORY_CACHE: upath_1.default.join(cacheDir, 'repositories'),
15
+ };
16
+ if (config.constraints?.helm &&
17
+ !semver_1.default.intersects(config.constraints.helm, '>=3.8.0')) {
18
+ envs.HELM_EXPERIMENTAL_OCI = '1';
19
+ }
20
+ return envs;
21
+ }
22
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../lib/modules/manager/kustomize/common.ts"],"names":[],"mappings":";;AAMA,4CAkBC;;AAxBD,4DAA4B;AAC5B,0DAA0B;AAE1B,yCAAmD;AAGnD,SAAgB,gBAAgB,CAAC,MAA6B;IAC5D,MAAM,QAAQ,GAAG,IAAA,oBAAe,GAAE,CAAC;IAEnC,MAAM,IAAI,GAAa;QACrB,iGAAiG;QACjG,oBAAoB,EAAE,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC;QAC3D,sBAAsB,EAAE,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC;QACjE,qBAAqB,EAAE,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC;KAC5D,CAAC;IAEF,IACE,MAAM,CAAC,WAAW,EAAE,IAAI;QACxB,CAAC,gBAAM,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,EACtD,CAAC;QACD,IAAI,CAAC,qBAAqB,GAAG,GAAG,CAAC;IACnC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import semver from 'semver';\nimport upath from 'upath';\nimport type { ExtraEnv } from '../../../util/exec/types';\nimport { privateCacheDir } from '../../../util/fs';\nimport type { UpdateArtifactsConfig } from '../types';\n\nexport function generateHelmEnvs(config: UpdateArtifactsConfig): ExtraEnv {\n const cacheDir = privateCacheDir();\n\n const envs: ExtraEnv = {\n // set cache and config files to a path in privateCacheDir to prevent file and credential leakage\n HELM_REGISTRY_CONFIG: upath.join(cacheDir, 'registry.json'),\n HELM_REPOSITORY_CONFIG: upath.join(cacheDir, 'repositories.yaml'),\n HELM_REPOSITORY_CACHE: upath.join(cacheDir, 'repositories'),\n };\n\n if (\n config.constraints?.helm &&\n !semver.intersects(config.constraints.helm, '>=3.8.0')\n ) {\n envs.HELM_EXPERIMENTAL_OCI = '1';\n }\n\n return envs;\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import type { Category } from '../../../constants';
2
+ export { updateArtifacts } from './artifacts';
2
3
  export { extractPackageFile } from './extract';
3
4
  export declare const url = "https://kubectl.docs.kubernetes.io/references/kustomize";
4
5
  export declare const categories: Category[];
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.supportedDatasources = exports.defaultConfig = exports.categories = exports.url = exports.extractPackageFile = void 0;
3
+ exports.supportedDatasources = exports.defaultConfig = exports.categories = exports.url = exports.extractPackageFile = exports.updateArtifacts = void 0;
4
4
  const docker_1 = require("../../datasource/docker");
5
5
  const git_tags_1 = require("../../datasource/git-tags");
6
6
  const github_tags_1 = require("../../datasource/github-tags");
7
7
  const helm_1 = require("../../datasource/helm");
8
+ var artifacts_1 = require("./artifacts");
9
+ Object.defineProperty(exports, "updateArtifacts", { enumerable: true, get: function () { return artifacts_1.updateArtifacts; } });
8
10
  var extract_1 = require("./extract");
9
11
  Object.defineProperty(exports, "extractPackageFile", { enumerable: true, get: function () { return extract_1.extractPackageFile; } });
10
12
  exports.url = 'https://kubectl.docs.kubernetes.io/references/kustomize';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/manager/kustomize/index.ts"],"names":[],"mappings":";;;AACA,oDAA2D;AAC3D,wDAA8D;AAC9D,8DAAoE;AACpE,gDAAuD;AACvD,qCAA+C;AAAtC,6GAAA,kBAAkB,OAAA;AAEd,QAAA,GAAG,GAAG,yDAAyD,CAAC;AAChE,QAAA,UAAU,GAAe,CAAC,YAAY,CAAC,CAAC;AAExC,QAAA,aAAa,GAAG;IAC3B,SAAS,EAAE,CAAC,6BAA6B,CAAC;IAC1C,UAAU,EAAE,KAAK;CAClB,CAAC;AAEW,QAAA,oBAAoB,GAAG;IAClC,yBAAgB,CAAC,EAAE;IACnB,4BAAiB,CAAC,EAAE;IACpB,kCAAoB,CAAC,EAAE;IACvB,qBAAc,CAAC,EAAE;CAClB,CAAC","sourcesContent":["import type { Category } from '../../../constants';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { GitTagsDatasource } from '../../datasource/git-tags';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport { HelmDatasource } from '../../datasource/helm';\nexport { extractPackageFile } from './extract';\n\nexport const url = 'https://kubectl.docs.kubernetes.io/references/kustomize';\nexport const categories: Category[] = ['kubernetes'];\n\nexport const defaultConfig = {\n fileMatch: ['(^|/)kustomization\\\\.ya?ml$'],\n pinDigests: false,\n};\n\nexport const supportedDatasources = [\n DockerDatasource.id,\n GitTagsDatasource.id,\n GithubTagsDatasource.id,\n HelmDatasource.id,\n];\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/manager/kustomize/index.ts"],"names":[],"mappings":";;;AACA,oDAA2D;AAC3D,wDAA8D;AAC9D,8DAAoE;AACpE,gDAAuD;AACvD,yCAA8C;AAArC,4GAAA,eAAe,OAAA;AACxB,qCAA+C;AAAtC,6GAAA,kBAAkB,OAAA;AAEd,QAAA,GAAG,GAAG,yDAAyD,CAAC;AAChE,QAAA,UAAU,GAAe,CAAC,YAAY,CAAC,CAAC;AAExC,QAAA,aAAa,GAAG;IAC3B,SAAS,EAAE,CAAC,6BAA6B,CAAC;IAC1C,UAAU,EAAE,KAAK;CAClB,CAAC;AAEW,QAAA,oBAAoB,GAAG;IAClC,yBAAgB,CAAC,EAAE;IACnB,4BAAiB,CAAC,EAAE;IACpB,kCAAoB,CAAC,EAAE;IACvB,qBAAc,CAAC,EAAE;CAClB,CAAC","sourcesContent":["import type { Category } from '../../../constants';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { GitTagsDatasource } from '../../datasource/git-tags';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport { HelmDatasource } from '../../datasource/helm';\nexport { updateArtifacts } from './artifacts';\nexport { extractPackageFile } from './extract';\n\nexport const url = 'https://kubectl.docs.kubernetes.io/references/kustomize';\nexport const categories: Category[] = ['kubernetes'];\n\nexport const defaultConfig = {\n fileMatch: ['(^|/)kustomization\\\\.ya?ml$'],\n pinDigests: false,\n};\n\nexport const supportedDatasources = [\n DockerDatasource.id,\n GitTagsDatasource.id,\n GithubTagsDatasource.id,\n HelmDatasource.id,\n];\n"]}
@@ -9,6 +9,9 @@ export interface HelmChart {
9
9
  repo: string;
10
10
  version: string;
11
11
  }
12
+ export interface HelmGlobals {
13
+ chartHome?: string;
14
+ }
12
15
  export interface Kustomize {
13
16
  kind?: string;
14
17
  bases?: string[];
@@ -16,4 +19,5 @@ export interface Kustomize {
16
19
  components?: string[];
17
20
  images?: Image[];
18
21
  helmCharts?: HelmChart[];
22
+ helmGlobals?: HelmGlobals;
19
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/manager/kustomize/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface Image {\n name: string;\n newTag?: string;\n newName?: string;\n digest?: string;\n}\n\nexport interface HelmChart {\n name: string;\n repo: string;\n version: string;\n}\n\nexport interface Kustomize {\n kind?: string;\n bases?: string[]; // deprecated since kustomize v2.1.0\n resources?: string[];\n components?: string[];\n images?: Image[];\n helmCharts?: HelmChart[];\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/manager/kustomize/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface Image {\n name: string;\n newTag?: string;\n newName?: string;\n digest?: string;\n}\n\nexport interface HelmChart {\n name: string;\n repo: string;\n version: string;\n}\n\nexport interface HelmGlobals {\n chartHome?: string;\n}\n\nexport interface Kustomize {\n kind?: string;\n bases?: string[]; // deprecated since kustomize v2.1.0\n resources?: string[];\n components?: string[];\n images?: Image[];\n helmCharts?: HelmChart[];\n helmGlobals?: HelmGlobals;\n}\n"]}
@@ -96,7 +96,6 @@ async function executeWrapperCommand(cmd, config, packageFileName, extraEnv) {
96
96
  const execOptions = {
97
97
  cwdFile: wrapperFullyQualifiedPath,
98
98
  docker: {},
99
- userConfiguredEnv: config.env,
100
99
  extraEnv,
101
100
  toolConstraints: [
102
101
  {
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/maven-wrapper/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Stats } from 'node:fs';\nimport os from 'node:os';\nimport is from '@sindresorhus/is';\nimport { dirname, join } from 'upath';\nimport { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions, ExtraEnv } from '../../../util/exec/types';\nimport { chmodLocalFile, readLocalFile, statLocalFile } from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport type { StatusResult } from '../../../util/git/types';\nimport { regEx } from '../../../util/regex';\nimport mavenVersioning from '../../versioning/maven';\nimport type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsConfig,\n UpdateArtifactsResult,\n} from '../types';\n\nconst DEFAULT_MAVEN_REPO_URL = 'https://repo.maven.apache.org/maven2';\ninterface MavenWrapperPaths {\n wrapperExecutableFileName: string;\n localProjectDir: string;\n wrapperFullyQualifiedPath: string;\n}\n\nasync function addIfUpdated(\n status: StatusResult,\n fileProjectPath: string,\n): Promise<UpdateArtifactsResult | null> {\n if (status.modified.includes(fileProjectPath)) {\n return {\n file: {\n type: 'addition',\n path: fileProjectPath,\n contents: await readLocalFile(fileProjectPath),\n },\n };\n }\n return null;\n}\n\nexport async function updateArtifacts({\n packageFileName,\n newPackageFileContent,\n updatedDeps,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n try {\n logger.debug({ updatedDeps }, 'maven-wrapper.updateArtifacts()');\n\n if (!updatedDeps.some((dep) => dep.depName === 'maven-wrapper')) {\n logger.info(\n 'Maven wrapper version not updated - skipping Artifacts update',\n );\n return null;\n }\n\n const cmd = await createWrapperCommand(packageFileName);\n\n if (!cmd) {\n logger.info('No mvnw found - skipping Artifacts update');\n return null;\n }\n\n const extraEnv = getExtraEnvOptions(updatedDeps);\n await executeWrapperCommand(cmd, config, packageFileName, extraEnv);\n\n const status = await getRepoStatus();\n const artifactFileNames = [\n '.mvn/wrapper/maven-wrapper.properties',\n '.mvn/wrapper/maven-wrapper.jar',\n '.mvn/wrapper/MavenWrapperDownloader.java',\n 'mvnw',\n 'mvnw.cmd',\n ].map(\n (filename) =>\n packageFileName.replace('.mvn/wrapper/maven-wrapper.properties', '') +\n filename,\n );\n const updateArtifactsResult = (\n await getUpdatedArtifacts(status, artifactFileNames)\n ).filter(is.truthy);\n\n logger.debug(\n { files: updateArtifactsResult.map((r) => r.file?.path) },\n `Returning updated maven-wrapper files`,\n );\n return updateArtifactsResult;\n } catch (err) {\n logger.debug({ err }, 'Error setting new Maven Wrapper release value');\n return [\n {\n artifactError: {\n lockFile: packageFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n\nasync function getUpdatedArtifacts(\n status: StatusResult,\n artifactFileNames: string[],\n): Promise<UpdateArtifactsResult[]> {\n const updatedResults: UpdateArtifactsResult[] = [];\n for (const artifactFileName of artifactFileNames) {\n const updatedResult = await addIfUpdated(status, artifactFileName);\n if (updatedResult !== null) {\n updatedResults.push(updatedResult);\n }\n }\n return updatedResults;\n}\n\n/**\n * Find compatible java version for maven.\n * see https://maven.apache.org/developers/compatibility-plan.html\n * @param mavenWrapperVersion current maven version\n * @returns A Java semver range\n */\nexport function getJavaConstraint(\n mavenWrapperVersion: string | null | undefined,\n): string | null {\n const major = mavenWrapperVersion\n ? mavenVersioning.getMajor(mavenWrapperVersion)\n : null;\n\n if (major && major >= 3) {\n return '^17.0.0';\n }\n\n return '^8.0.0';\n}\n\nasync function executeWrapperCommand(\n cmd: string,\n config: UpdateArtifactsConfig,\n packageFileName: string,\n extraEnv: ExtraEnv,\n): Promise<void> {\n logger.debug(`Updating maven wrapper: \"${cmd}\"`);\n const { wrapperFullyQualifiedPath } = getMavenPaths(packageFileName);\n\n const execOptions: ExecOptions = {\n cwdFile: wrapperFullyQualifiedPath,\n docker: {},\n userConfiguredEnv: config.env,\n extraEnv,\n toolConstraints: [\n {\n toolName: 'java',\n constraint:\n config.constraints?.java ?? getJavaConstraint(config.currentValue),\n },\n ],\n };\n\n try {\n await exec(cmd, execOptions);\n } catch (err) {\n logger.error({ err }, 'Error executing maven wrapper update command.');\n throw err;\n }\n}\n\nfunction getExtraEnvOptions(deps: PackageDependency[]): ExtraEnv {\n const customMavenWrapperUrl = getCustomMavenWrapperRepoUrl(deps);\n if (customMavenWrapperUrl) {\n return { MVNW_REPOURL: customMavenWrapperUrl };\n }\n return {};\n}\n\nfunction getCustomMavenWrapperRepoUrl(\n deps: PackageDependency[],\n): string | null {\n const replaceString = deps.find(\n (dep) => dep.depName === 'maven-wrapper',\n )?.replaceString;\n\n if (!replaceString) {\n return null;\n }\n\n const match = regEx(/^(.*?)\\/org\\/apache\\/maven\\/wrapper\\//).exec(\n replaceString,\n );\n\n if (!match) {\n return null;\n }\n\n return match[1] === DEFAULT_MAVEN_REPO_URL ? null : match[1];\n}\n\nasync function createWrapperCommand(\n packageFileName: string,\n): Promise<string | null> {\n const {\n wrapperExecutableFileName,\n localProjectDir,\n wrapperFullyQualifiedPath,\n } = getMavenPaths(packageFileName);\n\n return await prepareCommand(\n wrapperExecutableFileName,\n localProjectDir,\n await statLocalFile(wrapperFullyQualifiedPath),\n 'wrapper:wrapper',\n );\n}\n\nfunction mavenWrapperFileName(): string {\n if (\n os.platform() === 'win32' &&\n GlobalConfig.get('binarySource') !== 'docker'\n ) {\n return 'mvnw.cmd';\n }\n return './mvnw';\n}\n\nfunction getMavenPaths(packageFileName: string): MavenWrapperPaths {\n const wrapperExecutableFileName = mavenWrapperFileName();\n const localProjectDir = join(dirname(packageFileName), '../../');\n const wrapperFullyQualifiedPath = join(\n localProjectDir,\n wrapperExecutableFileName,\n );\n return {\n wrapperExecutableFileName,\n localProjectDir,\n wrapperFullyQualifiedPath,\n };\n}\n\nasync function prepareCommand(\n fileName: string,\n cwd: string | undefined,\n pathFileStats: Stats | null,\n args: string | null,\n): Promise<string | null> {\n // istanbul ignore if\n if (pathFileStats?.isFile() === true) {\n // if the file is not executable by others\n if (os.platform() !== 'win32' && (pathFileStats.mode & 0o1) === 0) {\n // add the execution permission to the owner, group and others\n logger.warn('Maven wrapper is missing the executable bit');\n await chmodLocalFile(join(cwd, fileName), pathFileStats.mode | 0o111);\n }\n if (args === null) {\n return fileName;\n }\n return `${fileName} ${args}`;\n }\n return null;\n}\n"]}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/maven-wrapper/artifacts.ts"],"names":[],"mappings":";;AA2CA,0CA0DC;AAsBD,8CAYC;;AAtID,8DAAyB;AACzB,kEAAkC;AAClC,iCAAsC;AACtC,mDAAsD;AACtD,4CAAyC;AACzC,6CAA0C;AAE1C,yCAAgF;AAChF,2CAAkD;AAElD,+CAA4C;AAC5C,2EAAqD;AAQrD,MAAM,sBAAsB,GAAG,sCAAsC,CAAC;AAOtE,KAAK,UAAU,YAAY,CACzB,MAAoB,EACpB,eAAuB;IAEvB,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9C,OAAO;YACL,IAAI,EAAE;gBACJ,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,eAAe;gBACrB,QAAQ,EAAE,MAAM,IAAA,kBAAa,EAAC,eAAe,CAAC;aAC/C;SACF,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,EACpC,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,MAAM,GACS;IACf,IAAI,CAAC;QACH,eAAM,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,iCAAiC,CAAC,CAAC;QAEjE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,eAAe,CAAC,EAAE,CAAC;YAChE,eAAM,CAAC,IAAI,CACT,+DAA+D,CAChE,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,eAAe,CAAC,CAAC;QAExD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,eAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QAEpE,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAa,GAAE,CAAC;QACrC,MAAM,iBAAiB,GAAG;YACxB,uCAAuC;YACvC,gCAAgC;YAChC,0CAA0C;YAC1C,MAAM;YACN,UAAU;SACX,CAAC,GAAG,CACH,CAAC,QAAQ,EAAE,EAAE,CACX,eAAe,CAAC,OAAO,CAAC,uCAAuC,EAAE,EAAE,CAAC;YACpE,QAAQ,CACX,CAAC;QACF,MAAM,qBAAqB,GAAG,CAC5B,MAAM,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CACrD,CAAC,MAAM,CAAC,YAAE,CAAC,MAAM,CAAC,CAAC;QAEpB,eAAM,CAAC,KAAK,CACV,EAAE,KAAK,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EACzD,uCAAuC,CACxC,CAAC;QACF,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,+CAA+C,CAAC,CAAC;QACvE,OAAO;YACL;gBACE,aAAa,EAAE;oBACb,QAAQ,EAAE,eAAe;oBACzB,MAAM,EAAE,GAAG,CAAC,OAAO;iBACpB;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,MAAoB,EACpB,iBAA2B;IAE3B,MAAM,cAAc,GAA4B,EAAE,CAAC;IACnD,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;QACjD,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACnE,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;YAC3B,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAC/B,mBAA8C;IAE9C,MAAM,KAAK,GAAG,mBAAmB;QAC/B,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC/C,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,KAAK,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,GAAW,EACX,MAA6B,EAC7B,eAAuB,EACvB,QAAkB;IAElB,eAAM,CAAC,KAAK,CAAC,4BAA4B,GAAG,GAAG,CAAC,CAAC;IACjD,MAAM,EAAE,yBAAyB,EAAE,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;IAErE,MAAM,WAAW,GAAgB;QAC/B,OAAO,EAAE,yBAAyB;QAClC,MAAM,EAAE,EAAE;QACV,QAAQ;QACR,eAAe,EAAE;YACf;gBACE,QAAQ,EAAE,MAAM;gBAChB,UAAU,EACR,MAAM,CAAC,WAAW,EAAE,IAAI,IAAI,iBAAiB,CAAC,MAAM,CAAC,YAAY,CAAC;aACrE;SACF;KACF,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,IAAA,WAAI,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,+CAA+C,CAAC,CAAC;QACvE,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAyB;IACnD,MAAM,qBAAqB,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;IACjE,IAAI,qBAAqB,EAAE,CAAC;QAC1B,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,CAAC;IACjD,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,4BAA4B,CACnC,IAAyB;IAEzB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAC7B,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,eAAe,CACzC,EAAE,aAAa,CAAC;IAEjB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,IAAA,aAAK,EAAC,uCAAuC,CAAC,CAAC,IAAI,CAC/D,aAAa,CACd,CAAC;IAEF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,eAAuB;IAEvB,MAAM,EACJ,yBAAyB,EACzB,eAAe,EACf,yBAAyB,GAC1B,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;IAEnC,OAAO,MAAM,cAAc,CACzB,yBAAyB,EACzB,eAAe,EACf,MAAM,IAAA,kBAAa,EAAC,yBAAyB,CAAC,EAC9C,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB;IAC3B,IACE,iBAAE,CAAC,QAAQ,EAAE,KAAK,OAAO;QACzB,qBAAY,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,QAAQ,EAC7C,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,eAAuB;IAC5C,MAAM,yBAAyB,GAAG,oBAAoB,EAAE,CAAC;IACzD,MAAM,eAAe,GAAG,IAAA,YAAI,EAAC,IAAA,eAAO,EAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,CAAC;IACjE,MAAM,yBAAyB,GAAG,IAAA,YAAI,EACpC,eAAe,EACf,yBAAyB,CAC1B,CAAC;IACF,OAAO;QACL,yBAAyB;QACzB,eAAe;QACf,yBAAyB;KAC1B,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,QAAgB,EAChB,GAAuB,EACvB,aAA2B,EAC3B,IAAmB;IAEnB,qBAAqB;IACrB,IAAI,aAAa,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;QACrC,0CAA0C;QAC1C,IAAI,iBAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAClE,8DAA8D;YAC9D,eAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YAC3D,MAAM,IAAA,mBAAc,EAAC,IAAA,YAAI,EAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,aAAa,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC;IAC/B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import type { Stats } from 'node:fs';\nimport os from 'node:os';\nimport is from '@sindresorhus/is';\nimport { dirname, join } from 'upath';\nimport { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions, ExtraEnv } from '../../../util/exec/types';\nimport { chmodLocalFile, readLocalFile, statLocalFile } from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport type { StatusResult } from '../../../util/git/types';\nimport { regEx } from '../../../util/regex';\nimport mavenVersioning from '../../versioning/maven';\nimport type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsConfig,\n UpdateArtifactsResult,\n} from '../types';\n\nconst DEFAULT_MAVEN_REPO_URL = 'https://repo.maven.apache.org/maven2';\ninterface MavenWrapperPaths {\n wrapperExecutableFileName: string;\n localProjectDir: string;\n wrapperFullyQualifiedPath: string;\n}\n\nasync function addIfUpdated(\n status: StatusResult,\n fileProjectPath: string,\n): Promise<UpdateArtifactsResult | null> {\n if (status.modified.includes(fileProjectPath)) {\n return {\n file: {\n type: 'addition',\n path: fileProjectPath,\n contents: await readLocalFile(fileProjectPath),\n },\n };\n }\n return null;\n}\n\nexport async function updateArtifacts({\n packageFileName,\n newPackageFileContent,\n updatedDeps,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n try {\n logger.debug({ updatedDeps }, 'maven-wrapper.updateArtifacts()');\n\n if (!updatedDeps.some((dep) => dep.depName === 'maven-wrapper')) {\n logger.info(\n 'Maven wrapper version not updated - skipping Artifacts update',\n );\n return null;\n }\n\n const cmd = await createWrapperCommand(packageFileName);\n\n if (!cmd) {\n logger.info('No mvnw found - skipping Artifacts update');\n return null;\n }\n\n const extraEnv = getExtraEnvOptions(updatedDeps);\n await executeWrapperCommand(cmd, config, packageFileName, extraEnv);\n\n const status = await getRepoStatus();\n const artifactFileNames = [\n '.mvn/wrapper/maven-wrapper.properties',\n '.mvn/wrapper/maven-wrapper.jar',\n '.mvn/wrapper/MavenWrapperDownloader.java',\n 'mvnw',\n 'mvnw.cmd',\n ].map(\n (filename) =>\n packageFileName.replace('.mvn/wrapper/maven-wrapper.properties', '') +\n filename,\n );\n const updateArtifactsResult = (\n await getUpdatedArtifacts(status, artifactFileNames)\n ).filter(is.truthy);\n\n logger.debug(\n { files: updateArtifactsResult.map((r) => r.file?.path) },\n `Returning updated maven-wrapper files`,\n );\n return updateArtifactsResult;\n } catch (err) {\n logger.debug({ err }, 'Error setting new Maven Wrapper release value');\n return [\n {\n artifactError: {\n lockFile: packageFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n\nasync function getUpdatedArtifacts(\n status: StatusResult,\n artifactFileNames: string[],\n): Promise<UpdateArtifactsResult[]> {\n const updatedResults: UpdateArtifactsResult[] = [];\n for (const artifactFileName of artifactFileNames) {\n const updatedResult = await addIfUpdated(status, artifactFileName);\n if (updatedResult !== null) {\n updatedResults.push(updatedResult);\n }\n }\n return updatedResults;\n}\n\n/**\n * Find compatible java version for maven.\n * see https://maven.apache.org/developers/compatibility-plan.html\n * @param mavenWrapperVersion current maven version\n * @returns A Java semver range\n */\nexport function getJavaConstraint(\n mavenWrapperVersion: string | null | undefined,\n): string | null {\n const major = mavenWrapperVersion\n ? mavenVersioning.getMajor(mavenWrapperVersion)\n : null;\n\n if (major && major >= 3) {\n return '^17.0.0';\n }\n\n return '^8.0.0';\n}\n\nasync function executeWrapperCommand(\n cmd: string,\n config: UpdateArtifactsConfig,\n packageFileName: string,\n extraEnv: ExtraEnv,\n): Promise<void> {\n logger.debug(`Updating maven wrapper: \"${cmd}\"`);\n const { wrapperFullyQualifiedPath } = getMavenPaths(packageFileName);\n\n const execOptions: ExecOptions = {\n cwdFile: wrapperFullyQualifiedPath,\n docker: {},\n extraEnv,\n toolConstraints: [\n {\n toolName: 'java',\n constraint:\n config.constraints?.java ?? getJavaConstraint(config.currentValue),\n },\n ],\n };\n\n try {\n await exec(cmd, execOptions);\n } catch (err) {\n logger.error({ err }, 'Error executing maven wrapper update command.');\n throw err;\n }\n}\n\nfunction getExtraEnvOptions(deps: PackageDependency[]): ExtraEnv {\n const customMavenWrapperUrl = getCustomMavenWrapperRepoUrl(deps);\n if (customMavenWrapperUrl) {\n return { MVNW_REPOURL: customMavenWrapperUrl };\n }\n return {};\n}\n\nfunction getCustomMavenWrapperRepoUrl(\n deps: PackageDependency[],\n): string | null {\n const replaceString = deps.find(\n (dep) => dep.depName === 'maven-wrapper',\n )?.replaceString;\n\n if (!replaceString) {\n return null;\n }\n\n const match = regEx(/^(.*?)\\/org\\/apache\\/maven\\/wrapper\\//).exec(\n replaceString,\n );\n\n if (!match) {\n return null;\n }\n\n return match[1] === DEFAULT_MAVEN_REPO_URL ? null : match[1];\n}\n\nasync function createWrapperCommand(\n packageFileName: string,\n): Promise<string | null> {\n const {\n wrapperExecutableFileName,\n localProjectDir,\n wrapperFullyQualifiedPath,\n } = getMavenPaths(packageFileName);\n\n return await prepareCommand(\n wrapperExecutableFileName,\n localProjectDir,\n await statLocalFile(wrapperFullyQualifiedPath),\n 'wrapper:wrapper',\n );\n}\n\nfunction mavenWrapperFileName(): string {\n if (\n os.platform() === 'win32' &&\n GlobalConfig.get('binarySource') !== 'docker'\n ) {\n return 'mvnw.cmd';\n }\n return './mvnw';\n}\n\nfunction getMavenPaths(packageFileName: string): MavenWrapperPaths {\n const wrapperExecutableFileName = mavenWrapperFileName();\n const localProjectDir = join(dirname(packageFileName), '../../');\n const wrapperFullyQualifiedPath = join(\n localProjectDir,\n wrapperExecutableFileName,\n );\n return {\n wrapperExecutableFileName,\n localProjectDir,\n wrapperFullyQualifiedPath,\n };\n}\n\nasync function prepareCommand(\n fileName: string,\n cwd: string | undefined,\n pathFileStats: Stats | null,\n args: string | null,\n): Promise<string | null> {\n // istanbul ignore if\n if (pathFileStats?.isFile() === true) {\n // if the file is not executable by others\n if (os.platform() !== 'win32' && (pathFileStats.mode & 0o1) === 0) {\n // add the execution permission to the owner, group and others\n logger.warn('Maven wrapper is missing the executable bit');\n await chmodLocalFile(join(cwd, fileName), pathFileStats.mode | 0o111);\n }\n if (args === null) {\n return fileName;\n }\n return `${fileName} ${args}`;\n }\n return null;\n}\n"]}
@@ -14,13 +14,46 @@ const hexRepoUrl = 'https://hex.pm/';
14
14
  const hexRepoOrgUrlRegex = (0, regex_1.regEx)(`^https://hex\\.pm/api/repos/(?<organization>[a-z0-9_]+)/$`);
15
15
  async function updateArtifacts({ packageFileName, updatedDeps, newPackageFileContent, config, }) {
16
16
  logger_1.logger.debug(`mix.getArtifacts(${packageFileName})`);
17
- if (updatedDeps.length < 1) {
18
- logger_1.logger.debug('No updated mix deps - returning null');
17
+ const { isLockFileMaintenance } = config;
18
+ if (is_1.default.emptyArray(updatedDeps) && !isLockFileMaintenance) {
19
+ logger_1.logger.debug('No updated mix deps');
20
+ return null;
21
+ }
22
+ let lockFileName = (0, fs_1.getSiblingFileName)(packageFileName, 'mix.lock');
23
+ let isUmbrella = false;
24
+ let existingLockFileContent = await (0, fs_1.readLocalFile)(lockFileName, 'utf8');
25
+ if (!existingLockFileContent) {
26
+ const lockFileError = await checkLockFileReadError(lockFileName);
27
+ if (lockFileError) {
28
+ return lockFileError;
29
+ }
30
+ const parentLockFileName = await (0, fs_1.findLocalSiblingOrParent)(packageFileName, 'mix.lock');
31
+ existingLockFileContent =
32
+ parentLockFileName && (await (0, fs_1.readLocalFile)(parentLockFileName, 'utf8'));
33
+ if (parentLockFileName && existingLockFileContent) {
34
+ lockFileName = parentLockFileName;
35
+ isUmbrella = true;
36
+ }
37
+ else if (parentLockFileName) {
38
+ const lockFileError = await checkLockFileReadError(parentLockFileName);
39
+ if (lockFileError) {
40
+ return lockFileError;
41
+ }
42
+ }
43
+ }
44
+ if (isLockFileMaintenance && isUmbrella) {
45
+ logger_1.logger.debug('Cannot use lockFileMaintenance in an umbrella project, see https://docs.renovatebot.com/modules/manager/mix/#lockFileMaintenance');
46
+ return null;
47
+ }
48
+ if (isLockFileMaintenance && !existingLockFileContent) {
49
+ logger_1.logger.debug('Cannot use lockFileMaintenance when no mix.lock file is present');
19
50
  return null;
20
51
  }
21
- const lockFileName = (await (0, fs_1.findLocalSiblingOrParent)(packageFileName, 'mix.lock')) ?? 'mix.lock';
22
52
  try {
23
53
  await (0, fs_1.writeLocalFile)(packageFileName, newPackageFileContent);
54
+ if (isLockFileMaintenance) {
55
+ await (0, fs_1.deleteLocalFile)(lockFileName);
56
+ }
24
57
  }
25
58
  catch (err) {
26
59
  logger_1.logger.warn({ err }, 'mix.exs could not be written');
@@ -33,7 +66,6 @@ async function updateArtifacts({ packageFileName, updatedDeps, newPackageFileCon
33
66
  },
34
67
  ];
35
68
  }
36
- const existingLockFileContent = await (0, fs_1.readLocalFile)(lockFileName, 'utf8');
37
69
  if (!existingLockFileContent) {
38
70
  logger_1.logger.debug('No mix.lock found');
39
71
  return null;
@@ -72,7 +104,6 @@ async function updateArtifacts({ packageFileName, updatedDeps, newPackageFileCon
72
104
  const execOptions = {
73
105
  cwdFile: packageFileName,
74
106
  docker: {},
75
- userConfiguredEnv: config.env,
76
107
  toolConstraints: [
77
108
  {
78
109
  toolName: 'erlang',
@@ -86,19 +117,25 @@ async function updateArtifacts({ packageFileName, updatedDeps, newPackageFileCon
86
117
  ],
87
118
  preCommands,
88
119
  };
89
- const command = [
90
- 'mix',
91
- 'deps.update',
92
- ...updatedDeps
93
- .map((dep) => dep.depName)
94
- .filter(is_1.default.string)
95
- .map((dep) => (0, shlex_1.quote)(dep)),
96
- ].join(' ');
120
+ let command;
121
+ if (isLockFileMaintenance) {
122
+ command = 'mix deps.get';
123
+ }
124
+ else {
125
+ command = [
126
+ 'mix',
127
+ 'deps.update',
128
+ ...updatedDeps
129
+ .map((dep) => dep.depName)
130
+ .filter(is_1.default.string)
131
+ .map((dep) => (0, shlex_1.quote)(dep)),
132
+ ].join(' ');
133
+ }
97
134
  try {
98
135
  await (0, exec_1.exec)(command, execOptions);
99
136
  }
100
137
  catch (err) {
101
- // istanbul ignore if
138
+ /* v8 ignore next 3 */
102
139
  if (err.message === error_messages_1.TEMPORARY_ERROR) {
103
140
  throw err;
104
141
  }
@@ -128,4 +165,17 @@ async function updateArtifacts({ packageFileName, updatedDeps, newPackageFileCon
128
165
  },
129
166
  ];
130
167
  }
168
+ async function checkLockFileReadError(lockFileName) {
169
+ if (await (0, fs_1.localPathExists)(lockFileName)) {
170
+ return [
171
+ {
172
+ artifactError: {
173
+ lockFile: lockFileName,
174
+ stderr: `Error reading ${lockFileName}`,
175
+ },
176
+ },
177
+ ];
178
+ }
179
+ return null;
180
+ }
131
181
  //# sourceMappingURL=artifacts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/mix/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport {\n findLocalSiblingOrParent,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport * as hostRules from '../../../util/host-rules';\nimport { regEx } from '../../../util/regex';\n\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\n\nconst hexRepoUrl = 'https://hex.pm/';\nconst hexRepoOrgUrlRegex = regEx(\n `^https://hex\\\\.pm/api/repos/(?<organization>[a-z0-9_]+)/$`,\n);\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n newPackageFileContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`mix.getArtifacts(${packageFileName})`);\n if (updatedDeps.length < 1) {\n logger.debug('No updated mix deps - returning null');\n return null;\n }\n\n const lockFileName =\n (await findLocalSiblingOrParent(packageFileName, 'mix.lock')) ?? 'mix.lock';\n try {\n await writeLocalFile(packageFileName, newPackageFileContent);\n } catch (err) {\n logger.warn({ err }, 'mix.exs could not be written');\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent) {\n logger.debug('No mix.lock found');\n return null;\n }\n\n const organizations = new Set<string>();\n\n const hexHostRulesWithMatchHost = hostRules\n .getAll()\n .filter(\n (hostRule) =>\n !!hostRule.matchHost && hexRepoOrgUrlRegex.test(hostRule.matchHost),\n );\n\n for (const { matchHost } of hexHostRulesWithMatchHost) {\n if (matchHost) {\n const result = hexRepoOrgUrlRegex.exec(matchHost);\n\n if (result?.groups) {\n const { organization } = result.groups;\n organizations.add(organization);\n }\n }\n }\n\n for (const { packageName } of updatedDeps) {\n if (packageName) {\n const [, organization] = packageName.split(':');\n\n if (organization) {\n organizations.add(organization);\n }\n }\n }\n\n const preCommands = Array.from(organizations).reduce((acc, organization) => {\n const url = `${hexRepoUrl}api/repos/${organization}/`;\n const { token } = hostRules.find({ url });\n\n if (token) {\n logger.debug(`Authenticating to hex organization ${organization}`);\n const authCommand = `mix hex.organization auth ${organization} --key ${token}`;\n return [...acc, authCommand];\n }\n\n return acc;\n }, [] as string[]);\n\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n docker: {},\n userConfiguredEnv: config.env,\n toolConstraints: [\n {\n toolName: 'erlang',\n // https://hexdocs.pm/elixir/1.14.5/compatibility-and-deprecations.html#compatibility-between-elixir-and-erlang-otp\n constraint: config.constraints?.erlang ?? '^26',\n },\n {\n toolName: 'elixir',\n constraint: config.constraints?.elixir,\n },\n ],\n preCommands,\n };\n const command = [\n 'mix',\n 'deps.update',\n ...updatedDeps\n .map((dep) => dep.depName)\n .filter(is.string)\n .map((dep) => quote(dep)),\n ].join(' ');\n\n try {\n await exec(command, execOptions);\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n\n logger.debug(\n { err, message: err.message, command },\n 'Failed to update Mix lock file',\n );\n\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n\n const newMixLockContent = await readLocalFile(lockFileName, 'utf8');\n if (existingLockFileContent === newMixLockContent) {\n logger.debug('mix.lock is unchanged');\n return null;\n }\n logger.debug('Returning updated mix.lock');\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newMixLockContent,\n },\n },\n ];\n}\n"]}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/mix/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport {\n deleteLocalFile,\n findLocalSiblingOrParent,\n getSiblingFileName,\n localPathExists,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport * as hostRules from '../../../util/host-rules';\nimport { regEx } from '../../../util/regex';\n\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\n\nconst hexRepoUrl = 'https://hex.pm/';\nconst hexRepoOrgUrlRegex = regEx(\n `^https://hex\\\\.pm/api/repos/(?<organization>[a-z0-9_]+)/$`,\n);\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n newPackageFileContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`mix.getArtifacts(${packageFileName})`);\n const { isLockFileMaintenance } = config;\n\n if (is.emptyArray(updatedDeps) && !isLockFileMaintenance) {\n logger.debug('No updated mix deps');\n return null;\n }\n\n let lockFileName = getSiblingFileName(packageFileName, 'mix.lock');\n let isUmbrella = false;\n\n let existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent) {\n const lockFileError = await checkLockFileReadError(lockFileName);\n if (lockFileError) {\n return lockFileError;\n }\n\n const parentLockFileName = await findLocalSiblingOrParent(\n packageFileName,\n 'mix.lock',\n );\n existingLockFileContent =\n parentLockFileName && (await readLocalFile(parentLockFileName, 'utf8'));\n\n if (parentLockFileName && existingLockFileContent) {\n lockFileName = parentLockFileName;\n isUmbrella = true;\n } else if (parentLockFileName) {\n const lockFileError = await checkLockFileReadError(parentLockFileName);\n if (lockFileError) {\n return lockFileError;\n }\n }\n }\n\n if (isLockFileMaintenance && isUmbrella) {\n logger.debug(\n 'Cannot use lockFileMaintenance in an umbrella project, see https://docs.renovatebot.com/modules/manager/mix/#lockFileMaintenance',\n );\n return null;\n }\n\n if (isLockFileMaintenance && !existingLockFileContent) {\n logger.debug(\n 'Cannot use lockFileMaintenance when no mix.lock file is present',\n );\n return null;\n }\n\n try {\n await writeLocalFile(packageFileName, newPackageFileContent);\n if (isLockFileMaintenance) {\n await deleteLocalFile(lockFileName);\n }\n } catch (err) {\n logger.warn({ err }, 'mix.exs could not be written');\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n\n if (!existingLockFileContent) {\n logger.debug('No mix.lock found');\n return null;\n }\n\n const organizations = new Set<string>();\n\n const hexHostRulesWithMatchHost = hostRules\n .getAll()\n .filter(\n (hostRule) =>\n !!hostRule.matchHost && hexRepoOrgUrlRegex.test(hostRule.matchHost),\n );\n\n for (const { matchHost } of hexHostRulesWithMatchHost) {\n if (matchHost) {\n const result = hexRepoOrgUrlRegex.exec(matchHost);\n\n if (result?.groups) {\n const { organization } = result.groups;\n organizations.add(organization);\n }\n }\n }\n\n for (const { packageName } of updatedDeps) {\n if (packageName) {\n const [, organization] = packageName.split(':');\n\n if (organization) {\n organizations.add(organization);\n }\n }\n }\n\n const preCommands = Array.from(organizations).reduce((acc, organization) => {\n const url = `${hexRepoUrl}api/repos/${organization}/`;\n const { token } = hostRules.find({ url });\n\n if (token) {\n logger.debug(`Authenticating to hex organization ${organization}`);\n const authCommand = `mix hex.organization auth ${organization} --key ${token}`;\n return [...acc, authCommand];\n }\n\n return acc;\n }, [] as string[]);\n\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n docker: {},\n toolConstraints: [\n {\n toolName: 'erlang',\n // https://hexdocs.pm/elixir/1.14.5/compatibility-and-deprecations.html#compatibility-between-elixir-and-erlang-otp\n constraint: config.constraints?.erlang ?? '^26',\n },\n {\n toolName: 'elixir',\n constraint: config.constraints?.elixir,\n },\n ],\n preCommands,\n };\n\n let command: string;\n if (isLockFileMaintenance) {\n command = 'mix deps.get';\n } else {\n command = [\n 'mix',\n 'deps.update',\n ...updatedDeps\n .map((dep) => dep.depName)\n .filter(is.string)\n .map((dep) => quote(dep)),\n ].join(' ');\n }\n\n try {\n await exec(command, execOptions);\n } catch (err) {\n /* v8 ignore next 3 */\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n\n logger.debug(\n { err, message: err.message, command },\n 'Failed to update Mix lock file',\n );\n\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n\n const newMixLockContent = await readLocalFile(lockFileName, 'utf8');\n if (existingLockFileContent === newMixLockContent) {\n logger.debug('mix.lock is unchanged');\n return null;\n }\n logger.debug('Returning updated mix.lock');\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newMixLockContent,\n },\n },\n ];\n}\n\nasync function checkLockFileReadError(\n lockFileName: string,\n): Promise<UpdateArtifactsResult[] | null> {\n if (await localPathExists(lockFileName)) {\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: `Error reading ${lockFileName}`,\n },\n },\n ];\n }\n return null;\n}\n"]}
@@ -7,4 +7,5 @@ export declare const categories: Category[];
7
7
  export declare const defaultConfig: {
8
8
  fileMatch: string[];
9
9
  };
10
+ export declare const supportsLockFileMaintenance = true;
10
11
  export declare const supportedDatasources: string[];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.supportedDatasources = exports.defaultConfig = exports.categories = exports.url = exports.getRangeStrategy = exports.updateArtifacts = exports.extractPackageFile = void 0;
3
+ exports.supportedDatasources = exports.supportsLockFileMaintenance = exports.defaultConfig = exports.categories = exports.url = exports.getRangeStrategy = exports.updateArtifacts = exports.extractPackageFile = void 0;
4
4
  const git_tags_1 = require("../../datasource/git-tags");
5
5
  const github_tags_1 = require("../../datasource/github-tags");
6
6
  const hex_1 = require("../../datasource/hex");
@@ -15,6 +15,7 @@ exports.categories = ['elixir'];
15
15
  exports.defaultConfig = {
16
16
  fileMatch: ['(^|/)mix\\.exs$'],
17
17
  };
18
+ exports.supportsLockFileMaintenance = true;
18
19
  exports.supportedDatasources = [
19
20
  github_tags_1.GithubTagsDatasource.id,
20
21
  git_tags_1.GitTagsDatasource.id,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/manager/mix/index.ts"],"names":[],"mappings":";;;AACA,wDAA8D;AAC9D,8DAAoE;AACpE,8CAAqD;AAErD,qCAA+C;AAAtC,6GAAA,kBAAkB,OAAA;AAC3B,yCAA8C;AAArC,4GAAA,eAAe,OAAA;AACxB,iCAA2C;AAAlC,yGAAA,gBAAgB,OAAA;AAEZ,QAAA,GAAG,GAAG,iCAAiC,CAAC;AACxC,QAAA,UAAU,GAAe,CAAC,QAAQ,CAAC,CAAC;AAEpC,QAAA,aAAa,GAAG;IAC3B,SAAS,EAAE,CAAC,iBAAiB,CAAC;CAC/B,CAAC;AAEW,QAAA,oBAAoB,GAAG;IAClC,kCAAoB,CAAC,EAAE;IACvB,4BAAiB,CAAC,EAAE;IACpB,mBAAa,CAAC,EAAE;CACjB,CAAC","sourcesContent":["import type { Category } from '../../../constants';\nimport { GitTagsDatasource } from '../../datasource/git-tags';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport { HexDatasource } from '../../datasource/hex';\n\nexport { extractPackageFile } from './extract';\nexport { updateArtifacts } from './artifacts';\nexport { getRangeStrategy } from './range';\n\nexport const url = 'https://hexdocs.pm/mix/Mix.html';\nexport const categories: Category[] = ['elixir'];\n\nexport const defaultConfig = {\n fileMatch: ['(^|/)mix\\\\.exs$'],\n};\n\nexport const supportedDatasources = [\n GithubTagsDatasource.id,\n GitTagsDatasource.id,\n HexDatasource.id,\n];\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/manager/mix/index.ts"],"names":[],"mappings":";;;AACA,wDAA8D;AAC9D,8DAAoE;AACpE,8CAAqD;AAErD,qCAA+C;AAAtC,6GAAA,kBAAkB,OAAA;AAC3B,yCAA8C;AAArC,4GAAA,eAAe,OAAA;AACxB,iCAA2C;AAAlC,yGAAA,gBAAgB,OAAA;AAEZ,QAAA,GAAG,GAAG,iCAAiC,CAAC;AACxC,QAAA,UAAU,GAAe,CAAC,QAAQ,CAAC,CAAC;AAEpC,QAAA,aAAa,GAAG;IAC3B,SAAS,EAAE,CAAC,iBAAiB,CAAC;CAC/B,CAAC;AAEW,QAAA,2BAA2B,GAAG,IAAI,CAAC;AACnC,QAAA,oBAAoB,GAAG;IAClC,kCAAoB,CAAC,EAAE;IACvB,4BAAiB,CAAC,EAAE;IACpB,mBAAa,CAAC,EAAE;CACjB,CAAC","sourcesContent":["import type { Category } from '../../../constants';\nimport { GitTagsDatasource } from '../../datasource/git-tags';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport { HexDatasource } from '../../datasource/hex';\n\nexport { extractPackageFile } from './extract';\nexport { updateArtifacts } from './artifacts';\nexport { getRangeStrategy } from './range';\n\nexport const url = 'https://hexdocs.pm/mix/Mix.html';\nexport const categories: Category[] = ['elixir'];\n\nexport const defaultConfig = {\n fileMatch: ['(^|/)mix\\\\.exs$'],\n};\n\nexport const supportsLockFileMaintenance = true;\nexport const supportedDatasources = [\n GithubTagsDatasource.id,\n GitTagsDatasource.id,\n HexDatasource.id,\n];\n"]}
@@ -46,7 +46,6 @@ async function updateArtifacts({ packageFileName, config, updatedDeps, }) {
46
46
  },
47
47
  ],
48
48
  docker: {},
49
- userConfiguredEnv: config.env,
50
49
  };
51
50
  try {
52
51
  await (0, exec_1.exec)(cmd, execOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/nix/artifacts.ts"],"names":[],"mappings":";;AAYA,0CA2EC;;AAvFD,kEAAkC;AAClC,iCAA8B;AAC9B,4CAAyC;AACzC,2DAA4D;AAC5D,6CAA0C;AAE1C,yCAAiD;AACjD,2CAAkD;AAClD,4EAAsD;AACtD,+CAA4C;AAGrC,KAAK,UAAU,eAAe,CAAC,EACpC,eAAe,EACf,MAAM,EACN,WAAW,GACI;IACf,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;IACvE,MAAM,uBAAuB,GAAG,MAAM,IAAA,kBAAa,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC1E,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,eAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAG,GAAG,yDAAyD,CAAC;IAEpE,MAAM,KAAK,GAAG,IAAA,6BAAe,EAC3B,SAAS,CAAC,IAAI,CAAC;QACb,QAAQ,EAAE,QAAQ;QAClB,GAAG,EAAE,yBAAyB;KAC/B,CAAC,CACH,CAAC;IAEF,IAAI,KAAK,EAAE,CAAC;QACV,GAAG,IAAI,oCAAoC,KAAK,GAAG,CAAC;IACtD,CAAC;IAED,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACjC,GAAG,IAAI,cAAc,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,WAAW;aACvB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC;aAC7B,MAAM,CAAC,YAAE,CAAC,8BAA8B,CAAC;aACzC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,IAAA,aAAK,EAAC,OAAO,CAAC,EAAE,CAAC;aACpD,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,GAAG,IAAI,cAAc,MAAM,EAAE,CAAC;IAChC,CAAC;IACD,MAAM,WAAW,GAAgB;QAC/B,OAAO,EAAE,eAAe;QACxB,eAAe,EAAE;YACf;gBACE,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,GAAG;aACpC;SACF;QACD,MAAM,EAAE,EAAE;QACV,iBAAiB,EAAE,MAAM,CAAC,GAAG;KAC9B,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,IAAA,WAAI,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAE7B,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAa,GAAE,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,eAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC7C,OAAO;YACL;gBACE,IAAI,EAAE;oBACJ,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,YAAY;oBAClB,QAAQ,EAAE,MAAM,IAAA,kBAAa,EAAC,YAAY,CAAC;iBAC5C;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,2BAA2B,CAAC,CAAC;QAClD,OAAO;YACL;gBACE,aAAa,EAAE;oBACb,QAAQ,EAAE,YAAY;oBACtB,MAAM,EAAE,GAAG,CAAC,OAAO;iBACpB;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { logger } from '../../../logger';\nimport { findGithubToken } from '../../../util/check-token';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport { readLocalFile } from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport * as hostRules from '../../../util/host-rules';\nimport { regEx } from '../../../util/regex';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\n\nexport async function updateArtifacts({\n packageFileName,\n config,\n updatedDeps,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n const lockFileName = packageFileName.replace(regEx(/\\.nix$/), '.lock');\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent) {\n logger.debug('No flake.lock found');\n return null;\n }\n\n let cmd = `nix --extra-experimental-features 'nix-command flakes' `;\n\n const token = findGithubToken(\n hostRules.find({\n hostType: 'github',\n url: 'https://api.github.com/',\n }),\n );\n\n if (token) {\n cmd += `--extra-access-tokens github.com=${token} `;\n }\n\n if (config.isLockFileMaintenance) {\n cmd += 'flake update';\n } else {\n const inputs = updatedDeps\n .map(({ depName }) => depName)\n .filter(is.nonEmptyStringAndNotWhitespace)\n .map((depName) => `--update-input ${quote(depName)}`)\n .join(' ');\n cmd += `flake lock ${inputs}`;\n }\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n toolConstraints: [\n {\n toolName: 'nix',\n constraint: config.constraints?.nix,\n },\n ],\n docker: {},\n userConfiguredEnv: config.env,\n };\n\n try {\n await exec(cmd, execOptions);\n\n const status = await getRepoStatus();\n if (!status.modified.includes(lockFileName)) {\n return null;\n }\n logger.debug('Returning updated flake.lock');\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: await readLocalFile(lockFileName),\n },\n },\n ];\n } catch (err) {\n logger.warn({ err }, 'Error updating flake.lock');\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"]}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/nix/artifacts.ts"],"names":[],"mappings":";;AAYA,0CA0EC;;AAtFD,kEAAkC;AAClC,iCAA8B;AAC9B,4CAAyC;AACzC,2DAA4D;AAC5D,6CAA0C;AAE1C,yCAAiD;AACjD,2CAAkD;AAClD,4EAAsD;AACtD,+CAA4C;AAGrC,KAAK,UAAU,eAAe,CAAC,EACpC,eAAe,EACf,MAAM,EACN,WAAW,GACI;IACf,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;IACvE,MAAM,uBAAuB,GAAG,MAAM,IAAA,kBAAa,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAC1E,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,eAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,GAAG,GAAG,yDAAyD,CAAC;IAEpE,MAAM,KAAK,GAAG,IAAA,6BAAe,EAC3B,SAAS,CAAC,IAAI,CAAC;QACb,QAAQ,EAAE,QAAQ;QAClB,GAAG,EAAE,yBAAyB;KAC/B,CAAC,CACH,CAAC;IAEF,IAAI,KAAK,EAAE,CAAC;QACV,GAAG,IAAI,oCAAoC,KAAK,GAAG,CAAC;IACtD,CAAC;IAED,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACjC,GAAG,IAAI,cAAc,CAAC;IACxB,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,WAAW;aACvB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC;aAC7B,MAAM,CAAC,YAAE,CAAC,8BAA8B,CAAC;aACzC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,IAAA,aAAK,EAAC,OAAO,CAAC,EAAE,CAAC;aACpD,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,GAAG,IAAI,cAAc,MAAM,EAAE,CAAC;IAChC,CAAC;IACD,MAAM,WAAW,GAAgB;QAC/B,OAAO,EAAE,eAAe;QACxB,eAAe,EAAE;YACf;gBACE,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,GAAG;aACpC;SACF;QACD,MAAM,EAAE,EAAE;KACX,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,IAAA,WAAI,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAE7B,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAa,GAAE,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,eAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC7C,OAAO;YACL;gBACE,IAAI,EAAE;oBACJ,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,YAAY;oBAClB,QAAQ,EAAE,MAAM,IAAA,kBAAa,EAAC,YAAY,CAAC;iBAC5C;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,2BAA2B,CAAC,CAAC;QAClD,OAAO;YACL;gBACE,aAAa,EAAE;oBACb,QAAQ,EAAE,YAAY;oBACtB,MAAM,EAAE,GAAG,CAAC,OAAO;iBACpB;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { logger } from '../../../logger';\nimport { findGithubToken } from '../../../util/check-token';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport { readLocalFile } from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport * as hostRules from '../../../util/host-rules';\nimport { regEx } from '../../../util/regex';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\n\nexport async function updateArtifacts({\n packageFileName,\n config,\n updatedDeps,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n const lockFileName = packageFileName.replace(regEx(/\\.nix$/), '.lock');\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent) {\n logger.debug('No flake.lock found');\n return null;\n }\n\n let cmd = `nix --extra-experimental-features 'nix-command flakes' `;\n\n const token = findGithubToken(\n hostRules.find({\n hostType: 'github',\n url: 'https://api.github.com/',\n }),\n );\n\n if (token) {\n cmd += `--extra-access-tokens github.com=${token} `;\n }\n\n if (config.isLockFileMaintenance) {\n cmd += 'flake update';\n } else {\n const inputs = updatedDeps\n .map(({ depName }) => depName)\n .filter(is.nonEmptyStringAndNotWhitespace)\n .map((depName) => `--update-input ${quote(depName)}`)\n .join(' ');\n cmd += `flake lock ${inputs}`;\n }\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n toolConstraints: [\n {\n toolName: 'nix',\n constraint: config.constraints?.nix,\n },\n ],\n docker: {},\n };\n\n try {\n await exec(cmd, execOptions);\n\n const status = await getRepoStatus();\n if (!status.modified.includes(lockFileName)) {\n return null;\n }\n logger.debug('Returning updated flake.lock');\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: await readLocalFile(lockFileName),\n },\n },\n ];\n } catch (err) {\n logger.warn({ err }, 'Error updating flake.lock');\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"]}
@@ -77,7 +77,7 @@ async function extractPackageFile(content, packageFile) {
77
77
  currentValue: flakeOriginal.ref,
78
78
  currentDigest: flakeLocked.rev,
79
79
  datasource: git_refs_1.GitRefsDatasource.id,
80
- packageName: `https://${flakeOriginal.host ?? 'gitlab.com'}/${flakeOriginal.owner}/${flakeOriginal.repo}`,
80
+ packageName: `https://${flakeOriginal.host ?? 'gitlab.com'}/${decodeURIComponent(flakeOriginal.owner)}/${flakeOriginal.repo}`,
81
81
  });
82
82
  break;
83
83
  case 'git':