renovate 40.0.0-next.26 → 40.0.0-next.28

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 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/github-actions/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport { isNotNullOrUndefined } from '../../../util/array';\nimport { detectPlatform } from '../../../util/common';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport { parseSingleYaml } from '../../../util/yaml';\nimport { GiteaTagsDatasource } from '../../datasource/gitea-tags';\nimport { GithubRunnersDatasource } from '../../datasource/github-runners';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport * as dockerVersioning from '../../versioning/docker';\nimport { getDep } from '../dockerfile/extract';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport type { Workflow } from './types';\n\nconst dockerActionRe = regEx(/^\\s+uses\\s*: ['\"]?docker:\\/\\/([^'\"]+)\\s*$/);\nconst actionRe = regEx(\n /^\\s+-?\\s+?uses\\s*: (?<replaceString>['\"]?(?<depName>(?<registryUrl>https:\\/\\/[.\\w-]+\\/)?(?<packageName>[\\w-]+\\/[.\\w-]+))(?<path>\\/.*)?@(?<currentValue>[^\\s'\"]+)['\"]?(?:(?<commentWhiteSpaces>\\s+)#\\s*(((?:renovate\\s*:\\s*)?(?:pin\\s+|tag\\s*=\\s*)?|(?:ratchet:[\\w-]+\\/[.\\w-]+)?)@?(?<tag>([\\w-]*-)?v?\\d+(?:\\.\\d+(?:\\.\\d+)?)?)|(?:ratchet:exclude)))?)/,\n);\n\n// SHA1 or SHA256, see https://github.blog/2020-10-19-git-2-29-released/\nconst shaRe = regEx(/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/);\nconst shaShortRe = regEx(/^[a-f0-9]{6,7}$/);\n\n// detects if we run against a Github Enterprise Server and adds the URL to the beginning of the registryURLs for looking up Actions\n// This reflects the behavior of how GitHub looks up Actions\n// First on the Enterprise Server, then on GitHub.com\nfunction detectCustomGitHubRegistryUrlsForActions(): PackageDependency {\n const endpoint = GlobalConfig.get('endpoint');\n const registryUrls = ['https://github.com'];\n if (endpoint && GlobalConfig.get('platform') === 'github') {\n const parsedEndpoint = new URL(endpoint);\n\n if (\n parsedEndpoint.host !== 'github.com' &&\n parsedEndpoint.host !== 'api.github.com'\n ) {\n registryUrls.unshift(\n `${parsedEndpoint.protocol}//${parsedEndpoint.host}`,\n );\n return { registryUrls };\n }\n }\n return {};\n}\n\nfunction extractWithRegex(\n content: string,\n config: ExtractConfig,\n): PackageDependency[] {\n const customRegistryUrlsPackageDependency =\n detectCustomGitHubRegistryUrlsForActions();\n logger.trace('github-actions.extractWithRegex()');\n const deps: PackageDependency[] = [];\n for (const line of content.split(newlineRegex)) {\n if (line.trim().startsWith('#')) {\n continue;\n }\n\n const dockerMatch = dockerActionRe.exec(line);\n if (dockerMatch) {\n const [, currentFrom] = dockerMatch;\n const dep = getDep(currentFrom, true, config.registryAliases);\n dep.depType = 'docker';\n deps.push(dep);\n continue;\n }\n\n const tagMatch = actionRe.exec(line);\n if (tagMatch?.groups) {\n const {\n depName,\n packageName,\n currentValue,\n path = '',\n tag,\n replaceString,\n registryUrl = '',\n commentWhiteSpaces = ' ',\n } = tagMatch.groups;\n let quotes = '';\n if (replaceString.includes(\"'\")) {\n quotes = \"'\";\n }\n if (replaceString.includes('\"')) {\n quotes = '\"';\n }\n const dep: PackageDependency = {\n depName,\n ...(packageName !== depName && { packageName }),\n commitMessageTopic: '{{{depName}}} action',\n datasource: GithubTagsDatasource.id,\n versioning: dockerVersioning.id,\n depType: 'action',\n replaceString,\n autoReplaceStringTemplate: `${quotes}{{depName}}${path}@{{#if newDigest}}{{newDigest}}${quotes}{{#if newValue}}${commentWhiteSpaces}# {{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}${quotes}{{/unless}}`,\n ...(registryUrl\n ? detectDatasource(registryUrl)\n : customRegistryUrlsPackageDependency),\n };\n if (shaRe.test(currentValue)) {\n dep.currentValue = tag;\n dep.currentDigest = currentValue;\n } else if (shaShortRe.test(currentValue)) {\n dep.currentValue = tag;\n dep.currentDigestShort = currentValue;\n } else {\n dep.currentValue = currentValue;\n }\n deps.push(dep);\n }\n }\n return deps;\n}\n\nfunction detectDatasource(registryUrl: string): PackageDependency {\n const platform = detectPlatform(registryUrl);\n\n switch (platform) {\n case 'github':\n return { registryUrls: [registryUrl] };\n case 'gitea':\n return {\n registryUrls: [registryUrl],\n datasource: GiteaTagsDatasource.id,\n };\n }\n\n return {\n skipReason: 'unsupported-url',\n };\n}\n\nfunction extractContainer(\n container: unknown,\n registryAliases: Record<string, string> | undefined,\n): PackageDependency | undefined {\n if (is.string(container)) {\n return getDep(container, true, registryAliases);\n } else if (is.plainObject(container) && is.string(container.image)) {\n return getDep(container.image, true, registryAliases);\n }\n return undefined;\n}\n\nconst runnerVersionRegex = regEx(\n /^\\s*(?<depName>[a-zA-Z]+)-(?<currentValue>[^\\s]+)/,\n);\n\nfunction extractRunner(runner: string): PackageDependency | null {\n const runnerVersionGroups = runnerVersionRegex.exec(runner)?.groups;\n if (!runnerVersionGroups) {\n return null;\n }\n\n const { depName, currentValue } = runnerVersionGroups;\n\n if (!GithubRunnersDatasource.isValidRunner(depName, currentValue)) {\n return null;\n }\n\n const dependency: PackageDependency = {\n depName,\n currentValue,\n replaceString: `${depName}-${currentValue}`,\n depType: 'github-runner',\n datasource: GithubRunnersDatasource.id,\n autoReplaceStringTemplate: '{{depName}}-{{newValue}}',\n };\n\n if (!dockerVersioning.api.isValid(currentValue)) {\n dependency.skipReason = 'invalid-version';\n }\n\n return dependency;\n}\n\nfunction extractRunners(runner: unknown): PackageDependency[] {\n const runners: string[] = [];\n if (is.string(runner)) {\n runners.push(runner);\n } else if (is.array(runner, is.string)) {\n runners.push(...runner);\n }\n\n return runners.map(extractRunner).filter(isNotNullOrUndefined);\n}\n\nfunction extractWithYAMLParser(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageDependency[] {\n logger.trace('github-actions.extractWithYAMLParser()');\n const deps: PackageDependency[] = [];\n\n let pkg: Workflow;\n try {\n // TODO: use schema (#9610)\n pkg = parseSingleYaml(content);\n } catch (err) {\n logger.debug(\n { packageFile, err },\n 'Failed to parse GitHub Actions Workflow YAML',\n );\n return [];\n }\n\n for (const job of Object.values(pkg?.jobs ?? {})) {\n const dep = extractContainer(job?.container, config.registryAliases);\n if (dep) {\n dep.depType = 'container';\n deps.push(dep);\n }\n\n for (const service of Object.values(job?.services ?? {})) {\n const dep = extractContainer(service, config.registryAliases);\n if (dep) {\n dep.depType = 'service';\n deps.push(dep);\n }\n }\n\n deps.push(...extractRunners(job?.['runs-on']));\n }\n\n return deps;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig = {}, // TODO: enforce ExtractConfig\n): PackageFileContent | null {\n logger.trace(`github-actions.extractPackageFile(${packageFile})`);\n const deps = [\n ...extractWithRegex(content, config),\n ...extractWithYAMLParser(content, packageFile, config),\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/github-actions/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { GlobalConfig } from '../../../config/global';\nimport { logger, withMeta } from '../../../logger';\nimport { detectPlatform } from '../../../util/common';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport { GiteaTagsDatasource } from '../../datasource/gitea-tags';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases';\nimport { GithubRunnersDatasource } from '../../datasource/github-runners';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport * as dockerVersioning from '../../versioning/docker';\nimport * as nodeVersioning from '../../versioning/node';\nimport * as npmVersioning from '../../versioning/npm';\nimport { getDep } from '../dockerfile/extract';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport type { Steps } from './schema';\nimport { WorkflowSchema } from './schema';\n\nconst dockerActionRe = regEx(/^\\s+uses\\s*: ['\"]?docker:\\/\\/([^'\"]+)\\s*$/);\nconst actionRe = regEx(\n /^\\s+-?\\s+?uses\\s*: (?<replaceString>['\"]?(?<depName>(?<registryUrl>https:\\/\\/[.\\w-]+\\/)?(?<packageName>[\\w-]+\\/[.\\w-]+))(?<path>\\/.*)?@(?<currentValue>[^\\s'\"]+)['\"]?(?:(?<commentWhiteSpaces>\\s+)#\\s*(((?:renovate\\s*:\\s*)?(?:pin\\s+|tag\\s*=\\s*)?|(?:ratchet:[\\w-]+\\/[.\\w-]+)?)@?(?<tag>([\\w-]*-)?v?\\d+(?:\\.\\d+(?:\\.\\d+)?)?)|(?:ratchet:exclude)))?)/,\n);\n\n// SHA1 or SHA256, see https://github.blog/2020-10-19-git-2-29-released/\nconst shaRe = regEx(/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/);\nconst shaShortRe = regEx(/^[a-f0-9]{6,7}$/);\n\n// detects if we run against a Github Enterprise Server and adds the URL to the beginning of the registryURLs for looking up Actions\n// This reflects the behavior of how GitHub looks up Actions\n// First on the Enterprise Server, then on GitHub.com\nfunction detectCustomGitHubRegistryUrlsForActions(): PackageDependency {\n const endpoint = GlobalConfig.get('endpoint');\n const registryUrls = ['https://github.com'];\n if (endpoint && GlobalConfig.get('platform') === 'github') {\n const parsedEndpoint = new URL(endpoint);\n\n if (\n parsedEndpoint.host !== 'github.com' &&\n parsedEndpoint.host !== 'api.github.com'\n ) {\n registryUrls.unshift(\n `${parsedEndpoint.protocol}//${parsedEndpoint.host}`,\n );\n return { registryUrls };\n }\n }\n return {};\n}\n\nfunction extractWithRegex(\n content: string,\n config: ExtractConfig,\n): PackageDependency[] {\n const customRegistryUrlsPackageDependency =\n detectCustomGitHubRegistryUrlsForActions();\n logger.trace('github-actions.extractWithRegex()');\n const deps: PackageDependency[] = [];\n for (const line of content.split(newlineRegex)) {\n if (line.trim().startsWith('#')) {\n continue;\n }\n\n const dockerMatch = dockerActionRe.exec(line);\n if (dockerMatch) {\n const [, currentFrom] = dockerMatch;\n const dep = getDep(currentFrom, true, config.registryAliases);\n dep.depType = 'docker';\n deps.push(dep);\n continue;\n }\n\n const tagMatch = actionRe.exec(line);\n if (tagMatch?.groups) {\n const {\n depName,\n packageName,\n currentValue,\n path = '',\n tag,\n replaceString,\n registryUrl = '',\n commentWhiteSpaces = ' ',\n } = tagMatch.groups;\n let quotes = '';\n if (replaceString.includes(\"'\")) {\n quotes = \"'\";\n }\n if (replaceString.includes('\"')) {\n quotes = '\"';\n }\n const dep: PackageDependency = {\n depName,\n ...(packageName !== depName && { packageName }),\n commitMessageTopic: '{{{depName}}} action',\n datasource: GithubTagsDatasource.id,\n versioning: dockerVersioning.id,\n depType: 'action',\n replaceString,\n autoReplaceStringTemplate: `${quotes}{{depName}}${path}@{{#if newDigest}}{{newDigest}}${quotes}{{#if newValue}}${commentWhiteSpaces}# {{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}${quotes}{{/unless}}`,\n ...(registryUrl\n ? detectDatasource(registryUrl)\n : customRegistryUrlsPackageDependency),\n };\n if (shaRe.test(currentValue)) {\n dep.currentValue = tag;\n dep.currentDigest = currentValue;\n } else if (shaShortRe.test(currentValue)) {\n dep.currentValue = tag;\n dep.currentDigestShort = currentValue;\n } else {\n dep.currentValue = currentValue;\n }\n deps.push(dep);\n }\n }\n return deps;\n}\n\nfunction detectDatasource(registryUrl: string): PackageDependency {\n const platform = detectPlatform(registryUrl);\n\n switch (platform) {\n case 'github':\n return { registryUrls: [registryUrl] };\n case 'gitea':\n return {\n registryUrls: [registryUrl],\n datasource: GiteaTagsDatasource.id,\n };\n }\n\n return {\n skipReason: 'unsupported-url',\n };\n}\n\nconst runnerVersionRegex = regEx(\n /^\\s*(?<depName>[a-zA-Z]+)-(?<currentValue>[^\\s]+)/,\n);\n\nfunction extractRunner(runner: string): PackageDependency | null {\n const runnerVersionGroups = runnerVersionRegex.exec(runner)?.groups;\n if (!runnerVersionGroups) {\n return null;\n }\n\n const { depName, currentValue } = runnerVersionGroups;\n\n if (!GithubRunnersDatasource.isValidRunner(depName, currentValue)) {\n return null;\n }\n\n const dependency: PackageDependency = {\n depName,\n currentValue,\n replaceString: `${depName}-${currentValue}`,\n depType: 'github-runner',\n datasource: GithubRunnersDatasource.id,\n autoReplaceStringTemplate: '{{depName}}-{{newValue}}',\n };\n\n if (!dockerVersioning.api.isValid(currentValue)) {\n dependency.skipReason = 'invalid-version';\n }\n\n return dependency;\n}\n\nconst versionedActions: Record<string, string> = {\n go: npmVersioning.id,\n node: nodeVersioning.id,\n python: npmVersioning.id,\n // Not covered yet because they use different datasources/packageNames:\n // - dotnet\n // - java\n};\n\nfunction extractSteps(\n steps: Steps[],\n deps: PackageDependency<Record<string, any>>[],\n): void {\n for (const step of steps) {\n for (const [action, versioning] of Object.entries(versionedActions)) {\n const actionName = `actions/setup-${action}`;\n if (step.uses === actionName || step.uses?.startsWith(`${actionName}@`)) {\n const fieldName = `${action}-version`;\n const currentValue = step.with?.[fieldName];\n if (currentValue) {\n deps.push({\n datasource: GithubReleasesDatasource.id,\n depName: action,\n packageName: `actions/${action}-versions`,\n versioning,\n extractVersion: '^(?<version>\\\\d+\\\\.\\\\d+\\\\.\\\\d+)(-\\\\d+)?$', // Actions release tags are like 1.24.1-13667719799\n currentValue,\n depType: 'uses-with',\n });\n }\n }\n }\n }\n}\n\nfunction extractWithYAMLParser(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageDependency[] {\n logger.trace('github-actions.extractWithYAMLParser()');\n const deps: PackageDependency[] = [];\n\n const obj = withMeta({ packageFile }, () => WorkflowSchema.parse(content));\n\n if (!obj) {\n return deps;\n }\n\n // composite action\n if ('runs' in obj && obj.runs.steps) {\n extractSteps(obj.runs.steps, deps);\n } else if ('jobs' in obj) {\n for (const job of Object.values(obj.jobs)) {\n if (job.container) {\n const dep = getDep(job.container, true, config.registryAliases);\n if (dep) {\n dep.depType = 'container';\n deps.push(dep);\n }\n }\n\n for (const service of job.services) {\n const dep = getDep(service, true, config.registryAliases);\n if (dep) {\n dep.depType = 'service';\n deps.push(dep);\n }\n }\n\n for (const runner of job['runs-on']) {\n const dep = extractRunner(runner);\n if (dep) {\n deps.push(dep);\n }\n }\n\n extractSteps(job.steps, deps);\n }\n }\n\n return deps;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig = {}, // TODO: enforce ExtractConfig\n): PackageFileContent | null {\n logger.trace(`github-actions.extractPackageFile(${packageFile})`);\n const deps = [\n ...extractWithRegex(content, config),\n ...extractWithYAMLParser(content, packageFile, config),\n ];\n if (!deps.length) {\n return null;\n }\n return { deps };\n}\n"]}
@@ -0,0 +1,66 @@
1
+ import { z } from 'zod';
2
+ declare const StepsSchema: z.ZodObject<{
3
+ uses: z.ZodString;
4
+ with: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodAny>, Record<string, string>, Record<string, any>>;
5
+ }, "strip", z.ZodTypeAny, {
6
+ with: Record<string, string>;
7
+ uses: string;
8
+ }, {
9
+ with: Record<string, any>;
10
+ uses: string;
11
+ }>;
12
+ export type Steps = z.infer<typeof StepsSchema>;
13
+ export declare const WorkflowSchema: z.ZodCatch<z.ZodPipeline<z.ZodEffects<z.ZodString, string | number | boolean | import("type-fest").JsonObject | import("type-fest").JsonValue[] | readonly import("type-fest").JsonValue[] | null, string>, z.ZodUnion<[z.ZodObject<{
14
+ jobs: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodAny>, Record<string, {
15
+ steps: {
16
+ with: Record<string, string>;
17
+ uses: string;
18
+ }[];
19
+ services: string[];
20
+ 'runs-on': string[];
21
+ container?: string | undefined;
22
+ }>, Record<string, any>>;
23
+ }, "strip", z.ZodTypeAny, {
24
+ jobs: Record<string, {
25
+ steps: {
26
+ with: Record<string, string>;
27
+ uses: string;
28
+ }[];
29
+ services: string[];
30
+ 'runs-on': string[];
31
+ container?: string | undefined;
32
+ }>;
33
+ }, {
34
+ jobs: Record<string, any>;
35
+ }>, z.ZodObject<{
36
+ runs: z.ZodObject<{
37
+ using: z.ZodString;
38
+ steps: z.ZodCatch<z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodAny, "many">, {
39
+ with: Record<string, string>;
40
+ uses: string;
41
+ }[], any[]>>>;
42
+ }, "strip", z.ZodTypeAny, {
43
+ using: string;
44
+ steps?: {
45
+ with: Record<string, string>;
46
+ uses: string;
47
+ }[] | undefined;
48
+ }, {
49
+ using: string;
50
+ steps?: unknown;
51
+ }>;
52
+ }, "strip", z.ZodTypeAny, {
53
+ runs: {
54
+ using: string;
55
+ steps?: {
56
+ with: Record<string, string>;
57
+ uses: string;
58
+ }[] | undefined;
59
+ };
60
+ }, {
61
+ runs: {
62
+ using: string;
63
+ steps?: unknown;
64
+ };
65
+ }>, z.ZodNull]>>>;
66
+ export {};
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WorkflowSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const schema_utils_1 = require("../../../util/schema-utils");
6
+ const StepsSchema = zod_1.z.object({
7
+ uses: zod_1.z.string(),
8
+ with: (0, schema_utils_1.LooseRecord)(zod_1.z.string()),
9
+ });
10
+ const WorkFlowJobsSchema = zod_1.z.object({
11
+ jobs: (0, schema_utils_1.LooseRecord)(zod_1.z.object({
12
+ container: zod_1.z
13
+ .union([
14
+ zod_1.z.string(),
15
+ zod_1.z.object({ image: zod_1.z.string() }).transform((v) => v.image),
16
+ ])
17
+ .optional()
18
+ .catch(undefined),
19
+ services: (0, schema_utils_1.LooseRecord)(zod_1.z.union([
20
+ zod_1.z.object({ image: zod_1.z.string() }).transform((v) => v.image),
21
+ zod_1.z.string(),
22
+ ]))
23
+ .catch({})
24
+ .transform((services) => Object.values(services)),
25
+ 'runs-on': zod_1.z
26
+ .union([zod_1.z.string().transform((v) => [v]), zod_1.z.array(zod_1.z.string())])
27
+ .catch([]),
28
+ steps: (0, schema_utils_1.LooseArray)(StepsSchema).catch([]),
29
+ })),
30
+ });
31
+ const ActionsSchema = zod_1.z.object({
32
+ runs: zod_1.z.object({
33
+ using: zod_1.z.string(),
34
+ steps: (0, schema_utils_1.LooseArray)(StepsSchema).optional().catch([]),
35
+ }),
36
+ });
37
+ exports.WorkflowSchema = schema_utils_1.Yaml.pipe(zod_1.z.union([WorkFlowJobsSchema, ActionsSchema, zod_1.z.null()])).catch((0, schema_utils_1.withDebugMessage)(null, 'Does not match schema'));
38
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/manager/github-actions/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,6DAKoC;AAEpC,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,IAAA,0BAAW,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC;CAC9B,CAAC,CAAC;AAGH,MAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,IAAA,0BAAW,EACf,OAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,OAAC;aACT,KAAK,CAAC;YACL,OAAC,CAAC,MAAM,EAAE;YACV,OAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SAC1D,CAAC;aACD,QAAQ,EAAE;aACV,KAAK,CAAC,SAAS,CAAC;QACnB,QAAQ,EAAE,IAAA,0BAAW,EACnB,OAAC,CAAC,KAAK,CAAC;YACN,OAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YACzD,OAAC,CAAC,MAAM,EAAE;SACX,CAAC,CACH;aACE,KAAK,CAAC,EAAE,CAAC;aACT,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnD,SAAS,EAAE,OAAC;aACT,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aAC9D,KAAK,CAAC,EAAE,CAAC;QACZ,KAAK,EAAE,IAAA,yBAAU,EAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;KACzC,CAAC,CACH;CACF,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7B,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC;QACb,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;QACjB,KAAK,EAAE,IAAA,yBAAU,EAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;KACpD,CAAC;CACH,CAAC,CAAC;AACU,QAAA,cAAc,GAAG,mBAAI,CAAC,IAAI,CACrC,OAAC,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE,aAAa,EAAE,OAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CACvD,CAAC,KAAK,CAAC,IAAA,+BAAgB,EAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\nimport {\n LooseArray,\n LooseRecord,\n Yaml,\n withDebugMessage,\n} from '../../../util/schema-utils';\n\nconst StepsSchema = z.object({\n uses: z.string(),\n with: LooseRecord(z.string()),\n});\nexport type Steps = z.infer<typeof StepsSchema>;\n\nconst WorkFlowJobsSchema = z.object({\n jobs: LooseRecord(\n z.object({\n container: z\n .union([\n z.string(),\n z.object({ image: z.string() }).transform((v) => v.image),\n ])\n .optional()\n .catch(undefined),\n services: LooseRecord(\n z.union([\n z.object({ image: z.string() }).transform((v) => v.image),\n z.string(),\n ]),\n )\n .catch({})\n .transform((services) => Object.values(services)),\n 'runs-on': z\n .union([z.string().transform((v) => [v]), z.array(z.string())])\n .catch([]),\n steps: LooseArray(StepsSchema).catch([]),\n }),\n ),\n});\n\nconst ActionsSchema = z.object({\n runs: z.object({\n using: z.string(),\n steps: LooseArray(StepsSchema).optional().catch([]),\n }),\n});\nexport const WorkflowSchema = Yaml.pipe(\n z.union([WorkFlowJobsSchema, ActionsSchema, z.null()]),\n).catch(withDebugMessage(null, 'Does not match schema'));\n"]}
@@ -1,7 +1,3 @@
1
- import type { ExtractConfig, PackageDependency, PackageFile, PackageFileContent } from '../types';
2
- import type { Image, Job, Services } from './types';
3
- export declare function extractFromImage(image: Image | undefined, registryAliases?: Record<string, string>): PackageDependency | null;
4
- export declare function extractFromServices(services: Services | undefined, registryAliases?: Record<string, string>): PackageDependency[];
5
- export declare function extractFromJob(job: Job | undefined, registryAliases?: Record<string, string>): PackageDependency[];
1
+ import type { ExtractConfig, PackageFile, PackageFileContent } from '../types';
6
2
  export declare function extractPackageFile(content: string, packageFile: string, config: ExtractConfig): PackageFileContent | null;
