renovate 40.0.0-next.9 → 40.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (816) hide show
  1. package/dist/config/decrypt/legacy.js +0 -1
  2. package/dist/config/decrypt/legacy.js.map +1 -1
  3. package/dist/config/decrypt.d.ts +3 -1
  4. package/dist/config/decrypt.js +56 -13
  5. package/dist/config/decrypt.js.map +1 -1
  6. package/dist/config/global.js +0 -1
  7. package/dist/config/global.js.map +1 -1
  8. package/dist/config/migrate-validate.js +3 -2
  9. package/dist/config/migrate-validate.js.map +1 -1
  10. package/dist/config/migration.js +2 -1
  11. package/dist/config/migration.js.map +1 -1
  12. package/dist/config/migrations/custom/rebase-stale-prs-migration.js +1 -1
  13. package/dist/config/migrations/custom/rebase-stale-prs-migration.js.map +1 -1
  14. package/dist/config/migrations/migrations-service.js +3 -2
  15. package/dist/config/migrations/migrations-service.js.map +1 -1
  16. package/dist/config/options/index.js +18 -11
  17. package/dist/config/options/index.js.map +1 -1
  18. package/dist/config/parse.js +2 -2
  19. package/dist/config/parse.js.map +1 -1
  20. package/dist/config/presets/common.js +1 -0
  21. package/dist/config/presets/common.js.map +1 -1
  22. package/dist/config/presets/gitea/index.js +0 -1
  23. package/dist/config/presets/gitea/index.js.map +1 -1
  24. package/dist/config/presets/github/index.js +4 -2
  25. package/dist/config/presets/github/index.js.map +1 -1
  26. package/dist/config/presets/gitlab/index.js +1 -1
  27. package/dist/config/presets/gitlab/index.js.map +1 -1
  28. package/dist/config/presets/http/index.js +2 -2
  29. package/dist/config/presets/http/index.js.map +1 -1
  30. package/dist/config/presets/index.js +0 -7
  31. package/dist/config/presets/index.js.map +1 -1
  32. package/dist/config/presets/internal/custom-managers.js +18 -4
  33. package/dist/config/presets/internal/custom-managers.js.map +1 -1
  34. package/dist/config/presets/internal/group.js +30 -1
  35. package/dist/config/presets/internal/group.js.map +1 -1
  36. package/dist/config/presets/internal/index.js +1 -3
  37. package/dist/config/presets/internal/index.js.map +1 -1
  38. package/dist/config/presets/internal/workarounds.js +1 -0
  39. package/dist/config/presets/internal/workarounds.js.map +1 -1
  40. package/dist/config/presets/npm/index.js +4 -1
  41. package/dist/config/presets/npm/index.js.map +1 -1
  42. package/dist/config/presets/parse.js +2 -1
  43. package/dist/config/presets/parse.js.map +1 -1
  44. package/dist/config/schema.d.ts +2 -2
  45. package/dist/config/types.d.ts +4 -2
  46. package/dist/config/types.js.map +1 -1
  47. package/dist/config/validation.js +3 -5
  48. package/dist/config/validation.js.map +1 -1
  49. package/dist/config-validator.js +0 -1
  50. package/dist/config-validator.js.map +1 -1
  51. package/dist/constants/category.js +0 -1
  52. package/dist/constants/category.js.map +1 -1
  53. package/dist/constants/platforms.js +5 -1
  54. package/dist/constants/platforms.js.map +1 -1
  55. package/dist/data/monorepo.json +9 -2
  56. package/dist/data/replacements.json +13 -0
  57. package/dist/data/source-urls.json +1 -0
  58. package/dist/data-files.generated.js +2 -2
  59. package/dist/data-files.generated.js.map +1 -1
  60. package/dist/instrumentation/index.js +39 -15
  61. package/dist/instrumentation/index.js.map +1 -1
  62. package/dist/instrumentation/utils.js +1 -1
  63. package/dist/instrumentation/utils.js.map +1 -1
  64. package/dist/logger/cmd-serializer.js +0 -1
  65. package/dist/logger/cmd-serializer.js.map +1 -1
  66. package/dist/logger/config-serializer.js +0 -1
  67. package/dist/logger/config-serializer.js.map +1 -1
  68. package/dist/logger/index.js +1 -4
  69. package/dist/logger/index.js.map +1 -1
  70. package/dist/logger/once.js +4 -2
  71. package/dist/logger/once.js.map +1 -1
  72. package/dist/logger/pretty-stdout.js +0 -1
  73. package/dist/logger/pretty-stdout.js.map +1 -1
  74. package/dist/logger/renovate-logger.js +1 -1
  75. package/dist/logger/renovate-logger.js.map +1 -1
  76. package/dist/logger/utils.js +5 -10
  77. package/dist/logger/utils.js.map +1 -1
  78. package/dist/modules/datasource/api.js +4 -0
  79. package/dist/modules/datasource/api.js.map +1 -1
  80. package/dist/modules/datasource/artifactory/index.js +1 -2
  81. package/dist/modules/datasource/artifactory/index.js.map +1 -1
  82. package/dist/modules/datasource/aws-eks-addon/index.d.ts +11 -0
  83. package/dist/modules/datasource/aws-eks-addon/index.js +75 -0
  84. package/dist/modules/datasource/aws-eks-addon/index.js.map +1 -0
  85. package/dist/modules/datasource/aws-eks-addon/schema.d.ts +40 -0
  86. package/dist/modules/datasource/aws-eks-addon/schema.js +31 -0
  87. package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -0
  88. package/dist/modules/datasource/aws-machine-image/index.js +6 -5
  89. package/dist/modules/datasource/aws-machine-image/index.js.map +1 -1
  90. package/dist/modules/datasource/azure-pipelines-tasks/index.js +15 -1
  91. package/dist/modules/datasource/azure-pipelines-tasks/index.js.map +1 -1
  92. package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +24 -0
  93. package/dist/modules/datasource/azure-pipelines-tasks/schema.js +3 -0
  94. package/dist/modules/datasource/azure-pipelines-tasks/schema.js.map +1 -1
  95. package/dist/modules/datasource/bazel/index.js +18 -2
  96. package/dist/modules/datasource/bazel/index.js.map +1 -1
  97. package/dist/modules/datasource/bazel/schema.d.ts +1 -0
  98. package/dist/modules/datasource/bazel/schema.js.map +1 -1
  99. package/dist/modules/datasource/bitbucket-server-tags/index.d.ts +19 -0
  100. package/dist/modules/datasource/bitbucket-server-tags/index.js +133 -0
  101. package/dist/modules/datasource/bitbucket-server-tags/index.js.map +1 -0
  102. package/dist/modules/datasource/bitbucket-server-tags/schema.d.ts +28 -0
  103. package/dist/modules/datasource/bitbucket-server-tags/schema.js +13 -0
  104. package/dist/modules/datasource/bitbucket-server-tags/schema.js.map +1 -0
  105. package/dist/modules/datasource/bitrise/index.js +1 -1
  106. package/dist/modules/datasource/bitrise/index.js.map +1 -1
  107. package/dist/modules/datasource/cdnjs/schema.d.ts +2 -2
  108. package/dist/modules/datasource/conda/index.js +18 -1
  109. package/dist/modules/datasource/conda/index.js.map +1 -1
  110. package/dist/modules/datasource/conda/prefix-dev.d.ts +3 -0
  111. package/dist/modules/datasource/conda/prefix-dev.js +81 -0
  112. package/dist/modules/datasource/conda/prefix-dev.js.map +1 -0
  113. package/dist/modules/datasource/conda/schema/prefix-dev.d.ts +189 -0
  114. package/dist/modules/datasource/conda/schema/prefix-dev.js +31 -0
  115. package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -0
  116. package/dist/modules/datasource/conda/types.d.ts +1 -20
  117. package/dist/modules/datasource/conda/types.js.map +1 -1
  118. package/dist/modules/datasource/cpan/index.js +2 -4
  119. package/dist/modules/datasource/cpan/index.js.map +1 -1
  120. package/dist/modules/datasource/crate/index.js +3 -3
  121. package/dist/modules/datasource/crate/index.js.map +1 -1
  122. package/dist/modules/datasource/custom/formats/html.js +1 -1
  123. package/dist/modules/datasource/custom/formats/html.js.map +1 -1
  124. package/dist/modules/datasource/custom/formats/yaml.js +1 -1
  125. package/dist/modules/datasource/custom/formats/yaml.js.map +1 -1
  126. package/dist/modules/datasource/custom/index.js +4 -2
  127. package/dist/modules/datasource/custom/index.js.map +1 -1
  128. package/dist/modules/datasource/custom/schema.d.ts +22 -22
  129. package/dist/modules/datasource/custom/utils.js +1 -0
  130. package/dist/modules/datasource/custom/utils.js.map +1 -1
  131. package/dist/modules/datasource/dart/index.js +1 -1
  132. package/dist/modules/datasource/dart/index.js.map +1 -1
  133. package/dist/modules/datasource/dart-version/index.js +1 -1
  134. package/dist/modules/datasource/dart-version/index.js.map +1 -1
  135. package/dist/modules/datasource/datasource.js +0 -1
  136. package/dist/modules/datasource/datasource.js.map +1 -1
  137. package/dist/modules/datasource/deb/index.d.ts +4 -5
  138. package/dist/modules/datasource/deb/index.js +10 -11
  139. package/dist/modules/datasource/deb/index.js.map +1 -1
  140. package/dist/modules/datasource/deb/url.d.ts +3 -3
  141. package/dist/modules/datasource/deb/url.js +17 -13
  142. package/dist/modules/datasource/deb/url.js.map +1 -1
  143. package/dist/modules/datasource/deno/index.js +1 -1
  144. package/dist/modules/datasource/deno/index.js.map +1 -1
  145. package/dist/modules/datasource/deno/schema.d.ts +1 -1
  146. package/dist/modules/datasource/devbox/index.js +0 -1
  147. package/dist/modules/datasource/devbox/index.js.map +1 -1
  148. package/dist/modules/datasource/docker/common.js +5 -2
  149. package/dist/modules/datasource/docker/common.js.map +1 -1
  150. package/dist/modules/datasource/docker/index.js +8 -6
  151. package/dist/modules/datasource/docker/index.js.map +1 -1
  152. package/dist/modules/datasource/docker/schema.d.ts +77 -101
  153. package/dist/modules/datasource/docker/schema.js +2 -1
  154. package/dist/modules/datasource/docker/schema.js.map +1 -1
  155. package/dist/modules/datasource/flutter-version/index.js +1 -1
  156. package/dist/modules/datasource/flutter-version/index.js.map +1 -1
  157. package/dist/modules/datasource/galaxy/schema.d.ts +1 -1
  158. package/dist/modules/datasource/galaxy-collection/schema.d.ts +8 -8
  159. package/dist/modules/datasource/git-refs/index.js +1 -1
  160. package/dist/modules/datasource/git-refs/index.js.map +1 -1
  161. package/dist/modules/datasource/gitea-releases/schema.d.ts +6 -6
  162. package/dist/modules/datasource/gitea-tags/schema.d.ts +4 -4
  163. package/dist/modules/datasource/github-release-attachments/index.js +2 -2
  164. package/dist/modules/datasource/github-release-attachments/index.js.map +1 -1
  165. package/dist/modules/datasource/github-runners/index.js +2 -2
  166. package/dist/modules/datasource/github-runners/index.js.map +1 -1
  167. package/dist/modules/datasource/github-tags/index.js +4 -1
  168. package/dist/modules/datasource/github-tags/index.js.map +1 -1
  169. package/dist/modules/datasource/gitlab-packages/index.js +1 -1
  170. package/dist/modules/datasource/gitlab-packages/index.js.map +1 -1
  171. package/dist/modules/datasource/gitlab-releases/index.js +1 -3
  172. package/dist/modules/datasource/gitlab-releases/index.js.map +1 -1
  173. package/dist/modules/datasource/go/base.js +1 -1
  174. package/dist/modules/datasource/go/base.js.map +1 -1
  175. package/dist/modules/datasource/go/index.js +1 -1
  176. package/dist/modules/datasource/go/index.js.map +1 -1
  177. package/dist/modules/datasource/go/releases-direct.js +7 -4
  178. package/dist/modules/datasource/go/releases-direct.js.map +1 -1
  179. package/dist/modules/datasource/go/releases-goproxy.js +1 -1
  180. package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
  181. package/dist/modules/datasource/golang-version/index.js +2 -2
  182. package/dist/modules/datasource/golang-version/index.js.map +1 -1
  183. package/dist/modules/datasource/gradle-version/index.js +1 -1
  184. package/dist/modules/datasource/gradle-version/index.js.map +1 -1
  185. package/dist/modules/datasource/helm/index.js +1 -1
  186. package/dist/modules/datasource/helm/index.js.map +1 -1
  187. package/dist/modules/datasource/hex/index.js +1 -1
  188. package/dist/modules/datasource/hex/index.js.map +1 -1
  189. package/dist/modules/datasource/hex/schema.d.ts +11 -11
  190. package/dist/modules/datasource/hexpm-bob/index.js +1 -1
  191. package/dist/modules/datasource/hexpm-bob/index.js.map +1 -1
  192. package/dist/modules/datasource/index.js +46 -5
  193. package/dist/modules/datasource/index.js.map +1 -1
  194. package/dist/modules/datasource/java-version/index.js +0 -1
  195. package/dist/modules/datasource/java-version/index.js.map +1 -1
  196. package/dist/modules/datasource/jenkins-plugins/index.js +1 -1
  197. package/dist/modules/datasource/jenkins-plugins/index.js.map +1 -1
  198. package/dist/modules/datasource/maven/index.d.ts +2 -2
  199. package/dist/modules/datasource/maven/index.js +56 -33
  200. package/dist/modules/datasource/maven/index.js.map +1 -1
  201. package/dist/modules/datasource/maven/types.d.ts +7 -6
  202. package/dist/modules/datasource/maven/types.js.map +1 -1
  203. package/dist/modules/datasource/maven/util.d.ts +4 -5
  204. package/dist/modules/datasource/maven/util.js +94 -157
  205. package/dist/modules/datasource/maven/util.js.map +1 -1
  206. package/dist/modules/datasource/metadata.js +9 -1
  207. package/dist/modules/datasource/metadata.js.map +1 -1
  208. package/dist/modules/datasource/node-version/index.js +1 -1
  209. package/dist/modules/datasource/node-version/index.js.map +1 -1
  210. package/dist/modules/datasource/npm/get.d.ts +0 -1
  211. package/dist/modules/datasource/npm/get.js +14 -68
  212. package/dist/modules/datasource/npm/get.js.map +1 -1
  213. package/dist/modules/datasource/npm/index.js +1 -1
  214. package/dist/modules/datasource/npm/index.js.map +1 -1
  215. package/dist/modules/datasource/npm/npmrc.js +1 -1
  216. package/dist/modules/datasource/npm/npmrc.js.map +1 -1
  217. package/dist/modules/datasource/npm/types.d.ts +0 -8
  218. package/dist/modules/datasource/npm/types.js.map +1 -1
  219. package/dist/modules/datasource/nuget/index.js +1 -1
  220. package/dist/modules/datasource/nuget/index.js.map +1 -1
  221. package/dist/modules/datasource/nuget/v2.js +1 -1
  222. package/dist/modules/datasource/nuget/v2.js.map +1 -1
  223. package/dist/modules/datasource/nuget/v3.js +8 -6
  224. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  225. package/dist/modules/datasource/orb/index.js +1 -1
  226. package/dist/modules/datasource/orb/index.js.map +1 -1
  227. package/dist/modules/datasource/packagist/index.js +2 -2
  228. package/dist/modules/datasource/packagist/index.js.map +1 -1
  229. package/dist/modules/datasource/packagist/schema.d.ts +32 -32
  230. package/dist/modules/datasource/pod/index.js +2 -2
  231. package/dist/modules/datasource/pod/index.js.map +1 -1
  232. package/dist/modules/datasource/postprocess-release.js +1 -1
  233. package/dist/modules/datasource/postprocess-release.js.map +1 -1
  234. package/dist/modules/datasource/pypi/index.js +1 -1
  235. package/dist/modules/datasource/pypi/index.js.map +1 -1
  236. package/dist/modules/datasource/python-version/index.js +1 -1
  237. package/dist/modules/datasource/python-version/index.js.map +1 -1
  238. package/dist/modules/datasource/repology/index.js +1 -1
  239. package/dist/modules/datasource/repology/index.js.map +1 -1
  240. package/dist/modules/datasource/ruby-version/index.js +1 -1
  241. package/dist/modules/datasource/ruby-version/index.js.map +1 -1
  242. package/dist/modules/datasource/rubygems/index.js +2 -2
  243. package/dist/modules/datasource/rubygems/index.js.map +1 -1
  244. package/dist/modules/datasource/rubygems/versions-endpoint-cache.js +2 -2
  245. package/dist/modules/datasource/rubygems/versions-endpoint-cache.js.map +1 -1
  246. package/dist/modules/datasource/sbt-package/index.js +1 -1
  247. package/dist/modules/datasource/sbt-package/index.js.map +1 -1
  248. package/dist/modules/datasource/sbt-plugin/index.js +1 -1
  249. package/dist/modules/datasource/sbt-plugin/index.js.map +1 -1
  250. package/dist/modules/datasource/schema.d.ts +4 -4
  251. package/dist/modules/datasource/terraform-module/index.js +1 -1
  252. package/dist/modules/datasource/terraform-module/index.js.map +1 -1
  253. package/dist/modules/datasource/terraform-provider/index.js +2 -3
  254. package/dist/modules/datasource/terraform-provider/index.js.map +1 -1
  255. package/dist/modules/datasource/types.d.ts +2 -0
  256. package/dist/modules/datasource/types.js.map +1 -1
  257. package/dist/modules/manager/api.js +2 -0
  258. package/dist/modules/manager/api.js.map +1 -1
  259. package/dist/modules/manager/argocd/extract.js +1 -1
  260. package/dist/modules/manager/argocd/extract.js.map +1 -1
  261. package/dist/modules/manager/argocd/schema.d.ts +22 -22
  262. package/dist/modules/manager/asdf/upgradeable-tooling.js +94 -0
  263. package/dist/modules/manager/asdf/upgradeable-tooling.js.map +1 -1
  264. package/dist/modules/manager/azure-pipelines/schema.d.ts +32 -32
  265. package/dist/modules/manager/batect/schema.d.ts +4 -4
  266. package/dist/modules/manager/batect-wrapper/artifacts.js +1 -1
  267. package/dist/modules/manager/batect-wrapper/artifacts.js.map +1 -1
  268. package/dist/modules/manager/bazel/rules/docker.d.ts +6 -6
  269. package/dist/modules/manager/bazel/rules/git.d.ts +10 -10
  270. package/dist/modules/manager/bazel/rules/git.js +9 -2
  271. package/dist/modules/manager/bazel/rules/git.js.map +1 -1
  272. package/dist/modules/manager/bazel/rules/go.d.ts +5 -5
  273. package/dist/modules/manager/bazel/rules/maven.d.ts +7 -7
  274. package/dist/modules/manager/bazel/rules/oci.d.ts +6 -6
  275. package/dist/modules/manager/bazel-module/parser/fragments.d.ts +40 -40
  276. package/dist/modules/manager/bazel-module/parser/maven.d.ts +44 -90
  277. package/dist/modules/manager/bazel-module/parser/oci.d.ts +19 -42
  278. package/dist/modules/manager/bazel-module/rules.d.ts +50 -160
  279. package/dist/modules/manager/buildpacks/extract.d.ts +6 -1
  280. package/dist/modules/manager/buildpacks/extract.js +24 -14
  281. package/dist/modules/manager/buildpacks/extract.js.map +1 -1
  282. package/dist/modules/manager/bun/artifacts.js +0 -1
  283. package/dist/modules/manager/bun/artifacts.js.map +1 -1
  284. package/dist/modules/manager/bun/extract.d.ts +1 -0
  285. package/dist/modules/manager/bun/extract.js +53 -27
  286. package/dist/modules/manager/bun/extract.js.map +1 -1
  287. package/dist/modules/manager/bun/index.js +1 -1
  288. package/dist/modules/manager/bun/index.js.map +1 -1
  289. package/dist/modules/manager/bun/utils.d.ts +2 -0
  290. package/dist/modules/manager/bun/utils.js +22 -0
  291. package/dist/modules/manager/bun/utils.js.map +1 -0
  292. package/dist/modules/manager/bundler/artifacts.js +0 -1
  293. package/dist/modules/manager/bundler/artifacts.js.map +1 -1
  294. package/dist/modules/manager/bundler/extract.js +2 -1
  295. package/dist/modules/manager/bundler/extract.js.map +1 -1
  296. package/dist/modules/manager/cake/index.js +4 -2
  297. package/dist/modules/manager/cake/index.js.map +1 -1
  298. package/dist/modules/manager/cargo/artifacts.js +5 -7
  299. package/dist/modules/manager/cargo/artifacts.js.map +1 -1
  300. package/dist/modules/manager/cargo/schema.d.ts +166 -166
  301. package/dist/modules/manager/circleci/extract.js +21 -30
  302. package/dist/modules/manager/circleci/extract.js.map +1 -1
  303. package/dist/modules/manager/circleci/schema.d.ts +33 -144
  304. package/dist/modules/manager/circleci/schema.js +21 -17
  305. package/dist/modules/manager/circleci/schema.js.map +1 -1
  306. package/dist/modules/manager/cocoapods/artifacts.js +1 -2
  307. package/dist/modules/manager/cocoapods/artifacts.js.map +1 -1
  308. package/dist/modules/manager/composer/artifacts.js +1 -2
  309. package/dist/modules/manager/composer/artifacts.js.map +1 -1
  310. package/dist/modules/manager/composer/schema.d.ts +32 -34
  311. package/dist/modules/manager/composer/schema.js +1 -1
  312. package/dist/modules/manager/composer/schema.js.map +1 -1
  313. package/dist/modules/manager/composer/utils.d.ts +1 -0
  314. package/dist/modules/manager/composer/utils.js +18 -6
  315. package/dist/modules/manager/composer/utils.js.map +1 -1
  316. package/dist/modules/manager/conan/artifacts.d.ts +2 -0
  317. package/dist/modules/manager/conan/artifacts.js +76 -0
  318. package/dist/modules/manager/conan/artifacts.js.map +1 -0
  319. package/dist/modules/manager/conan/index.d.ts +2 -0
  320. package/dist/modules/manager/conan/index.js +4 -1
  321. package/dist/modules/manager/conan/index.js.map +1 -1
  322. package/dist/modules/manager/copier/artifacts.js +0 -1
  323. package/dist/modules/manager/copier/artifacts.js.map +1 -1
  324. package/dist/modules/manager/crossplane/schema.d.ts +2 -2
  325. package/dist/modules/manager/custom/jsonata/schema.d.ts +21 -21
  326. package/dist/modules/manager/custom/regex/index.js +2 -0
  327. package/dist/modules/manager/custom/regex/index.js.map +1 -1
  328. package/dist/modules/manager/deps-edn/extract.js +2 -1
  329. package/dist/modules/manager/deps-edn/extract.js.map +1 -1
  330. package/dist/modules/manager/devbox/artifacts.d.ts +1 -1
  331. package/dist/modules/manager/devbox/artifacts.js +35 -11
  332. package/dist/modules/manager/devbox/artifacts.js.map +1 -1
  333. package/dist/modules/manager/devbox/schema.js +1 -1
  334. package/dist/modules/manager/devbox/schema.js.map +1 -1
  335. package/dist/modules/manager/devcontainer/extract.js +43 -1
  336. package/dist/modules/manager/devcontainer/extract.js.map +1 -1
  337. package/dist/modules/manager/devcontainer/index.js +11 -1
  338. package/dist/modules/manager/devcontainer/index.js.map +1 -1
  339. package/dist/modules/manager/devcontainer/schema.d.ts +7 -3
  340. package/dist/modules/manager/devcontainer/schema.js +3 -1
  341. package/dist/modules/manager/devcontainer/schema.js.map +1 -1
  342. package/dist/modules/manager/docker-compose/schema.d.ts +6 -6
  343. package/dist/modules/manager/dockerfile/extract.js +2 -6
  344. package/dist/modules/manager/dockerfile/extract.js.map +1 -1
  345. package/dist/modules/manager/fingerprint.generated.js +86 -85
  346. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  347. package/dist/modules/manager/fleet/schema.d.ts +4 -4
  348. package/dist/modules/manager/flux/artifacts.js +0 -1
  349. package/dist/modules/manager/flux/artifacts.js.map +1 -1
  350. package/dist/modules/manager/flux/extract.js +27 -24
  351. package/dist/modules/manager/flux/extract.js.map +1 -1
  352. package/dist/modules/manager/flux/schema.d.ts +130 -154
  353. package/dist/modules/manager/github-actions/extract.js +60 -39
  354. package/dist/modules/manager/github-actions/extract.js.map +1 -1
  355. package/dist/modules/manager/github-actions/schema.d.ts +66 -0
  356. package/dist/modules/manager/github-actions/schema.js +38 -0
  357. package/dist/modules/manager/github-actions/schema.js.map +1 -0
  358. package/dist/modules/manager/gitlabci/extract.d.ts +1 -5
  359. package/dist/modules/manager/gitlabci/extract.js +27 -126
  360. package/dist/modules/manager/gitlabci/extract.js.map +1 -1
  361. package/dist/modules/manager/gitlabci/schema.d.ts +55 -0
  362. package/dist/modules/manager/gitlabci/schema.js +63 -0
  363. package/dist/modules/manager/gitlabci/schema.js.map +1 -0
  364. package/dist/modules/manager/gitlabci-include/extract.js +6 -54
  365. package/dist/modules/manager/gitlabci-include/extract.js.map +1 -1
  366. package/dist/modules/manager/gitlabci-include/schema.d.ts +13 -0
  367. package/dist/modules/manager/gitlabci-include/schema.js +46 -0
  368. package/dist/modules/manager/gitlabci-include/schema.js.map +1 -0
  369. package/dist/modules/manager/glasskube/schema.d.ts +8 -8
  370. package/dist/modules/manager/gomod/artifacts-extra.js +12 -4
  371. package/dist/modules/manager/gomod/artifacts-extra.js.map +1 -1
  372. package/dist/modules/manager/gomod/artifacts.js +24 -10
  373. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  374. package/dist/modules/manager/gomod/extract.js +23 -0
  375. package/dist/modules/manager/gomod/extract.js.map +1 -1
  376. package/dist/modules/manager/gomod/line-parser.js +16 -0
  377. package/dist/modules/manager/gomod/line-parser.js.map +1 -1
  378. package/dist/modules/manager/gomod/update.js +5 -3
  379. package/dist/modules/manager/gomod/update.js.map +1 -1
  380. package/dist/modules/manager/gradle/artifacts.js +0 -1
  381. package/dist/modules/manager/gradle/artifacts.js.map +1 -1
  382. package/dist/modules/manager/gradle/extract/catalog.js +1 -1
  383. package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
  384. package/dist/modules/manager/gradle/extract.js +8 -13
  385. package/dist/modules/manager/gradle/extract.js.map +1 -1
  386. package/dist/modules/manager/gradle/parser/assignments.js +2 -2
  387. package/dist/modules/manager/gradle/parser/assignments.js.map +1 -1
  388. package/dist/modules/manager/gradle/parser/handlers.d.ts +1 -2
  389. package/dist/modules/manager/gradle/parser/handlers.js +17 -24
  390. package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
  391. package/dist/modules/manager/gradle/parser/registry-urls.js +46 -12
  392. package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
  393. package/dist/modules/manager/gradle/types.d.ts +1 -0
  394. package/dist/modules/manager/gradle/types.js.map +1 -1
  395. package/dist/modules/manager/gradle-wrapper/artifacts.js +1 -2
  396. package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
  397. package/dist/modules/manager/helmfile/artifacts.js +0 -1
  398. package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
  399. package/dist/modules/manager/helmfile/extract.js +4 -0
  400. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  401. package/dist/modules/manager/helmfile/schema.d.ts +9 -9
  402. package/dist/modules/manager/helmv3/artifacts.js +0 -1
  403. package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
  404. package/dist/modules/manager/helmv3/utils.js +3 -1
  405. package/dist/modules/manager/helmv3/utils.js.map +1 -1
  406. package/dist/modules/manager/hermit/artifacts.js +0 -1
  407. package/dist/modules/manager/hermit/artifacts.js.map +1 -1
  408. package/dist/modules/manager/homebrew/extract.js +0 -1
  409. package/dist/modules/manager/homebrew/extract.js.map +1 -1
  410. package/dist/modules/manager/jsonnet-bundler/artifacts.js +0 -1
  411. package/dist/modules/manager/jsonnet-bundler/artifacts.js.map +1 -1
  412. package/dist/modules/manager/kustomize/artifacts.d.ts +2 -0
  413. package/dist/modules/manager/kustomize/artifacts.js +154 -0
  414. package/dist/modules/manager/kustomize/artifacts.js.map +1 -0
  415. package/dist/modules/manager/kustomize/common.d.ts +3 -0
  416. package/dist/modules/manager/kustomize/common.js +22 -0
  417. package/dist/modules/manager/kustomize/common.js.map +1 -0
  418. package/dist/modules/manager/kustomize/index.d.ts +1 -0
  419. package/dist/modules/manager/kustomize/index.js +3 -1
  420. package/dist/modules/manager/kustomize/index.js.map +1 -1
  421. package/dist/modules/manager/kustomize/types.d.ts +4 -0
  422. package/dist/modules/manager/kustomize/types.js.map +1 -1
  423. package/dist/modules/manager/maven/extract.d.ts +2 -2
  424. package/dist/modules/manager/maven/extract.js +14 -9
  425. package/dist/modules/manager/maven/extract.js.map +1 -1
  426. package/dist/modules/manager/maven-wrapper/artifacts.js +0 -1
  427. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  428. package/dist/modules/manager/mise/extract.js +1 -1
  429. package/dist/modules/manager/mise/extract.js.map +1 -1
  430. package/dist/modules/manager/mix/artifacts.js +64 -14
  431. package/dist/modules/manager/mix/artifacts.js.map +1 -1
  432. package/dist/modules/manager/mix/index.d.ts +1 -0
  433. package/dist/modules/manager/mix/index.js +2 -1
  434. package/dist/modules/manager/mix/index.js.map +1 -1
  435. package/dist/modules/manager/nix/artifacts.js +0 -1
  436. package/dist/modules/manager/nix/artifacts.js.map +1 -1
  437. package/dist/modules/manager/nix/extract.js +1 -1
  438. package/dist/modules/manager/nix/extract.js.map +1 -1
  439. package/dist/modules/manager/nix/schema.d.ts +20 -20
  440. package/dist/modules/manager/nix/schema.js +1 -0
  441. package/dist/modules/manager/nix/schema.js.map +1 -1
  442. package/dist/modules/manager/npm/artifacts.js +0 -1
  443. package/dist/modules/manager/npm/artifacts.js.map +1 -1
  444. package/dist/modules/manager/npm/extract/common/package-file.js +1 -0
  445. package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
  446. package/dist/modules/manager/npm/extract/yarn.js +2 -2
  447. package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
  448. package/dist/modules/manager/npm/post-update/npm.js +0 -1
  449. package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
  450. package/dist/modules/manager/npm/post-update/pnpm.js +13 -2
  451. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  452. package/dist/modules/manager/npm/post-update/rules.js +11 -1
  453. package/dist/modules/manager/npm/post-update/rules.js.map +1 -1
  454. package/dist/modules/manager/npm/post-update/yarn.js +0 -1
  455. package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
  456. package/dist/modules/manager/npm/schema.d.ts +13 -13
  457. package/dist/modules/manager/npm/update/dependency/index.js +1 -1
  458. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  459. package/dist/modules/manager/nuget/artifacts.js +1 -2
  460. package/dist/modules/manager/nuget/artifacts.js.map +1 -1
  461. package/dist/modules/manager/nuget/extract.js +21 -18
  462. package/dist/modules/manager/nuget/extract.js.map +1 -1
  463. package/dist/modules/manager/nuget/package-tree.js +4 -0
  464. package/dist/modules/manager/nuget/package-tree.js.map +1 -1
  465. package/dist/modules/manager/nuget/schema.d.ts +8 -8
  466. package/dist/modules/manager/nuget/util.js +4 -1
  467. package/dist/modules/manager/nuget/util.js.map +1 -1
  468. package/dist/modules/manager/ocb/schema.d.ts +6 -6
  469. package/dist/modules/manager/pep621/extract.js +19 -3
  470. package/dist/modules/manager/pep621/extract.js.map +1 -1
  471. package/dist/modules/manager/pep621/processors/pdm.js +3 -2
  472. package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
  473. package/dist/modules/manager/pep621/processors/uv.js +4 -1
  474. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  475. package/dist/modules/manager/pep621/schema.d.ts +341 -49
  476. package/dist/modules/manager/pep621/schema.js +3 -1
  477. package/dist/modules/manager/pep621/schema.js.map +1 -1
  478. package/dist/modules/manager/pep621/utils.js +1 -1
  479. package/dist/modules/manager/pep621/utils.js.map +1 -1
  480. package/dist/modules/manager/pip-compile/common.js +0 -1
  481. package/dist/modules/manager/pip-compile/common.js.map +1 -1
  482. package/dist/modules/manager/pip_requirements/artifacts.js +0 -1
  483. package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
  484. package/dist/modules/manager/pip_requirements/common.js +2 -6
  485. package/dist/modules/manager/pip_requirements/common.js.map +1 -1
  486. package/dist/modules/manager/pipenv/artifacts.js +0 -1
  487. package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
  488. package/dist/modules/manager/pixi/artifacts.d.ts +3 -0
  489. package/dist/modules/manager/pixi/artifacts.js +78 -0
  490. package/dist/modules/manager/pixi/artifacts.js.map +1 -0
  491. package/dist/modules/manager/pixi/extract.d.ts +4 -0
  492. package/dist/modules/manager/pixi/extract.js +131 -0
  493. package/dist/modules/manager/pixi/extract.js.map +1 -0
  494. package/dist/modules/manager/pixi/index.d.ts +10 -0
  495. package/dist/modules/manager/pixi/index.js +20 -0
  496. package/dist/modules/manager/pixi/index.js.map +1 -0
  497. package/dist/modules/manager/pixi/schema.d.ts +405 -0
  498. package/dist/modules/manager/pixi/schema.js +147 -0
  499. package/dist/modules/manager/pixi/schema.js.map +1 -0
  500. package/dist/modules/manager/poetry/artifacts.js +3 -4
  501. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  502. package/dist/modules/manager/poetry/extract.js +2 -1
  503. package/dist/modules/manager/poetry/extract.js.map +1 -1
  504. package/dist/modules/manager/poetry/schema.d.ts +44 -44
  505. package/dist/modules/manager/pub/artifacts.js +0 -1
  506. package/dist/modules/manager/pub/artifacts.js.map +1 -1
  507. package/dist/modules/manager/pub/schema.d.ts +8 -8
  508. package/dist/modules/manager/scalafmt/extract.js +1 -1
  509. package/dist/modules/manager/scalafmt/extract.js.map +1 -1
  510. package/dist/modules/manager/sveltos/schema.d.ts +30 -42
  511. package/dist/modules/manager/terraform/lockfile/hash.d.ts +1 -1
  512. package/dist/modules/manager/terraform/util.js +1 -3
  513. package/dist/modules/manager/terraform/util.js.map +1 -1
  514. package/dist/modules/manager/types.d.ts +6 -2
  515. package/dist/modules/manager/types.js.map +1 -1
  516. package/dist/modules/manager/vendir/schema.d.ts +7 -7
  517. package/dist/modules/platform/api.d.ts +1 -1
  518. package/dist/modules/platform/azure/azure-helper.js +2 -2
  519. package/dist/modules/platform/azure/azure-helper.js.map +1 -1
  520. package/dist/modules/platform/azure/index.js +14 -14
  521. package/dist/modules/platform/azure/index.js.map +1 -1
  522. package/dist/modules/platform/bitbucket/comments.js +4 -4
  523. package/dist/modules/platform/bitbucket/comments.js.map +1 -1
  524. package/dist/modules/platform/bitbucket/index.js +49 -44
  525. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  526. package/dist/modules/platform/bitbucket/schema.d.ts +14 -14
  527. package/dist/modules/platform/bitbucket/utils.js +3 -3
  528. package/dist/modules/platform/bitbucket/utils.js.map +1 -1
  529. package/dist/modules/platform/bitbucket-server/index.d.ts +2 -2
  530. package/dist/modules/platform/bitbucket-server/index.js +81 -81
  531. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  532. package/dist/modules/platform/bitbucket-server/pr-cache.d.ts +23 -0
  533. package/dist/modules/platform/bitbucket-server/pr-cache.js +125 -0
  534. package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -0
  535. package/dist/modules/platform/bitbucket-server/schema.d.ts +76 -0
  536. package/dist/modules/platform/bitbucket-server/schema.js +15 -1
  537. package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
  538. package/dist/modules/platform/bitbucket-server/types.d.ts +8 -2
  539. package/dist/modules/platform/bitbucket-server/types.js.map +1 -1
  540. package/dist/modules/platform/bitbucket-server/utils.d.ts +0 -2
  541. package/dist/modules/platform/bitbucket-server/utils.js +6 -52
  542. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  543. package/dist/modules/platform/codecommit/codecommit-client.js +6 -6
  544. package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
  545. package/dist/modules/platform/codecommit/index.js +24 -24
  546. package/dist/modules/platform/codecommit/index.js.map +1 -1
  547. package/dist/modules/platform/gerrit/client.d.ts +0 -3
  548. package/dist/modules/platform/gerrit/client.js +20 -29
  549. package/dist/modules/platform/gerrit/client.js.map +1 -1
  550. package/dist/modules/platform/gerrit/index.js +0 -6
  551. package/dist/modules/platform/gerrit/index.js.map +1 -1
  552. package/dist/modules/platform/gerrit/scm.js +5 -6
  553. package/dist/modules/platform/gerrit/scm.js.map +1 -1
  554. package/dist/modules/platform/gerrit/types.d.ts +1 -4
  555. package/dist/modules/platform/gerrit/types.js.map +1 -1
  556. package/dist/modules/platform/gerrit/utils.d.ts +3 -2
  557. package/dist/modules/platform/gerrit/utils.js +4 -8
  558. package/dist/modules/platform/gerrit/utils.js.map +1 -1
  559. package/dist/modules/platform/gitea/gitea-helper.d.ts +1 -0
  560. package/dist/modules/platform/gitea/gitea-helper.js +16 -0
  561. package/dist/modules/platform/gitea/gitea-helper.js.map +1 -1
  562. package/dist/modules/platform/gitea/index.js +22 -16
  563. package/dist/modules/platform/gitea/index.js.map +1 -1
  564. package/dist/modules/platform/gitea/schema.d.ts +8 -8
  565. package/dist/modules/platform/gitea/types.d.ts +1 -1
  566. package/dist/modules/platform/gitea/types.js.map +1 -1
  567. package/dist/modules/platform/github/common.d.ts +2 -0
  568. package/dist/modules/platform/github/common.js +16 -0
  569. package/dist/modules/platform/github/common.js.map +1 -1
  570. package/dist/modules/platform/github/index.d.ts +1 -1
  571. package/dist/modules/platform/github/index.js +87 -82
  572. package/dist/modules/platform/github/index.js.map +1 -1
  573. package/dist/modules/platform/github/issue.d.ts +18 -18
  574. package/dist/modules/platform/github/massage-markdown-links.js +2 -2
  575. package/dist/modules/platform/github/massage-markdown-links.js.map +1 -1
  576. package/dist/modules/platform/github/pr.js +3 -3
  577. package/dist/modules/platform/github/pr.js.map +1 -1
  578. package/dist/modules/platform/github/schema.d.ts +128 -128
  579. package/dist/modules/platform/github/schema.js +3 -1
  580. package/dist/modules/platform/github/schema.js.map +1 -1
  581. package/dist/modules/platform/gitlab/index.js +63 -49
  582. package/dist/modules/platform/gitlab/index.js.map +1 -1
  583. package/dist/modules/platform/index.js +0 -1
  584. package/dist/modules/platform/index.js.map +1 -1
  585. package/dist/modules/platform/scm.d.ts +1 -1
  586. package/dist/modules/versioning/api.js +2 -0
  587. package/dist/modules/versioning/api.js.map +1 -1
  588. package/dist/modules/versioning/composer/index.js +10 -0
  589. package/dist/modules/versioning/composer/index.js.map +1 -1
  590. package/dist/modules/versioning/conda/index.d.ts +41 -0
  591. package/dist/modules/versioning/conda/index.js +178 -0
  592. package/dist/modules/versioning/conda/index.js.map +1 -0
  593. package/dist/modules/versioning/distro.js +1 -3
  594. package/dist/modules/versioning/distro.js.map +1 -1
  595. package/dist/modules/versioning/hashicorp/convertor.d.ts +2 -1
  596. package/dist/modules/versioning/hashicorp/convertor.js +13 -8
  597. package/dist/modules/versioning/hashicorp/convertor.js.map +1 -1
  598. package/dist/modules/versioning/hex/index.js +3 -3
  599. package/dist/modules/versioning/hex/index.js.map +1 -1
  600. package/dist/modules/versioning/npm/index.js +2 -1
  601. package/dist/modules/versioning/npm/index.js.map +1 -1
  602. package/dist/modules/versioning/types.d.ts +4 -0
  603. package/dist/modules/versioning/types.js.map +1 -1
  604. package/dist/proxy.js +2 -1
  605. package/dist/proxy.js.map +1 -1
  606. package/dist/renovate.js +2 -2
  607. package/dist/renovate.js.map +1 -1
  608. package/dist/util/cache/package/redis.js +0 -1
  609. package/dist/util/cache/package/redis.js.map +1 -1
  610. package/dist/util/cache/package/types.d.ts +1 -1
  611. package/dist/util/cache/package/types.js.map +1 -1
  612. package/dist/util/cache/repository/impl/base.d.ts +1 -1
  613. package/dist/util/cache/repository/impl/base.js +4 -0
  614. package/dist/util/cache/repository/impl/base.js.map +1 -1
  615. package/dist/util/cache/repository/schema.d.ts +4 -4
  616. package/dist/util/cache/repository/types.d.ts +3 -0
  617. package/dist/util/cache/repository/types.js.map +1 -1
  618. package/dist/util/common.d.ts +4 -2
  619. package/dist/util/common.js +17 -3
  620. package/dist/util/common.js.map +1 -1
  621. package/dist/util/env.d.ts +4 -0
  622. package/dist/util/env.js +22 -0
  623. package/dist/util/env.js.map +1 -0
  624. package/dist/util/exec/containerbase.js +19 -14
  625. package/dist/util/exec/containerbase.js.map +1 -1
  626. package/dist/util/exec/index.js +5 -2
  627. package/dist/util/exec/index.js.map +1 -1
  628. package/dist/util/exec/types.d.ts +0 -2
  629. package/dist/util/exec/types.js.map +1 -1
  630. package/dist/util/exec/utils.d.ts +1 -1
  631. package/dist/util/exec/utils.js +6 -5
  632. package/dist/util/exec/utils.js.map +1 -1
  633. package/dist/util/git/auth.js +8 -5
  634. package/dist/util/git/auth.js.map +1 -1
  635. package/dist/util/git/author.js +1 -1
  636. package/dist/util/git/author.js.map +1 -1
  637. package/dist/util/git/config.js +0 -1
  638. package/dist/util/git/config.js.map +1 -1
  639. package/dist/util/git/error.js +4 -2
  640. package/dist/util/git/error.js.map +1 -1
  641. package/dist/util/git/index.js +75 -52
  642. package/dist/util/git/index.js.map +1 -1
  643. package/dist/util/git/private-key.js +2 -4
  644. package/dist/util/git/private-key.js.map +1 -1
  645. package/dist/util/git/types.d.ts +2 -0
  646. package/dist/util/git/types.js.map +1 -1
  647. package/dist/util/git/url.js +1 -1
  648. package/dist/util/git/url.js.map +1 -1
  649. package/dist/util/github/graphql/datasource-fetcher.js +3 -5
  650. package/dist/util/github/graphql/datasource-fetcher.js.map +1 -1
  651. package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +2 -2
  652. package/dist/util/github/graphql/query-adapters/tags-query-adapter.d.ts +2 -2
  653. package/dist/util/http/auth.js +0 -1
  654. package/dist/util/http/auth.js.map +1 -1
  655. package/dist/util/http/bitbucket-server.d.ts +7 -5
  656. package/dist/util/http/bitbucket-server.js +26 -23
  657. package/dist/util/http/bitbucket-server.js.map +1 -1
  658. package/dist/util/http/bitbucket.d.ts +6 -5
  659. package/dist/util/http/bitbucket.js +34 -31
  660. package/dist/util/http/bitbucket.js.map +1 -1
  661. package/dist/util/http/cache/abstract-http-cache-provider.js +2 -2
  662. package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
  663. package/dist/util/http/cache/memory-http-cache-provider.d.ts +10 -0
  664. package/dist/util/http/cache/memory-http-cache-provider.js +29 -0
  665. package/dist/util/http/cache/memory-http-cache-provider.js.map +1 -0
  666. package/dist/util/http/cache/package-http-cache-provider.d.ts +23 -0
  667. package/dist/util/http/cache/package-http-cache-provider.js +80 -0
  668. package/dist/util/http/cache/package-http-cache-provider.js.map +1 -0
  669. package/dist/util/http/cache/schema.d.ts +2 -2
  670. package/dist/util/http/errors.d.ts +2 -0
  671. package/dist/util/http/errors.js +8 -0
  672. package/dist/util/http/errors.js.map +1 -0
  673. package/dist/util/http/gerrit.d.ts +6 -4
  674. package/dist/util/http/gerrit.js +11 -12
  675. package/dist/util/http/gerrit.js.map +1 -1
  676. package/dist/util/http/gitea.d.ts +5 -4
  677. package/dist/util/http/gitea.js +14 -13
  678. package/dist/util/http/gitea.js.map +1 -1
  679. package/dist/util/http/github.d.ts +14 -8
  680. package/dist/util/http/github.js +65 -60
  681. package/dist/util/http/github.js.map +1 -1
  682. package/dist/util/http/gitlab.d.ts +7 -5
  683. package/dist/util/http/gitlab.js +58 -46
  684. package/dist/util/http/gitlab.js.map +1 -1
  685. package/dist/util/http/got.d.ts +9 -0
  686. package/dist/util/http/got.js +54 -0
  687. package/dist/util/http/got.js.map +1 -0
  688. package/dist/util/http/host-rules.d.ts +2 -1
  689. package/dist/util/http/host-rules.js +17 -4
  690. package/dist/util/http/host-rules.js.map +1 -1
  691. package/dist/util/http/http.d.ts +93 -0
  692. package/dist/util/http/http.js +346 -0
  693. package/dist/util/http/http.js.map +1 -0
  694. package/dist/util/http/index.d.ts +6 -74
  695. package/dist/util/http/index.js +5 -359
  696. package/dist/util/http/index.js.map +1 -1
  697. package/dist/util/http/legacy.js +4 -1
  698. package/dist/util/http/legacy.js.map +1 -1
  699. package/dist/util/http/types.d.ts +9 -16
  700. package/dist/util/http/types.js.map +1 -1
  701. package/dist/util/schema-utils.d.ts +1 -0
  702. package/dist/util/schema-utils.js +43 -8
  703. package/dist/util/schema-utils.js.map +1 -1
  704. package/dist/util/stats.d.ts +10 -0
  705. package/dist/util/stats.js +45 -1
  706. package/dist/util/stats.js.map +1 -1
  707. package/dist/util/string.d.ts +16 -0
  708. package/dist/util/string.js +79 -0
  709. package/dist/util/string.js.map +1 -1
  710. package/dist/util/toml.d.ts +1 -0
  711. package/dist/util/toml.js +6 -0
  712. package/dist/util/toml.js.map +1 -1
  713. package/dist/util/url.js +3 -8
  714. package/dist/util/url.js.map +1 -1
  715. package/dist/util/yaml.js +3 -8
  716. package/dist/util/yaml.js.map +1 -1
  717. package/dist/workers/global/autodiscover.js +1 -19
  718. package/dist/workers/global/autodiscover.js.map +1 -1
  719. package/dist/workers/global/config/parse/env.js +3 -3
  720. package/dist/workers/global/config/parse/env.js.map +1 -1
  721. package/dist/workers/global/config/parse/file.js +18 -8
  722. package/dist/workers/global/config/parse/file.js.map +1 -1
  723. package/dist/workers/global/config/parse/host-rules-from-env.js +6 -2
  724. package/dist/workers/global/config/parse/host-rules-from-env.js.map +1 -1
  725. package/dist/workers/global/config/parse/index.js +15 -0
  726. package/dist/workers/global/config/parse/index.js.map +1 -1
  727. package/dist/workers/global/index.js +4 -2
  728. package/dist/workers/global/index.js.map +1 -1
  729. package/dist/workers/repository/cache.js +1 -2
  730. package/dist/workers/repository/cache.js.map +1 -1
  731. package/dist/workers/repository/config-migration/branch/migrated-data.js +2 -0
  732. package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
  733. package/dist/workers/repository/index.js +1 -0
  734. package/dist/workers/repository/index.js.map +1 -1
  735. package/dist/workers/repository/init/merge.js +6 -3
  736. package/dist/workers/repository/init/merge.js.map +1 -1
  737. package/dist/workers/repository/onboarding/pr/config-description.js +3 -1
  738. package/dist/workers/repository/onboarding/pr/config-description.js.map +1 -1
  739. package/dist/workers/repository/onboarding/pr/index.js +4 -0
  740. package/dist/workers/repository/onboarding/pr/index.js.map +1 -1
  741. package/dist/workers/repository/process/extract-update.js +0 -1
  742. package/dist/workers/repository/process/extract-update.js.map +1 -1
  743. package/dist/workers/repository/process/fingerprint-fields.js +0 -1
  744. package/dist/workers/repository/process/fingerprint-fields.js.map +1 -1
  745. package/dist/workers/repository/process/libyear.js +2 -2
  746. package/dist/workers/repository/process/libyear.js.map +1 -1
  747. package/dist/workers/repository/process/lookup/index.js +15 -4
  748. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  749. package/dist/workers/repository/process/lookup/timestamps.d.ts +18 -0
  750. package/dist/workers/repository/process/lookup/timestamps.js +69 -0
  751. package/dist/workers/repository/process/lookup/timestamps.js.map +1 -0
  752. package/dist/workers/repository/process/lookup/types.d.ts +1 -0
  753. package/dist/workers/repository/process/lookup/types.js.map +1 -1
  754. package/dist/workers/repository/process/lookup/utils.js +20 -9
  755. package/dist/workers/repository/process/lookup/utils.js.map +1 -1
  756. package/dist/workers/repository/process/sort.js +1 -1
  757. package/dist/workers/repository/process/sort.js.map +1 -1
  758. package/dist/workers/repository/process/vulnerabilities.js +1 -1
  759. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  760. package/dist/workers/repository/process/write.js +1 -8
  761. package/dist/workers/repository/process/write.js.map +1 -1
  762. package/dist/workers/repository/reconfigure/utils.d.ts +2 -0
  763. package/dist/workers/repository/reconfigure/utils.js +16 -0
  764. package/dist/workers/repository/reconfigure/utils.js.map +1 -1
  765. package/dist/workers/repository/reconfigure/validate.js +6 -17
  766. package/dist/workers/repository/reconfigure/validate.js.map +1 -1
  767. package/dist/workers/repository/update/branch/auto-replace.js +25 -5
  768. package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
  769. package/dist/workers/repository/update/branch/commit.js +2 -0
  770. package/dist/workers/repository/update/branch/commit.js.map +1 -1
  771. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +17 -8
  772. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  773. package/dist/workers/repository/update/pr/body/config-description.js +26 -1
  774. package/dist/workers/repository/update/pr/body/config-description.js.map +1 -1
  775. package/dist/workers/repository/update/pr/body/index.js +21 -14
  776. package/dist/workers/repository/update/pr/body/index.js.map +1 -1
  777. package/dist/workers/repository/update/pr/changelog/api.js +8 -6
  778. package/dist/workers/repository/update/pr/changelog/api.js.map +1 -1
  779. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +1 -1
  780. package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
  781. package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.d.ts +3 -0
  782. package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js +39 -0
  783. package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js.map +1 -0
  784. package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.d.ts +8 -0
  785. package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.js +31 -0
  786. package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.js.map +1 -0
  787. package/dist/workers/repository/update/pr/changelog/github/index.js +6 -3
  788. package/dist/workers/repository/update/pr/changelog/github/index.js.map +1 -1
  789. package/dist/workers/repository/update/pr/changelog/gitlab/index.js +1 -1
  790. package/dist/workers/repository/update/pr/changelog/gitlab/index.js.map +1 -1
  791. package/dist/workers/repository/update/pr/changelog/release-notes.js +12 -8
  792. package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
  793. package/dist/workers/repository/update/pr/changelog/source.d.ts +1 -1
  794. package/dist/workers/repository/update/pr/changelog/source.js +1 -0
  795. package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
  796. package/dist/workers/repository/update/pr/changelog/types.d.ts +1 -1
  797. package/dist/workers/repository/update/pr/changelog/types.js.map +1 -1
  798. package/dist/workers/repository/update/pr/index.js +2 -4
  799. package/dist/workers/repository/update/pr/index.js.map +1 -1
  800. package/dist/workers/repository/updates/flatten.js +8 -4
  801. package/dist/workers/repository/updates/flatten.js.map +1 -1
  802. package/dist/workers/repository/updates/generate.js +3 -2
  803. package/dist/workers/repository/updates/generate.js.map +1 -1
  804. package/dist/workers/types.d.ts +1 -4
  805. package/dist/workers/types.js.map +1 -1
  806. package/package.json +86 -83
  807. package/renovate-schema.json +25 -10
  808. package/dist/modules/manager/github-actions/types.d.ts +0 -30
  809. package/dist/modules/manager/github-actions/types.js +0 -3
  810. package/dist/modules/manager/github-actions/types.js.map +0 -1
  811. package/dist/modules/manager/gitlabci/common.d.ts +0 -6
  812. package/dist/modules/manager/gitlabci/common.js +0 -30
  813. package/dist/modules/manager/gitlabci/common.js.map +0 -1
  814. package/dist/modules/manager/gitlabci/types.d.ts +0 -35
  815. package/dist/modules/manager/gitlabci/types.js +0 -3
  816. package/dist/modules/manager/gitlabci/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/git-refs/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { regEx } from '../../../util/regex';\nimport type { DigestConfig, GetReleasesConfig, ReleaseResult } from '../types';\nimport { GitDatasource } from './base';\nimport type { RawRefs } from './types';\n\n// git will prompt for known hosts or passwords, unless we activate BatchMode\nprocess.env.GIT_SSH_COMMAND = 'ssh -o BatchMode=yes';\n\nexport class GitRefsDatasource extends GitDatasource {\n static override readonly id = 'git-refs';\n\n constructor() {\n super(GitRefsDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined by using the `packageName` and `registryUrl`.';\n\n @cache({\n namespace: `datasource-${GitRefsDatasource.id}`,\n key: ({ packageName }: GetReleasesConfig) => packageName,\n })\n override async getReleases({\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n let rawRefs: RawRefs[] | null = null;\n\n try {\n rawRefs = await this.getRawRefs({ packageName });\n } catch (err) /* istanbul ignore next */ {\n logger.debug({ err }, 'Error getting git-refs');\n }\n\n if (!rawRefs) {\n return null;\n }\n\n const refs = rawRefs\n .filter((ref) => ref.type === 'tags' || ref.type === 'heads')\n .map((ref) => ref.value);\n\n const uniqueRefs = [...new Set(refs)];\n\n const sourceUrl = packageName\n .replace(regEx(/\\.git$/), '')\n .replace(regEx(/\\/$/), '');\n\n const result: ReleaseResult = {\n sourceUrl,\n releases: uniqueRefs.map((ref) => ({\n version: ref,\n gitRef: ref,\n newDigest: rawRefs.find((rawRef) => rawRef.value === ref)?.hash,\n })),\n };\n\n return result;\n }\n\n override async getDigest(\n { packageName }: DigestConfig,\n newValue?: string,\n ): Promise<string | null> {\n const rawRefs: RawRefs[] | null = await this.getRawRefs({ packageName });\n\n // istanbul ignore if\n if (!rawRefs) {\n return null;\n }\n\n let ref: RawRefs | undefined;\n if (newValue) {\n ref = rawRefs.find(\n (rawRef) =>\n ['heads', 'tags'].includes(rawRef.type) && rawRef.value === newValue,\n );\n } else {\n ref = rawRefs.find(\n (rawRef) => rawRef.type === '' && rawRef.value === 'HEAD',\n );\n }\n if (ref) {\n return ref.hash;\n }\n return null;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/git-refs/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { regEx } from '../../../util/regex';\nimport type { DigestConfig, GetReleasesConfig, ReleaseResult } from '../types';\nimport { GitDatasource } from './base';\nimport type { RawRefs } from './types';\n\n// git will prompt for known hosts or passwords, unless we activate BatchMode\nprocess.env.GIT_SSH_COMMAND = 'ssh -o BatchMode=yes';\n\nexport class GitRefsDatasource extends GitDatasource {\n static override readonly id = 'git-refs';\n\n constructor() {\n super(GitRefsDatasource.id);\n }\n\n override readonly customRegistrySupport = false;\n\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined by using the `packageName` and `registryUrl`.';\n\n @cache({\n namespace: `datasource-${GitRefsDatasource.id}`,\n key: ({ packageName }: GetReleasesConfig) => packageName,\n })\n override async getReleases({\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n let rawRefs: RawRefs[] | null = null;\n\n try {\n rawRefs = await this.getRawRefs({ packageName });\n } catch (err) /* istanbul ignore next */ {\n logger.debug({ err }, 'Error getting git-refs');\n }\n\n if (!rawRefs) {\n return null;\n }\n\n const refs = rawRefs\n .filter((ref) => ref.type === 'tags' || ref.type === 'heads')\n .map((ref) => ref.value);\n\n const uniqueRefs = [...new Set(refs)];\n\n const sourceUrl = packageName\n .replace(regEx(/\\.git$/), '')\n .replace(regEx(/\\/$/), '');\n\n const result: ReleaseResult = {\n sourceUrl,\n releases: uniqueRefs.map((ref) => ({\n version: ref,\n gitRef: ref,\n newDigest: rawRefs.find((rawRef) => rawRef.value === ref)?.hash,\n })),\n };\n\n return result;\n }\n\n override async getDigest(\n { packageName }: DigestConfig,\n newValue?: string,\n ): Promise<string | null> {\n const rawRefs: RawRefs[] | null = await this.getRawRefs({ packageName });\n\n /* v8 ignore next 3 -- TODO: add test */\n if (!rawRefs) {\n return null;\n }\n\n let ref: RawRefs | undefined;\n if (newValue) {\n ref = rawRefs.find(\n (rawRef) =>\n ['heads', 'tags'].includes(rawRef.type) && rawRef.value === newValue,\n );\n } else {\n ref = rawRefs.find(\n (rawRef) => rawRef.type === '' && rawRef.value === 'HEAD',\n );\n }\n if (ref) {\n return ref.hash;\n }\n return null;\n }\n}\n"]}
