renovate 40.0.0-next.25 → 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
@@ -1,50 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractPackageFile = extractPackageFile;
4
- const tslib_1 = require("tslib");
5
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
6
4
  const global_1 = require("../../../config/global");
7
5
  const logger_1 = require("../../../logger");
8
6
  const regex_1 = require("../../../util/regex");
9
7
  const yaml_1 = require("../../../util/yaml");
10
- const gitlab_tags_1 = require("../../datasource/gitlab-tags");
11
- const common_1 = require("../gitlabci/common");
12
- function extractDepFromIncludeFile(includeObj) {
13
- const dep = {
14
- datasource: gitlab_tags_1.GitlabTagsDatasource.id,
15
- depName: includeObj.project,
16
- depType: 'repository',
17
- };
18
- if (!includeObj.ref) {
19
- dep.skipReason = 'unspecified-version';
20
- return dep;
21
- }
22
- dep.currentValue = includeObj.ref;
23
- return dep;
24
- }
25
- function getIncludeProjectsFromInclude(includeValue) {
26
- const includes = is_1.default.array(includeValue) ? includeValue : [includeValue];
27
- // Filter out includes that dont have a file & project.
28
- return includes.filter(common_1.isGitlabIncludeProject);
29
- }
30
- function getAllIncludeProjects(data) {
31
- // If Array, search each element.
32
- if (is_1.default.array(data)) {
33
- return data
34
- .filter(common_1.isNonEmptyObject)
35
- .map(getAllIncludeProjects)
36
- .flat();
37
- }
38
- const childrenData = Object.values((0, common_1.filterIncludeFromGitlabPipeline)(data))
39
- .filter(common_1.isNonEmptyObject)
40
- .map(getAllIncludeProjects)
41
- .flat();
42
- // Process include key.
43
- if (data.include) {
44
- childrenData.push(...getIncludeProjectsFromInclude(data.include));
45
- }
46
- return childrenData;
47
- }
8
+ const schema_1 = require("./schema");
48
9
  function extractPackageFile(content, packageFile) {
49
10
  const deps = [];
50
11
  const platform = global_1.GlobalConfig.get('platform');
@@ -53,21 +14,12 @@ function extractPackageFile(content, packageFile) {
53
14
  ? [endpoint.replace((0, regex_1.regEx)(/\/api\/v4\/?/), '')]
54
15
  : null;
55
16
  try {
56
- // TODO: use schema (#9610)
57
- const docs = (0, yaml_1.parseYaml)(content, {
58
- uniqueKeys: false,
59
- });
60
- for (const doc of docs) {
61
- if (is_1.default.object(doc)) {
62
- const includes = getAllIncludeProjects(doc);
63
- for (const includeObj of includes) {
64
- const dep = extractDepFromIncludeFile(includeObj);
65
- if (registryUrls) {
66
- dep.registryUrls = registryUrls;
67
- }
68
- deps.push(dep);
69
- }
17
+ const docs = (0, yaml_1.parseYaml)(content, { uniqueKeys: false });
18
+ for (const dep of schema_1.GitlabDocumentArray.parse(docs)) {
19
+ if (registryUrls) {
20
+ dep.registryUrls = registryUrls;
70
21
  }
22
+ deps.push(dep);
71
23
  }
72
24
  }
73
25
  catch (err) /* istanbul ignore next */ {
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gitlabci-include/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport { regEx } from '../../../util/regex';\nimport { parseYaml } from '../../../util/yaml';\nimport { GitlabTagsDatasource } from '../../datasource/gitlab-tags';\nimport {\n filterIncludeFromGitlabPipeline,\n isGitlabIncludeProject,\n isNonEmptyObject,\n} from '../gitlabci/common';\nimport type {\n GitlabInclude,\n GitlabIncludeProject,\n GitlabPipeline,\n} from '../gitlabci/types';\nimport type { PackageDependency, PackageFileContent } from '../types';\n\nfunction extractDepFromIncludeFile(\n includeObj: GitlabIncludeProject,\n): PackageDependency {\n const dep: PackageDependency = {\n datasource: GitlabTagsDatasource.id,\n depName: includeObj.project,\n depType: 'repository',\n };\n if (!includeObj.ref) {\n dep.skipReason = 'unspecified-version';\n return dep;\n }\n dep.currentValue = includeObj.ref;\n return dep;\n}\n\nfunction getIncludeProjectsFromInclude(\n includeValue: GitlabInclude[] | GitlabInclude,\n): GitlabIncludeProject[] {\n const includes = is.array(includeValue) ? includeValue : [includeValue];\n\n // Filter out includes that dont have a file & project.\n return includes.filter(isGitlabIncludeProject);\n}\n\nfunction getAllIncludeProjects(data: GitlabPipeline): GitlabIncludeProject[] {\n // If Array, search each element.\n if (is.array(data)) {\n return (data as GitlabPipeline[])\n .filter(isNonEmptyObject)\n .map(getAllIncludeProjects)\n .flat();\n }\n\n const childrenData = Object.values(filterIncludeFromGitlabPipeline(data))\n .filter(isNonEmptyObject)\n .map(getAllIncludeProjects)\n .flat();\n\n // Process include key.\n if (data.include) {\n childrenData.push(...getIncludeProjectsFromInclude(data.include));\n }\n return childrenData;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile?: string,\n): PackageFileContent | null {\n const deps: PackageDependency[] = [];\n const platform = GlobalConfig.get('platform');\n const endpoint = GlobalConfig.get('endpoint');\n const registryUrls =\n platform === 'gitlab' && endpoint\n ? [endpoint.replace(regEx(/\\/api\\/v4\\/?/), '')]\n : null;\n try {\n // TODO: use schema (#9610)\n const docs = parseYaml<GitlabPipeline>(content, {\n uniqueKeys: false,\n });\n for (const doc of docs) {\n if (is.object(doc)) {\n const includes = getAllIncludeProjects(doc);\n for (const includeObj of includes) {\n const dep = extractDepFromIncludeFile(includeObj);\n if (registryUrls) {\n dep.registryUrls = registryUrls;\n }\n deps.push(dep);\n }\n }\n }\n } catch (err) /* istanbul ignore next */ {\n if (err.stack?.startsWith('YAMLException:')) {\n logger.debug(\n { err, packageFile },\n 'YAML exception extracting GitLab CI includes',\n );\n } else {\n logger.debug({ err, packageFile }, 'Error extracting GitLab CI includes');\n }\n }\n if (!deps.length) {\n return null;\n }\n return { deps };\n}\n"]}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gitlabci-include/extract.ts"],"names":[],"mappings":";;AAOA,gDAoCC;AA3CD,mDAAsD;AACtD,4CAAyC;AACzC,+CAA4C;AAC5C,6CAA+C;AAE/C,qCAA+C;AAE/C,SAAgB,kBAAkB,CAChC,OAAe,EACf,WAAoB;IAEpB,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,qBAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,qBAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,YAAY,GAChB,QAAQ,KAAK,QAAQ,IAAI,QAAQ;QAC/B,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC,CAAC,IAAI,CAAC;IAEX,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAA,gBAAS,EAAC,OAAO,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,KAAK,MAAM,GAAG,IAAI,4BAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAClD,IAAI,YAAY,EAAE,CAAC;gBACjB,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC;YAClC,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,0BAA0B,CAAC,CAAC;QACxC,IAAI,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC5C,eAAM,CAAC,KAAK,CACV,EAAE,GAAG,EAAE,WAAW,EAAE,EACpB,8CAA8C,CAC/C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,qCAAqC,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC","sourcesContent":["import { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport { regEx } from '../../../util/regex';\nimport { parseYaml } from '../../../util/yaml';\nimport type { PackageDependency, PackageFileContent } from '../types';\nimport { GitlabDocumentArray } from './schema';\n\nexport function extractPackageFile(\n content: string,\n packageFile?: string,\n): PackageFileContent | null {\n const deps: PackageDependency[] = [];\n const platform = GlobalConfig.get('platform');\n const endpoint = GlobalConfig.get('endpoint');\n const registryUrls =\n platform === 'gitlab' && endpoint\n ? [endpoint.replace(regEx(/\\/api\\/v4\\/?/), '')]\n : null;\n\n try {\n const docs = parseYaml(content, { uniqueKeys: false });\n for (const dep of GitlabDocumentArray.parse(docs)) {\n if (registryUrls) {\n dep.registryUrls = registryUrls;\n }\n deps.push(dep);\n }\n } catch (err) /* istanbul ignore next */ {\n if (err.stack?.startsWith('YAMLException:')) {\n logger.debug(\n { err, packageFile },\n 'YAML exception extracting GitLab CI includes',\n );\n } else {\n logger.debug({ err, packageFile }, 'Error extracting GitLab CI includes');\n }\n }\n\n if (!deps.length) {\n return null;\n }\n\n return { deps };\n}\n"]}
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ import type { PackageDependency } from '../types';
3
+ export declare const GitlabDocument: z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, {
4
+ include: unknown;
5
+ children: unknown[];
6
+ }, Record<string, unknown>>, {
7
+ include: unknown;
8
+ children: unknown[];
9
+ }[], Record<string, unknown>>, z.ZodEffects<z.ZodArray<z.ZodAny, "many">, {
10
+ include: unknown;
11
+ children: unknown[];
12
+ }[], any[]>]>, PackageDependency<Record<string, any>>[], any[] | Record<string, unknown>>;
13
+ export declare const GitlabDocumentArray: z.ZodCatch<z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodAny, "many">, PackageDependency<Record<string, any>>[][], any[]>, PackageDependency<Record<string, any>>[], any[]>>;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GitlabDocumentArray = exports.GitlabDocument = void 0;
4
+ const zod_1 = require("zod");
5
+ const array_1 = require("../../../util/array");
6
+ const schema_utils_1 = require("../../../util/schema-utils");
7
+ const gitlab_tags_1 = require("../../datasource/gitlab-tags");
8
+ const GitlabInclude = zod_1.z
9
+ .object({
10
+ project: zod_1.z.string(),
11
+ ref: zod_1.z.string().optional().catch(undefined),
12
+ })
13
+ .transform(({ project, ref }) => {
14
+ const dep = {
15
+ datasource: gitlab_tags_1.GitlabTagsDatasource.id,
16
+ depName: project,
17
+ depType: 'repository',
18
+ };
19
+ if (!ref) {
20
+ dep.skipReason = 'unspecified-version';
21
+ return dep;
22
+ }
23
+ dep.currentValue = ref;
24
+ return dep;
25
+ });
26
+ const GitlabIncludes = zod_1.z
27
+ .union([GitlabInclude.transform(array_1.toArray), (0, schema_utils_1.LooseArray)(GitlabInclude)])
28
+ .catch([]);
29
+ const GitlabRecord = zod_1.z.record(zod_1.z.unknown()).transform((obj) => {
30
+ const { include, ...rest } = obj;
31
+ const children = Object.values(rest);
32
+ return { include, children };
33
+ });
34
+ exports.GitlabDocument = zod_1.z
35
+ .union([GitlabRecord.transform(array_1.toArray), (0, schema_utils_1.LooseArray)(GitlabRecord)])
36
+ .transform((docs) => docs
37
+ .map(({ include, children }) => {
38
+ const deps = GitlabIncludes.parse(include);
39
+ const childrenDeps = exports.GitlabDocumentArray.parse(children);
40
+ return [...childrenDeps, ...deps];
41
+ })
42
+ .flat());
43
+ exports.GitlabDocumentArray = (0, schema_utils_1.LooseArray)(exports.GitlabDocument)
44
+ .transform((x) => x.flat())
45
+ .catch([]);
46
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gitlabci-include/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,+CAA8C;AAC9C,6DAAwD;AACxD,8DAAoE;AAGpE,MAAM,aAAa,GAAG,OAAC;KACpB,MAAM,CAAC;IACN,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE;IACnB,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC;CAC5C,CAAC;KACD,SAAS,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE;IAC9B,MAAM,GAAG,GAAsB;QAC7B,UAAU,EAAE,kCAAoB,CAAC,EAAE;QACnC,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,YAAY;KACtB,CAAC;IAEF,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,GAAG,CAAC,UAAU,GAAG,qBAAqB,CAAC;QACvC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC;IACvB,OAAO,GAAG,CAAC;AACb,CAAC,CAAC,CAAC;AAEL,MAAM,cAAc,GAAG,OAAC;KACrB,KAAK,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,eAAO,CAAC,EAAE,IAAA,yBAAU,EAAC,aAAa,CAAC,CAAC,CAAC;KACpE,KAAK,CAAC,EAAE,CAAC,CAAC;AAEb,MAAM,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;IAC3D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;IACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEU,QAAA,cAAc,GAAG,OAAC;KAC5B,KAAK,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,eAAO,CAAC,EAAE,IAAA,yBAAU,EAAC,YAAY,CAAC,CAAC,CAAC;KAClE,SAAS,CAAC,CAAC,IAAI,EAAuB,EAAE,CACvC,IAAI;KACD,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC7B,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,YAAY,GAAG,2BAAmB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,IAAI,CAAC,CAAC;AACpC,CAAC,CAAC;KACD,IAAI,EAAE,CACV,CAAC;AAES,QAAA,mBAAmB,GAAG,IAAA,yBAAU,EAAC,sBAAc,CAAC;KAC1D,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;KAC1B,KAAK,CAAC,EAAE,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\nimport { toArray } from '../../../util/array';\nimport { LooseArray } from '../../../util/schema-utils';\nimport { GitlabTagsDatasource } from '../../datasource/gitlab-tags';\nimport type { PackageDependency } from '../types';\n\nconst GitlabInclude = z\n .object({\n project: z.string(),\n ref: z.string().optional().catch(undefined),\n })\n .transform(({ project, ref }) => {\n const dep: PackageDependency = {\n datasource: GitlabTagsDatasource.id,\n depName: project,\n depType: 'repository',\n };\n\n if (!ref) {\n dep.skipReason = 'unspecified-version';\n return dep;\n }\n\n dep.currentValue = ref;\n return dep;\n });\n\nconst GitlabIncludes = z\n .union([GitlabInclude.transform(toArray), LooseArray(GitlabInclude)])\n .catch([]);\n\nconst GitlabRecord = z.record(z.unknown()).transform((obj) => {\n const { include, ...rest } = obj;\n const children = Object.values(rest);\n return { include, children };\n});\n\nexport const GitlabDocument = z\n .union([GitlabRecord.transform(toArray), LooseArray(GitlabRecord)])\n .transform((docs): PackageDependency[] =>\n docs\n .map(({ include, children }) => {\n const deps = GitlabIncludes.parse(include);\n const childrenDeps = GitlabDocumentArray.parse(children);\n return [...childrenDeps, ...deps];\n })\n .flat(),\n );\n\nexport const GitlabDocumentArray = LooseArray(GitlabDocument)\n .transform((x) => x.flat())\n .catch([]);\n"]}
@@ -117,13 +117,12 @@ async function updateArtifacts({ packageFileName: goModFileName, updatedDeps, ne
117
117
  logger_1.logger.debug('Removed some relative replace statements and comments from go.mod');
118
118
  }
119
119
  }
120
- const goConstraints = config.constraints?.go ?? (await getGoConstraints(goModFileName));
120
+ const goConstraints = config.constraints?.go ?? getGoConstraints(newGoModContent);
121
121
  try {
122
122
  await (0, fs_1.writeLocalFile)(goModFileName, massagedGoMod);
123
123
  const cmd = 'go';
124
124
  const execOptions = {
125
125
  cwdFile: goModFileName,
126
- userConfiguredEnv: config.env,
127
126
  extraEnv: {
128
127
  GOPATH: await (0, fs_1.ensureCacheDir)('go'),
129
128
  GOPROXY: process.env.GOPROXY,
@@ -132,9 +131,8 @@ async function updateArtifacts({ packageFileName: goModFileName, updatedDeps, ne
132
131
  GONOSUMDB: process.env.GONOSUMDB,
133
132
  GOSUMDB: process.env.GOSUMDB,
134
133
  GOINSECURE: process.env.GOINSECURE,
135
- GOFLAGS: useModcacherw(goConstraints)
136
- ? '-modcacherw'
137
- : /* istanbul ignore next: hard to test */ null,
134
+ /* v8 ignore next -- TODO: add test */
135
+ GOFLAGS: useModcacherw(goConstraints) ? '-modcacherw' : null,
138
136
  CGO_ENABLED: global_1.GlobalConfig.get('binarySource') === 'docker' ? '0' : null,
139
137
  ...(0, auth_1.getGitEnvironmentVariables)(['go']),
140
138
  },
@@ -333,16 +331,32 @@ async function updateArtifacts({ packageFileName: goModFileName, updatedDeps, ne
333
331
  ];
334
332
  }
335
333
  }
336
- async function getGoConstraints(goModFileName) {
337
- const content = (await (0, fs_1.readLocalFile)(goModFileName, 'utf8')) ?? null;
338
- if (!content) {
339
- return undefined;
334
+ function getGoConstraints(content) {
335
+ // prefer toolchain directive when go.mod has one
336
+ const toolchainMatch = (0, regex_1.regEx)(/^toolchain\s*go(?<gover>\d+\.\d+\.\d+)$/m).exec(content);
337
+ const toolchainVer = toolchainMatch?.groups?.gover;
338
+ if (toolchainVer) {
339
+ logger_1.logger.debug(`Using go version ${toolchainVer} found in toolchain directive`);
340
+ return toolchainVer;
341
+ }
342
+ // If go.mod doesn't have toolchain directive and has a full go version spec,
343
+ // for example `go 1.23.6`, pick this version, this doesn't match major.minor version spec.
344
+ //
345
+ // This is because when go.mod have same version defined in go directive and toolchain directive,
346
+ // go will remove toolchain directive from go.mod.
347
+ //
348
+ // For example, go will rewrite `go 1.23.5\ntoolchain go1.23.5` to `go 1.23.5` by default,
349
+ // in this case, the go directive is the toolchain directive.
350
+ const goFullVersion = (0, regex_1.regEx)(/^go\s*(?<gover>\d+\.\d+\.\d+)$/m).exec(content)
351
+ ?.groups?.gover;
352
+ if (goFullVersion) {
353
+ return goFullVersion;
340
354
  }
341
355
  const re = (0, regex_1.regEx)(/^go\s*(?<gover>\d+\.\d+)$/m);
342
356
  const match = re.exec(content);
343
357
  if (!match?.groups?.gover) {
344
358
  return undefined;
345
359
  }
346
- return '^' + match.groups.gover;
360
+ return `^${match.groups.gover}`;
347
361
  }
348
362
  //# sourceMappingURL=artifacts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gomod/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport semver from 'semver';\nimport { quote } from 'shlex';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../config/global';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport { filterMap } from '../../../util/filter-map';\nimport {\n ensureCacheDir,\n findLocalSiblingOrParent,\n isValidLocalPath,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport { getGitEnvironmentVariables } from '../../../util/git/auth';\nimport { regEx } from '../../../util/regex';\nimport { isValid } from '../../versioning/semver';\nimport type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsConfig,\n UpdateArtifactsResult,\n} from '../types';\nimport { getExtraDepsNotice } from './artifacts-extra';\n\nconst { major, valid } = semver;\n\nfunction getUpdateImportPathCmds(\n updatedDeps: PackageDependency[],\n { constraints }: UpdateArtifactsConfig,\n): string[] {\n // Check if we fail to parse any major versions and log that they're skipped\n const invalidMajorDeps = updatedDeps.filter(\n ({ newVersion }) => !valid(newVersion),\n );\n if (invalidMajorDeps.length > 0) {\n invalidMajorDeps.forEach(({ depName }) =>\n logger.warn(\n { depName },\n 'Ignoring dependency: Could not get major version',\n ),\n );\n }\n\n const updateImportCommands = updatedDeps\n .filter(\n ({ newVersion }) =>\n valid(newVersion) && !newVersion!.endsWith('+incompatible'),\n )\n .map(({ depName, newVersion }) => ({\n depName: depName!,\n newMajor: major(newVersion!),\n }))\n // Skip path updates going from v0 to v1\n .filter(\n ({ depName, newMajor }) =>\n depName.startsWith('gopkg.in/') || newMajor > 1,\n )\n\n .map(\n ({ depName, newMajor }) =>\n `mod upgrade --mod-name=${depName} -t=${newMajor}`,\n );\n\n if (updateImportCommands.length > 0) {\n let installMarwanModArgs =\n 'install github.com/marwan-at-work/mod/cmd/mod@latest';\n const gomodModCompatibility = constraints?.gomodMod;\n if (gomodModCompatibility) {\n if (\n gomodModCompatibility.startsWith('v') &&\n isValid(gomodModCompatibility.replace(regEx(/^v/), ''))\n ) {\n installMarwanModArgs = installMarwanModArgs.replace(\n regEx(/@latest$/),\n `@${gomodModCompatibility}`,\n );\n } else {\n logger.debug(\n { gomodModCompatibility },\n 'marwan-at-work/mod compatibility range is not valid - skipping',\n );\n }\n } else {\n logger.debug(\n 'No marwan-at-work/mod compatibility range found - installing marwan-at-work/mod latest',\n );\n }\n updateImportCommands.unshift(`go ${installMarwanModArgs}`);\n }\n\n return updateImportCommands;\n}\n\nfunction useModcacherw(goVersion: string | undefined): boolean {\n if (!is.string(goVersion)) {\n return true;\n }\n\n const [, majorPart, minorPart] = coerceArray(\n regEx(/(\\d+)\\.(\\d+)/).exec(goVersion),\n );\n const [major, minor] = [majorPart, minorPart].map((x) => parseInt(x, 10));\n\n return (\n !Number.isNaN(major) &&\n !Number.isNaN(minor) &&\n (major > 1 || (major === 1 && minor >= 14))\n );\n}\n\nexport async function updateArtifacts({\n packageFileName: goModFileName,\n updatedDeps,\n newPackageFileContent: newGoModContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`gomod.updateArtifacts(${goModFileName})`);\n\n const sumFileName = goModFileName.replace(regEx(/\\.mod$/), '.sum');\n const existingGoSumContent = await readLocalFile(sumFileName);\n if (!existingGoSumContent) {\n logger.debug('No go.sum found');\n return null;\n }\n\n const goModDir = upath.dirname(goModFileName);\n\n const vendorDir = upath.join(goModDir, 'vendor/');\n const vendorModulesFileName = upath.join(vendorDir, 'modules.txt');\n const useVendor =\n !!config.postUpdateOptions?.includes('gomodVendor') ||\n (!config.postUpdateOptions?.includes('gomodSkipVendor') &&\n (await readLocalFile(vendorModulesFileName)) !== null);\n let massagedGoMod = newGoModContent;\n\n if (config.postUpdateOptions?.includes('gomodMassage')) {\n // Regex match inline replace directive, example:\n // replace golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5\n // https://go.dev/ref/mod#go-mod-file-replace\n\n // replace bracket after comments, so it doesn't break the regex, doing a complex regex causes problems\n // when there's a comment and \")\" after it, the regex will read replace block until comment.. and stop.\n massagedGoMod = massagedGoMod\n .split('\\n')\n .map((line) => {\n if (line.trim().startsWith('//')) {\n return line.replace(')', 'renovate-replace-bracket');\n }\n return line;\n })\n .join('\\n');\n\n const inlineReplaceRegEx = regEx(\n /(\\r?\\n)(replace\\s+[^\\s]+\\s+=>\\s+\\.\\.\\/.*)/g,\n );\n\n // $1 will be matched with the (\\r?n) group\n // $2 will be matched with the inline replace match, example\n // \"// renovate-replace replace golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5\"\n const inlineCommentOut = '$1// renovate-replace $2';\n\n // Regex match replace directive block, example:\n // replace (\n // golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5\n // )\n const blockReplaceRegEx = regEx(/(\\r?\\n)replace\\s*\\([^)]+\\s*\\)/g);\n\n /**\n * replacerFunction for commenting out replace blocks\n * @param match A string representing a golang replace directive block\n * @returns A commented out block with // renovate-replace\n */\n const blockCommentOut = (match: string): string =>\n match.replace(/(\\r?\\n)/g, '$1// renovate-replace ');\n\n // Comment out golang replace directives\n massagedGoMod = massagedGoMod\n .replace(inlineReplaceRegEx, inlineCommentOut)\n .replace(blockReplaceRegEx, blockCommentOut);\n\n if (massagedGoMod !== newGoModContent) {\n logger.debug(\n 'Removed some relative replace statements and comments from go.mod',\n );\n }\n }\n const goConstraints =\n config.constraints?.go ?? (await getGoConstraints(goModFileName));\n\n try {\n await writeLocalFile(goModFileName, massagedGoMod);\n\n const cmd = 'go';\n const execOptions: ExecOptions = {\n cwdFile: goModFileName,\n userConfiguredEnv: config.env,\n extraEnv: {\n GOPATH: await ensureCacheDir('go'),\n GOPROXY: process.env.GOPROXY,\n GOPRIVATE: process.env.GOPRIVATE,\n GONOPROXY: process.env.GONOPROXY,\n GONOSUMDB: process.env.GONOSUMDB,\n GOSUMDB: process.env.GOSUMDB,\n GOINSECURE: process.env.GOINSECURE,\n GOFLAGS: useModcacherw(goConstraints)\n ? '-modcacherw'\n : /* istanbul ignore next: hard to test */ null,\n CGO_ENABLED: GlobalConfig.get('binarySource') === 'docker' ? '0' : null,\n ...getGitEnvironmentVariables(['go']),\n },\n docker: {},\n toolConstraints: [\n {\n toolName: 'golang',\n constraint: goConstraints,\n },\n ],\n };\n\n const execCommands: string[] = [];\n\n let goGetDirs: string | undefined;\n if (config.goGetDirs) {\n goGetDirs = config.goGetDirs\n .filter((dir) => {\n const isValid = isValidLocalPath(dir);\n if (!isValid) {\n logger.warn({ dir }, 'Invalid path in goGetDirs');\n }\n return isValid;\n })\n .map(quote)\n .join(' ');\n\n if (goGetDirs === '') {\n throw new Error('Invalid goGetDirs');\n }\n }\n\n let args = `get -d -t ${goGetDirs ?? './...'}`;\n logger.trace({ cmd, args }, 'go get command included');\n execCommands.push(`${cmd} ${args}`);\n\n // Update import paths on major updates\n const isImportPathUpdateRequired =\n config.postUpdateOptions?.includes('gomodUpdateImportPaths') &&\n config.updateType === 'major';\n\n if (isImportPathUpdateRequired) {\n const updateImportCmds = getUpdateImportPathCmds(updatedDeps, config);\n if (updateImportCmds.length > 0) {\n logger.debug(updateImportCmds, 'update import path commands included');\n // The updates\n execCommands.push(...updateImportCmds);\n }\n }\n\n const mustSkipGoModTidy =\n !config.postUpdateOptions?.includes('gomodUpdateImportPaths') &&\n config.updateType === 'major';\n if (mustSkipGoModTidy) {\n logger.debug('go mod tidy command skipped');\n }\n\n let tidyOpts = '';\n if (config.postUpdateOptions?.includes('gomodTidy1.17')) {\n tidyOpts += ' -compat=1.17';\n }\n if (config.postUpdateOptions?.includes('gomodTidyE')) {\n tidyOpts += ' -e';\n }\n\n const isGoModTidyRequired =\n !mustSkipGoModTidy &&\n (config.postUpdateOptions?.includes('gomodTidy') === true ||\n config.postUpdateOptions?.includes('gomodTidy1.17') === true ||\n config.postUpdateOptions?.includes('gomodTidyE') === true ||\n (config.updateType === 'major' && isImportPathUpdateRequired));\n if (isGoModTidyRequired) {\n args = 'mod tidy' + tidyOpts;\n logger.debug('go mod tidy command included');\n execCommands.push(`${cmd} ${args}`);\n }\n\n const goWorkSumFileName = upath.join(goModDir, 'go.work.sum');\n if (useVendor) {\n // If we find a go.work, then use go workspace vendoring.\n const goWorkFile = await findLocalSiblingOrParent(\n goModFileName,\n 'go.work',\n );\n\n if (goWorkFile) {\n args = 'work vendor';\n logger.debug('using go work vendor');\n execCommands.push(`${cmd} ${args}`);\n\n args = 'work sync';\n logger.debug('using go work sync');\n execCommands.push(`${cmd} ${args}`);\n } else {\n args = 'mod vendor';\n logger.debug('using go mod vendor');\n execCommands.push(`${cmd} ${args}`);\n }\n\n if (isGoModTidyRequired) {\n args = 'mod tidy' + tidyOpts;\n logger.debug('go mod tidy command included');\n execCommands.push(`${cmd} ${args}`);\n }\n }\n\n // We tidy one more time as a solution for #6795\n if (isGoModTidyRequired) {\n args = 'mod tidy' + tidyOpts;\n logger.debug('go mod tidy command included');\n execCommands.push(`${cmd} ${args}`);\n }\n\n await exec(execCommands, execOptions);\n\n const status = await getRepoStatus();\n if (\n !status.modified.includes(sumFileName) &&\n !status.modified.includes(goModFileName) &&\n !status.modified.includes(goWorkSumFileName)\n ) {\n return null;\n }\n\n const res: UpdateArtifactsResult[] = [];\n if (status.modified.includes(sumFileName)) {\n logger.debug('Returning updated go.sum');\n res.push({\n file: {\n type: 'addition',\n path: sumFileName,\n contents: await readLocalFile(sumFileName),\n },\n });\n }\n\n if (status.modified.includes(goWorkSumFileName)) {\n logger.debug('Returning updated go.work.sum');\n res.push({\n file: {\n type: 'addition',\n path: goWorkSumFileName,\n contents: await readLocalFile(goWorkSumFileName),\n },\n });\n }\n\n // Include all the .go file import changes\n if (isImportPathUpdateRequired) {\n logger.debug('Returning updated go source files for import path changes');\n for (const f of status.modified) {\n if (f.endsWith('.go')) {\n res.push({\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n },\n });\n }\n }\n }\n\n if (useVendor) {\n for (const f of status.modified.concat(status.not_added)) {\n if (f.startsWith(vendorDir)) {\n res.push({\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n },\n });\n }\n }\n for (const f of coerceArray(status.deleted)) {\n res.push({\n file: {\n type: 'deletion',\n path: f,\n },\n });\n }\n }\n\n // TODO: throws in tests (#22198)\n const finalGoModContent = (await readLocalFile(goModFileName, 'utf8'))!\n .replace(regEx(/\\/\\/ renovate-replace /g), '')\n .replace(regEx(/renovate-replace-bracket/g), ')');\n if (finalGoModContent !== newGoModContent) {\n const artifactResult: UpdateArtifactsResult = {\n file: {\n type: 'addition',\n path: goModFileName,\n contents: finalGoModContent,\n },\n };\n\n const updatedDepNames = filterMap(updatedDeps, (dep) => dep?.depName);\n const extraDepsNotice = getExtraDepsNotice(\n newGoModContent,\n finalGoModContent,\n updatedDepNames,\n );\n\n if (extraDepsNotice) {\n artifactResult.notice = {\n file: goModFileName,\n message: extraDepsNotice,\n };\n }\n\n logger.debug('Found updated go.mod after go.sum update');\n res.push(artifactResult);\n }\n return res;\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to update go.sum');\n return [\n {\n artifactError: {\n lockFile: sumFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n\nasync function getGoConstraints(\n goModFileName: string,\n): Promise<string | undefined> {\n const content = (await readLocalFile(goModFileName, 'utf8')) ?? null;\n if (!content) {\n return undefined;\n }\n const re = regEx(/^go\\s*(?<gover>\\d+\\.\\d+)$/m);\n const match = re.exec(content);\n if (!match?.groups?.gover) {\n return undefined;\n }\n return '^' + match.groups.gover;\n}\n"]}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gomod/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport semver from 'semver';\nimport { quote } from 'shlex';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../config/global';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport { filterMap } from '../../../util/filter-map';\nimport {\n ensureCacheDir,\n findLocalSiblingOrParent,\n isValidLocalPath,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport { getGitEnvironmentVariables } from '../../../util/git/auth';\nimport { regEx } from '../../../util/regex';\nimport { isValid } from '../../versioning/semver';\nimport type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsConfig,\n UpdateArtifactsResult,\n} from '../types';\nimport { getExtraDepsNotice } from './artifacts-extra';\n\nconst { major, valid } = semver;\n\nfunction getUpdateImportPathCmds(\n updatedDeps: PackageDependency[],\n { constraints }: UpdateArtifactsConfig,\n): string[] {\n // Check if we fail to parse any major versions and log that they're skipped\n const invalidMajorDeps = updatedDeps.filter(\n ({ newVersion }) => !valid(newVersion),\n );\n if (invalidMajorDeps.length > 0) {\n invalidMajorDeps.forEach(({ depName }) =>\n logger.warn(\n { depName },\n 'Ignoring dependency: Could not get major version',\n ),\n );\n }\n\n const updateImportCommands = updatedDeps\n .filter(\n ({ newVersion }) =>\n valid(newVersion) && !newVersion!.endsWith('+incompatible'),\n )\n .map(({ depName, newVersion }) => ({\n depName: depName!,\n newMajor: major(newVersion!),\n }))\n // Skip path updates going from v0 to v1\n .filter(\n ({ depName, newMajor }) =>\n depName.startsWith('gopkg.in/') || newMajor > 1,\n )\n\n .map(\n ({ depName, newMajor }) =>\n `mod upgrade --mod-name=${depName} -t=${newMajor}`,\n );\n\n if (updateImportCommands.length > 0) {\n let installMarwanModArgs =\n 'install github.com/marwan-at-work/mod/cmd/mod@latest';\n const gomodModCompatibility = constraints?.gomodMod;\n if (gomodModCompatibility) {\n if (\n gomodModCompatibility.startsWith('v') &&\n isValid(gomodModCompatibility.replace(regEx(/^v/), ''))\n ) {\n installMarwanModArgs = installMarwanModArgs.replace(\n regEx(/@latest$/),\n `@${gomodModCompatibility}`,\n );\n } else {\n logger.debug(\n { gomodModCompatibility },\n 'marwan-at-work/mod compatibility range is not valid - skipping',\n );\n }\n } else {\n logger.debug(\n 'No marwan-at-work/mod compatibility range found - installing marwan-at-work/mod latest',\n );\n }\n updateImportCommands.unshift(`go ${installMarwanModArgs}`);\n }\n\n return updateImportCommands;\n}\n\nfunction useModcacherw(goVersion: string | undefined): boolean {\n if (!is.string(goVersion)) {\n return true;\n }\n\n const [, majorPart, minorPart] = coerceArray(\n regEx(/(\\d+)\\.(\\d+)/).exec(goVersion),\n );\n const [major, minor] = [majorPart, minorPart].map((x) => parseInt(x, 10));\n\n return (\n !Number.isNaN(major) &&\n !Number.isNaN(minor) &&\n (major > 1 || (major === 1 && minor >= 14))\n );\n}\n\nexport async function updateArtifacts({\n packageFileName: goModFileName,\n updatedDeps,\n newPackageFileContent: newGoModContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`gomod.updateArtifacts(${goModFileName})`);\n\n const sumFileName = goModFileName.replace(regEx(/\\.mod$/), '.sum');\n const existingGoSumContent = await readLocalFile(sumFileName);\n if (!existingGoSumContent) {\n logger.debug('No go.sum found');\n return null;\n }\n\n const goModDir = upath.dirname(goModFileName);\n\n const vendorDir = upath.join(goModDir, 'vendor/');\n const vendorModulesFileName = upath.join(vendorDir, 'modules.txt');\n const useVendor =\n !!config.postUpdateOptions?.includes('gomodVendor') ||\n (!config.postUpdateOptions?.includes('gomodSkipVendor') &&\n (await readLocalFile(vendorModulesFileName)) !== null);\n let massagedGoMod = newGoModContent;\n\n if (config.postUpdateOptions?.includes('gomodMassage')) {\n // Regex match inline replace directive, example:\n // replace golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5\n // https://go.dev/ref/mod#go-mod-file-replace\n\n // replace bracket after comments, so it doesn't break the regex, doing a complex regex causes problems\n // when there's a comment and \")\" after it, the regex will read replace block until comment.. and stop.\n massagedGoMod = massagedGoMod\n .split('\\n')\n .map((line) => {\n if (line.trim().startsWith('//')) {\n return line.replace(')', 'renovate-replace-bracket');\n }\n return line;\n })\n .join('\\n');\n\n const inlineReplaceRegEx = regEx(\n /(\\r?\\n)(replace\\s+[^\\s]+\\s+=>\\s+\\.\\.\\/.*)/g,\n );\n\n // $1 will be matched with the (\\r?n) group\n // $2 will be matched with the inline replace match, example\n // \"// renovate-replace replace golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5\"\n const inlineCommentOut = '$1// renovate-replace $2';\n\n // Regex match replace directive block, example:\n // replace (\n // golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5\n // )\n const blockReplaceRegEx = regEx(/(\\r?\\n)replace\\s*\\([^)]+\\s*\\)/g);\n\n /**\n * replacerFunction for commenting out replace blocks\n * @param match A string representing a golang replace directive block\n * @returns A commented out block with // renovate-replace\n */\n const blockCommentOut = (match: string): string =>\n match.replace(/(\\r?\\n)/g, '$1// renovate-replace ');\n\n // Comment out golang replace directives\n massagedGoMod = massagedGoMod\n .replace(inlineReplaceRegEx, inlineCommentOut)\n .replace(blockReplaceRegEx, blockCommentOut);\n\n if (massagedGoMod !== newGoModContent) {\n logger.debug(\n 'Removed some relative replace statements and comments from go.mod',\n );\n }\n }\n const goConstraints =\n config.constraints?.go ?? getGoConstraints(newGoModContent);\n\n try {\n await writeLocalFile(goModFileName, massagedGoMod);\n\n const cmd = 'go';\n const execOptions: ExecOptions = {\n cwdFile: goModFileName,\n extraEnv: {\n GOPATH: await ensureCacheDir('go'),\n GOPROXY: process.env.GOPROXY,\n GOPRIVATE: process.env.GOPRIVATE,\n GONOPROXY: process.env.GONOPROXY,\n GONOSUMDB: process.env.GONOSUMDB,\n GOSUMDB: process.env.GOSUMDB,\n GOINSECURE: process.env.GOINSECURE,\n /* v8 ignore next -- TODO: add test */\n GOFLAGS: useModcacherw(goConstraints) ? '-modcacherw' : null,\n CGO_ENABLED: GlobalConfig.get('binarySource') === 'docker' ? '0' : null,\n ...getGitEnvironmentVariables(['go']),\n },\n docker: {},\n toolConstraints: [\n {\n toolName: 'golang',\n constraint: goConstraints,\n },\n ],\n };\n\n const execCommands: string[] = [];\n\n let goGetDirs: string | undefined;\n if (config.goGetDirs) {\n goGetDirs = config.goGetDirs\n .filter((dir) => {\n const isValid = isValidLocalPath(dir);\n if (!isValid) {\n logger.warn({ dir }, 'Invalid path in goGetDirs');\n }\n return isValid;\n })\n .map(quote)\n .join(' ');\n\n if (goGetDirs === '') {\n throw new Error('Invalid goGetDirs');\n }\n }\n\n let args = `get -d -t ${goGetDirs ?? './...'}`;\n logger.trace({ cmd, args }, 'go get command included');\n execCommands.push(`${cmd} ${args}`);\n\n // Update import paths on major updates\n const isImportPathUpdateRequired =\n config.postUpdateOptions?.includes('gomodUpdateImportPaths') &&\n config.updateType === 'major';\n\n if (isImportPathUpdateRequired) {\n const updateImportCmds = getUpdateImportPathCmds(updatedDeps, config);\n if (updateImportCmds.length > 0) {\n logger.debug(updateImportCmds, 'update import path commands included');\n // The updates\n execCommands.push(...updateImportCmds);\n }\n }\n\n const mustSkipGoModTidy =\n !config.postUpdateOptions?.includes('gomodUpdateImportPaths') &&\n config.updateType === 'major';\n if (mustSkipGoModTidy) {\n logger.debug('go mod tidy command skipped');\n }\n\n let tidyOpts = '';\n if (config.postUpdateOptions?.includes('gomodTidy1.17')) {\n tidyOpts += ' -compat=1.17';\n }\n if (config.postUpdateOptions?.includes('gomodTidyE')) {\n tidyOpts += ' -e';\n }\n\n const isGoModTidyRequired =\n !mustSkipGoModTidy &&\n (config.postUpdateOptions?.includes('gomodTidy') === true ||\n config.postUpdateOptions?.includes('gomodTidy1.17') === true ||\n config.postUpdateOptions?.includes('gomodTidyE') === true ||\n (config.updateType === 'major' && isImportPathUpdateRequired));\n if (isGoModTidyRequired) {\n args = 'mod tidy' + tidyOpts;\n logger.debug('go mod tidy command included');\n execCommands.push(`${cmd} ${args}`);\n }\n\n const goWorkSumFileName = upath.join(goModDir, 'go.work.sum');\n if (useVendor) {\n // If we find a go.work, then use go workspace vendoring.\n const goWorkFile = await findLocalSiblingOrParent(\n goModFileName,\n 'go.work',\n );\n\n if (goWorkFile) {\n args = 'work vendor';\n logger.debug('using go work vendor');\n execCommands.push(`${cmd} ${args}`);\n\n args = 'work sync';\n logger.debug('using go work sync');\n execCommands.push(`${cmd} ${args}`);\n } else {\n args = 'mod vendor';\n logger.debug('using go mod vendor');\n execCommands.push(`${cmd} ${args}`);\n }\n\n if (isGoModTidyRequired) {\n args = 'mod tidy' + tidyOpts;\n logger.debug('go mod tidy command included');\n execCommands.push(`${cmd} ${args}`);\n }\n }\n\n // We tidy one more time as a solution for #6795\n if (isGoModTidyRequired) {\n args = 'mod tidy' + tidyOpts;\n logger.debug('go mod tidy command included');\n execCommands.push(`${cmd} ${args}`);\n }\n\n await exec(execCommands, execOptions);\n\n const status = await getRepoStatus();\n if (\n !status.modified.includes(sumFileName) &&\n !status.modified.includes(goModFileName) &&\n !status.modified.includes(goWorkSumFileName)\n ) {\n return null;\n }\n\n const res: UpdateArtifactsResult[] = [];\n if (status.modified.includes(sumFileName)) {\n logger.debug('Returning updated go.sum');\n res.push({\n file: {\n type: 'addition',\n path: sumFileName,\n contents: await readLocalFile(sumFileName),\n },\n });\n }\n\n if (status.modified.includes(goWorkSumFileName)) {\n logger.debug('Returning updated go.work.sum');\n res.push({\n file: {\n type: 'addition',\n path: goWorkSumFileName,\n contents: await readLocalFile(goWorkSumFileName),\n },\n });\n }\n\n // Include all the .go file import changes\n if (isImportPathUpdateRequired) {\n logger.debug('Returning updated go source files for import path changes');\n for (const f of status.modified) {\n if (f.endsWith('.go')) {\n res.push({\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n },\n });\n }\n }\n }\n\n if (useVendor) {\n for (const f of status.modified.concat(status.not_added)) {\n if (f.startsWith(vendorDir)) {\n res.push({\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n },\n });\n }\n }\n for (const f of coerceArray(status.deleted)) {\n res.push({\n file: {\n type: 'deletion',\n path: f,\n },\n });\n }\n }\n\n // TODO: throws in tests (#22198)\n const finalGoModContent = (await readLocalFile(goModFileName, 'utf8'))!\n .replace(regEx(/\\/\\/ renovate-replace /g), '')\n .replace(regEx(/renovate-replace-bracket/g), ')');\n if (finalGoModContent !== newGoModContent) {\n const artifactResult: UpdateArtifactsResult = {\n file: {\n type: 'addition',\n path: goModFileName,\n contents: finalGoModContent,\n },\n };\n\n const updatedDepNames = filterMap(updatedDeps, (dep) => dep?.depName);\n const extraDepsNotice = getExtraDepsNotice(\n newGoModContent,\n finalGoModContent,\n updatedDepNames,\n );\n\n if (extraDepsNotice) {\n artifactResult.notice = {\n file: goModFileName,\n message: extraDepsNotice,\n };\n }\n\n logger.debug('Found updated go.mod after go.sum update');\n res.push(artifactResult);\n }\n return res;\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to update go.sum');\n return [\n {\n artifactError: {\n lockFile: sumFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n\nfunction getGoConstraints(content: string): string | undefined {\n // prefer toolchain directive when go.mod has one\n const toolchainMatch = regEx(/^toolchain\\s*go(?<gover>\\d+\\.\\d+\\.\\d+)$/m).exec(\n content,\n );\n const toolchainVer = toolchainMatch?.groups?.gover;\n if (toolchainVer) {\n logger.debug(\n `Using go version ${toolchainVer} found in toolchain directive`,\n );\n return toolchainVer;\n }\n\n // If go.mod doesn't have toolchain directive and has a full go version spec,\n // for example `go 1.23.6`, pick this version, this doesn't match major.minor version spec.\n //\n // This is because when go.mod have same version defined in go directive and toolchain directive,\n // go will remove toolchain directive from go.mod.\n //\n // For example, go will rewrite `go 1.23.5\\ntoolchain go1.23.5` to `go 1.23.5` by default,\n // in this case, the go directive is the toolchain directive.\n const goFullVersion = regEx(/^go\\s*(?<gover>\\d+\\.\\d+\\.\\d+)$/m).exec(content)\n ?.groups?.gover;\n if (goFullVersion) {\n return goFullVersion;\n }\n\n const re = regEx(/^go\\s*(?<gover>\\d+\\.\\d+)$/m);\n const match = re.exec(content);\n if (!match?.groups?.gover) {\n return undefined;\n }\n return `^${match.groups.gover}`;\n}\n"]}
@@ -3,8 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractPackageFile = extractPackageFile;
4
4
  const regex_1 = require("../../../util/regex");
5
5
  const line_parser_1 = require("./line-parser");
6
+ function findMatchingModule(tool, deps) {
7
+ let bestMatch;
8
+ const normalizedTool = tool.depName + '/';
9
+ // Find the longest matching prefix for the tool within the dependencies
10
+ for (const dep of deps) {
11
+ if (normalizedTool.startsWith(dep.depName + '/') &&
12
+ dep.depName.length > (bestMatch?.depName.length ?? 0)) {
13
+ bestMatch = dep;
14
+ }
15
+ }
16
+ return bestMatch;
17
+ }
6
18
  function extractPackageFile(content) {
7
19
  const deps = [];
20
+ const tools = [];
8
21
  const lines = content.split(regex_1.newlineRegex);
9
22
  for (let lineNumber = 0; lineNumber < lines.length; lineNumber += 1) {
10
23
  const line = lines[lineNumber];
@@ -12,10 +25,20 @@ function extractPackageFile(content) {
12
25
  if (!dep) {
13
26
  continue;
14
27
  }
28
+ if (dep.depType === 'tool') {
29
+ tools.push(dep);
30
+ continue;
31
+ }
15
32
  dep.managerData ??= {};
16
33
  dep.managerData.lineNumber = lineNumber;
17
34
  deps.push(dep);
18
35
  }
36
+ for (const tool of tools) {
37
+ const match = findMatchingModule(tool, deps);
38
+ if (match?.depType === 'indirect') {
39
+ delete match.enabled;
40
+ }
41
+ }
19
42
  if (!deps.length) {
20
43
  return null;
21
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gomod/extract.ts"],"names":[],"mappings":";;AAIA,gDAsBC;AA1BD,+CAAmD;AAEnD,+CAA0C;AAE1C,SAAgB,kBAAkB,CAAC,OAAe;IAChD,MAAM,IAAI,GAAwB,EAAE,CAAC;IAErC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,oBAAY,CAAC,CAAC;IAC1C,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAA,uBAAS,EAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,SAAS;QACX,CAAC;QAED,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,WAAW,CAAC,UAAU,GAAG,UAAU,CAAC;QAExC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC","sourcesContent":["import { newlineRegex } from '../../../util/regex';\nimport type { PackageDependency, PackageFileContent } from '../types';\nimport { parseLine } from './line-parser';\n\nexport function extractPackageFile(content: string): PackageFileContent | null {\n const deps: PackageDependency[] = [];\n\n const lines = content.split(newlineRegex);\n for (let lineNumber = 0; lineNumber < lines.length; lineNumber += 1) {\n const line = lines[lineNumber];\n const dep = parseLine(line);\n if (!dep) {\n continue;\n }\n\n dep.managerData ??= {};\n dep.managerData.lineNumber = lineNumber;\n\n deps.push(dep);\n }\n\n if (!deps.length) {\n return null;\n }\n\n return { deps };\n}\n"]}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gomod/extract.ts"],"names":[],"mappings":";;AAwBA,gDAmCC;AA3DD,+CAAmD;AAEnD,+CAA0C;AAE1C,SAAS,kBAAkB,CACzB,IAAuB,EACvB,IAAyB;IAEzB,IAAI,SAAwC,CAAC;IAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,OAAQ,GAAG,GAAG,CAAC;IAE3C,wEAAwE;IACxE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IACE,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,OAAQ,GAAG,GAAG,CAAC;YAC7C,GAAG,CAAC,OAAQ,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,OAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,EACvD,CAAC;YACD,SAAS,GAAG,GAAG,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,kBAAkB,CAAC,OAAe;IAChD,MAAM,IAAI,GAAwB,EAAE,CAAC;IACrC,MAAM,KAAK,GAAwB,EAAE,CAAC;IAEtC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,oBAAY,CAAC,CAAC;IAC1C,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,IAAI,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAA,uBAAS,EAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,SAAS;QACX,CAAC;QAED,IAAI,GAAG,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,SAAS;QACX,CAAC;QAED,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,WAAW,CAAC,UAAU,GAAG,UAAU,CAAC;QAExC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,KAAK,EAAE,OAAO,KAAK,UAAU,EAAE,CAAC;YAClC,OAAO,KAAK,CAAC,OAAO,CAAC;QACvB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC","sourcesContent":["import { newlineRegex } from '../../../util/regex';\nimport type { PackageDependency, PackageFileContent } from '../types';\nimport { parseLine } from './line-parser';\n\nfunction findMatchingModule(\n tool: PackageDependency,\n deps: PackageDependency[],\n): PackageDependency | undefined {\n let bestMatch: PackageDependency | undefined;\n const normalizedTool = tool.depName! + '/';\n\n // Find the longest matching prefix for the tool within the dependencies\n for (const dep of deps) {\n if (\n normalizedTool.startsWith(dep.depName! + '/') &&\n dep.depName!.length > (bestMatch?.depName!.length ?? 0)\n ) {\n bestMatch = dep;\n }\n }\n\n return bestMatch;\n}\n\nexport function extractPackageFile(content: string): PackageFileContent | null {\n const deps: PackageDependency[] = [];\n const tools: PackageDependency[] = [];\n\n const lines = content.split(newlineRegex);\n for (let lineNumber = 0; lineNumber < lines.length; lineNumber += 1) {\n const line = lines[lineNumber];\n const dep = parseLine(line);\n if (!dep) {\n continue;\n }\n\n if (dep.depType === 'tool') {\n tools.push(dep);\n continue;\n }\n\n dep.managerData ??= {};\n dep.managerData.lineNumber = lineNumber;\n\n deps.push(dep);\n }\n\n for (const tool of tools) {\n const match = findMatchingModule(tool, deps);\n if (match?.depType === 'indirect') {\n delete match.enabled;\n }\n }\n\n if (!deps.length) {\n return null;\n }\n\n return { deps };\n}\n"]}
@@ -12,6 +12,7 @@ function trimQuotes(str) {
12
12
  }
13
13
  const requireRegex = (0, regex_1.regEx)(/^(?<keyword>require)?\s+(?<module>[^\s]+\/?[^\s]+)\s+(?<version>[^\s]+)(?:\s*\/\/\s*(?<comment>[^\s]+)\s*)?$/);
14
14
  const replaceRegex = (0, regex_1.regEx)(/^(?<keyword>replace)?\s+(?<module>[^\s]+\/[^\s]+)\s*=>\s*(?<replacement>[^\s]+)(?:\s+(?<version>[^\s]+))?(?:\s*\/\/\s*(?<comment>[^\s]+)\s*)?$/);
15
+ const toolRegex = (0, regex_1.regEx)(/^(?<keyword>tool)?\s+(?<module>[^\s]+\/?[^\s]+)\s*$/);
15
16
  const goVersionRegex = (0, regex_1.regEx)(/^\s*go\s+(?<version>[^\s]+)\s*$/);
16
17
  const toolchainVersionRegex = (0, regex_1.regEx)(/^\s*toolchain\s+go(?<version>[^\s]+)\s*$/);
17
18
  const pseudoVersionRegex = (0, regex_1.regEx)(go_1.GoDatasource.pversionRegexp);
@@ -116,6 +117,21 @@ function parseLine(input) {
116
117
  }
117
118
  return dep;
118
119
  }
120
+ const toolMatches = toolRegex.exec(input)?.groups;
121
+ if (toolMatches) {
122
+ const { keyword, module } = toolMatches;
123
+ const depName = trimQuotes(module);
124
+ const dep = {
125
+ datasource: go_1.GoDatasource.id,
126
+ depType: 'tool',
127
+ depName,
128
+ skipReason: 'unversioned-reference',
129
+ };
130
+ if (!keyword) {
131
+ dep.managerData = { multiLine: true };
132
+ }
133
+ return dep;
134
+ }
119
135
  return null;
120
136
  }
121
137
  //# sourceMappingURL=line-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"line-parser.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gomod/line-parser.ts"],"names":[],"mappings":";;AA8BA,8BA2HC;;AAzJD,4DAA4B;AAC5B,+CAA4C;AAC5C,4CAAmD;AACnD,oEAA0E;AAC1E,oDAAoD;AAGpD,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,YAAY,GAAG,IAAA,aAAK,EACxB,8GAA8G,CAC/G,CAAC;AAEF,MAAM,YAAY,GAAG,IAAA,aAAK,EACxB,gJAAgJ,CACjJ,CAAC;AAEF,MAAM,cAAc,GAAG,IAAA,aAAK,EAAC,iCAAiC,CAAC,CAAC;AAEhE,MAAM,qBAAqB,GAAG,IAAA,aAAK,EAAC,0CAA0C,CAAC,CAAC;AAEhF,MAAM,kBAAkB,GAAG,IAAA,aAAK,EAAC,iBAAY,CAAC,cAAc,CAAC,CAAC;AAE9D,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;AAC/B,CAAC;AAED,SAAgB,SAAS,CAAC,KAAa;IACrC,MAAM,gBAAgB,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAC5D,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,gBAAgB,CAAC;QAEnD,MAAM,GAAG,GAAsB;YAC7B,UAAU,EAAE,wCAAuB,CAAC,EAAE;YACtC,UAAU,EAAE,kBAAkB;YAC9B,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,IAAI;YACb,YAAY;SACb,CAAC;QAEF,IAAI,CAAC,gBAAM,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,UAAU,GAAG,iBAAiB,CAAC;QACrC,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACnE,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,gBAAgB,CAAC;QAEnD,MAAM,GAAG,GAAsB;YAC7B,UAAU,EAAE,wCAAuB,CAAC,EAAE;YACtC,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,IAAI;YACb,YAAY;SACb,CAAC;QAEF,IAAI,CAAC,gBAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YAChC,GAAG,CAAC,UAAU,GAAG,iBAAiB,CAAC;QACrC,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxD,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,cAAc,CAAC;QAE3E,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAEnC,MAAM,GAAG,GAAsB;YAC7B,UAAU,EAAE,iBAAY,CAAC,EAAE;YAC3B,OAAO,EAAE,SAAS;YAClB,OAAO;YACP,YAAY;SACb,CAAC;QAEF,IAAI,IAAA,kBAAS,EAAC,YAAY,CAAC,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;YAC3C,IAAI,MAAM,EAAE,CAAC;gBACX,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC;gBAC3B,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC5B,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC;YAC3B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,UAAU,GAAG,iBAAiB,CAAC;QACrC,CAAC;QAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3B,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC;YACzB,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,WAAW,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACxC,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxD,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,EACJ,OAAO,EACP,WAAW,EACX,OAAO,EAAE,YAAY,EACrB,OAAO,GACR,GAAG,cAAc,CAAC;QAEnB,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;QAExC,MAAM,GAAG,GAAsB;YAC7B,UAAU,EAAE,iBAAY,CAAC,EAAE;YAC3B,OAAO,EAAE,SAAS;YAClB,OAAO;YACP,YAAY;SACb,CAAC;QAEF,IAAI,IAAA,kBAAS,EAAC,YAAY,CAAC,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;YAC3C,IAAI,MAAM,EAAE,CAAC;gBACX,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC;gBAC3B,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC5B,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC;YAC3B,CAAC;QACH,CAAC;aAAM,IAAI,YAAY,EAAE,CAAC;YACxB,GAAG,CAAC,UAAU,GAAG,iBAAiB,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,UAAU,GAAG,qBAAqB,CAAC;YACvC,OAAO,GAAG,CAAC,YAAY,CAAC;QAC1B,CAAC;QAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3B,GAAG,CAAC,OAAO,GAAG,UAAU,CAAC;YACzB,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,WAAW,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACxC,CAAC;QAED,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,UAAU,GAAG,kBAAkB,CAAC;QACtC,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import semver from 'semver';\nimport { regEx } from '../../../util/regex';\nimport { GoDatasource } from '../../datasource/go';\nimport { GolangVersionDatasource } from '../../datasource/golang-version';\nimport { isVersion } from '../../versioning/semver';\nimport type { PackageDependency } from '../types';\n\nfunction trimQuotes(str: string): string {\n return str.replace(regEx(/^\"(.*)\"$/), '$1');\n}\n\nconst requireRegex = regEx(\n /^(?<keyword>require)?\\s+(?<module>[^\\s]+\\/?[^\\s]+)\\s+(?<version>[^\\s]+)(?:\\s*\\/\\/\\s*(?<comment>[^\\s]+)\\s*)?$/,\n);\n\nconst replaceRegex = regEx(\n /^(?<keyword>replace)?\\s+(?<module>[^\\s]+\\/[^\\s]+)\\s*=>\\s*(?<replacement>[^\\s]+)(?:\\s+(?<version>[^\\s]+))?(?:\\s*\\/\\/\\s*(?<comment>[^\\s]+)\\s*)?$/,\n);\n\nconst goVersionRegex = regEx(/^\\s*go\\s+(?<version>[^\\s]+)\\s*$/);\n\nconst toolchainVersionRegex = regEx(/^\\s*toolchain\\s+go(?<version>[^\\s]+)\\s*$/);\n\nconst pseudoVersionRegex = regEx(GoDatasource.pversionRegexp);\n\nfunction extractDigest(input: string): string | undefined {\n const match = pseudoVersionRegex.exec(input);\n return match?.groups?.digest;\n}\n\nexport function parseLine(input: string): PackageDependency | null {\n const goVersionMatches = goVersionRegex.exec(input)?.groups;\n if (goVersionMatches) {\n const { version: currentValue } = goVersionMatches;\n\n const dep: PackageDependency = {\n datasource: GolangVersionDatasource.id,\n versioning: 'go-mod-directive',\n depType: 'golang',\n depName: 'go',\n currentValue,\n };\n\n if (!semver.validRange(currentValue)) {\n dep.skipReason = 'invalid-version';\n }\n\n return dep;\n }\n\n const toolchainMatches = toolchainVersionRegex.exec(input)?.groups;\n if (toolchainMatches) {\n const { version: currentValue } = toolchainMatches;\n\n const dep: PackageDependency = {\n datasource: GolangVersionDatasource.id,\n depType: 'toolchain',\n depName: 'go',\n currentValue,\n };\n\n if (!semver.valid(currentValue)) {\n dep.skipReason = 'invalid-version';\n }\n\n return dep;\n }\n\n const requireMatches = requireRegex.exec(input)?.groups;\n if (requireMatches) {\n const { keyword, module, version: currentValue, comment } = requireMatches;\n\n const depName = trimQuotes(module);\n\n const dep: PackageDependency = {\n datasource: GoDatasource.id,\n depType: 'require',\n depName,\n currentValue,\n };\n\n if (isVersion(currentValue)) {\n const digest = extractDigest(currentValue);\n if (digest) {\n dep.currentDigest = digest;\n dep.digestOneAndOnly = true;\n dep.versioning = 'loose';\n }\n } else {\n dep.skipReason = 'invalid-version';\n }\n\n if (comment === 'indirect') {\n dep.depType = 'indirect';\n dep.enabled = false;\n }\n\n if (!keyword) {\n dep.managerData = { multiLine: true };\n }\n\n return dep;\n }\n\n const replaceMatches = replaceRegex.exec(input)?.groups;\n if (replaceMatches) {\n const {\n keyword,\n replacement,\n version: currentValue,\n comment,\n } = replaceMatches;\n\n const depName = trimQuotes(replacement);\n\n const dep: PackageDependency = {\n datasource: GoDatasource.id,\n depType: 'replace',\n depName,\n currentValue,\n };\n\n if (isVersion(currentValue)) {\n const digest = extractDigest(currentValue);\n if (digest) {\n dep.currentDigest = digest;\n dep.digestOneAndOnly = true;\n dep.versioning = 'loose';\n }\n } else if (currentValue) {\n dep.skipReason = 'invalid-version';\n } else {\n dep.skipReason = 'unspecified-version';\n delete dep.currentValue;\n }\n\n if (comment === 'indirect') {\n dep.depType = 'indirect';\n dep.enabled = false;\n }\n\n if (!keyword) {\n dep.managerData = { multiLine: true };\n }\n\n if (depName.startsWith('/') || depName.startsWith('.')) {\n dep.skipReason = 'local-dependency';\n }\n\n return dep;\n }\n\n return null;\n}\n"]}
1
+ {"version":3,"file":"line-parser.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gomod/line-parser.ts"],"names":[],"mappings":"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","sourcesContent":["import semver from 'semver';\nimport { regEx } from '../../../util/regex';\nimport { GoDatasource } from '../../datasource/go';\nimport { GolangVersionDatasource } from '../../datasource/golang-version';\nimport { isVersion } from '../../versioning/semver';\nimport type { PackageDependency } from '../types';\n\nfunction trimQuotes(str: string): string {\n return str.replace(regEx(/^\"(.*)\"$/), '$1');\n}\n\nconst requireRegex = regEx(\n /^(?<keyword>require)?\\s+(?<module>[^\\s]+\\/?[^\\s]+)\\s+(?<version>[^\\s]+)(?:\\s*\\/\\/\\s*(?<comment>[^\\s]+)\\s*)?$/,\n);\n\nconst replaceRegex = regEx(\n /^(?<keyword>replace)?\\s+(?<module>[^\\s]+\\/[^\\s]+)\\s*=>\\s*(?<replacement>[^\\s]+)(?:\\s+(?<version>[^\\s]+))?(?:\\s*\\/\\/\\s*(?<comment>[^\\s]+)\\s*)?$/,\n);\n\nconst toolRegex = regEx(/^(?<keyword>tool)?\\s+(?<module>[^\\s]+\\/?[^\\s]+)\\s*$/);\n\nconst goVersionRegex = regEx(/^\\s*go\\s+(?<version>[^\\s]+)\\s*$/);\n\nconst toolchainVersionRegex = regEx(/^\\s*toolchain\\s+go(?<version>[^\\s]+)\\s*$/);\n\nconst pseudoVersionRegex = regEx(GoDatasource.pversionRegexp);\n\nfunction extractDigest(input: string): string | undefined {\n const match = pseudoVersionRegex.exec(input);\n return match?.groups?.digest;\n}\n\nexport function parseLine(input: string): PackageDependency | null {\n const goVersionMatches = goVersionRegex.exec(input)?.groups;\n if (goVersionMatches) {\n const { version: currentValue } = goVersionMatches;\n\n const dep: PackageDependency = {\n datasource: GolangVersionDatasource.id,\n versioning: 'go-mod-directive',\n depType: 'golang',\n depName: 'go',\n currentValue,\n };\n\n if (!semver.validRange(currentValue)) {\n dep.skipReason = 'invalid-version';\n }\n\n return dep;\n }\n\n const toolchainMatches = toolchainVersionRegex.exec(input)?.groups;\n if (toolchainMatches) {\n const { version: currentValue } = toolchainMatches;\n\n const dep: PackageDependency = {\n datasource: GolangVersionDatasource.id,\n depType: 'toolchain',\n depName: 'go',\n currentValue,\n };\n\n if (!semver.valid(currentValue)) {\n dep.skipReason = 'invalid-version';\n }\n\n return dep;\n }\n\n const requireMatches = requireRegex.exec(input)?.groups;\n if (requireMatches) {\n const { keyword, module, version: currentValue, comment } = requireMatches;\n\n const depName = trimQuotes(module);\n\n const dep: PackageDependency = {\n datasource: GoDatasource.id,\n depType: 'require',\n depName,\n currentValue,\n };\n\n if (isVersion(currentValue)) {\n const digest = extractDigest(currentValue);\n if (digest) {\n dep.currentDigest = digest;\n dep.digestOneAndOnly = true;\n dep.versioning = 'loose';\n }\n } else {\n dep.skipReason = 'invalid-version';\n }\n\n if (comment === 'indirect') {\n dep.depType = 'indirect';\n dep.enabled = false;\n }\n\n if (!keyword) {\n dep.managerData = { multiLine: true };\n }\n\n return dep;\n }\n\n const replaceMatches = replaceRegex.exec(input)?.groups;\n if (replaceMatches) {\n const {\n keyword,\n replacement,\n version: currentValue,\n comment,\n } = replaceMatches;\n\n const depName = trimQuotes(replacement);\n\n const dep: PackageDependency = {\n datasource: GoDatasource.id,\n depType: 'replace',\n depName,\n currentValue,\n };\n\n if (isVersion(currentValue)) {\n const digest = extractDigest(currentValue);\n if (digest) {\n dep.currentDigest = digest;\n dep.digestOneAndOnly = true;\n dep.versioning = 'loose';\n }\n } else if (currentValue) {\n dep.skipReason = 'invalid-version';\n } else {\n dep.skipReason = 'unspecified-version';\n delete dep.currentValue;\n }\n\n if (comment === 'indirect') {\n dep.depType = 'indirect';\n dep.enabled = false;\n }\n\n if (!keyword) {\n dep.managerData = { multiLine: true };\n }\n\n if (depName.startsWith('/') || depName.startsWith('.')) {\n dep.skipReason = 'local-dependency';\n }\n\n return dep;\n }\n\n const toolMatches = toolRegex.exec(input)?.groups;\n if (toolMatches) {\n const { keyword, module } = toolMatches;\n\n const depName = trimQuotes(module);\n\n const dep: PackageDependency = {\n datasource: GoDatasource.id,\n depType: 'tool',\n depName,\n skipReason: 'unversioned-reference',\n };\n\n if (!keyword) {\n dep.managerData = { multiLine: true };\n }\n\n return dep;\n }\n\n return null;\n}\n"]}
@@ -20,13 +20,13 @@ function updateDependency({ fileContent, upgrade, }) {
20
20
  logger_1.logger.warn('gomod manager does not support replacement updates yet');
21
21
  return null;
22
22
  }
23
- // istanbul ignore if: should never happen
23
+ /* v8 ignore next 3 -- should never happen */
24
24
  if (!currentName || !upgrade.managerData) {
25
25
  return null;
26
26
  }
27
27
  const currentNameNoVersion = getNameWithNoVersion(currentName);
28
28
  const lines = fileContent.split(regex_1.newlineRegex);
29
- // istanbul ignore if: hard to test
29
+ /* v8 ignore next 4 -- hard to test */
30
30
  if (lines.length <= upgrade.managerData.lineNumber) {
31
31
  logger_1.logger.warn('go.mod current line no longer exists after update');
32
32
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gomod/update.ts"],"names":[],"mappings":";;AAaA,4CAsJC;AAnKD,uBAAuB;AACvB,4CAAyC;AACzC,+CAA0D;AAG1D,SAAS,oBAAoB,CAAC,IAAY;IACxC,IAAI,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,IAAI,aAAa,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,OAAO,GACgB;IACvB,IAAI,CAAC;QACH,eAAM,CAAC,KAAK,CAAC,2BAA2B,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5D,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QACxC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;QACpC,IAAI,UAAU,KAAK,aAAa,EAAE,CAAC;YACjC,eAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,0CAA0C;QAC1C,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,oBAAY,CAAC,CAAC;QAC9C,mCAAmC;QACnC,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YACnD,eAAM,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC3D,eAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,qBAAqB,CAAC,CAAC;QAC/D,IACE,CAAC,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC5C,CAAC,YAAY,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EACnD,CAAC;YACD,eAAM,CAAC,KAAK,CACV,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,EACtC,gDAAgD,CACjD,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,aAAiC,CAAC;QAEtC,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;YACpD,aAAa,GAAG,IAAA,aAAK,EACnB,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;gBAClC,aAAa,GAAG,IAAA,aAAK,EACnB,kEAAkE,CACnE,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,aAAa,GAAG,IAAA,aAAK,EACnB,yEAAyE,CAC1E,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3D,IAAI,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;gBAClC,aAAa,GAAG,IAAA,aAAK,EAAC,6CAA6C,CAAC,CAAC;YACvE,CAAC;iBAAM,CAAC;gBACN,aAAa,GAAG,IAAA,aAAK,EACnB,oDAAoD,CACrD,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACvD,eAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,OAAe,CAAC;QACpB,IAAI,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,mBAAmB,GAAG,OAAO,CAAC,SAAU,CAAC,SAAS,CACtD,CAAC,EACD,OAAO,CAAC,aAAc,CAAC,MAAM,CAC9B,CAAC;YACF,IAAI,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;gBAC/C,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,eAAM,CAAC,KAAK,CACV,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,mBAAmB,EAAE,EAC3D,8BAA8B,CAC/B,CAAC;YACF,OAAO,GAAG,YAAY,CAAC,OAAO;YAC5B,mCAAmC;YACnC,aAAc,EACd,uBAAuB,mBAAmB,EAAE,CAC7C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,YAAY,CAAC,OAAO;YAC5B,mCAAmC;YACnC,aAAc,EACd,uBAAuB,OAAO,CAAC,QAAQ,EAAE,CAC1C,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;YACnC,eAAM,CAAC,KAAK,CAAC,2BAA2B,WAAW,EAAE,CAAC,CAAC;YACvD,IAAI,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;gBAC1C,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC/D,kEAAkE;gBAClE,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,wBAAwB,EACxB,2BAA2B,CAC5B,CAAC;YACJ,CAAC;iBAAM,IACL,OAAO,CAAC,QAAS,GAAG,CAAC;gBACrB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC1C,CAAC,OAAO,CAAC,QAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EAC5C,CAAC;gBACD,IAAI,WAAW,KAAK,oBAAoB,EAAE,CAAC;oBACzC,0DAA0D;oBAC1D,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,WAAW,EACX,GAAG,WAAW,KAAK,OAAO,CAAC,QAAQ,EAAE,CACtC,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,kBAAkB;oBAClB,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,YAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAChD,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,IAAA,aAAK,EAAC,IAAI,IAAI,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,EACzC,KAAK,OAAO,CAAC,QAAQ,IAAI,CAC1B,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,IACE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC;YACtC,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,eAAe,CAAC,EAC5C,CAAC;YACD,IAAI,KAAK,GAAG,eAAe,CAAC;YAE5B,IAAI,OAAO,CAAC,UAAU,KAAK,OAAO,IAAI,OAAO,CAAC,QAAS,IAAI,CAAC,EAAE,CAAC;gBAC7D,KAAK,GAAG,EAAE,CAAC;YACb,CAAC;YACD,OAAO,IAAI,KAAK,CAAC;QACnB,CAAC;QACD,IAAI,OAAO,KAAK,YAAY,EAAE,CAAC;YAC7B,eAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACrC,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC3B,OAAO,GAAG,OAAO,CAAC,OAAO,CACvB,IAAA,aAAK,EAAC,sCAAsC,CAAC,EAC7C,cAAc,CACf,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;QAChD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,kCAAkC,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC","sourcesContent":["// TODO: types (#22198)\nimport { logger } from '../../../logger';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport type { UpdateDependencyConfig } from '../types';\n\nfunction getNameWithNoVersion(name: string): string {\n let nameNoVersion = name.split('/').slice(0, 3).join('/');\n if (nameNoVersion.startsWith('gopkg.in')) {\n nameNoVersion = nameNoVersion.replace(regEx(/\\.v\\d+$/), '');\n }\n return nameNoVersion;\n}\n\nexport function updateDependency({\n fileContent,\n upgrade,\n}: UpdateDependencyConfig): string | null {\n try {\n logger.debug(`gomod.updateDependency: ${upgrade.newValue}`);\n const { depType, updateType } = upgrade;\n const currentName = upgrade.depName;\n if (updateType === 'replacement') {\n logger.warn('gomod manager does not support replacement updates yet');\n return null;\n }\n // istanbul ignore if: should never happen\n if (!currentName || !upgrade.managerData) {\n return null;\n }\n const currentNameNoVersion = getNameWithNoVersion(currentName);\n const lines = fileContent.split(newlineRegex);\n // istanbul ignore if: hard to test\n if (lines.length <= upgrade.managerData.lineNumber) {\n logger.warn('go.mod current line no longer exists after update');\n return null;\n }\n const lineToChange = lines[upgrade.managerData.lineNumber];\n logger.trace({ upgrade, lineToChange }, 'go.mod current line');\n if (\n !lineToChange.includes(currentNameNoVersion) &&\n !lineToChange.includes('rethinkdb/rethinkdb-go.v5')\n ) {\n logger.debug(\n { lineToChange, depName: currentName },\n \"go.mod current line doesn't contain dependency\",\n );\n return null;\n }\n let updateLineExp: RegExp | undefined;\n\n if (depType === 'golang' || depType === 'toolchain') {\n updateLineExp = regEx(\n /(?<depPart>(?:toolchain )?go)(?<divider>\\s*)([^\\s]+|[\\w]+)/,\n );\n }\n if (depType === 'replace') {\n if (upgrade.managerData.multiLine) {\n updateLineExp = regEx(\n /^(?<depPart>\\s+[^\\s]+[\\s]+[=][>]+\\s+)(?<divider>[^\\s]+\\s+)[^\\s]+/,\n );\n } else {\n updateLineExp = regEx(\n /^(?<depPart>replace\\s+[^\\s]+[\\s]+[=][>]+\\s+)(?<divider>[^\\s]+\\s+)[^\\s]+/,\n );\n }\n } else if (depType === 'require' || depType === 'indirect') {\n if (upgrade.managerData.multiLine) {\n updateLineExp = regEx(/^(?<depPart>\\s+[^\\s]+)(?<divider>\\s+)[^\\s]+/);\n } else {\n updateLineExp = regEx(\n /^(?<depPart>require\\s+[^\\s]+)(?<divider>\\s+)[^\\s]+/,\n );\n }\n }\n if (updateLineExp && !updateLineExp.test(lineToChange)) {\n logger.debug('No line found to update');\n return null;\n }\n let newLine: string;\n if (upgrade.updateType === 'digest') {\n const newDigestRightSized = upgrade.newDigest!.substring(\n 0,\n upgrade.currentDigest!.length,\n );\n if (lineToChange.includes(newDigestRightSized)) {\n return fileContent;\n }\n logger.debug(\n { depName: currentName, lineToChange, newDigestRightSized },\n 'gomod: need to update digest',\n );\n newLine = lineToChange.replace(\n // TODO: can be undefined? (#22198)\n updateLineExp!,\n `$<depPart>$<divider>${newDigestRightSized}`,\n );\n } else {\n newLine = lineToChange.replace(\n // TODO: can be undefined? (#22198)\n updateLineExp!,\n `$<depPart>$<divider>${upgrade.newValue}`,\n );\n }\n if (upgrade.updateType === 'major') {\n logger.debug(`gomod: major update for ${currentName}`);\n if (currentName.startsWith('gopkg.in/')) {\n const oldV = currentName.split('.').pop();\n newLine = newLine.replace(`.${oldV}`, `.v${upgrade.newMajor}`);\n // Package renames - I couldn't think of a better place to do this\n newLine = newLine.replace(\n 'gorethink/gorethink.v5',\n 'rethinkdb/rethinkdb-go.v5',\n );\n } else if (\n upgrade.newMajor! > 1 &&\n !newLine.includes(`/v${upgrade.newMajor}`) &&\n !upgrade.newValue!.endsWith('+incompatible')\n ) {\n if (currentName === currentNameNoVersion) {\n // If package currently has no version, pin to latest one.\n newLine = newLine.replace(\n currentName,\n `${currentName}/v${upgrade.newMajor}`,\n );\n } else {\n // Replace version\n const [oldV] = upgrade.currentValue!.split('.');\n newLine = newLine.replace(\n regEx(`/${oldV}(\\\\s+)`, undefined, false),\n `/v${upgrade.newMajor}$1`,\n );\n }\n }\n }\n if (\n lineToChange.endsWith('+incompatible') &&\n !upgrade.newValue?.endsWith('+incompatible')\n ) {\n let toAdd = '+incompatible';\n\n if (upgrade.updateType === 'major' && upgrade.newMajor! >= 2) {\n toAdd = '';\n }\n newLine += toAdd;\n }\n if (newLine === lineToChange) {\n logger.debug('No changes necessary');\n return fileContent;\n }\n\n if (depType === 'indirect') {\n newLine = newLine.replace(\n regEx(/\\s*(?:\\/\\/\\s*indirect(?:\\s*;)?\\s*)*$/),\n ' // indirect',\n );\n }\n\n lines[upgrade.managerData.lineNumber] = newLine;\n return lines.join('\\n');\n } catch (err) {\n logger.debug({ err }, 'Error setting new go.mod version');\n return null;\n }\n}\n"]}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gomod/update.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: types (#22198)\nimport { logger } from '../../../logger';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport type { UpdateDependencyConfig } from '../types';\n\nfunction getNameWithNoVersion(name: string): string {\n let nameNoVersion = name.split('/').slice(0, 3).join('/');\n if (nameNoVersion.startsWith('gopkg.in')) {\n nameNoVersion = nameNoVersion.replace(regEx(/\\.v\\d+$/), '');\n }\n return nameNoVersion;\n}\n\nexport function updateDependency({\n fileContent,\n upgrade,\n}: UpdateDependencyConfig): string | null {\n try {\n logger.debug(`gomod.updateDependency: ${upgrade.newValue}`);\n const { depType, updateType } = upgrade;\n const currentName = upgrade.depName;\n if (updateType === 'replacement') {\n logger.warn('gomod manager does not support replacement updates yet');\n return null;\n }\n /* v8 ignore next 3 -- should never happen */\n if (!currentName || !upgrade.managerData) {\n return null;\n }\n const currentNameNoVersion = getNameWithNoVersion(currentName);\n const lines = fileContent.split(newlineRegex);\n /* v8 ignore next 4 -- hard to test */\n if (lines.length <= upgrade.managerData.lineNumber) {\n logger.warn('go.mod current line no longer exists after update');\n return null;\n }\n const lineToChange = lines[upgrade.managerData.lineNumber];\n logger.trace({ upgrade, lineToChange }, 'go.mod current line');\n if (\n !lineToChange.includes(currentNameNoVersion) &&\n !lineToChange.includes('rethinkdb/rethinkdb-go.v5')\n ) {\n logger.debug(\n { lineToChange, depName: currentName },\n \"go.mod current line doesn't contain dependency\",\n );\n return null;\n }\n let updateLineExp: RegExp | undefined;\n\n if (depType === 'golang' || depType === 'toolchain') {\n updateLineExp = regEx(\n /(?<depPart>(?:toolchain )?go)(?<divider>\\s*)([^\\s]+|[\\w]+)/,\n );\n }\n if (depType === 'replace') {\n if (upgrade.managerData.multiLine) {\n updateLineExp = regEx(\n /^(?<depPart>\\s+[^\\s]+[\\s]+[=][>]+\\s+)(?<divider>[^\\s]+\\s+)[^\\s]+/,\n );\n } else {\n updateLineExp = regEx(\n /^(?<depPart>replace\\s+[^\\s]+[\\s]+[=][>]+\\s+)(?<divider>[^\\s]+\\s+)[^\\s]+/,\n );\n }\n } else if (depType === 'require' || depType === 'indirect') {\n if (upgrade.managerData.multiLine) {\n updateLineExp = regEx(/^(?<depPart>\\s+[^\\s]+)(?<divider>\\s+)[^\\s]+/);\n } else {\n updateLineExp = regEx(\n /^(?<depPart>require\\s+[^\\s]+)(?<divider>\\s+)[^\\s]+/,\n );\n }\n }\n if (updateLineExp && !updateLineExp.test(lineToChange)) {\n logger.debug('No line found to update');\n return null;\n }\n let newLine: string;\n if (upgrade.updateType === 'digest') {\n const newDigestRightSized = upgrade.newDigest!.substring(\n 0,\n upgrade.currentDigest!.length,\n );\n if (lineToChange.includes(newDigestRightSized)) {\n return fileContent;\n }\n logger.debug(\n { depName: currentName, lineToChange, newDigestRightSized },\n 'gomod: need to update digest',\n );\n newLine = lineToChange.replace(\n // TODO: can be undefined? (#22198)\n updateLineExp!,\n `$<depPart>$<divider>${newDigestRightSized}`,\n );\n } else {\n newLine = lineToChange.replace(\n // TODO: can be undefined? (#22198)\n updateLineExp!,\n `$<depPart>$<divider>${upgrade.newValue}`,\n );\n }\n if (upgrade.updateType === 'major') {\n logger.debug(`gomod: major update for ${currentName}`);\n if (currentName.startsWith('gopkg.in/')) {\n const oldV = currentName.split('.').pop();\n newLine = newLine.replace(`.${oldV}`, `.v${upgrade.newMajor}`);\n // Package renames - I couldn't think of a better place to do this\n newLine = newLine.replace(\n 'gorethink/gorethink.v5',\n 'rethinkdb/rethinkdb-go.v5',\n );\n } else if (\n upgrade.newMajor! > 1 &&\n !newLine.includes(`/v${upgrade.newMajor}`) &&\n !upgrade.newValue!.endsWith('+incompatible')\n ) {\n if (currentName === currentNameNoVersion) {\n // If package currently has no version, pin to latest one.\n newLine = newLine.replace(\n currentName,\n `${currentName}/v${upgrade.newMajor}`,\n );\n } else {\n // Replace version\n const [oldV] = upgrade.currentValue!.split('.');\n newLine = newLine.replace(\n regEx(`/${oldV}(\\\\s+)`, undefined, false),\n `/v${upgrade.newMajor}$1`,\n );\n }\n }\n }\n if (\n lineToChange.endsWith('+incompatible') &&\n !upgrade.newValue?.endsWith('+incompatible')\n ) {\n let toAdd = '+incompatible';\n\n if (upgrade.updateType === 'major' && upgrade.newMajor! >= 2) {\n toAdd = '';\n }\n newLine += toAdd;\n }\n if (newLine === lineToChange) {\n logger.debug('No changes necessary');\n return fileContent;\n }\n\n if (depType === 'indirect') {\n newLine = newLine.replace(\n regEx(/\\s*(?:\\/\\/\\s*indirect(?:\\s*;)?\\s*)*$/),\n ' // indirect',\n );\n }\n\n lines[upgrade.managerData.lineNumber] = newLine;\n return lines.join('\\n');\n } catch (err) {\n logger.debug({ err }, 'Error setting new go.mod version');\n return null;\n }\n}\n"]}
@@ -120,7 +120,6 @@ async function updateArtifacts({ packageFileName, updatedDeps, newPackageFileCon
120
120
  const execOptions = {
121
121
  cwdFile: gradlewFile,
122
122
  docker: {},
123
- userConfiguredEnv: config.env,
124
123
  extraEnv: utils_1.extraEnv,
125
124
  toolConstraints: [
126
125
  {