7
3
  export declare function extractAllPackageFiles(config: ExtractConfig, packageFiles: string[]): Promise<PackageFile[] | null>;
@@ -1,93 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractFromImage = extractFromImage;
4
- exports.extractFromServices = extractFromServices;
5
- exports.extractFromJob = extractFromJob;
6
3
  exports.extractPackageFile = extractPackageFile;
7
4
  exports.extractAllPackageFiles = extractAllPackageFiles;
8
- const tslib_1 = require("tslib");
9
- const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
10
5
  const logger_1 = require("../../../logger");
11
6
  const fs_1 = require("../../../util/fs");
12
7
  const regex_1 = require("../../../util/regex");
13
- const url_1 = require("../../../util/url");
8
+ const result_1 = require("../../../util/result");
14
9
  const yaml_1 = require("../../../util/yaml");
15
10
  const gitlab_tags_1 = require("../../datasource/gitlab-tags");
16
- const common_1 = require("./common");
11
+ const schema_1 = require("./schema");
17
12
  const utils_1 = require("./utils");
18
13
  // See https://docs.gitlab.com/ee/ci/components/index.html#use-a-component
19
14
  const componentReferenceRegex = (0, regex_1.regEx)(/(?<fqdn>[^/]+)\/(?<projectPath>.+)\/(?:.+)@(?<specificVersion>.+)/);