@@ -7,14 +7,14 @@ export declare const ReleaseSchema: z.ZodObject<{
7
7
  published_at: z.ZodCatch<z.ZodNullable<z.ZodEffects<z.ZodUnknown, import("../../../util/timestamp").Timestamp, unknown>>>;
8
8
  }, "strip", z.ZodTypeAny, {
9
9
  name: string;
10
- body: string;
11
10
  prerelease: boolean;
12
- tag_name: string;
11
+ body: string;
13
12
  published_at: import("../../../util/timestamp").Timestamp | null;
13
+ tag_name: string;
14
14
  }, {
15
15
  name: string;
16
- body: string;
17
16
  prerelease: boolean;
17
+ body: string;
18
18
  tag_name: string;
19
19
  published_at?: unknown;
20
20
  }>;
@@ -26,14 +26,14 @@ export declare const ReleasesSchema: z.ZodArray<z.ZodObject<{
26
26
  published_at: z.ZodCatch<z.ZodNullable<z.ZodEffects<z.ZodUnknown, import("../../../util/timestamp").Timestamp, unknown>>>;
27
27
  }, "strip", z.ZodTypeAny, {
28
28
  name: string;
29
- body: string;
30
29
  prerelease: boolean;
31
- tag_name: string;
30
+ body: string;
32
31
  published_at: import("../../../util/timestamp").Timestamp | null;
32
+ tag_name: string;
33
33
  }, {
34
34
  name: string;
35
- body: string;
36
35
  prerelease: boolean;
36
+ body: string;
37
37
  tag_name: string;
38
38
  published_at?: unknown;
39
39
  }>, "many">;