20
15
  const componentReferenceLatestVersion = '~latest';
21
- function extractFromImage(image, registryAliases) {
22
- if (is_1.default.undefined(image)) {
23
- return null;
24
- }
25
- let dep = null;
26
- if (is_1.default.string(image)) {
27
- dep = (0, utils_1.getGitlabDep)(image, registryAliases);
28
- dep.depType = 'image';
29
- }
30
- else if (is_1.default.string(image?.name)) {
31
- dep = (0, utils_1.getGitlabDep)(image.name, registryAliases);
32
- dep.depType = 'image-name';
33
- }
34
- return dep;
35
- }
36
- function extractFromServices(services, registryAliases) {
37
- if (is_1.default.undefined(services)) {
38
- return [];
39
- }
40
- const deps = [];
41
- for (const service of services) {
42
- if (is_1.default.string(service)) {
43
- const dep = (0, utils_1.getGitlabDep)(service, registryAliases);
44
- dep.depType = 'service-image';
45
- deps.push(dep);
46
- }
47
- else if (is_1.default.string(service?.name)) {
48
- const dep = (0, utils_1.getGitlabDep)(service.name, registryAliases);
49
- dep.depType = 'service-image';
50
- deps.push(dep);
51
- }
52
- }
53
- return deps;
54
- }
55
- function extractFromJob(job, registryAliases) {
56
- if (is_1.default.undefined(job)) {
57
- return [];
58
- }
59
- const deps = [];
60
- if (is_1.default.object(job)) {
61
- const { image, services } = { ...job };
62
- if (is_1.default.object(image) || is_1.default.string(image)) {
63
- const dep = extractFromImage(image, registryAliases);
64
- if (dep) {
65
- deps.push(dep);
66
- }
67
- }
68
- if (is_1.default.array(services)) {
69
- deps.push(...extractFromServices(services, registryAliases));
70
- }
71
- }
72
- return deps;
73
- }
74
- function getIncludeComponentsFromInclude(includeValue) {
75
- const includes = is_1.default.array(includeValue) ? includeValue : [includeValue];
76
- return includes.filter(common_1.isGitlabIncludeComponent);
77
- }
78
- function getAllIncludeComponents(data) {
79
- const childrenData = Object.values((0, common_1.filterIncludeFromGitlabPipeline)(data))
80
- .filter(common_1.isNonEmptyObject)
81
- .map(getAllIncludeComponents)
82
- .flat();
83
- // Process include key.
84
- if (data.include) {
85
- childrenData.push(...getIncludeComponentsFromInclude(data.include));
86
- }
87
- return childrenData;
88
- }
89
- function extractDepFromIncludeComponent(includeComponent, registryAliases) {
90
- let componentUrl = includeComponent.component;
16
+ function extractDepFromIncludeComponent(component, registryAliases) {
17
+ let componentUrl = component;
91
18
  if (registryAliases) {
92
19
  for (const key in registryAliases) {
93
20
  componentUrl = componentUrl.replace(key, registryAliases[key]);
@@ -117,35 +44,26 @@ function extractDepFromIncludeComponent(includeComponent, registryAliases) {
117
44
  return dep;
118
45
  }
119
46
  function extractPackageFile(content, packageFile, config) {
120
- let deps = [];
47
+ const deps = [];
121
48
  try {
122
- // TODO: use schema (#9610)
123
- const docs = (0, yaml_1.parseYaml)(content, {
124
- uniqueKeys: false,
125
- });
49
+ const docs = (0, yaml_1.parseYaml)(content, { uniqueKeys: false });
126
50
  for (const doc of docs) {
127
- if (is_1.default.object(doc)) {
128
- for (const [property, value] of Object.entries(doc)) {
129
- switch (property) {
130
- case 'image':
131
- {
132
- const dep = extractFromImage(value, config.registryAliases);
133
- if (dep) {
134
- deps.push(dep);
135
- }
136
- }
137
- break;
138
- case 'services':
139
- deps.push(...extractFromServices(value, config.registryAliases));
140
- break;
141
- default:
142
- deps.push(...extractFromJob(value, config.registryAliases));
143
- break;
144
- }
51
+ const topLevel = schema_1.Job.parse(doc);
52
+ const jobs = schema_1.Jobs.parse(doc);
53
+ for (const job of [topLevel, ...jobs]) {
54
+ const { image, services } = job;
55
+ if (image) {
56
+ const dep = (0, utils_1.getGitlabDep)(image.value, config.registryAliases);
57
+ dep.depType = image.type;
58
+ deps.push(dep);
59
+ }
60
+ for (const service of services) {
61
+ const dep = (0, utils_1.getGitlabDep)(service, config.registryAliases);
62
+ dep.depType = 'service-image';
63
+ deps.push(dep);
145
64
  }
146
- deps = deps.filter(is_1.default.truthy);
147
65
  }
148
- const includedComponents = getAllIncludeComponents(doc);
66
+ const includedComponents = schema_1.GitlabDocument.parse(doc);
149
67
  for (const includedComponent of includedComponents) {
150
68
  const dep = extractDepFromIncludeComponent(includedComponent, config.registryAliases);
151
69
  if (dep) {
@@ -176,33 +94,16 @@ async function extractAllPackageFiles(config, packageFiles) {
176
94
  logger_1.logger.debug({ packageFile: file }, `Empty or non existent gitlabci file`);
177
95
  continue;
178
96
  }
179
- let docs;
180
- try {
181
- // TODO: use schema (#9610)
182
- docs = (0, yaml_1.parseYaml)(content, {
183
- uniqueKeys: false,
184
- });
185
- }
186
- catch (err) {
97
+ const { val: docs, err } = result_1.Result.wrap(() => (0, yaml_1.parseYaml)(content, { uniqueKeys: false })).unwrap();
98
+ if (err) {
187
99
  logger_1.logger.debug({ err, packageFile: file }, 'Error extracting GitLab CI dependencies');
188
100
  continue;
189
101
  }
190
- for (const doc of docs) {
191
- if (is_1.default.array(doc?.include)) {
192
- for (const includeObj of doc.include.filter(common_1.isGitlabIncludeLocal)) {
193
- const fileObj = (0, url_1.trimLeadingSlash)(includeObj.local);
194
- if (!seen.has(fileObj)) {
195
- seen.add(fileObj);
196
- filesToExamine.push(fileObj);
197
- }
198
- }
199
- }
200
- else if (is_1.default.string(doc?.include)) {
201
- const fileObj = (0, url_1.trimLeadingSlash)(doc.include);
202
- if (!seen.has(fileObj)) {
203
- seen.add(fileObj);
204
- filesToExamine.push(fileObj);
205
- }
102
+ const localIncludes = schema_1.MultiDocumentLocalIncludes.parse(docs);
103
+ for (const file of localIncludes) {
104
+ if (!seen.has(file)) {
105
+ seen.add(file);
106
+ filesToExamine.push(file);
206
107
  }
207
108
  }
208
109
  const result = extractPackageFile(content, file, config);
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gitlabci/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { readLocalFile } from '../../../util/fs';\nimport { regEx } from '../../../util/regex';\nimport { trimLeadingSlash } from '../../../util/url';\nimport { parseYaml } from '../../../util/yaml';\nimport { GitlabTagsDatasource } from '../../datasource/gitlab-tags';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFile,\n PackageFileContent,\n} from '../types';\nimport {\n filterIncludeFromGitlabPipeline,\n isGitlabIncludeComponent,\n isGitlabIncludeLocal,\n isNonEmptyObject,\n} from './common';\nimport type {\n GitlabInclude,\n GitlabIncludeComponent,\n GitlabPipeline,\n Image,\n Job,\n Services,\n} from './types';\nimport { getGitlabDep } from './utils';\n\n// See https://docs.gitlab.com/ee/ci/components/index.html#use-a-component\nconst componentReferenceRegex = regEx(\n /(?<fqdn>[^/]+)\\/(?<projectPath>.+)\\/(?:.+)@(?<specificVersion>.+)/,\n);\nconst componentReferenceLatestVersion = '~latest';\n\nexport function extractFromImage(\n image: Image | undefined,\n registryAliases?: Record<string, string>,\n): PackageDependency | null {\n if (is.undefined(image)) {\n return null;\n }\n let dep: PackageDependency | null = null;\n if (is.string(image)) {\n dep = getGitlabDep(image, registryAliases);\n dep.depType = 'image';\n } else if (is.string(image?.name)) {\n dep = getGitlabDep(image.name, registryAliases);\n dep.depType = 'image-name';\n }\n return dep;\n}\n\nexport function extractFromServices(\n services: Services | undefined,\n registryAliases?: Record<string, string>,\n): PackageDependency[] {\n if (is.undefined(services)) {\n return [];\n }\n const deps: PackageDependency[] = [];\n for (const service of services) {\n if (is.string(service)) {\n const dep = getGitlabDep(service, registryAliases);\n dep.depType = 'service-image';\n deps.push(dep);\n } else if (is.string(service?.name)) {\n const dep = getGitlabDep(service.name, registryAliases);\n dep.depType = 'service-image';\n deps.push(dep);\n }\n }\n return deps;\n}\n\nexport function extractFromJob(\n job: Job | undefined,\n registryAliases?: Record<string, string>,\n): PackageDependency[] {\n if (is.undefined(job)) {\n return [];\n }\n const deps: PackageDependency[] = [];\n if (is.object(job)) {\n const { image, services } = { ...job };\n if (is.object(image) || is.string(image)) {\n const dep = extractFromImage(image, registryAliases);\n if (dep) {\n deps.push(dep);\n }\n }\n if (is.array(services)) {\n deps.push(...extractFromServices(services, registryAliases));\n }\n }\n return deps;\n}\n\nfunction getIncludeComponentsFromInclude(\n includeValue: GitlabInclude[] | GitlabInclude,\n): GitlabIncludeComponent[] {\n const includes = is.array(includeValue) ? includeValue : [includeValue];\n return includes.filter(isGitlabIncludeComponent);\n}\n\nfunction getAllIncludeComponents(\n data: GitlabPipeline,\n): GitlabIncludeComponent[] {\n const childrenData = Object.values(filterIncludeFromGitlabPipeline(data))\n .filter(isNonEmptyObject)\n .map(getAllIncludeComponents)\n .flat();\n\n // Process include key.\n if (data.include) {\n childrenData.push(...getIncludeComponentsFromInclude(data.include));\n }\n return childrenData;\n}\n\nfunction extractDepFromIncludeComponent(\n includeComponent: GitlabIncludeComponent,\n registryAliases?: Record<string, string>,\n): PackageDependency | null {\n let componentUrl = includeComponent.component;\n if (registryAliases) {\n for (const key in registryAliases) {\n componentUrl = componentUrl.replace(key, registryAliases[key]);\n }\n }\n const componentReference = componentReferenceRegex.exec(componentUrl)?.groups;\n if (!componentReference) {\n logger.debug(\n { componentReference: componentUrl },\n 'Ignoring malformed component reference',\n );\n return null;\n }\n const projectPathParts = componentReference.projectPath.split('/');\n if (projectPathParts.length < 2) {\n logger.debug(\n { componentReference: componentUrl },\n 'Ignoring component reference with incomplete project path',\n );\n return null;\n }\n\n const dep: PackageDependency = {\n datasource: GitlabTagsDatasource.id,\n depName: componentReference.projectPath,\n depType: 'repository',\n currentValue: componentReference.specificVersion,\n registryUrls: [`https://${componentReference.fqdn}`],\n };\n if (dep.currentValue === componentReferenceLatestVersion) {\n logger.debug(\n { componentVersion: dep.currentValue },\n 'Ignoring component version',\n );\n dep.skipReason = 'unsupported-version';\n }\n return dep;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageFileContent | null {\n let deps: PackageDependency[] = [];\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 for (const [property, value] of Object.entries(doc)) {\n switch (property) {\n case 'image':\n {\n const dep = extractFromImage(\n value as Image,\n config.registryAliases,\n );\n if (dep) {\n deps.push(dep);\n }\n }\n break;\n\n case 'services':\n deps.push(\n ...extractFromServices(\n value as Services,\n config.registryAliases,\n ),\n );\n break;\n\n default:\n deps.push(\n ...extractFromJob(value as Job, config.registryAliases),\n );\n break;\n }\n }\n deps = deps.filter(is.truthy);\n }\n\n const includedComponents = getAllIncludeComponents(doc);\n for (const includedComponent of includedComponents) {\n const dep = extractDepFromIncludeComponent(\n includedComponent,\n config.registryAliases,\n );\n if (dep) {\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(\n { err, packageFile },\n 'Error extracting GitLab CI dependencies',\n );\n }\n }\n\n return deps.length ? { deps } : null;\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile[] | null> {\n const filesToExamine = [...packageFiles];\n const seen = new Set<string>(packageFiles);\n const results: PackageFile[] = [];\n\n // extract all includes from the files\n while (filesToExamine.length > 0) {\n const file = filesToExamine.pop()!;\n\n const content = await readLocalFile(file, 'utf8');\n if (!content) {\n logger.debug(\n { packageFile: file },\n `Empty or non existent gitlabci file`,\n );\n continue;\n }\n let docs: GitlabPipeline[];\n try {\n // TODO: use schema (#9610)\n docs = parseYaml(content, {\n uniqueKeys: false,\n });\n } catch (err) {\n logger.debug(\n { err, packageFile: file },\n 'Error extracting GitLab CI dependencies',\n );\n continue;\n }\n\n for (const doc of docs) {\n if (is.array(doc?.include)) {\n for (const includeObj of doc.include.filter(isGitlabIncludeLocal)) {\n const fileObj = trimLeadingSlash(includeObj.local);\n if (!seen.has(fileObj)) {\n seen.add(fileObj);\n filesToExamine.push(fileObj);\n }\n }\n } else if (is.string(doc?.include)) {\n const fileObj = trimLeadingSlash(doc.include);\n if (!seen.has(fileObj)) {\n seen.add(fileObj);\n filesToExamine.push(fileObj);\n }\n }\n }\n\n const result = extractPackageFile(content, file, config);\n if (result !== null) {\n results.push({\n packageFile: file,\n deps: result.deps,\n });\n }\n }\n\n logger.trace(\n { packageFiles, files: filesToExamine.entries() },\n 'extracted all GitLab CI files',\n );\n\n if (!results.length) {\n return null;\n }\n\n return results;\n}\n"]}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gitlabci/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { readLocalFile } from '../../../util/fs';\nimport { regEx } from '../../../util/regex';\nimport { Result } from '../../../util/result';\nimport { parseYaml } from '../../../util/yaml';\nimport { GitlabTagsDatasource } from '../../datasource/gitlab-tags';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFile,\n PackageFileContent,\n} from '../types';\nimport {\n GitlabDocument,\n Job,\n Jobs,\n MultiDocumentLocalIncludes,\n} from './schema';\nimport { getGitlabDep } from './utils';\n\n// See https://docs.gitlab.com/ee/ci/components/index.html#use-a-component\nconst componentReferenceRegex = regEx(\n /(?<fqdn>[^/]+)\\/(?<projectPath>.+)\\/(?:.+)@(?<specificVersion>.+)/,\n);\nconst componentReferenceLatestVersion = '~latest';\n\nfunction extractDepFromIncludeComponent(\n component: string,\n registryAliases?: Record<string, string>,\n): PackageDependency | null {\n let componentUrl = component;\n if (registryAliases) {\n for (const key in registryAliases) {\n componentUrl = componentUrl.replace(key, registryAliases[key]);\n }\n }\n const componentReference = componentReferenceRegex.exec(componentUrl)?.groups;\n if (!componentReference) {\n logger.debug(\n { componentReference: componentUrl },\n 'Ignoring malformed component reference',\n );\n return null;\n }\n const projectPathParts = componentReference.projectPath.split('/');\n if (projectPathParts.length < 2) {\n logger.debug(\n { componentReference: componentUrl },\n 'Ignoring component reference with incomplete project path',\n );\n return null;\n }\n\n const dep: PackageDependency = {\n datasource: GitlabTagsDatasource.id,\n depName: componentReference.projectPath,\n depType: 'repository',\n currentValue: componentReference.specificVersion,\n registryUrls: [`https://${componentReference.fqdn}`],\n };\n if (dep.currentValue === componentReferenceLatestVersion) {\n logger.debug(\n { componentVersion: dep.currentValue },\n 'Ignoring component version',\n );\n dep.skipReason = 'unsupported-version';\n }\n return dep;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageFileContent | null {\n const deps: PackageDependency[] = [];\n try {\n const docs = parseYaml(content, { uniqueKeys: false });\n\n for (const doc of docs) {\n const topLevel = Job.parse(doc);\n const jobs = Jobs.parse(doc);\n\n for (const job of [topLevel, ...jobs]) {\n const { image, services } = job;\n\n if (image) {\n const dep = getGitlabDep(image.value, config.registryAliases);\n dep.depType = image.type;\n deps.push(dep);\n }\n\n for (const service of services) {\n const dep = getGitlabDep(service, config.registryAliases);\n dep.depType = 'service-image';\n deps.push(dep);\n }\n }\n\n const includedComponents = GitlabDocument.parse(doc);\n for (const includedComponent of includedComponents) {\n const dep = extractDepFromIncludeComponent(\n includedComponent,\n config.registryAliases,\n );\n if (dep) {\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(\n { err, packageFile },\n 'Error extracting GitLab CI dependencies',\n );\n }\n }\n\n return deps.length ? { deps } : null;\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile[] | null> {\n const filesToExamine = [...packageFiles];\n const seen = new Set<string>(packageFiles);\n const results: PackageFile[] = [];\n\n // extract all includes from the files\n while (filesToExamine.length > 0) {\n const file = filesToExamine.pop()!;\n\n const content = await readLocalFile(file, 'utf8');\n if (!content) {\n logger.debug(\n { packageFile: file },\n `Empty or non existent gitlabci file`,\n );\n continue;\n }\n\n const { val: docs, err } = Result.wrap(() =>\n parseYaml(content, { uniqueKeys: false }),\n ).unwrap();\n\n if (err) {\n logger.debug(\n { err, packageFile: file },\n 'Error extracting GitLab CI dependencies',\n );\n continue;\n }\n\n const localIncludes = MultiDocumentLocalIncludes.parse(docs);\n for (const file of localIncludes) {\n if (!seen.has(file)) {\n seen.add(file);\n filesToExamine.push(file);\n }\n }\n\n const result = extractPackageFile(content, file, config);\n if (result !== null) {\n results.push({\n packageFile: file,\n deps: result.deps,\n });\n }\n }\n\n logger.trace(\n { packageFiles, files: filesToExamine.entries() },\n 'extracted all GitLab CI files',\n );\n\n if (!results.length) {\n return null;\n }\n\n return results;\n}\n"]}
@@ -0,0 +1,55 @@
1
+ import { z } from 'zod';
2
+ export declare const MultiDocumentLocalIncludes: z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodAny, "many">, string[][], any[]>, string[], any[]>;
3
+ export declare const Job: z.ZodObject<{
4
+ image: z.ZodCatch<z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodString, {
5
+ type: "image";
6
+ value: string;
7
+ }, string>, z.ZodEffects<z.ZodObject<{
8
+ name: z.ZodString;
9
+ }, "strip", z.ZodTypeAny, {
10
+ name: string;
11
+ }, {
12
+ name: string;
13
+ }>, {
14
+ type: "image-name";
15
+ value: string;
16
+ }, {
17
+ name: string;
18
+ }>]>>>;
19
+ services: z.ZodCatch<z.ZodEffects<z.ZodArray<z.ZodAny, "many">, string[], any[]>>;
20
+ }, "strip", z.ZodTypeAny, {
21
+ services: string[];
22
+ image?: {
23
+ type: "image";
24
+ value: string;
25
+ } | {
26
+ type: "image-name";
27
+ value: string;
28
+ } | undefined;
29
+ }, {
30
+ image?: unknown;
31
+ services?: unknown;
32
+ }>;
33
+ export declare const Jobs: z.ZodEffects<z.ZodCatch<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodAny>, Record<string, {
34
+ services: string[];
35
+ image?: {
36
+ type: "image";
37
+ value: string;
38
+ } | {
39
+ type: "image-name";
40
+ value: string;
41
+ } | undefined;
42
+ }>, Record<string, any>>>, {
43
+ services: string[];
44
+ image?: {
45
+ type: "image";
46
+ value: string;
47
+ } | {
48
+ type: "image-name";
49
+ value: string;
50
+ } | undefined;
51
+ }[], unknown>;
52
+ export declare const GitlabDocument: z.ZodEffects<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, {
53
+ include: unknown;
54
+ children: unknown[];
55
+ }, Record<string, unknown>>, string[], Record<string, unknown>>;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GitlabDocument = exports.Jobs = exports.Job = exports.MultiDocumentLocalIncludes = 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 url_1 = require("../../../util/url");
8
+ const LocalInclude = zod_1.z
9
+ .union([
10
+ zod_1.z.string(),
11
+ zod_1.z.object({ local: zod_1.z.string() }).transform(({ local }) => local),
12
+ ])
13
+ .transform(url_1.trimLeadingSlash);
14
+ const DocumentLocalIncludes = zod_1.z
15
+ .object({
16
+ include: zod_1.z.union([
17
+ (0, schema_utils_1.LooseArray)(LocalInclude),
18
+ LocalInclude.transform(array_1.toArray),
19
+ ]),
20
+ })
21
+ .transform(({ include }) => include);
22
+ exports.MultiDocumentLocalIncludes = (0, schema_utils_1.LooseArray)(DocumentLocalIncludes).transform((includes) => includes.flat());
23
+ exports.Job = zod_1.z.object({
24
+ image: zod_1.z
25
+ .union([
26
+ zod_1.z.string().transform((image) => ({
27
+ type: 'image',
28
+ value: image,
29
+ })),
30
+ zod_1.z.object({ name: zod_1.z.string() }).transform(({ name }) => ({
31
+ type: 'image-name',
32
+ value: name,
33
+ })),
34
+ ])
35
+ .optional()
36
+ .catch(undefined),
37
+ services: (0, schema_utils_1.LooseArray)(zod_1.z.union([
38
+ zod_1.z.string(),
39
+ zod_1.z.object({ name: zod_1.z.string() }).transform(({ name }) => name),
40
+ ])).catch([]),
41
+ });
42
+ exports.Jobs = (0, schema_utils_1.LooseRecord)(zod_1.z.string(), exports.Job)
43
+ .catch({})
44
+ .transform((x) => Object.values(x));
45
+ const GitlabInclude = zod_1.z
46
+ .object({ component: zod_1.z.string() })
47
+ .transform(({ component }) => component);
48
+ const GitlabIncludes = zod_1.z
49
+ .union([(0, schema_utils_1.LooseArray)(GitlabInclude), GitlabInclude.transform(array_1.toArray)])
50
+ .catch([]);
51
+ exports.GitlabDocument = zod_1.z
52
+ .record(zod_1.z.unknown())
53
+ .transform((obj) => {
54
+ const { include, ...rest } = obj;
55
+ const children = Object.values(rest);
56
+ return { include, children };
57
+ })
58
+ .transform(({ include, children }) => [
59
+ ...GitlabDocumentArray.parse(children),
60
+ ...GitlabIncludes.parse(include),
61
+ ]);
62
+ const GitlabDocumentArray = (0, schema_utils_1.LooseArray)(exports.GitlabDocument).transform((x) => x.flat());
63
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gitlabci/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { toArray } from '../../../util/array';\nimport { LooseArray, LooseRecord } from '../../../util/schema-utils';\nimport { trimLeadingSlash } from '../../../util/url';\n\nconst LocalInclude = z\n .union([\n z.string(),\n z.object({ local: z.string() }).transform(({ local }) => local),\n ])\n .transform(trimLeadingSlash);\n\nconst DocumentLocalIncludes = z\n .object({\n include: z.union([\n LooseArray(LocalInclude),\n LocalInclude.transform(toArray),\n ]),\n })\n .transform(({ include }) => include);\n\nexport const MultiDocumentLocalIncludes = LooseArray(\n DocumentLocalIncludes,\n).transform((includes) => includes.flat());\n\nexport const Job = z.object({\n image: z\n .union([\n z.string().transform((image) => ({\n type: 'image' as const,\n value: image,\n })),\n z.object({ name: z.string() }).transform(({ name }) => ({\n type: 'image-name' as const,\n value: name,\n })),\n ])\n .optional()\n .catch(undefined),\n services: LooseArray(\n z.union([\n z.string(),\n z.object({ name: z.string() }).transform(({ name }) => name),\n ]),\n ).catch([]),\n});\n\nexport const Jobs = LooseRecord(z.string(), Job)\n .catch({})\n .transform((x) => Object.values(x));\n\nconst GitlabInclude = z\n .object({ component: z.string() })\n .transform(({ component }) => component);\n\nconst GitlabIncludes = z\n .union([LooseArray(GitlabInclude), GitlabInclude.transform(toArray)])\n .catch([]);\n\nexport const GitlabDocument = z\n .record(z.unknown())\n .transform((obj) => {\n const { include, ...rest } = obj;\n const children = Object.values(rest);\n return { include, children };\n })\n .transform(({ include, children }): string[] => [\n ...GitlabDocumentArray.parse(children),\n ...GitlabIncludes.parse(include),\n ]);\n\nconst GitlabDocumentArray = LooseArray(GitlabDocument).transform((x) =>\n x.flat(),\n);\n"]}