@@ -26,17 +26,17 @@ export declare const TagSchema: z.ZodObject<{
26
26
  created?: unknown;
27
27
  }>;
28
28
  }, "strip", z.ZodTypeAny, {
29
- name: string;
30
29
  commit: {
31
30
  created: import("../../../util/timestamp").Timestamp | null;
32
31
  sha: string;
33
32
  };
34
- }, {
35
33
  name: string;
34
+ }, {
36
35
  commit: {
37
36
  sha: string;
38
37
  created?: unknown;
39
38
  };
39
+ name: string;
40
40
  }>;
41
41
  export declare const TagsSchema: z.ZodArray<z.ZodObject<{
42
42
  name: z.ZodString;
@@ -51,15 +51,15 @@ export declare const TagsSchema: z.ZodArray<z.ZodObject<{
51
51
  created?: unknown;
52
52
  }>;
53
53
  }, "strip", z.ZodTypeAny, {
54
- name: string;
55
54
  commit: {
56
55
  created: import("../../../util/timestamp").Timestamp | null;
57
56
  sha: string;
58
57
  };
59
- }, {
60
58
  name: string;
59
+ }, {
61
60
  commit: {
62
61
  sha: string;
63
62
  created?: unknown;
64
63
  };
64
+ name: string;
65
65
  }>, "many">;
@@ -37,7 +37,7 @@ class GithubReleaseAttachmentsDatasource extends datasource_1.Datasource {
37
37
  async findDigestFile(release, digest) {
38
38
  const smallAssets = release.assets.filter((a) => a.size < 5 * 1024);
39
39
  for (const asset of smallAssets) {
40
- const res = await this.http.get(asset.browser_download_url);
40
+ const res = await this.http.getText(asset.browser_download_url);
41
41
  for (const line of res.body.split(regex_1.newlineRegex)) {
42
42
  const [lineDigest, lineFilename] = line.split((0, regex_1.regEx)(/\s+/), 2);
43
43
  if (lineDigest === digest) {
@@ -100,7 +100,7 @@ class GithubReleaseAttachmentsDatasource extends datasource_1.Datasource {
100
100
  }
101
101
  if (digestAsset.digestedFileName) {
102
102
  const releaseFilename = digestAsset.digestedFileName.replace(current, next);
103
- const res = await this.http.get(releaseAsset.browser_download_url);
103
+ const res = await this.http.getText(releaseAsset.browser_download_url);
104
104
  for (const line of res.body.split(regex_1.newlineRegex)) {
105
105
  const [lineDigest, lineFn] = line.split((0, regex_1.regEx)(/\s+/), 2);
106
106
  if (lineFn === releaseFilename) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/github-release-attachments/index.ts"],"names":[],"mappings":";;;;AAAA,kEAAkC;AAClC,4CAAyC;AACzC,qEAA8D;AAC9D,0DAA6D;AAM7D,kDAAuE;AACvE,6CAAgD;AAChD,sDAAuD;AACvD,+CAA0D;AAC1D,8CAA2C;AAQ9B,QAAA,cAAc,GAAG,4BAA4B,CAAC;AAE3D,SAAS,YAAY,CAAC,MAAc;IAClC,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,EAAE;YACL,OAAO,QAAQ,CAAC;QAClB,QAAQ;QACR,KAAK,EAAE;YACL,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED,MAAa,kCAAmC,SAAQ,uBAAU;IAChE,MAAM,CAAU,EAAE,GAAG,4BAA4B,CAAC;IAEhC,mBAAmB,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAEtD,IAAI,CAAa;IAER,uBAAuB,GAAG,IAAI,CAAC;IACjD,iBAAiB;IACC,oBAAoB,GACpC,uFAAuF,CAAC;IACxE,gBAAgB,GAAG,SAAS,CAAC;IAC7B,aAAa,GAC7B,4EAA4E,CAAC;IAE/E;QACE,KAAK,CAAC,kCAAkC,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,IAAI,mBAAU,CAAC,kCAAkC,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IAQK,AAAN,KAAK,CAAC,cAAc,CAClB,OAA0B,EAC1B,MAAc;QAEd,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CACvC,CAAC,CAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAC1C,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAC5D,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAY,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,aAAK,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/D,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;oBAC1B,OAAO;wBACL,SAAS,EAAE,KAAK,CAAC,IAAI;wBACrB,gBAAgB,EAAE,YAAY;wBAC9B,cAAc,EAAE,OAAO,CAAC,QAAQ;wBAChC,aAAa,EAAE,UAAU;qBAC1B,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAQK,AAAN,KAAK,CAAC,iBAAiB,CACrB,KAAsB,EACtB,SAAiB;QAEjB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAU,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,OAA0B,EAC1B,MAAc;QAEd,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CACtC,CAAC,CAAkB,EAAE,CAAkB,EAAE,EAAE;YACzC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpB,OAAO,CAAC,CAAC,CAAC;YACZ,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpB,OAAO,CAAC,CAAC;YACX,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CACF,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACnE,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;gBAC3B,OAAO;oBACL,SAAS,EAAE,KAAK,CAAC,IAAI;oBACrB,cAAc,EAAE,OAAO,CAAC,QAAQ;oBAChC,aAAa,EAAE,WAAW;iBAC3B,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yDAAyD;IACzD,KAAK,CAAC,eAAe,CACnB,OAA0B,EAC1B,MAAc;QAEd,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9D,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC9D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,uBAAuB,CAC3B,WAA6B,EAC7B,OAA0B;QAE1B,MAAM,OAAO,GAAG,WAAW,CAAC,cAAc,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACpE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACvD,MAAM,wBAAwB,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,CAC5D,OAAO,EACP,IAAI,CACL,CAAC;QACF,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CACtC,CAAC,CAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,wBAAwB,CAC5D,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,WAAW,CAAC,gBAAgB,EAAE,CAAC;YACjC,MAAM,eAAe,GAAG,WAAW,CAAC,gBAAgB,CAAC,OAAO,CAC1D,OAAO,EACP,IAAI,CACL,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;YACnE,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAY,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,aAAK,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;gBACzD,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;oBAC/B,OAAO,UAAU,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAC1D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YACxE,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;OAWG;IACM,KAAK,CAAC,SAAS,CACtB,EACE,WAAW,EAAE,IAAI,EACjB,YAAY,EACZ,aAAa,EACb,WAAW,GACE,EACf,QAAgB;QAEhB,eAAM,CAAC,KAAK,CACV,EAAE,IAAI,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,EAC5D,WAAW,CACZ,CAAC;QACF,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,MAAM,UAAU,GAAG,IAAA,mBAAa,EAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAC5B,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAC9B,GAAG,UAAU,SAAS,IAAI,kBAAkB,YAAY,EAAE,CAC3D,CAAC;QACJ,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,CAC5C,cAAc,EACd,aAAa,CACd,CAAC;QACF,IAAI,SAAwB,CAAC;QAC7B,IAAI,CAAC,WAAW,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;YAC9C,SAAS,GAAG,aAAa,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GACxB,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAC9B,GAAG,UAAU,SAAS,IAAI,kBAAkB,QAAQ,EAAE,CACvD,CAAC;YACJ,SAAS,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,WAAW,CAAC,MAAyB;QACzC,MAAM,cAAc,GAAG,MAAM,IAAA,uBAAa,EAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC3C,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;YACrD,MAAM,MAAM,GAAY;gBACtB,OAAO;gBACP,MAAM,EAAE,OAAO;gBACf,gBAAgB;aACjB,CAAC;YACF,IAAI,YAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC7B,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,IAAA,kBAAY,EAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACvE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACjC,CAAC;;AAjOH,gFAkOC;AAxMO;IANL,IAAA,iBAAK,EAAC;QACL,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,cAAc,kCAAkC,CAAC,EAAE,EAAE;QAChE,GAAG,EAAE,CAAC,OAA0B,EAAE,MAAc,EAAE,EAAE,CAClD,kBAAkB,OAAO,CAAC,QAAQ,IAAI,MAAM,EAAE;KACjD,CAAC;wEAuBD;AAQK;IANL,IAAA,iBAAK,EAAC;QACL,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,cAAc,kCAAkC,CAAC,EAAE,EAAE;QAChE,GAAG,EAAE,CAAC,KAAsB,EAAE,SAAiB,EAAE,EAAE,CACjD,qBAAqB,KAAK,CAAC,oBAAoB,IAAI,SAAS,EAAE;KACjE,CAAC;2EAQD","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { queryReleases } from '../../../util/github/graphql';\nimport type {\n GithubDigestFile,\n GithubRestAsset,\n GithubRestRelease,\n} from '../../../util/github/types';\nimport { getApiBaseUrl, getSourceUrl } from '../../../util/github/url';\nimport { hashStream } from '../../../util/hash';\nimport { GithubHttp } from '../../../util/http/github';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport { Datasource } from '../datasource';\nimport type {\n DigestConfig,\n GetReleasesConfig,\n Release,\n ReleaseResult,\n} from '../types';\n\nexport const cacheNamespace = 'datasource-github-releases';\n\nfunction inferHashAlg(digest: string): string {\n switch (digest.length) {\n case 64:\n return 'sha256';\n default:\n case 96:\n return 'sha512';\n }\n}\n\nexport class GithubReleaseAttachmentsDatasource extends Datasource {\n static readonly id = 'github-release-attachments';\n\n override readonly defaultRegistryUrls = ['https://github.com'];\n\n override http: GithubHttp;\n\n override readonly releaseTimestampSupport = true;\n // Note: not sure\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `releaseTimestamp` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined by using the `packageName` and `registryUrl`.';\n\n constructor() {\n super(GithubReleaseAttachmentsDatasource.id);\n this.http = new GithubHttp(GithubReleaseAttachmentsDatasource.id);\n }\n\n @cache({\n ttlMinutes: 1440,\n namespace: `datasource-${GithubReleaseAttachmentsDatasource.id}`,\n key: (release: GithubRestRelease, digest: string) =>\n `findDigestFile:${release.html_url}:${digest}`,\n })\n async findDigestFile(\n release: GithubRestRelease,\n digest: string,\n ): Promise<GithubDigestFile | null> {\n const smallAssets = release.assets.filter(\n (a: GithubRestAsset) => a.size < 5 * 1024,\n );\n for (const asset of smallAssets) {\n const res = await this.http.get(asset.browser_download_url);\n for (const line of res.body.split(newlineRegex)) {\n const [lineDigest, lineFilename] = line.split(regEx(/\\s+/), 2);\n if (lineDigest === digest) {\n return {\n assetName: asset.name,\n digestedFileName: lineFilename,\n currentVersion: release.tag_name,\n currentDigest: lineDigest,\n };\n }\n }\n }\n return null;\n }\n\n @cache({\n ttlMinutes: 1440,\n namespace: `datasource-${GithubReleaseAttachmentsDatasource.id}`,\n key: (asset: GithubRestAsset, algorithm: string) =>\n `downloadAndDigest:${asset.browser_download_url}:${algorithm}`,\n })\n async downloadAndDigest(\n asset: GithubRestAsset,\n algorithm: string,\n ): Promise<string> {\n const res = this.http.stream(asset.browser_download_url);\n const digest = await hashStream(res, algorithm);\n return digest;\n }\n\n async findAssetWithDigest(\n release: GithubRestRelease,\n digest: string,\n ): Promise<GithubDigestFile | null> {\n const algorithm = inferHashAlg(digest);\n const assetsBySize = release.assets.sort(\n (a: GithubRestAsset, b: GithubRestAsset) => {\n if (a.size < b.size) {\n return -1;\n }\n if (a.size > b.size) {\n return 1;\n }\n return 0;\n },\n );\n\n for (const asset of assetsBySize) {\n const assetDigest = await this.downloadAndDigest(asset, algorithm);\n if (assetDigest === digest) {\n return {\n assetName: asset.name,\n currentVersion: release.tag_name,\n currentDigest: assetDigest,\n };\n }\n }\n return null;\n }\n\n /** Identify the asset associated with a known digest. */\n async findDigestAsset(\n release: GithubRestRelease,\n digest: string,\n ): Promise<GithubDigestFile | null> {\n const digestFile = await this.findDigestFile(release, digest);\n if (digestFile) {\n return digestFile;\n }\n\n const asset = await this.findAssetWithDigest(release, digest);\n return asset;\n }\n\n /** Given a digest asset, find the equivalent digest in a different release. */\n async mapDigestAssetToRelease(\n digestAsset: GithubDigestFile,\n release: GithubRestRelease,\n ): Promise<string | null> {\n const current = digestAsset.currentVersion.replace(regEx(/^v/), '');\n const next = release.tag_name.replace(regEx(/^v/), '');\n const releaseChecksumAssetName = digestAsset.assetName.replace(\n current,\n next,\n );\n const releaseAsset = release.assets.find(\n (a: GithubRestAsset) => a.name === releaseChecksumAssetName,\n );\n if (!releaseAsset) {\n return null;\n }\n if (digestAsset.digestedFileName) {\n const releaseFilename = digestAsset.digestedFileName.replace(\n current,\n next,\n );\n const res = await this.http.get(releaseAsset.browser_download_url);\n for (const line of res.body.split(newlineRegex)) {\n const [lineDigest, lineFn] = line.split(regEx(/\\s+/), 2);\n if (lineFn === releaseFilename) {\n return lineDigest;\n }\n }\n } else {\n const algorithm = inferHashAlg(digestAsset.currentDigest);\n const newDigest = await this.downloadAndDigest(releaseAsset, algorithm);\n return newDigest;\n }\n return null;\n }\n\n /**\n * Attempts to resolve the digest for the specified package.\n *\n * The `newValue` supplied here should be a valid tag for the GitHub release.\n * Requires `currentValue` and `currentDigest`.\n *\n * There may be many assets attached to the release. This function will:\n * - Identify the asset pinned by `currentDigest` in the `currentValue` release\n * - Download small release assets, parse as checksum manifests (e.g. `SHASUMS.txt`).\n * - Download individual assets until `currentDigest` is encountered. This is limited to sha256 and sha512.\n * - Map the hashed asset to `newValue` and return the updated digest as a string\n */\n override async getDigest(\n {\n packageName: repo,\n currentValue,\n currentDigest,\n registryUrl,\n }: DigestConfig,\n newValue: string,\n ): Promise<string | null> {\n logger.debug(\n { repo, currentValue, currentDigest, registryUrl, newValue },\n 'getDigest',\n );\n if (!currentDigest) {\n return null;\n }\n if (!currentValue) {\n return currentDigest;\n }\n\n const apiBaseUrl = getApiBaseUrl(registryUrl);\n const { body: currentRelease } =\n await this.http.getJsonUnchecked<GithubRestRelease>(\n `${apiBaseUrl}repos/${repo}/releases/tags/${currentValue}`,\n );\n const digestAsset = await this.findDigestAsset(\n currentRelease,\n currentDigest,\n );\n let newDigest: string | null;\n if (!digestAsset || newValue === currentValue) {\n newDigest = currentDigest;\n } else {\n const { body: newRelease } =\n await this.http.getJsonUnchecked<GithubRestRelease>(\n `${apiBaseUrl}repos/${repo}/releases/tags/${newValue}`,\n );\n newDigest = await this.mapDigestAssetToRelease(digestAsset, newRelease);\n }\n return newDigest;\n }\n\n /**\n * This function can be used to fetch releases with a customizable versioning\n * (e.g. semver) and with releases.\n *\n * This function will:\n * - Fetch all releases\n * - Sanitize the versions if desired (e.g. strip out leading 'v')\n * - Return a dependency object containing sourceUrl string and releases array\n */\n async getReleases(config: GetReleasesConfig): Promise<ReleaseResult> {\n const releasesResult = await queryReleases(config, this.http);\n const releases = releasesResult.map((item) => {\n const { version, releaseTimestamp, isStable } = item;\n const result: Release = {\n version,\n gitRef: version,\n releaseTimestamp,\n };\n if (is.boolean(isStable)) {\n result.isStable = isStable;\n }\n return result;\n });\n const sourceUrl = getSourceUrl(config.packageName, config.registryUrl);\n return { sourceUrl, releases };\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/github-release-attachments/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { queryReleases } from '../../../util/github/graphql';\nimport type {\n GithubDigestFile,\n GithubRestAsset,\n GithubRestRelease,\n} from '../../../util/github/types';\nimport { getApiBaseUrl, getSourceUrl } from '../../../util/github/url';\nimport { hashStream } from '../../../util/hash';\nimport { GithubHttp } from '../../../util/http/github';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport { Datasource } from '../datasource';\nimport type {\n DigestConfig,\n GetReleasesConfig,\n Release,\n ReleaseResult,\n} from '../types';\n\nexport const cacheNamespace = 'datasource-github-releases';\n\nfunction inferHashAlg(digest: string): string {\n switch (digest.length) {\n case 64:\n return 'sha256';\n default:\n case 96:\n return 'sha512';\n }\n}\n\nexport class GithubReleaseAttachmentsDatasource extends Datasource {\n static readonly id = 'github-release-attachments';\n\n override readonly defaultRegistryUrls = ['https://github.com'];\n\n override http: GithubHttp;\n\n override readonly releaseTimestampSupport = true;\n // Note: not sure\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `releaseTimestamp` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined by using the `packageName` and `registryUrl`.';\n\n constructor() {\n super(GithubReleaseAttachmentsDatasource.id);\n this.http = new GithubHttp(GithubReleaseAttachmentsDatasource.id);\n }\n\n @cache({\n ttlMinutes: 1440,\n namespace: `datasource-${GithubReleaseAttachmentsDatasource.id}`,\n key: (release: GithubRestRelease, digest: string) =>\n `findDigestFile:${release.html_url}:${digest}`,\n })\n async findDigestFile(\n release: GithubRestRelease,\n digest: string,\n ): Promise<GithubDigestFile | null> {\n const smallAssets = release.assets.filter(\n (a: GithubRestAsset) => a.size < 5 * 1024,\n );\n for (const asset of smallAssets) {\n const res = await this.http.getText(asset.browser_download_url);\n for (const line of res.body.split(newlineRegex)) {\n const [lineDigest, lineFilename] = line.split(regEx(/\\s+/), 2);\n if (lineDigest === digest) {\n return {\n assetName: asset.name,\n digestedFileName: lineFilename,\n currentVersion: release.tag_name,\n currentDigest: lineDigest,\n };\n }\n }\n }\n return null;\n }\n\n @cache({\n ttlMinutes: 1440,\n namespace: `datasource-${GithubReleaseAttachmentsDatasource.id}`,\n key: (asset: GithubRestAsset, algorithm: string) =>\n `downloadAndDigest:${asset.browser_download_url}:${algorithm}`,\n })\n async downloadAndDigest(\n asset: GithubRestAsset,\n algorithm: string,\n ): Promise<string> {\n const res = this.http.stream(asset.browser_download_url);\n const digest = await hashStream(res, algorithm);\n return digest;\n }\n\n async findAssetWithDigest(\n release: GithubRestRelease,\n digest: string,\n ): Promise<GithubDigestFile | null> {\n const algorithm = inferHashAlg(digest);\n const assetsBySize = release.assets.sort(\n (a: GithubRestAsset, b: GithubRestAsset) => {\n if (a.size < b.size) {\n return -1;\n }\n if (a.size > b.size) {\n return 1;\n }\n return 0;\n },\n );\n\n for (const asset of assetsBySize) {\n const assetDigest = await this.downloadAndDigest(asset, algorithm);\n if (assetDigest === digest) {\n return {\n assetName: asset.name,\n currentVersion: release.tag_name,\n currentDigest: assetDigest,\n };\n }\n }\n return null;\n }\n\n /** Identify the asset associated with a known digest. */\n async findDigestAsset(\n release: GithubRestRelease,\n digest: string,\n ): Promise<GithubDigestFile | null> {\n const digestFile = await this.findDigestFile(release, digest);\n if (digestFile) {\n return digestFile;\n }\n\n const asset = await this.findAssetWithDigest(release, digest);\n return asset;\n }\n\n /** Given a digest asset, find the equivalent digest in a different release. */\n async mapDigestAssetToRelease(\n digestAsset: GithubDigestFile,\n release: GithubRestRelease,\n ): Promise<string | null> {\n const current = digestAsset.currentVersion.replace(regEx(/^v/), '');\n const next = release.tag_name.replace(regEx(/^v/), '');\n const releaseChecksumAssetName = digestAsset.assetName.replace(\n current,\n next,\n );\n const releaseAsset = release.assets.find(\n (a: GithubRestAsset) => a.name === releaseChecksumAssetName,\n );\n if (!releaseAsset) {\n return null;\n }\n if (digestAsset.digestedFileName) {\n const releaseFilename = digestAsset.digestedFileName.replace(\n current,\n next,\n );\n const res = await this.http.getText(releaseAsset.browser_download_url);\n for (const line of res.body.split(newlineRegex)) {\n const [lineDigest, lineFn] = line.split(regEx(/\\s+/), 2);\n if (lineFn === releaseFilename) {\n return lineDigest;\n }\n }\n } else {\n const algorithm = inferHashAlg(digestAsset.currentDigest);\n const newDigest = await this.downloadAndDigest(releaseAsset, algorithm);\n return newDigest;\n }\n return null;\n }\n\n /**\n * Attempts to resolve the digest for the specified package.\n *\n * The `newValue` supplied here should be a valid tag for the GitHub release.\n * Requires `currentValue` and `currentDigest`.\n *\n * There may be many assets attached to the release. This function will:\n * - Identify the asset pinned by `currentDigest` in the `currentValue` release\n * - Download small release assets, parse as checksum manifests (e.g. `SHASUMS.txt`).\n * - Download individual assets until `currentDigest` is encountered. This is limited to sha256 and sha512.\n * - Map the hashed asset to `newValue` and return the updated digest as a string\n */\n override async getDigest(\n {\n packageName: repo,\n currentValue,\n currentDigest,\n registryUrl,\n }: DigestConfig,\n newValue: string,\n ): Promise<string | null> {\n logger.debug(\n { repo, currentValue, currentDigest, registryUrl, newValue },\n 'getDigest',\n );\n if (!currentDigest) {\n return null;\n }\n if (!currentValue) {\n return currentDigest;\n }\n\n const apiBaseUrl = getApiBaseUrl(registryUrl);\n const { body: currentRelease } =\n await this.http.getJsonUnchecked<GithubRestRelease>(\n `${apiBaseUrl}repos/${repo}/releases/tags/${currentValue}`,\n );\n const digestAsset = await this.findDigestAsset(\n currentRelease,\n currentDigest,\n );\n let newDigest: string | null;\n if (!digestAsset || newValue === currentValue) {\n newDigest = currentDigest;\n } else {\n const { body: newRelease } =\n await this.http.getJsonUnchecked<GithubRestRelease>(\n `${apiBaseUrl}repos/${repo}/releases/tags/${newValue}`,\n );\n newDigest = await this.mapDigestAssetToRelease(digestAsset, newRelease);\n }\n return newDigest;\n }\n\n /**\n * This function can be used to fetch releases with a customizable versioning\n * (e.g. semver) and with releases.\n *\n * This function will:\n * - Fetch all releases\n * - Sanitize the versions if desired (e.g. strip out leading 'v')\n * - Return a dependency object containing sourceUrl string and releases array\n */\n async getReleases(config: GetReleasesConfig): Promise<ReleaseResult> {\n const releasesResult = await queryReleases(config, this.http);\n const releases = releasesResult.map((item) => {\n const { version, releaseTimestamp, isStable } = item;\n const result: Release = {\n version,\n gitRef: version,\n releaseTimestamp,\n };\n if (is.boolean(isStable)) {\n result.isStable = isStable;\n }\n return result;\n });\n const sourceUrl = getSourceUrl(config.packageName, config.registryUrl);\n return { sourceUrl, releases };\n }\n}\n"]}
@@ -40,9 +40,9 @@ class GithubRunnersDatasource extends datasource_1.Datasource {
40
40
  { version: '10.15', isDeprecated: true },
41
41
  ],
42
42
  windows: [
43
- { version: '2025', isStable: false },
43
+ { version: '2025' },
44
44
  { version: '2022' },
45
- { version: '2019' },
45
+ { version: '2019', isDeprecated: true },
46
46
  { version: '2016', isDeprecated: true },
47
47
  ],
48
48
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/github-runners/index.ts"],"names":[],"mappings":";;;AAAA,oDAAmE;AACnE,8CAA2C;AAG3C,MAAa,uBAAwB,SAAQ,uBAAU;IACrD,MAAM,CAAU,EAAE,GAAG,gBAAgB,CAAC;IAEpB,gBAAgB,GAAG,SAAS,CAAC;IAC7B,aAAa,GAC7B,2DAA2D,CAAC;IAE9D;;;;;;OAMG;IACK,MAAM,CAAU,QAAQ,GAA0C;QACxE,MAAM,EAAE;YACN,EAAE,OAAO,EAAE,OAAO,EAAE;YACpB,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE;YACzC,EAAE,OAAO,EAAE,OAAO,EAAE;YACpB,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE;YACzC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE;YACxC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE;YACxC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE;SACzC;QACD,KAAK,EAAE;YACL,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE;YACxC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE;YACzC,EAAE,OAAO,EAAE,IAAI,EAAE;YACjB,EAAE,OAAO,EAAE,UAAU,EAAE;YACvB,EAAE,OAAO,EAAE,WAAW,EAAE;YACxB,EAAE,OAAO,EAAE,IAAI,EAAE;YACjB,EAAE,OAAO,EAAE,UAAU,EAAE;YACvB,EAAE,OAAO,EAAE,WAAW,EAAE;YACxB,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE;YAC3C,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;YACrC,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;YACrC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE;SACzC;QACD,OAAO,EAAE;YACP,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;YACpC,EAAE,OAAO,EAAE,MAAM,EAAE;YACnB,EAAE,OAAO,EAAE,MAAM,EAAE;YACnB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE;SACxC;KACF,CAAC;IAEK,MAAM,CAAC,aAAa,CACzB,UAAkB,EAClB,aAAqB;QAErB,MAAM,cAAc,GAAG,uBAAuB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACpE,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CACvC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,KAAK,aAAa,CAC3C,CAAC;QAEF,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC;IACrD,CAAC;IAEiB,iBAAiB,GAAG,WAAkB,CAAC;IAEzD;QACE,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAEQ,WAAW,CAAC,EACnB,WAAW,GACO;QAClB,MAAM,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAyB,QAAQ;YAClD,CAAC,CAAC;gBACE,QAAQ;gBACR,SAAS,EAAE,0CAA0C;aACtD;YACH,CAAC,CAAC,IAAI,CAAC;QACT,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACxC,CAAC;;AAhFH,0DAiFC","sourcesContent":["import { id as dockerVersioningId } from '../../versioning/docker';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\n\nexport class GithubRunnersDatasource extends Datasource {\n static readonly id = 'github-runners';\n\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'We use the URL: https://github.com/actions/runner-images.';\n\n /**\n * Unstable runners must have the `isStable: false` property.\n * Deprecated runners must have the `isDeprecated: true` property.\n * Stable runners should have no extra properties.\n * For more details, read the github-runners datasource readme.\n * Check https://github.blog/changelog/label/actions/ for stable and deprecation dates.\n */\n private static readonly releases: Record<string, Release[] | undefined> = {\n ubuntu: [\n { version: '24.04' },\n { version: '24.04-arm', isStable: false },\n { version: '22.04' },\n { version: '22.04-arm', isStable: false },\n { version: '20.04', isDeprecated: true },\n { version: '18.04', isDeprecated: true },\n { version: '16.04', isDeprecated: true },\n ],\n macos: [\n { version: '15', isStable: false },\n { version: '15-large', isStable: false },\n { version: '15-xlarge', isStable: false },\n { version: '14' },\n { version: '14-large' },\n { version: '14-xlarge' },\n { version: '13' },\n { version: '13-large' },\n { version: '13-xlarge' },\n { version: '12-large', isDeprecated: true },\n { version: '12', isDeprecated: true },\n { version: '11', isDeprecated: true },\n { version: '10.15', isDeprecated: true },\n ],\n windows: [\n { version: '2025', isStable: false },\n { version: '2022' },\n { version: '2019' },\n { version: '2016', isDeprecated: true },\n ],\n };\n\n public static isValidRunner(\n runnerName: string,\n runnerVersion: string,\n ): boolean {\n const runnerReleases = GithubRunnersDatasource.releases[runnerName];\n if (!runnerReleases) {\n return false;\n }\n\n const versionExists = runnerReleases.some(\n ({ version }) => version === runnerVersion,\n );\n\n return runnerVersion === 'latest' || versionExists;\n }\n\n override readonly defaultVersioning = dockerVersioningId;\n\n constructor() {\n super(GithubRunnersDatasource.id);\n }\n\n override getReleases({\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const releases = GithubRunnersDatasource.releases[packageName];\n const releaseResult: ReleaseResult | null = releases\n ? {\n releases,\n sourceUrl: 'https://github.com/actions/runner-images',\n }\n : null;\n return Promise.resolve(releaseResult);\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/github-runners/index.ts"],"names":[],"mappings":";;;AAAA,oDAAmE;AACnE,8CAA2C;AAG3C,MAAa,uBAAwB,SAAQ,uBAAU;IACrD,MAAM,CAAU,EAAE,GAAG,gBAAgB,CAAC;IAEpB,gBAAgB,GAAG,SAAS,CAAC;IAC7B,aAAa,GAC7B,2DAA2D,CAAC;IAE9D;;;;;;OAMG;IACK,MAAM,CAAU,QAAQ,GAA0C;QACxE,MAAM,EAAE;YACN,EAAE,OAAO,EAAE,OAAO,EAAE;YACpB,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE;YACzC,EAAE,OAAO,EAAE,OAAO,EAAE;YACpB,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE;YACzC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE;YACxC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE;YACxC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE;SACzC;QACD,KAAK,EAAE;YACL,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE;YAClC,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE;YACxC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE;YACzC,EAAE,OAAO,EAAE,IAAI,EAAE;YACjB,EAAE,OAAO,EAAE,UAAU,EAAE;YACvB,EAAE,OAAO,EAAE,WAAW,EAAE;YACxB,EAAE,OAAO,EAAE,IAAI,EAAE;YACjB,EAAE,OAAO,EAAE,UAAU,EAAE;YACvB,EAAE,OAAO,EAAE,WAAW,EAAE;YACxB,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE;YAC3C,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;YACrC,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE;YACrC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE;SACzC;QACD,OAAO,EAAE;YACP,EAAE,OAAO,EAAE,MAAM,EAAE;YACnB,EAAE,OAAO,EAAE,MAAM,EAAE;YACnB,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE;YACvC,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE;SACxC;KACF,CAAC;IAEK,MAAM,CAAC,aAAa,CACzB,UAAkB,EAClB,aAAqB;QAErB,MAAM,cAAc,GAAG,uBAAuB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACpE,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CACvC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,KAAK,aAAa,CAC3C,CAAC;QAEF,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC;IACrD,CAAC;IAEiB,iBAAiB,GAAG,WAAkB,CAAC;IAEzD;QACE,KAAK,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAEQ,WAAW,CAAC,EACnB,WAAW,GACO;QAClB,MAAM,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAyB,QAAQ;YAClD,CAAC,CAAC;gBACE,QAAQ;gBACR,SAAS,EAAE,0CAA0C;aACtD;YACH,CAAC,CAAC,IAAI,CAAC;QACT,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACxC,CAAC;;AAhFH,0DAiFC","sourcesContent":["import { id as dockerVersioningId } from '../../versioning/docker';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\n\nexport class GithubRunnersDatasource extends Datasource {\n static readonly id = 'github-runners';\n\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'We use the URL: https://github.com/actions/runner-images.';\n\n /**\n * Unstable runners must have the `isStable: false` property.\n * Deprecated runners must have the `isDeprecated: true` property.\n * Stable runners should have no extra properties.\n * For more details, read the github-runners datasource readme.\n * Check https://github.blog/changelog/label/actions/ for stable and deprecation dates.\n */\n private static readonly releases: Record<string, Release[] | undefined> = {\n ubuntu: [\n { version: '24.04' },\n { version: '24.04-arm', isStable: false },\n { version: '22.04' },\n { version: '22.04-arm', isStable: false },\n { version: '20.04', isDeprecated: true },\n { version: '18.04', isDeprecated: true },\n { version: '16.04', isDeprecated: true },\n ],\n macos: [\n { version: '15', isStable: false },\n { version: '15-large', isStable: false },\n { version: '15-xlarge', isStable: false },\n { version: '14' },\n { version: '14-large' },\n { version: '14-xlarge' },\n { version: '13' },\n { version: '13-large' },\n { version: '13-xlarge' },\n { version: '12-large', isDeprecated: true },\n { version: '12', isDeprecated: true },\n { version: '11', isDeprecated: true },\n { version: '10.15', isDeprecated: true },\n ],\n windows: [\n { version: '2025' },\n { version: '2022' },\n { version: '2019', isDeprecated: true },\n { version: '2016', isDeprecated: true },\n ],\n };\n\n public static isValidRunner(\n runnerName: string,\n runnerVersion: string,\n ): boolean {\n const runnerReleases = GithubRunnersDatasource.releases[runnerName];\n if (!runnerReleases) {\n return false;\n }\n\n const versionExists = runnerReleases.some(\n ({ version }) => version === runnerVersion,\n );\n\n return runnerVersion === 'latest' || versionExists;\n }\n\n override readonly defaultVersioning = dockerVersioningId;\n\n constructor() {\n super(GithubRunnersDatasource.id);\n }\n\n override getReleases({\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const releases = GithubRunnersDatasource.releases[packageName];\n const releaseResult: ReleaseResult | null = releases\n ? {\n releases,\n sourceUrl: 'https://github.com/actions/runner-images',\n }\n : null;\n return Promise.resolve(releaseResult);\n }\n}\n"]}
@@ -7,6 +7,7 @@ const logger_1 = require("../../../logger");
7
7
  const graphql_1 = require("../../../util/github/graphql");
8
8
  const tags_1 = require("../../../util/github/tags");
9
9
  const url_1 = require("../../../util/github/url");
10
+ const memory_http_cache_provider_1 = require("../../../util/http/cache/memory-http-cache-provider");
10
11
  const github_1 = require("../../../util/http/github");
11
12
  const datasource_1 = require("../datasource");
12
13
  class GithubTagsDatasource extends datasource_1.Datasource {
@@ -28,7 +29,9 @@ class GithubTagsDatasource extends datasource_1.Datasource {
28
29
  let digest = null;
29
30
  try {
30
31
  const url = `${apiBaseUrl}repos/${githubRepo}/commits?per_page=1`;
31
- const res = await this.http.getJsonUnchecked(url);
32
+ const res = await this.http.getJsonUnchecked(url, {
33
+ cacheProvider: memory_http_cache_provider_1.memCacheProvider,
34
+ });
32
35
  digest = res.body[0].sha;
33
36
  }
34
37
  catch (err) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/github-tags/index.ts"],"names":[],"mappings":";;;;AAAA,kEAAkC;AAClC,4CAAyC;AACzC,0DAAwE;AAExE,oDAA4D;AAC5D,kDAAuE;AACvE,sDAAuD;AACvD,8CAA2C;AAQ3C,MAAa,oBAAqB,SAAQ,uBAAU;IAClD,MAAM,CAAU,EAAE,GAAG,aAAa,CAAC;IAEjB,mBAAmB,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAE7C,gBAAgB,GAAG,MAAM,CAAC;IAE1B,uBAAuB,GAAG,IAAI,CAAC;IACjD,iBAAiB;IACC,oBAAoB,GACpC,2FAA2F,CAAC;IAC5E,gBAAgB,GAAG,SAAS,CAAC;IAC7B,aAAa,GAC7B,4EAA4E,CAAC;IAEtE,IAAI,CAAa;IAE1B;QACE,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,mBAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,SAAS,CACb,WAA+B,EAC/B,UAAkB;QAElB,MAAM,UAAU,GAAG,IAAA,mBAAa,EAAC,WAAW,CAAC,CAAC;QAC9C,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,GAAG,UAAU,SAAS,UAAU,qBAAqB,CAAC;YAClE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAoB,GAAG,CAAC,CAAC;YACrE,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,EAChC,8CAA8C,CAC/C,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACM,SAAS,CAChB,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAyB,EACzD,QAAiB;QAEjB,OAAO,QAAQ;YACb,CAAC,CAAC,IAAA,sBAAe,EAAC,WAAW,EAAE,IAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC;YAC1D,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAK,CAAC,CAAC;IACzC,CAAC;IAEQ,KAAK,CAAC,WAAW,CACxB,MAAyB;QAEzB,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QAClD,MAAM,SAAS,GAAG,IAAA,kBAAY,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,MAAM,IAAA,mBAAS,EAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAc,UAAU,CAAC,GAAG,CACxC,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YAChD,SAAS,EAAE,IAAI;YACf,OAAO;YACP,gBAAgB;YAChB,MAAM;SACP,CAAC,CACH,CAAC;QAEF,IAAI,CAAC;YACH,6DAA6D;YAC7D,MAAM,cAAc,GAAG,MAAM,IAAA,uBAAa,EAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9D,MAAM,WAAW,GAAG,IAAI,GAAG,EAA6B,CAAC;YACzD,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;gBACrC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5C,CAAC;YAED,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;gBACnE,IAAI,YAAE,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,QAAQ,GAAG,eAAe,CAAC;gBACrC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,0BAA0B,CAAC,CAAC;YACxC,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,gDAAgD,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,UAAU,GAAkB;YAChC,SAAS;YACT,QAAQ;SACT,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC;;AA/FH,oDAgGC","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { queryReleases, queryTags } from '../../../util/github/graphql';\nimport type { GithubReleaseItem } from '../../../util/github/graphql/types';\nimport { findCommitOfTag } from '../../../util/github/tags';\nimport { getApiBaseUrl, getSourceUrl } from '../../../util/github/url';\nimport { GithubHttp } from '../../../util/http/github';\nimport { Datasource } from '../datasource';\nimport type {\n DigestConfig,\n GetReleasesConfig,\n Release,\n ReleaseResult,\n} from '../types';\n\nexport class GithubTagsDatasource extends Datasource {\n static readonly id = 'github-tags';\n\n override readonly defaultRegistryUrls = ['https://github.com'];\n\n override readonly registryStrategy = 'hunt';\n\n override readonly releaseTimestampSupport = true;\n // Note: not sure\n override readonly releaseTimestampNote =\n 'The get release timestamp is determined from the `releaseTimestamp` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined by using the `packageName` and `registryUrl`.';\n\n override http: GithubHttp;\n\n constructor() {\n super(GithubTagsDatasource.id);\n this.http = new GithubHttp(GithubTagsDatasource.id);\n }\n\n async getCommit(\n registryUrl: string | undefined,\n githubRepo: string,\n ): Promise<string | null> {\n const apiBaseUrl = getApiBaseUrl(registryUrl);\n let digest: string | null = null;\n try {\n const url = `${apiBaseUrl}repos/${githubRepo}/commits?per_page=1`;\n const res = await this.http.getJsonUnchecked<{ sha: string }[]>(url);\n digest = res.body[0].sha;\n } catch (err) {\n logger.debug(\n { githubRepo, err, registryUrl },\n 'Error getting latest commit from GitHub repo',\n );\n }\n return digest;\n }\n\n /**\n * github.getDigest\n *\n * The `newValue` supplied here should be a valid tag for the docker image.\n *\n * Returns the latest commit hash for the repository.\n */\n override getDigest(\n { packageName: repo, registryUrl }: Partial<DigestConfig>,\n newValue?: string,\n ): Promise<string | null> {\n return newValue\n ? findCommitOfTag(registryUrl, repo!, newValue, this.http)\n : this.getCommit(registryUrl, repo!);\n }\n\n override async getReleases(\n config: GetReleasesConfig,\n ): Promise<ReleaseResult> {\n const { registryUrl, packageName: repo } = config;\n const sourceUrl = getSourceUrl(repo, registryUrl);\n const tagsResult = await queryTags(config, this.http);\n const releases: Release[] = tagsResult.map(\n ({ version, releaseTimestamp, gitRef, hash }) => ({\n newDigest: hash,\n version,\n releaseTimestamp,\n gitRef,\n }),\n );\n\n try {\n // Fetch additional data from releases endpoint when possible\n const releasesResult = await queryReleases(config, this.http);\n const releasesMap = new Map<string, GithubReleaseItem>();\n for (const release of releasesResult) {\n releasesMap.set(release.version, release);\n }\n\n for (const release of releases) {\n const isReleaseStable = releasesMap.get(release.version)?.isStable;\n if (is.boolean(isReleaseStable)) {\n release.isStable = isReleaseStable;\n }\n }\n } catch (err) /* istanbul ignore next */ {\n logger.debug({ err }, `Error fetching additional info for GitHub tags`);\n }\n\n const dependency: ReleaseResult = {\n sourceUrl,\n releases,\n };\n return dependency;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/github-tags/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { queryReleases, queryTags } from '../../../util/github/graphql';\nimport type { GithubReleaseItem } from '../../../util/github/graphql/types';\nimport { findCommitOfTag } from '../../../util/github/tags';\nimport { getApiBaseUrl, getSourceUrl } from '../../../util/github/url';\nimport { memCacheProvider } from '../../../util/http/cache/memory-http-cache-provider';\nimport { GithubHttp } from '../../../util/http/github';\nimport { Datasource } from '../datasource';\nimport type {\n DigestConfig,\n GetReleasesConfig,\n Release,\n ReleaseResult,\n} from '../types';\n\nexport class GithubTagsDatasource extends Datasource {\n static readonly id = 'github-tags';\n\n override readonly defaultRegistryUrls = ['https://github.com'];\n\n override readonly registryStrategy = 'hunt';\n\n override readonly releaseTimestampSupport = true;\n // Note: not sure\n override readonly releaseTimestampNote =\n 'The get release timestamp is determined from the `releaseTimestamp` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined by using the `packageName` and `registryUrl`.';\n\n override http: GithubHttp;\n\n constructor() {\n super(GithubTagsDatasource.id);\n this.http = new GithubHttp(GithubTagsDatasource.id);\n }\n\n async getCommit(\n registryUrl: string | undefined,\n githubRepo: string,\n ): Promise<string | null> {\n const apiBaseUrl = getApiBaseUrl(registryUrl);\n let digest: string | null = null;\n try {\n const url = `${apiBaseUrl}repos/${githubRepo}/commits?per_page=1`;\n const res = await this.http.getJsonUnchecked<{ sha: string }[]>(url, {\n cacheProvider: memCacheProvider,\n });\n digest = res.body[0].sha;\n } catch (err) {\n logger.debug(\n { githubRepo, err, registryUrl },\n 'Error getting latest commit from GitHub repo',\n );\n }\n return digest;\n }\n\n /**\n * github.getDigest\n *\n * The `newValue` supplied here should be a valid tag for the docker image.\n *\n * Returns the latest commit hash for the repository.\n */\n override getDigest(\n { packageName: repo, registryUrl }: Partial<DigestConfig>,\n newValue?: string,\n ): Promise<string | null> {\n return newValue\n ? findCommitOfTag(registryUrl, repo!, newValue, this.http)\n : this.getCommit(registryUrl, repo!);\n }\n\n override async getReleases(\n config: GetReleasesConfig,\n ): Promise<ReleaseResult> {\n const { registryUrl, packageName: repo } = config;\n const sourceUrl = getSourceUrl(repo, registryUrl);\n const tagsResult = await queryTags(config, this.http);\n const releases: Release[] = tagsResult.map(\n ({ version, releaseTimestamp, gitRef, hash }) => ({\n newDigest: hash,\n version,\n releaseTimestamp,\n gitRef,\n }),\n );\n\n try {\n // Fetch additional data from releases endpoint when possible\n const releasesResult = await queryReleases(config, this.http);\n const releasesMap = new Map<string, GithubReleaseItem>();\n for (const release of releasesResult) {\n releasesMap.set(release.version, release);\n }\n\n for (const release of releases) {\n const isReleaseStable = releasesMap.get(release.version)?.isStable;\n if (is.boolean(isReleaseStable)) {\n release.isStable = isReleaseStable;\n }\n }\n } catch (err) /* istanbul ignore next */ {\n logger.debug({ err }, `Error fetching additional info for GitHub tags`);\n }\n\n const dependency: ReleaseResult = {\n sourceUrl,\n releases,\n };\n return dependency;\n }\n}\n"]}
@@ -27,7 +27,7 @@ class GitlabPackagesDatasource extends datasource_1.Datasource {
27
27
  return (0, url_1.joinUrlParts)(registryUrl, `api/v4/projects`, projectNameEncoded, `packages?package_name=${packageNameEncoded}&per_page=100`);
28
28
  }
29
29
  async getReleases({ registryUrl, packageName, }) {
30
- // istanbul ignore if
30
+ /* v8 ignore next 3 -- should never happen */
31
31
  if (!registryUrl) {
32
32
  return null;
33
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/gitlab-packages/index.ts"],"names":[],"mappings":";;;;AAAA,qEAA8D;AAC9D,sDAAuD;AACvD,uDAAsD;AACtD,2CAAiD;AACjD,8CAA2C;AAE3C,qCAAsC;AAGtC,oEAAoE;AAEpE,MAAa,wBAAyB,SAAQ,uBAAU;IACtD,MAAM,CAAU,EAAE,GAAG,mBAAU,CAAC;IAEb,IAAI,CAAa;IAE3B,OAAO,GAAG,IAAI,CAAC;IAEf,qBAAqB,GAAG,IAAI,CAAC;IAE7B,mBAAmB,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAEpC,uBAAuB,GAAG,IAAI,CAAC;IAC/B,oBAAoB,GACpC,iFAAiF,CAAC;IAEpF;QACE,KAAK,CAAC,mBAAU,CAAC,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,mBAAU,CAAC,mBAAU,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,sBAAsB,CAC3B,WAAmB,EACnB,WAAmB,EACnB,WAAmB;QAEnB,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAE3D,OAAO,IAAA,kBAAY,EACjB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,kBAAkB,eAAe,CAC3D,CAAC;IACJ,CAAC;IAQK,AAAN,KAAK,CAAC,WAAW,CAAC,EAChB,WAAW,EACX,WAAW,GACO;QAClB,qBAAqB;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,wBAAwB,CAAC,sBAAsB,CAC5D,WAAW,EACX,WAAW,EACX,WAAW,CACZ,CAAC;QAEF,MAAM,MAAM,GAAkB;YAC5B,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,QAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,QAAQ,GAAG,CACT,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAkB,MAAM,EAAE;gBACxD,QAAQ,EAAE,IAAI;aACf,CAAC,CACH,CAAC,IAAI,CAAC;YAEP,MAAM,CAAC,QAAQ,GAAG,QAAQ;gBACxB,sHAAsH;gBACtH,4FAA4F;iBAC3F,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;iBACrC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;gBACjC,OAAO;gBACP,gBAAgB,EAAE,IAAA,uBAAW,EAAC,UAAU,CAAC;aAC1C,CAAC,CAAC,CAAC;QACR,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;;AApFH,4DAqFC;AA3CO;IANL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,mBAAU,EAAE;QACrC,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,EAAqB,EAAE,EAAE;QACvD,uBAAuB;QACvB,GAAG,WAAW,IAAI,WAAW,EAAE;KAClC,CAAC;2DA2CD","sourcesContent":["import { cache } from '../../../util/cache/package/decorator';\nimport { GitlabHttp } from '../../../util/http/gitlab';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { joinUrlParts } from '../../../util/url';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport { datasource } from './common';\nimport type { GitlabPackage } from './types';\n\n// Gitlab Packages API: https://docs.gitlab.com/ee/api/packages.html\n\nexport class GitlabPackagesDatasource extends Datasource {\n static readonly id = datasource;\n\n protected override http: GitlabHttp;\n\n override caching = true;\n\n override customRegistrySupport = true;\n\n override defaultRegistryUrls = ['https://gitlab.com'];\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `created_at` field in the results.';\n\n constructor() {\n super(datasource);\n this.http = new GitlabHttp(datasource);\n }\n\n static getGitlabPackageApiUrl(\n registryUrl: string,\n projectName: string,\n packageName: string,\n ): string {\n const projectNameEncoded = encodeURIComponent(projectName);\n const packageNameEncoded = encodeURIComponent(packageName);\n\n return joinUrlParts(\n registryUrl,\n `api/v4/projects`,\n projectNameEncoded,\n `packages?package_name=${packageNameEncoded}&per_page=100`,\n );\n }\n\n @cache({\n namespace: `datasource-${datasource}`,\n key: ({ registryUrl, packageName }: GetReleasesConfig) =>\n // TODO: types (#22198)\n `${registryUrl}-${packageName}`,\n })\n async getReleases({\n registryUrl,\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n // istanbul ignore if\n if (!registryUrl) {\n return null;\n }\n\n const [projectPart, packagePart] = packageName.split(':', 2);\n\n const apiUrl = GitlabPackagesDatasource.getGitlabPackageApiUrl(\n registryUrl,\n projectPart,\n packagePart,\n );\n\n const result: ReleaseResult = {\n releases: [],\n };\n\n let response: GitlabPackage[];\n try {\n response = (\n await this.http.getJsonUnchecked<GitlabPackage[]>(apiUrl, {\n paginate: true,\n })\n ).body;\n\n result.releases = response\n // Setting the package_name option when calling the GitLab API isn't enough to filter information about other packages\n // because this option is only implemented on GitLab > 12.9 and it only does a fuzzy search.\n .filter((r) => r.name === packagePart)\n .map(({ version, created_at }) => ({\n version,\n releaseTimestamp: asTimestamp(created_at),\n }));\n } catch (err) {\n this.handleGenericErrors(err);\n }\n\n return result.releases?.length ? result : null;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/gitlab-packages/index.ts"],"names":[],"mappings":";;;;AAAA,qEAA8D;AAC9D,sDAAuD;AACvD,uDAAsD;AACtD,2CAAiD;AACjD,8CAA2C;AAE3C,qCAAsC;AAGtC,oEAAoE;AAEpE,MAAa,wBAAyB,SAAQ,uBAAU;IACtD,MAAM,CAAU,EAAE,GAAG,mBAAU,CAAC;IAEb,IAAI,CAAa;IAE3B,OAAO,GAAG,IAAI,CAAC;IAEf,qBAAqB,GAAG,IAAI,CAAC;IAE7B,mBAAmB,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAEpC,uBAAuB,GAAG,IAAI,CAAC;IAC/B,oBAAoB,GACpC,iFAAiF,CAAC;IAEpF;QACE,KAAK,CAAC,mBAAU,CAAC,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,IAAI,mBAAU,CAAC,mBAAU,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,sBAAsB,CAC3B,WAAmB,EACnB,WAAmB,EACnB,WAAmB;QAEnB,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;QAE3D,OAAO,IAAA,kBAAY,EACjB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,kBAAkB,eAAe,CAC3D,CAAC;IACJ,CAAC;IAQK,AAAN,KAAK,CAAC,WAAW,CAAC,EAChB,WAAW,EACX,WAAW,GACO;QAClB,6CAA6C;QAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,wBAAwB,CAAC,sBAAsB,CAC5D,WAAW,EACX,WAAW,EACX,WAAW,CACZ,CAAC;QAEF,MAAM,MAAM,GAAkB;YAC5B,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,QAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,QAAQ,GAAG,CACT,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAkB,MAAM,EAAE;gBACxD,QAAQ,EAAE,IAAI;aACf,CAAC,CACH,CAAC,IAAI,CAAC;YAEP,MAAM,CAAC,QAAQ,GAAG,QAAQ;gBACxB,sHAAsH;gBACtH,4FAA4F;iBAC3F,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC;iBACrC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;gBACjC,OAAO;gBACP,gBAAgB,EAAE,IAAA,uBAAW,EAAC,UAAU,CAAC;aAC1C,CAAC,CAAC,CAAC;QACR,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,OAAO,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;;AApFH,4DAqFC;AA3CO;IANL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,mBAAU,EAAE;QACrC,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,EAAqB,EAAE,EAAE;QACvD,uBAAuB;QACvB,GAAG,WAAW,IAAI,WAAW,EAAE;KAClC,CAAC;2DA2CD","sourcesContent":["import { cache } from '../../../util/cache/package/decorator';\nimport { GitlabHttp } from '../../../util/http/gitlab';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { joinUrlParts } from '../../../util/url';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, ReleaseResult } from '../types';\nimport { datasource } from './common';\nimport type { GitlabPackage } from './types';\n\n// Gitlab Packages API: https://docs.gitlab.com/ee/api/packages.html\n\nexport class GitlabPackagesDatasource extends Datasource {\n static readonly id = datasource;\n\n protected override http: GitlabHttp;\n\n override caching = true;\n\n override customRegistrySupport = true;\n\n override defaultRegistryUrls = ['https://gitlab.com'];\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `created_at` field in the results.';\n\n constructor() {\n super(datasource);\n this.http = new GitlabHttp(datasource);\n }\n\n static getGitlabPackageApiUrl(\n registryUrl: string,\n projectName: string,\n packageName: string,\n ): string {\n const projectNameEncoded = encodeURIComponent(projectName);\n const packageNameEncoded = encodeURIComponent(packageName);\n\n return joinUrlParts(\n registryUrl,\n `api/v4/projects`,\n projectNameEncoded,\n `packages?package_name=${packageNameEncoded}&per_page=100`,\n );\n }\n\n @cache({\n namespace: `datasource-${datasource}`,\n key: ({ registryUrl, packageName }: GetReleasesConfig) =>\n // TODO: types (#22198)\n `${registryUrl}-${packageName}`,\n })\n async getReleases({\n registryUrl,\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next 3 -- should never happen */\n if (!registryUrl) {\n return null;\n }\n\n const [projectPart, packagePart] = packageName.split(':', 2);\n\n const apiUrl = GitlabPackagesDatasource.getGitlabPackageApiUrl(\n registryUrl,\n projectPart,\n packagePart,\n );\n\n const result: ReleaseResult = {\n releases: [],\n };\n\n let response: GitlabPackage[];\n try {\n response = (\n await this.http.getJsonUnchecked<GitlabPackage[]>(apiUrl, {\n paginate: true,\n })\n ).body;\n\n result.releases = response\n // Setting the package_name option when calling the GitLab API isn't enough to filter information about other packages\n // because this option is only implemented on GitLab > 12.9 and it only does a fuzzy search.\n .filter((r) => r.name === packagePart)\n .map(({ version, created_at }) => ({\n version,\n releaseTimestamp: asTimestamp(created_at),\n }));\n } catch (err) {\n this.handleGenericErrors(err);\n }\n\n return result.releases?.length ? result : null;\n }\n}\n"]}
@@ -19,7 +19,7 @@ class GitlabReleasesDatasource extends datasource_1.Datasource {
19
19
  this.http = new gitlab_1.GitlabHttp(GitlabReleasesDatasource.id);
20
20
  }
21
21
  async getReleases({ registryUrl, packageName, }) {
22
- // istanbul ignore if
22
+ /* v8 ignore next 3 -- should never happen */
23
23
  if (!registryUrl) {
24
24
  return null;
25
25
  }
@@ -43,8 +43,6 @@ class GitlabReleasesDatasource extends datasource_1.Datasource {
43
43
  catch (e) {
44
44
  this.handleGenericErrors(e);
45
45
  }
46
- /* istanbul ignore next */
47
- return null;
48
46
  }
49
47
  }
50
48
  exports.GitlabReleasesDatasource = GitlabReleasesDatasource;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/gitlab-releases/index.ts"],"names":[],"mappings":";;;;AAAA,qEAA8D;AAC9D,sDAAuD;AACvD,uDAAsD;AACtD,8CAA2C;AAI3C,MAAa,wBAAyB,SAAQ,uBAAU;IACtD,MAAM,CAAU,EAAE,GAAG,iBAAiB,CAAC;IAErB,mBAAmB,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAE/D,MAAM,CAAU,gBAAgB,GAAG,OAAO,CAAC;IAEzB,uBAAuB,GAAG,IAAI,CAAC;IAC/B,oBAAoB,GACpC,kFAAkF,CAAC;IACnE,gBAAgB,GAAG,SAAS,CAAC;IAC7B,aAAa,GAC7B,4EAA4E,CAAC;IAE/E;QACE,KAAK,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,mBAAU,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAQK,AAAN,KAAK,CAAC,WAAW,CAAC,EAChB,WAAW,EACX,WAAW,GACO;QAClB,qBAAqB;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,cAAc,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,GAAG,WAAW,oBAAoB,cAAc,WAAW,CAAC;QAE3E,IAAI,CAAC;YACH,MAAM,sBAAsB,GAAG,CAC7B,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAkB,MAAM,CAAC,CAC1D,CAAC,IAAI,CAAC;YAEP,OAAO;gBACL,SAAS,EAAE,GAAG,WAAW,IAAI,WAAW,EAAE;gBAC1C,QAAQ,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE;oBACjE,MAAM,OAAO,GAAY;wBACvB,WAAW;wBACX,MAAM,EAAE,QAAQ;wBAChB,OAAO,EAAE,QAAQ;wBACjB,gBAAgB,EAAE,IAAA,uBAAW,EAAC,WAAW,CAAC;qBAC3C,CAAC;oBACF,OAAO,OAAO,CAAC;gBACjB,CAAC,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;QACD,0BAA0B;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;;AA3DH,4DA4DC;AAnCO;IANL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,wBAAwB,CAAC,EAAE,EAAE;QACtD,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,EAAqB,EAAE,EAAE;QACvD,uBAAuB;QACvB,GAAG,WAAW,IAAI,WAAW,EAAE;KAClC,CAAC;2DAmCD","sourcesContent":["import { cache } from '../../../util/cache/package/decorator';\nimport { GitlabHttp } from '../../../util/http/gitlab';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport type { GitlabRelease } from './types';\n\nexport class GitlabReleasesDatasource extends Datasource {\n static readonly id = 'gitlab-releases';\n\n override readonly defaultRegistryUrls = ['https://gitlab.com'];\n\n static readonly registryStrategy = 'first';\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `released_at` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined by using the `packageName` and `registryUrl`.';\n\n constructor() {\n super(GitlabReleasesDatasource.id);\n this.http = new GitlabHttp(GitlabReleasesDatasource.id);\n }\n\n @cache({\n namespace: `datasource-${GitlabReleasesDatasource.id}`,\n key: ({ registryUrl, packageName }: GetReleasesConfig) =>\n // TODO: types (#22198)\n `${registryUrl}/${packageName}`,\n })\n async getReleases({\n registryUrl,\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n // istanbul ignore if\n if (!registryUrl) {\n return null;\n }\n\n const urlEncodedRepo = encodeURIComponent(packageName);\n const apiUrl = `${registryUrl}/api/v4/projects/${urlEncodedRepo}/releases`;\n\n try {\n const gitlabReleasesResponse = (\n await this.http.getJsonUnchecked<GitlabRelease[]>(apiUrl)\n ).body;\n\n return {\n sourceUrl: `${registryUrl}/${packageName}`,\n releases: gitlabReleasesResponse.map(({ tag_name, released_at }) => {\n const release: Release = {\n registryUrl,\n gitRef: tag_name,\n version: tag_name,\n releaseTimestamp: asTimestamp(released_at),\n };\n return release;\n }),\n };\n } catch (e) {\n this.handleGenericErrors(e);\n }\n /* istanbul ignore next */\n return null;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/gitlab-releases/index.ts"],"names":[],"mappings":";;;;AAAA,qEAA8D;AAC9D,sDAAuD;AACvD,uDAAsD;AACtD,8CAA2C;AAI3C,MAAa,wBAAyB,SAAQ,uBAAU;IACtD,MAAM,CAAU,EAAE,GAAG,iBAAiB,CAAC;IAErB,mBAAmB,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAE/D,MAAM,CAAU,gBAAgB,GAAG,OAAO,CAAC;IAEzB,uBAAuB,GAAG,IAAI,CAAC;IAC/B,oBAAoB,GACpC,kFAAkF,CAAC;IACnE,gBAAgB,GAAG,SAAS,CAAC;IAC7B,aAAa,GAC7B,4EAA4E,CAAC;IAE/E;QACE,KAAK,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,mBAAU,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IAQK,AAAN,KAAK,CAAC,WAAW,CAAC,EAChB,WAAW,EACX,WAAW,GACO;QAClB,6CAA6C;QAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,cAAc,GAAG,kBAAkB,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,GAAG,WAAW,oBAAoB,cAAc,WAAW,CAAC;QAE3E,IAAI,CAAC;YACH,MAAM,sBAAsB,GAAG,CAC7B,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAkB,MAAM,CAAC,CAC1D,CAAC,IAAI,CAAC;YAEP,OAAO;gBACL,SAAS,EAAE,GAAG,WAAW,IAAI,WAAW,EAAE;gBAC1C,QAAQ,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE;oBACjE,MAAM,OAAO,GAAY;wBACvB,WAAW;wBACX,MAAM,EAAE,QAAQ;wBAChB,OAAO,EAAE,QAAQ;wBACjB,gBAAgB,EAAE,IAAA,uBAAW,EAAC,WAAW,CAAC;qBAC3C,CAAC;oBACF,OAAO,OAAO,CAAC;gBACjB,CAAC,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;;AAzDH,4DA0DC;AAjCO;IANL,IAAA,iBAAK,EAAC;QACL,SAAS,EAAE,cAAc,wBAAwB,CAAC,EAAE,EAAE;QACtD,GAAG,EAAE,CAAC,EAAE,WAAW,EAAE,WAAW,EAAqB,EAAE,EAAE;QACvD,uBAAuB;QACvB,GAAG,WAAW,IAAI,WAAW,EAAE;KAClC,CAAC;2DAiCD","sourcesContent":["import { cache } from '../../../util/cache/package/decorator';\nimport { GitlabHttp } from '../../../util/http/gitlab';\nimport { asTimestamp } from '../../../util/timestamp';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport type { GitlabRelease } from './types';\n\nexport class GitlabReleasesDatasource extends Datasource {\n static readonly id = 'gitlab-releases';\n\n override readonly defaultRegistryUrls = ['https://gitlab.com'];\n\n static readonly registryStrategy = 'first';\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `released_at` field in the results.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined by using the `packageName` and `registryUrl`.';\n\n constructor() {\n super(GitlabReleasesDatasource.id);\n this.http = new GitlabHttp(GitlabReleasesDatasource.id);\n }\n\n @cache({\n namespace: `datasource-${GitlabReleasesDatasource.id}`,\n key: ({ registryUrl, packageName }: GetReleasesConfig) =>\n // TODO: types (#22198)\n `${registryUrl}/${packageName}`,\n })\n async getReleases({\n registryUrl,\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next 3 -- should never happen */\n if (!registryUrl) {\n return null;\n }\n\n const urlEncodedRepo = encodeURIComponent(packageName);\n const apiUrl = `${registryUrl}/api/v4/projects/${urlEncodedRepo}/releases`;\n\n try {\n const gitlabReleasesResponse = (\n await this.http.getJsonUnchecked<GitlabRelease[]>(apiUrl)\n ).body;\n\n return {\n sourceUrl: `${registryUrl}/${packageName}`,\n releases: gitlabReleasesResponse.map(({ tag_name, released_at }) => {\n const release: Release = {\n registryUrl,\n gitRef: tag_name,\n version: tag_name,\n releaseTimestamp: asTimestamp(released_at),\n };\n return release;\n }),\n };\n } catch (e) {\n this.handleGenericErrors(e);\n }\n }\n}\n"]}
@@ -107,7 +107,7 @@ class BaseGoDatasource {
107
107
  static async goGetDatasource(goModule) {
108
108
  const goModuleUrl = goModule.replace(/\.git(\/[a-z0-9/]*)?$/, '');
109
109
  const pkgUrl = `https://${goModuleUrl}?go-get=1`;
110
- const { body: html } = await BaseGoDatasource.http.get(pkgUrl);
110
+ const { body: html } = await BaseGoDatasource.http.getText(pkgUrl);
111
111
  const goSourceHeader = BaseGoDatasource.goSourceHeader(html, goModule);
112
112
  if (goSourceHeader) {
113
113
  return goSourceHeader;
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/go/base.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: types (#22198)\nimport { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport { detectPlatform } from '../../../util/common';\nimport * as hostRules from '../../../util/host-rules';\nimport { Http } from '../../../util/http';\nimport { regEx } from '../../../util/regex';\nimport {\n parseUrl,\n trimLeadingSlash,\n trimTrailingSlash,\n} from '../../../util/url';\nimport { BitbucketTagsDatasource } from '../bitbucket-tags';\nimport { GitTagsDatasource } from '../git-tags';\nimport { GiteaTagsDatasource } from '../gitea-tags';\nimport { GithubTagsDatasource } from '../github-tags';\nimport { GitlabTagsDatasource } from '../gitlab-tags';\nimport type { DataSource } from './types';\n\n// TODO: figure out class hierarchy (#10532)\nexport class BaseGoDatasource {\n private static readonly gitlabHttpsRegExp = regEx(\n /^(?<httpsRegExpUrl>https:\\/\\/[^/]*gitlab\\.[^/]*)\\/(?<httpsRegExpName>.+?)(?:\\/v\\d+)?[/]?$/,\n );\n private static readonly gitlabRegExp = regEx(\n /^(?<regExpUrl>gitlab\\.[^/]*)\\/(?<regExpPath>.+?)(?:\\/v\\d+)?[/]?$/,\n );\n private static readonly gitVcsRegexp = regEx(\n /^(?:[^/]+)\\/(?<module>.*)\\.git(?:$|\\/)/,\n );\n\n private static readonly id = 'go';\n private static readonly http = new Http(BaseGoDatasource.id);\n\n static async getDatasource(goModule: string): Promise<DataSource | null> {\n if (goModule.startsWith('gopkg.in/')) {\n const [pkg] = goModule.replace('gopkg.in/', '').split('.');\n const packageName = pkg.includes('/') ? pkg : `go-${pkg}/${pkg}`;\n return {\n datasource: GithubTagsDatasource.id,\n packageName,\n registryUrl: 'https://github.com',\n };\n }\n\n if (goModule.startsWith('github.com/')) {\n const split = goModule.split('/');\n const packageName = split[1] + '/' + split[2];\n return {\n datasource: GithubTagsDatasource.id,\n packageName,\n registryUrl: 'https://github.com',\n };\n }\n\n if (goModule.startsWith('bitbucket.org/')) {\n const split = goModule.split('/');\n const packageName = split[1] + '/' + split[2];\n return {\n datasource: BitbucketTagsDatasource.id,\n packageName,\n registryUrl: 'https://bitbucket.org',\n };\n }\n\n if (goModule.startsWith('code.cloudfoundry.org/')) {\n const packageName = goModule.replace(\n 'code.cloudfoundry.org',\n 'cloudfoundry',\n );\n return {\n datasource: GithubTagsDatasource.id,\n packageName,\n registryUrl: 'https://github.com',\n };\n }\n\n if (goModule.startsWith('dev.azure.com/')) {\n const split = goModule.split('/');\n if ((split.length > 4 && split[3] === '_git') || split.length > 3) {\n const packageName =\n 'https://dev.azure.com/' +\n split[1] +\n '/' +\n split[2] +\n '/_git/' +\n (split[3] === '_git' ? split[4] : split[3]).replace(\n regEx(/\\.git$/),\n '',\n );\n return {\n datasource: GitTagsDatasource.id,\n packageName,\n };\n }\n }\n\n //#region known gitea compatible hosts\n if (goModule.startsWith('gitea.com/')) {\n const split = goModule.split('/');\n const packageName = `${split[1]}/${split[2]}`;\n return {\n datasource: GiteaTagsDatasource.id,\n packageName,\n registryUrl: 'https://gitea.com',\n };\n }\n\n if (goModule.startsWith('code.forgejo.org/')) {\n const split = goModule.split('/');\n const packageName = `${split[1]}/${split[2]}`;\n return {\n datasource: GiteaTagsDatasource.id,\n packageName,\n registryUrl: 'https://code.forgejo.org',\n };\n }\n\n if (goModule.startsWith('codeberg.org/')) {\n const split = goModule.split('/');\n const packageName = `${split[1]}/${split[2]}`;\n return {\n datasource: GiteaTagsDatasource.id,\n packageName,\n registryUrl: 'https://codeberg.org',\n };\n }\n //#endregion\n\n return await BaseGoDatasource.goGetDatasource(goModule);\n }\n\n private static async goGetDatasource(\n goModule: string,\n ): Promise<DataSource | null> {\n const goModuleUrl = goModule.replace(/\\.git(\\/[a-z0-9/]*)?$/, '');\n const pkgUrl = `https://${goModuleUrl}?go-get=1`;\n const { body: html } = await BaseGoDatasource.http.get(pkgUrl);\n\n const goSourceHeader = BaseGoDatasource.goSourceHeader(html, goModule);\n if (goSourceHeader) {\n return goSourceHeader;\n }\n\n // GitHub Enterprise only returns a go-import meta\n const goImport = BaseGoDatasource.goImportHeader(html, goModule);\n if (goImport) {\n return goImport;\n }\n\n logger.trace({ goModule }, 'No go-source or go-import header found');\n return null;\n }\n\n private static goSourceHeader(\n html: string,\n goModule: string,\n ): DataSource | null {\n const sourceMatchGroups = regEx(\n /<meta\\s+name=\"?go-source\"?\\s+content=\"(?<prefix>[^\"\\s]+)\\s+(?<goSourceUrl>[^\"\\s]+)/,\n ).exec(html)?.groups;\n if (!sourceMatchGroups) {\n return null;\n }\n const { prefix, goSourceUrl } = sourceMatchGroups;\n\n if (!goModule.startsWith(prefix)) {\n logger.trace({ goModule }, 'go-source header prefix not match');\n return null;\n }\n\n logger.debug(`Go lookup source url ${goSourceUrl} for module ${goModule}`);\n return this.detectDatasource(goSourceUrl, goModule);\n }\n\n private static detectDatasource(\n metadataUrl: string,\n goModule: string,\n ): DataSource | null {\n if (metadataUrl.startsWith('https://github.com/')) {\n return {\n datasource: GithubTagsDatasource.id,\n packageName: metadataUrl\n .replace('https://github.com/', '')\n .replace(regEx(/\\/$/), ''),\n registryUrl: 'https://github.com',\n };\n }\n\n const gitlabModuleName =\n BaseGoDatasource.gitlabRegExp.exec(goModule)?.groups?.regExpPath;\n const vcsIndicatedModule =\n BaseGoDatasource.gitVcsRegexp.exec(goModule)?.groups?.module;\n\n const metadataUrlMatchGroups =\n BaseGoDatasource.gitlabHttpsRegExp.exec(metadataUrl)?.groups;\n if (metadataUrlMatchGroups) {\n const { httpsRegExpUrl, httpsRegExpName } = metadataUrlMatchGroups;\n const packageName =\n vcsIndicatedModule ?? gitlabModuleName ?? httpsRegExpName;\n return {\n datasource: GitlabTagsDatasource.id,\n registryUrl: httpsRegExpUrl,\n packageName,\n };\n }\n\n if (hostRules.hostType({ url: metadataUrl }) === 'gitlab') {\n const parsedUrl = parseUrl(metadataUrl);\n if (!parsedUrl) {\n logger.trace({ goModule }, 'Could not parse go-source URL');\n return null;\n }\n\n const endpoint = GlobalConfig.get('endpoint', '');\n const endpointPrefix = regEx(\n /https:\\/\\/[^/]+\\/(?<prefix>.*?\\/)(?:api\\/v4\\/?)?/,\n ).exec(endpoint)?.groups?.prefix;\n\n let packageName =\n // a .git path indicates a concrete git repository, which can be different from metadata returned by gitlab\n vcsIndicatedModule ?? trimLeadingSlash(parsedUrl.pathname);\n if (endpointPrefix && endpointPrefix !== 'api/') {\n packageName = packageName.replace(endpointPrefix, '');\n }\n\n const registryUrl = endpointPrefix\n ? endpoint.replace(regEx(/\\/api\\/v4\\/?$/), '/')\n : `${parsedUrl.protocol}//${parsedUrl.host}`;\n\n return {\n datasource: GitlabTagsDatasource.id,\n registryUrl,\n packageName,\n };\n }\n /* istanbul ignore next */\n return null;\n }\n\n private static goImportHeader(\n html: string,\n goModule: string,\n ): DataSource | null {\n const importMatchGroups = regEx(\n /<meta\\s+name=\"?go-import\"?\\s+content=\"(?<prefix>[^\"\\s]+)\\s+(?<proto>[^\"\\s]+)\\s+(?<goImportURL>[^\"\\s]+)/,\n ).exec(html)?.groups;\n if (!importMatchGroups) {\n logger.trace({ goModule }, 'No go-source or go-import header found');\n return null;\n }\n const { prefix, proto, goImportURL } = importMatchGroups;\n\n if (!goModule.startsWith(prefix)) {\n logger.trace({ goModule }, 'go-import header prefix not match');\n return null;\n }\n\n if (proto !== 'git') {\n logger.trace({ goModule }, 'go-import header proto not git');\n return null;\n }\n\n // get server base url from import url\n const parsedUrl = parseUrl(goImportURL);\n if (!parsedUrl) {\n logger.trace({ goModule }, 'Could not parse go-import URL');\n return null;\n }\n\n logger.debug(`Go module: ${goModule} lookup import url ${goImportURL}`);\n\n const datasource = this.detectDatasource(\n goImportURL.replace(regEx(/\\.git$/), ''),\n goModule,\n );\n if (datasource !== null) {\n return datasource;\n }\n // fall back to old behavior if detection did not work\n\n switch (detectPlatform(goImportURL)) {\n case 'github': {\n // split the go module from the URL: host/go/module -> go/module\n // TODO: `parsedUrl.pathname` can be undefined\n const packageName = trimTrailingSlash(`${parsedUrl.pathname}`)\n .replace(regEx(/\\.git$/), '')\n .split('/')\n .slice(-2)\n .join('/');\n\n return {\n datasource: GithubTagsDatasource.id,\n registryUrl: `${parsedUrl.protocol}//${parsedUrl.host}`,\n packageName,\n };\n }\n case 'azure': {\n return {\n datasource: GitTagsDatasource.id,\n packageName: goImportURL.replace(regEx(/\\.git$/), ''),\n };\n }\n default: {\n return {\n datasource: GitTagsDatasource.id,\n packageName: goImportURL,\n };\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/go/base.ts"],"names":[],"mappings":"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","sourcesContent":["// TODO: types (#22198)\nimport { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport { detectPlatform } from '../../../util/common';\nimport * as hostRules from '../../../util/host-rules';\nimport { Http } from '../../../util/http';\nimport { regEx } from '../../../util/regex';\nimport {\n parseUrl,\n trimLeadingSlash,\n trimTrailingSlash,\n} from '../../../util/url';\nimport { BitbucketTagsDatasource } from '../bitbucket-tags';\nimport { GitTagsDatasource } from '../git-tags';\nimport { GiteaTagsDatasource } from '../gitea-tags';\nimport { GithubTagsDatasource } from '../github-tags';\nimport { GitlabTagsDatasource } from '../gitlab-tags';\nimport type { DataSource } from './types';\n\n// TODO: figure out class hierarchy (#10532)\nexport class BaseGoDatasource {\n private static readonly gitlabHttpsRegExp = regEx(\n /^(?<httpsRegExpUrl>https:\\/\\/[^/]*gitlab\\.[^/]*)\\/(?<httpsRegExpName>.+?)(?:\\/v\\d+)?[/]?$/,\n );\n private static readonly gitlabRegExp = regEx(\n /^(?<regExpUrl>gitlab\\.[^/]*)\\/(?<regExpPath>.+?)(?:\\/v\\d+)?[/]?$/,\n );\n private static readonly gitVcsRegexp = regEx(\n /^(?:[^/]+)\\/(?<module>.*)\\.git(?:$|\\/)/,\n );\n\n private static readonly id = 'go';\n private static readonly http = new Http(BaseGoDatasource.id);\n\n static async getDatasource(goModule: string): Promise<DataSource | null> {\n if (goModule.startsWith('gopkg.in/')) {\n const [pkg] = goModule.replace('gopkg.in/', '').split('.');\n const packageName = pkg.includes('/') ? pkg : `go-${pkg}/${pkg}`;\n return {\n datasource: GithubTagsDatasource.id,\n packageName,\n registryUrl: 'https://github.com',\n };\n }\n\n if (goModule.startsWith('github.com/')) {\n const split = goModule.split('/');\n const packageName = split[1] + '/' + split[2];\n return {\n datasource: GithubTagsDatasource.id,\n packageName,\n registryUrl: 'https://github.com',\n };\n }\n\n if (goModule.startsWith('bitbucket.org/')) {\n const split = goModule.split('/');\n const packageName = split[1] + '/' + split[2];\n return {\n datasource: BitbucketTagsDatasource.id,\n packageName,\n registryUrl: 'https://bitbucket.org',\n };\n }\n\n if (goModule.startsWith('code.cloudfoundry.org/')) {\n const packageName = goModule.replace(\n 'code.cloudfoundry.org',\n 'cloudfoundry',\n );\n return {\n datasource: GithubTagsDatasource.id,\n packageName,\n registryUrl: 'https://github.com',\n };\n }\n\n if (goModule.startsWith('dev.azure.com/')) {\n const split = goModule.split('/');\n if ((split.length > 4 && split[3] === '_git') || split.length > 3) {\n const packageName =\n 'https://dev.azure.com/' +\n split[1] +\n '/' +\n split[2] +\n '/_git/' +\n (split[3] === '_git' ? split[4] : split[3]).replace(\n regEx(/\\.git$/),\n '',\n );\n return {\n datasource: GitTagsDatasource.id,\n packageName,\n };\n }\n }\n\n //#region known gitea compatible hosts\n if (goModule.startsWith('gitea.com/')) {\n const split = goModule.split('/');\n const packageName = `${split[1]}/${split[2]}`;\n return {\n datasource: GiteaTagsDatasource.id,\n packageName,\n registryUrl: 'https://gitea.com',\n };\n }\n\n if (goModule.startsWith('code.forgejo.org/')) {\n const split = goModule.split('/');\n const packageName = `${split[1]}/${split[2]}`;\n return {\n datasource: GiteaTagsDatasource.id,\n packageName,\n registryUrl: 'https://code.forgejo.org',\n };\n }\n\n if (goModule.startsWith('codeberg.org/')) {\n const split = goModule.split('/');\n const packageName = `${split[1]}/${split[2]}`;\n return {\n datasource: GiteaTagsDatasource.id,\n packageName,\n registryUrl: 'https://codeberg.org',\n };\n }\n //#endregion\n\n return await BaseGoDatasource.goGetDatasource(goModule);\n }\n\n private static async goGetDatasource(\n goModule: string,\n ): Promise<DataSource | null> {\n const goModuleUrl = goModule.replace(/\\.git(\\/[a-z0-9/]*)?$/, '');\n const pkgUrl = `https://${goModuleUrl}?go-get=1`;\n const { body: html } = await BaseGoDatasource.http.getText(pkgUrl);\n\n const goSourceHeader = BaseGoDatasource.goSourceHeader(html, goModule);\n if (goSourceHeader) {\n return goSourceHeader;\n }\n\n // GitHub Enterprise only returns a go-import meta\n const goImport = BaseGoDatasource.goImportHeader(html, goModule);\n if (goImport) {\n return goImport;\n }\n\n logger.trace({ goModule }, 'No go-source or go-import header found');\n return null;\n }\n\n private static goSourceHeader(\n html: string,\n goModule: string,\n ): DataSource | null {\n const sourceMatchGroups = regEx(\n /<meta\\s+name=\"?go-source\"?\\s+content=\"(?<prefix>[^\"\\s]+)\\s+(?<goSourceUrl>[^\"\\s]+)/,\n ).exec(html)?.groups;\n if (!sourceMatchGroups) {\n return null;\n }\n const { prefix, goSourceUrl } = sourceMatchGroups;\n\n if (!goModule.startsWith(prefix)) {\n logger.trace({ goModule }, 'go-source header prefix not match');\n return null;\n }\n\n logger.debug(`Go lookup source url ${goSourceUrl} for module ${goModule}`);\n return this.detectDatasource(goSourceUrl, goModule);\n }\n\n private static detectDatasource(\n metadataUrl: string,\n goModule: string,\n ): DataSource | null {\n if (metadataUrl.startsWith('https://github.com/')) {\n return {\n datasource: GithubTagsDatasource.id,\n packageName: metadataUrl\n .replace('https://github.com/', '')\n .replace(regEx(/\\/$/), ''),\n registryUrl: 'https://github.com',\n };\n }\n\n const gitlabModuleName =\n BaseGoDatasource.gitlabRegExp.exec(goModule)?.groups?.regExpPath;\n const vcsIndicatedModule =\n BaseGoDatasource.gitVcsRegexp.exec(goModule)?.groups?.module;\n\n const metadataUrlMatchGroups =\n BaseGoDatasource.gitlabHttpsRegExp.exec(metadataUrl)?.groups;\n if (metadataUrlMatchGroups) {\n const { httpsRegExpUrl, httpsRegExpName } = metadataUrlMatchGroups;\n const packageName =\n vcsIndicatedModule ?? gitlabModuleName ?? httpsRegExpName;\n return {\n datasource: GitlabTagsDatasource.id,\n registryUrl: httpsRegExpUrl,\n packageName,\n };\n }\n\n if (hostRules.hostType({ url: metadataUrl }) === 'gitlab') {\n const parsedUrl = parseUrl(metadataUrl);\n if (!parsedUrl) {\n logger.trace({ goModule }, 'Could not parse go-source URL');\n return null;\n }\n\n const endpoint = GlobalConfig.get('endpoint', '');\n const endpointPrefix = regEx(\n /https:\\/\\/[^/]+\\/(?<prefix>.*?\\/)(?:api\\/v4\\/?)?/,\n ).exec(endpoint)?.groups?.prefix;\n\n let packageName =\n // a .git path indicates a concrete git repository, which can be different from metadata returned by gitlab\n vcsIndicatedModule ?? trimLeadingSlash(parsedUrl.pathname);\n if (endpointPrefix && endpointPrefix !== 'api/') {\n packageName = packageName.replace(endpointPrefix, '');\n }\n\n const registryUrl = endpointPrefix\n ? endpoint.replace(regEx(/\\/api\\/v4\\/?$/), '/')\n : `${parsedUrl.protocol}//${parsedUrl.host}`;\n\n return {\n datasource: GitlabTagsDatasource.id,\n registryUrl,\n packageName,\n };\n }\n /* istanbul ignore next */\n return null;\n }\n\n private static goImportHeader(\n html: string,\n goModule: string,\n ): DataSource | null {\n const importMatchGroups = regEx(\n /<meta\\s+name=\"?go-import\"?\\s+content=\"(?<prefix>[^\"\\s]+)\\s+(?<proto>[^\"\\s]+)\\s+(?<goImportURL>[^\"\\s]+)/,\n ).exec(html)?.groups;\n if (!importMatchGroups) {\n logger.trace({ goModule }, 'No go-source or go-import header found');\n return null;\n }\n const { prefix, proto, goImportURL } = importMatchGroups;\n\n if (!goModule.startsWith(prefix)) {\n logger.trace({ goModule }, 'go-import header prefix not match');\n return null;\n }\n\n if (proto !== 'git') {\n logger.trace({ goModule }, 'go-import header proto not git');\n return null;\n }\n\n // get server base url from import url\n const parsedUrl = parseUrl(goImportURL);\n if (!parsedUrl) {\n logger.trace({ goModule }, 'Could not parse go-import URL');\n return null;\n }\n\n logger.debug(`Go module: ${goModule} lookup import url ${goImportURL}`);\n\n const datasource = this.detectDatasource(\n goImportURL.replace(regEx(/\\.git$/), ''),\n goModule,\n );\n if (datasource !== null) {\n return datasource;\n }\n // fall back to old behavior if detection did not work\n\n switch (detectPlatform(goImportURL)) {\n case 'github': {\n // split the go module from the URL: host/go/module -> go/module\n // TODO: `parsedUrl.pathname` can be undefined\n const packageName = trimTrailingSlash(`${parsedUrl.pathname}`)\n .replace(regEx(/\\.git$/), '')\n .split('/')\n .slice(-2)\n .join('/');\n\n return {\n datasource: GithubTagsDatasource.id,\n registryUrl: `${parsedUrl.protocol}//${parsedUrl.host}`,\n packageName,\n };\n }\n case 'azure': {\n return {\n datasource: GitTagsDatasource.id,\n packageName: goImportURL.replace(regEx(/\\.git$/), ''),\n };\n }\n default: {\n return {\n datasource: GitTagsDatasource.id,\n packageName: goImportURL,\n };\n }\n }\n }\n}\n"]}
@@ -103,7 +103,7 @@ tslib_1.__decorate([
103
103
  key: ({ packageName }, newValue) => `getDigest:${packageName}:${newValue}`,
104
104
  })
105
105
  ], GoDatasource.prototype, "getDigest", null);
106
- // istanbul ignore if
106
+ /* v8 ignore next 3 -- hard to test */
107
107
  if (is_1.default.string(process.env.GOPROXY)) {
108
108
  const uri = (0, url_1.parseUrl)(process.env.GOPROXY);
109
109
  if (uri?.password) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/go/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { regEx } from '../../../util/regex';\nimport { addSecretForSanitizing } from '../../../util/sanitize';\nimport { parseUrl } from '../../../util/url';\nimport { id as semverId } from '../../versioning/semver';\nimport { BitbucketTagsDatasource } from '../bitbucket-tags';\nimport { Datasource } from '../datasource';\nimport { GitTagsDatasource } from '../git-tags';\nimport { GiteaTagsDatasource } from '../gitea-tags';\nimport { GithubTagsDatasource } from '../github-tags';\nimport { GitlabTagsDatasource } from '../gitlab-tags';\nimport type { DigestConfig, GetReleasesConfig, ReleaseResult } from '../types';\nimport { BaseGoDatasource } from './base';\nimport { parseGoproxy } from './goproxy-parser';\nimport { GoDirectDatasource } from './releases-direct';\nimport { GoProxyDatasource } from './releases-goproxy';\n\nexport class GoDatasource extends Datasource {\n static readonly id = 'go';\n\n override readonly defaultVersioning = semverId;\n\n constructor() {\n super(GoDatasource.id);\n }\n\n override readonly defaultConfig = {\n commitMessageTopic: 'module {{depName}}',\n };\n\n override readonly customRegistrySupport = false;\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'If the release timestamp is not returned from the respective datasoure used to fetch the releases, then Renovate uses the `Time` field in the results instead.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `packageName` and `registryUrl`.';\n\n readonly goproxy = new GoProxyDatasource();\n readonly direct = new GoDirectDatasource();\n\n // Pseudo versions https://go.dev/ref/mod#pseudo-versions\n static readonly pversionRegexp = regEx(\n /v\\d+\\.\\d+\\.\\d+-(?:\\w+\\.)?(?:0\\.)?\\d{14}-(?<digest>[a-f0-9]{12})/,\n );\n @cache({\n namespace: `datasource-${GoDatasource.id}`,\n // TODO: types (#22198)\n key: ({ packageName }: GetReleasesConfig) => `getReleases:${packageName}`,\n })\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n return this.goproxy.getReleases(config);\n }\n\n /**\n * go.getDigest\n *\n * This datasource resolves a go module URL into its source repository\n * and then fetches the digest if it is on GitHub.\n *\n * This function will:\n * - Determine the source URL for the module\n * - Call the respective getDigest in github to retrieve the commit hash\n */\n @cache({\n namespace: `datasource-${GoDatasource.id}`,\n key: ({ packageName }: DigestConfig, newValue?: string) =>\n `getDigest:${packageName}:${newValue}`,\n })\n override async getDigest(\n { packageName }: DigestConfig,\n newValue?: string,\n ): Promise<string | null> {\n if (parseGoproxy().some(({ url }) => url === 'off')) {\n logger.debug(\n `Skip digest fetch for ${packageName} with GOPROXY containing \"off\"`,\n );\n return null;\n }\n\n const source = await BaseGoDatasource.getDatasource(packageName);\n if (!source) {\n return null;\n }\n\n // ignore vX.Y.Z-(0.)? pseudo versions that are used Go Modules - look up default branch instead\n // ignore v0.0.0 versions to fetch the digest of default branch, not the commit of non-existing tag `v0.0.0`\n const tag =\n newValue &&\n !GoDatasource.pversionRegexp.test(newValue) &&\n newValue !== 'v0.0.0'\n ? newValue\n : undefined;\n\n switch (source.datasource) {\n case GitTagsDatasource.id: {\n return this.direct.git.getDigest(source, tag);\n }\n case GiteaTagsDatasource.id: {\n return this.direct.gitea.getDigest(source, tag);\n }\n case GithubTagsDatasource.id: {\n return this.direct.github.getDigest(source, tag);\n }\n case BitbucketTagsDatasource.id: {\n return this.direct.bitbucket.getDigest(source, tag);\n }\n case GitlabTagsDatasource.id: {\n return this.direct.gitlab.getDigest(source, tag);\n }\n /* istanbul ignore next: can never happen, makes lint happy */\n default: {\n return null;\n }\n }\n }\n}\n\n// istanbul ignore if\nif (is.string(process.env.GOPROXY)) {\n const uri = parseUrl(process.env.GOPROXY);\n if (uri?.password) {\n addSecretForSanitizing(uri.password, 'global');\n } else if (uri?.username) {\n addSecretForSanitizing(uri.username, 'global');\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/go/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { regEx } from '../../../util/regex';\nimport { addSecretForSanitizing } from '../../../util/sanitize';\nimport { parseUrl } from '../../../util/url';\nimport { id as semverId } from '../../versioning/semver';\nimport { BitbucketTagsDatasource } from '../bitbucket-tags';\nimport { Datasource } from '../datasource';\nimport { GitTagsDatasource } from '../git-tags';\nimport { GiteaTagsDatasource } from '../gitea-tags';\nimport { GithubTagsDatasource } from '../github-tags';\nimport { GitlabTagsDatasource } from '../gitlab-tags';\nimport type { DigestConfig, GetReleasesConfig, ReleaseResult } from '../types';\nimport { BaseGoDatasource } from './base';\nimport { parseGoproxy } from './goproxy-parser';\nimport { GoDirectDatasource } from './releases-direct';\nimport { GoProxyDatasource } from './releases-goproxy';\n\nexport class GoDatasource extends Datasource {\n static readonly id = 'go';\n\n override readonly defaultVersioning = semverId;\n\n constructor() {\n super(GoDatasource.id);\n }\n\n override readonly defaultConfig = {\n commitMessageTopic: 'module {{depName}}',\n };\n\n override readonly customRegistrySupport = false;\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'If the release timestamp is not returned from the respective datasoure used to fetch the releases, then Renovate uses the `Time` field in the results instead.';\n override readonly sourceUrlSupport = 'package';\n override readonly sourceUrlNote =\n 'The source URL is determined from the `packageName` and `registryUrl`.';\n\n readonly goproxy = new GoProxyDatasource();\n readonly direct = new GoDirectDatasource();\n\n // Pseudo versions https://go.dev/ref/mod#pseudo-versions\n static readonly pversionRegexp = regEx(\n /v\\d+\\.\\d+\\.\\d+-(?:\\w+\\.)?(?:0\\.)?\\d{14}-(?<digest>[a-f0-9]{12})/,\n );\n @cache({\n namespace: `datasource-${GoDatasource.id}`,\n // TODO: types (#22198)\n key: ({ packageName }: GetReleasesConfig) => `getReleases:${packageName}`,\n })\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n return this.goproxy.getReleases(config);\n }\n\n /**\n * go.getDigest\n *\n * This datasource resolves a go module URL into its source repository\n * and then fetches the digest if it is on GitHub.\n *\n * This function will:\n * - Determine the source URL for the module\n * - Call the respective getDigest in github to retrieve the commit hash\n */\n @cache({\n namespace: `datasource-${GoDatasource.id}`,\n key: ({ packageName }: DigestConfig, newValue?: string) =>\n `getDigest:${packageName}:${newValue}`,\n })\n override async getDigest(\n { packageName }: DigestConfig,\n newValue?: string,\n ): Promise<string | null> {\n if (parseGoproxy().some(({ url }) => url === 'off')) {\n logger.debug(\n `Skip digest fetch for ${packageName} with GOPROXY containing \"off\"`,\n );\n return null;\n }\n\n const source = await BaseGoDatasource.getDatasource(packageName);\n if (!source) {\n return null;\n }\n\n // ignore vX.Y.Z-(0.)? pseudo versions that are used Go Modules - look up default branch instead\n // ignore v0.0.0 versions to fetch the digest of default branch, not the commit of non-existing tag `v0.0.0`\n const tag =\n newValue &&\n !GoDatasource.pversionRegexp.test(newValue) &&\n newValue !== 'v0.0.0'\n ? newValue\n : undefined;\n\n switch (source.datasource) {\n case GitTagsDatasource.id: {\n return this.direct.git.getDigest(source, tag);\n }\n case GiteaTagsDatasource.id: {\n return this.direct.gitea.getDigest(source, tag);\n }\n case GithubTagsDatasource.id: {\n return this.direct.github.getDigest(source, tag);\n }\n case BitbucketTagsDatasource.id: {\n return this.direct.bitbucket.getDigest(source, tag);\n }\n case GitlabTagsDatasource.id: {\n return this.direct.gitlab.getDigest(source, tag);\n }\n /* istanbul ignore next: can never happen, makes lint happy */\n default: {\n return null;\n }\n }\n }\n}\n\n/* v8 ignore next 3 -- hard to test */\nif (is.string(process.env.GOPROXY)) {\n const uri = parseUrl(process.env.GOPROXY);\n if (uri?.password) {\n addSecretForSanitizing(uri.password, 'global');\n } else if (uri?.username) {\n addSecretForSanitizing(uri.username, 'global');\n }\n}\n"]}
@@ -106,18 +106,21 @@ class GoDirectDatasource extends datasource_1.Datasource {
106
106
  res = await this.bitbucket.getReleases(source);
107
107
  break;
108
108
  }
109
- /* istanbul ignore next: can never happen, makes lint happy */
109
+ /* v8 ignore next 3 -- should never happen */
110
110
  default: {
111
111
  return null;
112
112
  }
113
113
  }
114
- // istanbul ignore if
114
+ /* v8 ignore next 3 -- TODO: add test */
115
115
  if (!res) {
116
116
  return null;
117
117
  }
118
118
  const sourceUrl = (0, common_1.getSourceUrl)(source) ?? null;
119
- res.releases = filterByPrefix(packageName, res.releases);
120
- return { ...res, sourceUrl };
119
+ return {
120
+ ...res,
121
+ releases: filterByPrefix(packageName, res.releases),
122
+ sourceUrl,
123
+ };
121
124
  }
122
125
  }
123
126
  exports.GoDirectDatasource = GoDirectDatasource;
@@ -1 +1 @@
1
- {"version":3,"file":"releases-direct.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/go/releases-direct.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { regEx } from '../../../util/regex';\nimport { BitbucketTagsDatasource } from '../bitbucket-tags';\nimport { Datasource } from '../datasource';\nimport { GitTagsDatasource } from '../git-tags';\nimport { GiteaTagsDatasource } from '../gitea-tags';\nimport { GithubTagsDatasource } from '../github-tags';\nimport { GitlabTagsDatasource } from '../gitlab-tags';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport { BaseGoDatasource } from './base';\nimport { getSourceUrl } from './common';\n\n/**\n * This function tries to select tags with longest prefix could be constructed from `packageName`.\n *\n * For package named `example.com/foo/bar/baz/qux`, it will try to detect tags with following prefixes:\n *\n * - `foo/bar/baz/qux/vX.Y.Z`\n * - `bar/baz/qux/vX.Y.Z`\n * - `baz/qux/vX.Y.Z`\n * - `qux/vX.Y.Z`\n *\n * If none of the following is found, it falls back to simply returning all tags like `vX.Y.Z`.\n */\nfunction filterByPrefix(packageName: string, releases: Release[]): Release[] {\n const nameParts = packageName\n .replace(regEx(/\\/v\\d+$/), '')\n .split('/')\n .slice(1);\n\n const submoduleReleases: Release[] = [];\n while (nameParts.length) {\n const prefix = `${nameParts.join('/')}/`;\n\n for (const release of releases) {\n if (!release.version.startsWith(prefix)) {\n continue;\n }\n\n const normalizedVersion = release.version.replace(prefix, '');\n if (!normalizedVersion.match(regEx(/^v\\d[^/]*/))) {\n continue;\n }\n\n release.version = release.version.replace(prefix, '');\n submoduleReleases.push(release);\n }\n\n if (submoduleReleases.length) {\n return submoduleReleases;\n }\n\n nameParts.shift();\n }\n\n return releases.filter((release) => release.version.startsWith('v'));\n}\n\nexport class GoDirectDatasource extends Datasource {\n static readonly id = 'go-direct';\n\n git: GitTagsDatasource;\n readonly gitea = new GiteaTagsDatasource();\n github: GithubTagsDatasource;\n gitlab: GitlabTagsDatasource;\n bitbucket: BitbucketTagsDatasource;\n\n constructor() {\n super(GoDirectDatasource.id);\n this.git = new GitTagsDatasource();\n this.github = new GithubTagsDatasource();\n this.gitlab = new GitlabTagsDatasource();\n this.bitbucket = new BitbucketTagsDatasource();\n }\n\n /**\n * go.getReleases\n *\n * This datasource resolves a go module URL into its source repository\n * and then fetch it if it is on GitHub.\n *\n * This function will:\n * - Determine the source URL for the module\n * - Call the respective getReleases in github/gitlab to retrieve the tags\n * - Filter module tags according to the module path\n */\n @cache({\n namespace: `datasource-${GoDirectDatasource.id}`,\n key: ({ packageName }: GetReleasesConfig) => packageName,\n })\n async getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n const { packageName } = config;\n\n let res: ReleaseResult | null = null;\n\n logger.trace(`go.getReleases(${packageName})`);\n const source = await BaseGoDatasource.getDatasource(packageName);\n\n if (!source) {\n logger.info(\n { packageName },\n 'Unsupported go host - cannot look up versions',\n );\n return null;\n }\n\n switch (source.datasource) {\n case GitTagsDatasource.id: {\n res = await this.git.getReleases(source);\n break;\n }\n case GiteaTagsDatasource.id: {\n res = await this.gitea.getReleases(source);\n break;\n }\n case GithubTagsDatasource.id: {\n res = await this.github.getReleases(source);\n break;\n }\n case GitlabTagsDatasource.id: {\n res = await this.gitlab.getReleases(source);\n break;\n }\n case BitbucketTagsDatasource.id: {\n res = await this.bitbucket.getReleases(source);\n break;\n }\n /* istanbul ignore next: can never happen, makes lint happy */\n default: {\n return null;\n }\n }\n\n // istanbul ignore if\n if (!res) {\n return null;\n }\n\n const sourceUrl = getSourceUrl(source) ?? null;\n\n res.releases = filterByPrefix(packageName, res.releases);\n\n return { ...res, sourceUrl };\n }\n}\n"]}
1
+ {"version":3,"file":"releases-direct.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/go/releases-direct.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { regEx } from '../../../util/regex';\nimport { BitbucketTagsDatasource } from '../bitbucket-tags';\nimport { Datasource } from '../datasource';\nimport { GitTagsDatasource } from '../git-tags';\nimport { GiteaTagsDatasource } from '../gitea-tags';\nimport { GithubTagsDatasource } from '../github-tags';\nimport { GitlabTagsDatasource } from '../gitlab-tags';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport { BaseGoDatasource } from './base';\nimport { getSourceUrl } from './common';\n\n/**\n * This function tries to select tags with longest prefix could be constructed from `packageName`.\n *\n * For package named `example.com/foo/bar/baz/qux`, it will try to detect tags with following prefixes:\n *\n * - `foo/bar/baz/qux/vX.Y.Z`\n * - `bar/baz/qux/vX.Y.Z`\n * - `baz/qux/vX.Y.Z`\n * - `qux/vX.Y.Z`\n *\n * If none of the following is found, it falls back to simply returning all tags like `vX.Y.Z`.\n */\nfunction filterByPrefix(packageName: string, releases: Release[]): Release[] {\n const nameParts = packageName\n .replace(regEx(/\\/v\\d+$/), '')\n .split('/')\n .slice(1);\n\n const submoduleReleases: Release[] = [];\n while (nameParts.length) {\n const prefix = `${nameParts.join('/')}/`;\n\n for (const release of releases) {\n if (!release.version.startsWith(prefix)) {\n continue;\n }\n\n const normalizedVersion = release.version.replace(prefix, '');\n if (!normalizedVersion.match(regEx(/^v\\d[^/]*/))) {\n continue;\n }\n\n release.version = release.version.replace(prefix, '');\n submoduleReleases.push(release);\n }\n\n if (submoduleReleases.length) {\n return submoduleReleases;\n }\n\n nameParts.shift();\n }\n\n return releases.filter((release) => release.version.startsWith('v'));\n}\n\nexport class GoDirectDatasource extends Datasource {\n static readonly id = 'go-direct';\n\n git: GitTagsDatasource;\n readonly gitea = new GiteaTagsDatasource();\n github: GithubTagsDatasource;\n gitlab: GitlabTagsDatasource;\n bitbucket: BitbucketTagsDatasource;\n\n constructor() {\n super(GoDirectDatasource.id);\n this.git = new GitTagsDatasource();\n this.github = new GithubTagsDatasource();\n this.gitlab = new GitlabTagsDatasource();\n this.bitbucket = new BitbucketTagsDatasource();\n }\n\n /**\n * go.getReleases\n *\n * This datasource resolves a go module URL into its source repository\n * and then fetch it if it is on GitHub.\n *\n * This function will:\n * - Determine the source URL for the module\n * - Call the respective getReleases in github/gitlab to retrieve the tags\n * - Filter module tags according to the module path\n */\n @cache({\n namespace: `datasource-${GoDirectDatasource.id}`,\n key: ({ packageName }: GetReleasesConfig) => packageName,\n })\n async getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n const { packageName } = config;\n\n let res: ReleaseResult | null = null;\n\n logger.trace(`go.getReleases(${packageName})`);\n const source = await BaseGoDatasource.getDatasource(packageName);\n\n if (!source) {\n logger.info(\n { packageName },\n 'Unsupported go host - cannot look up versions',\n );\n return null;\n }\n\n switch (source.datasource) {\n case GitTagsDatasource.id: {\n res = await this.git.getReleases(source);\n break;\n }\n case GiteaTagsDatasource.id: {\n res = await this.gitea.getReleases(source);\n break;\n }\n case GithubTagsDatasource.id: {\n res = await this.github.getReleases(source);\n break;\n }\n case GitlabTagsDatasource.id: {\n res = await this.gitlab.getReleases(source);\n break;\n }\n case BitbucketTagsDatasource.id: {\n res = await this.bitbucket.getReleases(source);\n break;\n }\n /* v8 ignore next 3 -- should never happen */\n default: {\n return null;\n }\n }\n\n /* v8 ignore next 3 -- TODO: add test */\n if (!res) {\n return null;\n }\n\n const sourceUrl = getSourceUrl(source) ?? null;\n\n return {\n ...res,\n releases: filterByPrefix(packageName, res.releases),\n sourceUrl,\n };\n }\n}\n"]}