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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (520) hide show
  1. package/dist/config/decrypt.js +1 -1
  2. package/dist/config/decrypt.js.map +1 -1
  3. package/dist/config/migrate-validate.js +2 -2
  4. package/dist/config/migrate-validate.js.map +1 -1
  5. package/dist/config/migration.js +1 -1
  6. package/dist/config/migration.js.map +1 -1
  7. package/dist/config/options/index.js +2 -1
  8. package/dist/config/options/index.js.map +1 -1
  9. package/dist/config/presets/internal/group.js +30 -1
  10. package/dist/config/presets/internal/group.js.map +1 -1
  11. package/dist/config/presets/internal/workarounds.js +1 -0
  12. package/dist/config/presets/internal/workarounds.js.map +1 -1
  13. package/dist/config/presets/parse.js +2 -1
  14. package/dist/config/presets/parse.js.map +1 -1
  15. package/dist/config/types.d.ts +4 -1
  16. package/dist/config/types.js.map +1 -1
  17. package/dist/config/validation.js +2 -2
  18. package/dist/config/validation.js.map +1 -1
  19. package/dist/data/monorepo.json +3 -0
  20. package/dist/data/source-urls.json +1 -0
  21. package/dist/instrumentation/index.js +14 -12
  22. package/dist/instrumentation/index.js.map +1 -1
  23. package/dist/logger/index.js +1 -1
  24. package/dist/logger/index.js.map +1 -1
  25. package/dist/logger/once.js +2 -2
  26. package/dist/logger/once.js.map +1 -1
  27. package/dist/logger/renovate-logger.js +1 -1
  28. package/dist/logger/renovate-logger.js.map +1 -1
  29. package/dist/logger/utils.js +1 -1
  30. package/dist/logger/utils.js.map +1 -1
  31. package/dist/modules/datasource/api.js +2 -0
  32. package/dist/modules/datasource/api.js.map +1 -1
  33. package/dist/modules/datasource/artifactory/index.js +0 -1
  34. package/dist/modules/datasource/artifactory/index.js.map +1 -1
  35. package/dist/modules/datasource/aws-eks-addon/index.d.ts +11 -0
  36. package/dist/modules/datasource/aws-eks-addon/index.js +75 -0
  37. package/dist/modules/datasource/aws-eks-addon/index.js.map +1 -0
  38. package/dist/modules/datasource/aws-eks-addon/schema.d.ts +40 -0
  39. package/dist/modules/datasource/aws-eks-addon/schema.js +31 -0
  40. package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -0
  41. package/dist/modules/datasource/aws-machine-image/index.js +6 -5
  42. package/dist/modules/datasource/aws-machine-image/index.js.map +1 -1
  43. package/dist/modules/datasource/bazel/index.js +0 -1
  44. package/dist/modules/datasource/bazel/index.js.map +1 -1
  45. package/dist/modules/datasource/bitrise/index.js +1 -1
  46. package/dist/modules/datasource/bitrise/index.js.map +1 -1
  47. package/dist/modules/datasource/cdnjs/schema.d.ts +2 -2
  48. package/dist/modules/datasource/conda/index.js +18 -1
  49. package/dist/modules/datasource/conda/index.js.map +1 -1
  50. package/dist/modules/datasource/conda/prefix-dev.d.ts +3 -0
  51. package/dist/modules/datasource/conda/prefix-dev.js +83 -0
  52. package/dist/modules/datasource/conda/prefix-dev.js.map +1 -0
  53. package/dist/modules/datasource/conda/schema/prefix-dev.d.ts +189 -0
  54. package/dist/modules/datasource/conda/schema/prefix-dev.js +31 -0
  55. package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -0
  56. package/dist/modules/datasource/conda/types.d.ts +1 -20
  57. package/dist/modules/datasource/conda/types.js.map +1 -1
  58. package/dist/modules/datasource/cpan/index.js +1 -1
  59. package/dist/modules/datasource/cpan/index.js.map +1 -1
  60. package/dist/modules/datasource/crate/index.js +2 -2
  61. package/dist/modules/datasource/crate/index.js.map +1 -1
  62. package/dist/modules/datasource/custom/index.js +4 -2
  63. package/dist/modules/datasource/custom/index.js.map +1 -1
  64. package/dist/modules/datasource/custom/schema.d.ts +27 -27
  65. package/dist/modules/datasource/custom/utils.js +1 -0
  66. package/dist/modules/datasource/custom/utils.js.map +1 -1
  67. package/dist/modules/datasource/dart/index.js +1 -1
  68. package/dist/modules/datasource/dart/index.js.map +1 -1
  69. package/dist/modules/datasource/dart-version/index.js +1 -1
  70. package/dist/modules/datasource/dart-version/index.js.map +1 -1
  71. package/dist/modules/datasource/datasource.js +0 -1
  72. package/dist/modules/datasource/datasource.js.map +1 -1
  73. package/dist/modules/datasource/deb/index.js +1 -1
  74. package/dist/modules/datasource/deb/index.js.map +1 -1
  75. package/dist/modules/datasource/deno/index.js +1 -1
  76. package/dist/modules/datasource/deno/index.js.map +1 -1
  77. package/dist/modules/datasource/deno/schema.d.ts +7 -7
  78. package/dist/modules/datasource/devbox/index.js +0 -1
  79. package/dist/modules/datasource/devbox/index.js.map +1 -1
  80. package/dist/modules/datasource/docker/common.js +4 -1
  81. package/dist/modules/datasource/docker/common.js.map +1 -1
  82. package/dist/modules/datasource/docker/index.js +5 -5
  83. package/dist/modules/datasource/docker/index.js.map +1 -1
  84. package/dist/modules/datasource/docker/schema.d.ts +27 -27
  85. package/dist/modules/datasource/docker/schema.js +2 -1
  86. package/dist/modules/datasource/docker/schema.js.map +1 -1
  87. package/dist/modules/datasource/flutter-version/index.js +1 -1
  88. package/dist/modules/datasource/flutter-version/index.js.map +1 -1
  89. package/dist/modules/datasource/galaxy-collection/schema.d.ts +5 -5
  90. package/dist/modules/datasource/git-refs/index.js +1 -1
  91. package/dist/modules/datasource/git-refs/index.js.map +1 -1
  92. package/dist/modules/datasource/gitea-releases/schema.d.ts +6 -6
  93. package/dist/modules/datasource/gitlab-packages/index.js +1 -1
  94. package/dist/modules/datasource/gitlab-packages/index.js.map +1 -1
  95. package/dist/modules/datasource/gitlab-releases/index.js +1 -3
  96. package/dist/modules/datasource/gitlab-releases/index.js.map +1 -1
  97. package/dist/modules/datasource/go/index.js +1 -1
  98. package/dist/modules/datasource/go/index.js.map +1 -1
  99. package/dist/modules/datasource/go/releases-direct.js +7 -4
  100. package/dist/modules/datasource/go/releases-direct.js.map +1 -1
  101. package/dist/modules/datasource/golang-version/index.js +1 -1
  102. package/dist/modules/datasource/golang-version/index.js.map +1 -1
  103. package/dist/modules/datasource/gradle-version/index.js +1 -1
  104. package/dist/modules/datasource/gradle-version/index.js.map +1 -1
  105. package/dist/modules/datasource/helm/index.js +1 -1
  106. package/dist/modules/datasource/helm/index.js.map +1 -1
  107. package/dist/modules/datasource/hex/index.js +1 -1
  108. package/dist/modules/datasource/hex/index.js.map +1 -1
  109. package/dist/modules/datasource/index.js +2 -2
  110. package/dist/modules/datasource/index.js.map +1 -1
  111. package/dist/modules/datasource/java-version/index.js +0 -1
  112. package/dist/modules/datasource/java-version/index.js.map +1 -1
  113. package/dist/modules/datasource/jenkins-plugins/index.js +1 -1
  114. package/dist/modules/datasource/jenkins-plugins/index.js.map +1 -1
  115. package/dist/modules/datasource/maven/index.js +35 -27
  116. package/dist/modules/datasource/maven/index.js.map +1 -1
  117. package/dist/modules/datasource/maven/types.d.ts +3 -6
  118. package/dist/modules/datasource/maven/types.js.map +1 -1
  119. package/dist/modules/datasource/maven/util.d.ts +4 -5
  120. package/dist/modules/datasource/maven/util.js +93 -156
  121. package/dist/modules/datasource/maven/util.js.map +1 -1
  122. package/dist/modules/datasource/node-version/index.js +1 -1
  123. package/dist/modules/datasource/node-version/index.js.map +1 -1
  124. package/dist/modules/datasource/npm/index.js +1 -1
  125. package/dist/modules/datasource/npm/index.js.map +1 -1
  126. package/dist/modules/datasource/npm/npmrc.js +1 -1
  127. package/dist/modules/datasource/npm/npmrc.js.map +1 -1
  128. package/dist/modules/datasource/nuget/index.js +1 -1
  129. package/dist/modules/datasource/nuget/index.js.map +1 -1
  130. package/dist/modules/datasource/nuget/v3.js +5 -5
  131. package/dist/modules/datasource/nuget/v3.js.map +1 -1
  132. package/dist/modules/datasource/orb/index.js +1 -1
  133. package/dist/modules/datasource/orb/index.js.map +1 -1
  134. package/dist/modules/datasource/packagist/index.js +2 -2
  135. package/dist/modules/datasource/packagist/index.js.map +1 -1
  136. package/dist/modules/datasource/packagist/schema.d.ts +18 -18
  137. package/dist/modules/datasource/pod/index.js +1 -1
  138. package/dist/modules/datasource/pod/index.js.map +1 -1
  139. package/dist/modules/datasource/postprocess-release.js +1 -1
  140. package/dist/modules/datasource/postprocess-release.js.map +1 -1
  141. package/dist/modules/datasource/python-version/index.js +1 -1
  142. package/dist/modules/datasource/python-version/index.js.map +1 -1
  143. package/dist/modules/datasource/repology/index.js +1 -1
  144. package/dist/modules/datasource/repology/index.js.map +1 -1
  145. package/dist/modules/datasource/rubygems/index.js +1 -1
  146. package/dist/modules/datasource/rubygems/index.js.map +1 -1
  147. package/dist/modules/datasource/sbt-package/index.js +1 -1
  148. package/dist/modules/datasource/sbt-package/index.js.map +1 -1
  149. package/dist/modules/datasource/sbt-plugin/index.js +1 -1
  150. package/dist/modules/datasource/sbt-plugin/index.js.map +1 -1
  151. package/dist/modules/datasource/schema.d.ts +4 -4
  152. package/dist/modules/datasource/terraform-module/index.js +1 -1
  153. package/dist/modules/datasource/terraform-module/index.js.map +1 -1
  154. package/dist/modules/datasource/terraform-provider/index.js +1 -2
  155. package/dist/modules/datasource/terraform-provider/index.js.map +1 -1
  156. package/dist/modules/datasource/types.d.ts +1 -0
  157. package/dist/modules/datasource/types.js.map +1 -1
  158. package/dist/modules/manager/api.js +2 -0
  159. package/dist/modules/manager/api.js.map +1 -1
  160. package/dist/modules/manager/argocd/extract.js +1 -1
  161. package/dist/modules/manager/argocd/extract.js.map +1 -1
  162. package/dist/modules/manager/asdf/upgradeable-tooling.js +94 -0
  163. package/dist/modules/manager/asdf/upgradeable-tooling.js.map +1 -1
  164. package/dist/modules/manager/azure-pipelines/schema.d.ts +24 -24
  165. package/dist/modules/manager/batect/schema.d.ts +2 -2
  166. package/dist/modules/manager/bazel/rules/docker.d.ts +3 -3
  167. package/dist/modules/manager/bazel/rules/git.js +2 -1
  168. package/dist/modules/manager/bazel/rules/git.js.map +1 -1
  169. package/dist/modules/manager/bazel/rules/maven.d.ts +7 -7
  170. package/dist/modules/manager/bazel/rules/oci.d.ts +3 -3
  171. package/dist/modules/manager/bazel-module/parser/maven.d.ts +13 -13
  172. package/dist/modules/manager/bun/artifacts.js +0 -1
  173. package/dist/modules/manager/bun/artifacts.js.map +1 -1
  174. package/dist/modules/manager/bundler/artifacts.js +0 -1
  175. package/dist/modules/manager/bundler/artifacts.js.map +1 -1
  176. package/dist/modules/manager/bundler/extract.js +2 -1
  177. package/dist/modules/manager/bundler/extract.js.map +1 -1
  178. package/dist/modules/manager/cake/index.js +4 -2
  179. package/dist/modules/manager/cake/index.js.map +1 -1
  180. package/dist/modules/manager/cargo/artifacts.js +5 -7
  181. package/dist/modules/manager/cargo/artifacts.js.map +1 -1
  182. package/dist/modules/manager/cargo/schema.d.ts +164 -164
  183. package/dist/modules/manager/circleci/schema.d.ts +6 -6
  184. package/dist/modules/manager/cocoapods/artifacts.js +1 -2
  185. package/dist/modules/manager/cocoapods/artifacts.js.map +1 -1
  186. package/dist/modules/manager/composer/artifacts.js +1 -2
  187. package/dist/modules/manager/composer/artifacts.js.map +1 -1
  188. package/dist/modules/manager/composer/schema.d.ts +36 -36
  189. package/dist/modules/manager/composer/schema.js +1 -1
  190. package/dist/modules/manager/composer/schema.js.map +1 -1
  191. package/dist/modules/manager/composer/utils.d.ts +1 -0
  192. package/dist/modules/manager/composer/utils.js +9 -0
  193. package/dist/modules/manager/composer/utils.js.map +1 -1
  194. package/dist/modules/manager/copier/artifacts.js +0 -1
  195. package/dist/modules/manager/copier/artifacts.js.map +1 -1
  196. package/dist/modules/manager/custom/jsonata/schema.d.ts +28 -28
  197. package/dist/modules/manager/custom/regex/index.js +2 -0
  198. package/dist/modules/manager/custom/regex/index.js.map +1 -1
  199. package/dist/modules/manager/deps-edn/extract.js +2 -1
  200. package/dist/modules/manager/deps-edn/extract.js.map +1 -1
  201. package/dist/modules/manager/devbox/artifacts.d.ts +1 -1
  202. package/dist/modules/manager/devbox/artifacts.js +1 -2
  203. package/dist/modules/manager/devbox/artifacts.js.map +1 -1
  204. package/dist/modules/manager/devbox/schema.js +1 -1
  205. package/dist/modules/manager/devbox/schema.js.map +1 -1
  206. package/dist/modules/manager/devcontainer/extract.js +43 -1
  207. package/dist/modules/manager/devcontainer/extract.js.map +1 -1
  208. package/dist/modules/manager/devcontainer/index.js +11 -1
  209. package/dist/modules/manager/devcontainer/index.js.map +1 -1
  210. package/dist/modules/manager/devcontainer/schema.d.ts +7 -3
  211. package/dist/modules/manager/devcontainer/schema.js +3 -1
  212. package/dist/modules/manager/devcontainer/schema.js.map +1 -1
  213. package/dist/modules/manager/docker-compose/schema.d.ts +6 -6
  214. package/dist/modules/manager/fingerprint.generated.js +83 -82
  215. package/dist/modules/manager/fingerprint.generated.js.map +1 -1
  216. package/dist/modules/manager/fleet/schema.d.ts +12 -12
  217. package/dist/modules/manager/flux/artifacts.js +0 -1
  218. package/dist/modules/manager/flux/artifacts.js.map +1 -1
  219. package/dist/modules/manager/flux/extract.js +27 -24
  220. package/dist/modules/manager/flux/extract.js.map +1 -1
  221. package/dist/modules/manager/flux/schema.d.ts +44 -44
  222. package/dist/modules/manager/github-actions/extract.js +60 -39
  223. package/dist/modules/manager/github-actions/extract.js.map +1 -1
  224. package/dist/modules/manager/github-actions/schema.d.ts +66 -0
  225. package/dist/modules/manager/github-actions/schema.js +38 -0
  226. package/dist/modules/manager/github-actions/schema.js.map +1 -0
  227. package/dist/modules/manager/gitlabci/extract.d.ts +1 -5
  228. package/dist/modules/manager/gitlabci/extract.js +27 -126
  229. package/dist/modules/manager/gitlabci/extract.js.map +1 -1
  230. package/dist/modules/manager/gitlabci/schema.d.ts +55 -0
  231. package/dist/modules/manager/gitlabci/schema.js +63 -0
  232. package/dist/modules/manager/gitlabci/schema.js.map +1 -0
  233. package/dist/modules/manager/gitlabci-include/extract.js +6 -54
  234. package/dist/modules/manager/gitlabci-include/extract.js.map +1 -1
  235. package/dist/modules/manager/gitlabci-include/schema.d.ts +13 -0
  236. package/dist/modules/manager/gitlabci-include/schema.js +46 -0
  237. package/dist/modules/manager/gitlabci-include/schema.js.map +1 -0
  238. package/dist/modules/manager/gomod/artifacts.js +24 -10
  239. package/dist/modules/manager/gomod/artifacts.js.map +1 -1
  240. package/dist/modules/manager/gomod/extract.js +23 -0
  241. package/dist/modules/manager/gomod/extract.js.map +1 -1
  242. package/dist/modules/manager/gomod/line-parser.js +16 -0
  243. package/dist/modules/manager/gomod/line-parser.js.map +1 -1
  244. package/dist/modules/manager/gomod/update.js +2 -2
  245. package/dist/modules/manager/gomod/update.js.map +1 -1
  246. package/dist/modules/manager/gradle/artifacts.js +0 -1
  247. package/dist/modules/manager/gradle/artifacts.js.map +1 -1
  248. package/dist/modules/manager/gradle/extract/catalog.js +1 -1
  249. package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
  250. package/dist/modules/manager/gradle/parser/assignments.js +2 -2
  251. package/dist/modules/manager/gradle/parser/assignments.js.map +1 -1
  252. package/dist/modules/manager/gradle/parser/handlers.d.ts +1 -2
  253. package/dist/modules/manager/gradle/parser/handlers.js +10 -25
  254. package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
  255. package/dist/modules/manager/gradle/parser/registry-urls.js +11 -3
  256. package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
  257. package/dist/modules/manager/gradle-wrapper/artifacts.js +0 -1
  258. package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
  259. package/dist/modules/manager/helmfile/artifacts.js +0 -1
  260. package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
  261. package/dist/modules/manager/helmfile/extract.js +4 -0
  262. package/dist/modules/manager/helmfile/extract.js.map +1 -1
  263. package/dist/modules/manager/helmfile/schema.d.ts +9 -9
  264. package/dist/modules/manager/helmv3/artifacts.js +0 -1
  265. package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
  266. package/dist/modules/manager/helmv3/utils.js +3 -1
  267. package/dist/modules/manager/helmv3/utils.js.map +1 -1
  268. package/dist/modules/manager/hermit/artifacts.js +0 -1
  269. package/dist/modules/manager/hermit/artifacts.js.map +1 -1
  270. package/dist/modules/manager/homebrew/extract.js +0 -1
  271. package/dist/modules/manager/homebrew/extract.js.map +1 -1
  272. package/dist/modules/manager/jsonnet-bundler/artifacts.js +0 -1
  273. package/dist/modules/manager/jsonnet-bundler/artifacts.js.map +1 -1
  274. package/dist/modules/manager/kustomize/artifacts.d.ts +2 -0
  275. package/dist/modules/manager/kustomize/artifacts.js +154 -0
  276. package/dist/modules/manager/kustomize/artifacts.js.map +1 -0
  277. package/dist/modules/manager/kustomize/common.d.ts +3 -0
  278. package/dist/modules/manager/kustomize/common.js +22 -0
  279. package/dist/modules/manager/kustomize/common.js.map +1 -0
  280. package/dist/modules/manager/kustomize/index.d.ts +1 -0
  281. package/dist/modules/manager/kustomize/index.js +3 -1
  282. package/dist/modules/manager/kustomize/index.js.map +1 -1
  283. package/dist/modules/manager/kustomize/types.d.ts +4 -0
  284. package/dist/modules/manager/kustomize/types.js.map +1 -1
  285. package/dist/modules/manager/maven-wrapper/artifacts.js +0 -1
  286. package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
  287. package/dist/modules/manager/mix/artifacts.js +64 -14
  288. package/dist/modules/manager/mix/artifacts.js.map +1 -1
  289. package/dist/modules/manager/mix/index.d.ts +1 -0
  290. package/dist/modules/manager/mix/index.js +2 -1
  291. package/dist/modules/manager/mix/index.js.map +1 -1
  292. package/dist/modules/manager/nix/artifacts.js +0 -1
  293. package/dist/modules/manager/nix/artifacts.js.map +1 -1
  294. package/dist/modules/manager/nix/extract.js +1 -1
  295. package/dist/modules/manager/nix/extract.js.map +1 -1
  296. package/dist/modules/manager/nix/schema.d.ts +6 -6
  297. package/dist/modules/manager/npm/artifacts.js +0 -1
  298. package/dist/modules/manager/npm/artifacts.js.map +1 -1
  299. package/dist/modules/manager/npm/extract/yarn.js +2 -2
  300. package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
  301. package/dist/modules/manager/npm/post-update/npm.js +0 -1
  302. package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
  303. package/dist/modules/manager/npm/post-update/pnpm.js +13 -2
  304. package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
  305. package/dist/modules/manager/npm/post-update/rules.js +11 -1
  306. package/dist/modules/manager/npm/post-update/rules.js.map +1 -1
  307. package/dist/modules/manager/npm/post-update/yarn.js +0 -1
  308. package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
  309. package/dist/modules/manager/npm/update/dependency/index.js +1 -1
  310. package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
  311. package/dist/modules/manager/nuget/artifacts.js +1 -2
  312. package/dist/modules/manager/nuget/artifacts.js.map +1 -1
  313. package/dist/modules/manager/nuget/package-tree.js +4 -0
  314. package/dist/modules/manager/nuget/package-tree.js.map +1 -1
  315. package/dist/modules/manager/nuget/util.js +4 -1
  316. package/dist/modules/manager/nuget/util.js.map +1 -1
  317. package/dist/modules/manager/pep621/processors/pdm.js +0 -1
  318. package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
  319. package/dist/modules/manager/pep621/processors/uv.js +0 -1
  320. package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
  321. package/dist/modules/manager/pep621/schema.d.ts +35 -30
  322. package/dist/modules/manager/pep621/schema.js +2 -0
  323. package/dist/modules/manager/pep621/schema.js.map +1 -1
  324. package/dist/modules/manager/pip-compile/common.js +0 -1
  325. package/dist/modules/manager/pip-compile/common.js.map +1 -1
  326. package/dist/modules/manager/pip_requirements/artifacts.js +0 -1
  327. package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
  328. package/dist/modules/manager/pipenv/artifacts.js +0 -1
  329. package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
  330. package/dist/modules/manager/pixi/artifacts.d.ts +3 -0
  331. package/dist/modules/manager/pixi/artifacts.js +84 -0
  332. package/dist/modules/manager/pixi/artifacts.js.map +1 -0
  333. package/dist/modules/manager/pixi/extract.d.ts +2 -0
  334. package/dist/modules/manager/pixi/extract.js +53 -0
  335. package/dist/modules/manager/pixi/extract.js.map +1 -0
  336. package/dist/modules/manager/pixi/index.d.ts +11 -0
  337. package/dist/modules/manager/pixi/index.js +22 -0
  338. package/dist/modules/manager/pixi/index.js.map +1 -0
  339. package/dist/modules/manager/pixi/lockfile.d.ts +6 -0
  340. package/dist/modules/manager/pixi/lockfile.js +25 -0
  341. package/dist/modules/manager/pixi/lockfile.js.map +1 -0
  342. package/dist/modules/manager/pixi/schema.d.ts +14 -0
  343. package/dist/modules/manager/pixi/schema.js +14 -0
  344. package/dist/modules/manager/pixi/schema.js.map +1 -0
  345. package/dist/modules/manager/poetry/artifacts.js +0 -1
  346. package/dist/modules/manager/poetry/artifacts.js.map +1 -1
  347. package/dist/modules/manager/poetry/schema.d.ts +31 -31
  348. package/dist/modules/manager/pub/artifacts.js +0 -1
  349. package/dist/modules/manager/pub/artifacts.js.map +1 -1
  350. package/dist/modules/manager/pub/schema.d.ts +8 -8
  351. package/dist/modules/manager/scalafmt/extract.js +1 -1
  352. package/dist/modules/manager/scalafmt/extract.js.map +1 -1
  353. package/dist/modules/manager/types.d.ts +6 -2
  354. package/dist/modules/manager/types.js.map +1 -1
  355. package/dist/modules/manager/vendir/schema.d.ts +23 -23
  356. package/dist/modules/platform/azure/azure-helper.js +2 -2
  357. package/dist/modules/platform/azure/azure-helper.js.map +1 -1
  358. package/dist/modules/platform/azure/index.js +14 -14
  359. package/dist/modules/platform/azure/index.js.map +1 -1
  360. package/dist/modules/platform/bitbucket/comments.js +4 -4
  361. package/dist/modules/platform/bitbucket/comments.js.map +1 -1
  362. package/dist/modules/platform/bitbucket/index.js +48 -43
  363. package/dist/modules/platform/bitbucket/index.js.map +1 -1
  364. package/dist/modules/platform/bitbucket/schema.d.ts +13 -13
  365. package/dist/modules/platform/bitbucket/utils.js +3 -3
  366. package/dist/modules/platform/bitbucket/utils.js.map +1 -1
  367. package/dist/modules/platform/bitbucket-server/index.d.ts +2 -2
  368. package/dist/modules/platform/bitbucket-server/index.js +70 -72
  369. package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
  370. package/dist/modules/platform/bitbucket-server/pr-cache.d.ts +23 -0
  371. package/dist/modules/platform/bitbucket-server/pr-cache.js +125 -0
  372. package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -0
  373. package/dist/modules/platform/bitbucket-server/types.d.ts +6 -1
  374. package/dist/modules/platform/bitbucket-server/types.js.map +1 -1
  375. package/dist/modules/platform/bitbucket-server/utils.js +5 -1
  376. package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
  377. package/dist/modules/platform/codecommit/codecommit-client.js +6 -6
  378. package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
  379. package/dist/modules/platform/codecommit/index.js +24 -24
  380. package/dist/modules/platform/codecommit/index.js.map +1 -1
  381. package/dist/modules/platform/gerrit/client.js +12 -1
  382. package/dist/modules/platform/gerrit/client.js.map +1 -1
  383. package/dist/modules/platform/gerrit/utils.js +1 -1
  384. package/dist/modules/platform/gerrit/utils.js.map +1 -1
  385. package/dist/modules/platform/gitea/gitea-helper.d.ts +1 -0
  386. package/dist/modules/platform/gitea/gitea-helper.js +16 -0
  387. package/dist/modules/platform/gitea/gitea-helper.js.map +1 -1
  388. package/dist/modules/platform/gitea/index.js +15 -7
  389. package/dist/modules/platform/gitea/index.js.map +1 -1
  390. package/dist/modules/platform/gitea/schema.d.ts +4 -4
  391. package/dist/modules/platform/gitea/types.d.ts +1 -1
  392. package/dist/modules/platform/gitea/types.js.map +1 -1
  393. package/dist/modules/platform/github/index.js +81 -78
  394. package/dist/modules/platform/github/index.js.map +1 -1
  395. package/dist/modules/platform/github/issue.d.ts +3 -3
  396. package/dist/modules/platform/github/massage-markdown-links.js +2 -2
  397. package/dist/modules/platform/github/massage-markdown-links.js.map +1 -1
  398. package/dist/modules/platform/github/pr.js +3 -3
  399. package/dist/modules/platform/github/pr.js.map +1 -1
  400. package/dist/modules/platform/github/schema.d.ts +11 -11
  401. package/dist/modules/platform/github/schema.js +3 -1
  402. package/dist/modules/platform/github/schema.js.map +1 -1
  403. package/dist/modules/platform/gitlab/index.js +61 -43
  404. package/dist/modules/platform/gitlab/index.js.map +1 -1
  405. package/dist/modules/platform/index.js +0 -1
  406. package/dist/modules/platform/index.js.map +1 -1
  407. package/dist/modules/versioning/api.js +2 -0
  408. package/dist/modules/versioning/api.js.map +1 -1
  409. package/dist/modules/versioning/conda/index.d.ts +41 -0
  410. package/dist/modules/versioning/conda/index.js +178 -0
  411. package/dist/modules/versioning/conda/index.js.map +1 -0
  412. package/dist/modules/versioning/hashicorp/convertor.d.ts +2 -1
  413. package/dist/modules/versioning/hashicorp/convertor.js +13 -8
  414. package/dist/modules/versioning/hashicorp/convertor.js.map +1 -1
  415. package/dist/modules/versioning/hex/index.js +3 -3
  416. package/dist/modules/versioning/hex/index.js.map +1 -1
  417. package/dist/proxy.js +1 -1
  418. package/dist/proxy.js.map +1 -1
  419. package/dist/renovate.js +2 -2
  420. package/dist/renovate.js.map +1 -1
  421. package/dist/util/cache/package/types.d.ts +1 -1
  422. package/dist/util/cache/package/types.js.map +1 -1
  423. package/dist/util/cache/repository/schema.d.ts +4 -4
  424. package/dist/util/cache/repository/types.d.ts +3 -0
  425. package/dist/util/cache/repository/types.js.map +1 -1
  426. package/dist/util/env.d.ts +4 -0
  427. package/dist/util/env.js +22 -0
  428. package/dist/util/env.js.map +1 -0
  429. package/dist/util/exec/containerbase.js +6 -0
  430. package/dist/util/exec/containerbase.js.map +1 -1
  431. package/dist/util/exec/index.js +5 -2
  432. package/dist/util/exec/index.js.map +1 -1
  433. package/dist/util/exec/types.d.ts +0 -2
  434. package/dist/util/exec/types.js.map +1 -1
  435. package/dist/util/exec/utils.d.ts +1 -1
  436. package/dist/util/exec/utils.js +6 -5
  437. package/dist/util/exec/utils.js.map +1 -1
  438. package/dist/util/git/author.js +1 -1
  439. package/dist/util/git/author.js.map +1 -1
  440. package/dist/util/git/config.js +0 -1
  441. package/dist/util/git/config.js.map +1 -1
  442. package/dist/util/git/error.js +4 -2
  443. package/dist/util/git/error.js.map +1 -1
  444. package/dist/util/git/index.js +73 -46
  445. package/dist/util/git/index.js.map +1 -1
  446. package/dist/util/git/private-key.js +1 -1
  447. package/dist/util/git/private-key.js.map +1 -1
  448. package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +5 -5
  449. package/dist/util/github/graphql/query-adapters/tags-query-adapter.d.ts +2 -2
  450. package/dist/util/http/bitbucket-server.js +4 -0
  451. package/dist/util/http/bitbucket-server.js.map +1 -1
  452. package/dist/util/http/bitbucket.js +5 -1
  453. package/dist/util/http/bitbucket.js.map +1 -1
  454. package/dist/util/http/cache/abstract-http-cache-provider.js +2 -2
  455. package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
  456. package/dist/util/http/cache/memory-http-cache-provider.d.ts +10 -0
  457. package/dist/util/http/cache/memory-http-cache-provider.js +29 -0
  458. package/dist/util/http/cache/memory-http-cache-provider.js.map +1 -0
  459. package/dist/util/http/gitea.js +2 -0
  460. package/dist/util/http/gitea.js.map +1 -1
  461. package/dist/util/http/github.js +1 -0
  462. package/dist/util/http/github.js.map +1 -1
  463. package/dist/util/http/gitlab.js +2 -0
  464. package/dist/util/http/gitlab.js.map +1 -1
  465. package/dist/util/http/host-rules.js +5 -4
  466. package/dist/util/http/host-rules.js.map +1 -1
  467. package/dist/util/http/http.js +12 -5
  468. package/dist/util/http/http.js.map +1 -1
  469. package/dist/util/stats.d.ts +10 -0
  470. package/dist/util/stats.js +45 -1
  471. package/dist/util/stats.js.map +1 -1
  472. package/dist/workers/global/config/parse/file.js +2 -2
  473. package/dist/workers/global/config/parse/file.js.map +1 -1
  474. package/dist/workers/global/config/parse/index.js +5 -0
  475. package/dist/workers/global/config/parse/index.js.map +1 -1
  476. package/dist/workers/repository/cache.js +1 -1
  477. package/dist/workers/repository/cache.js.map +1 -1
  478. package/dist/workers/repository/config-migration/branch/migrated-data.js +2 -0
  479. package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
  480. package/dist/workers/repository/index.js +1 -0
  481. package/dist/workers/repository/index.js.map +1 -1
  482. package/dist/workers/repository/init/merge.js +6 -3
  483. package/dist/workers/repository/init/merge.js.map +1 -1
  484. package/dist/workers/repository/process/extract-update.js +0 -1
  485. package/dist/workers/repository/process/extract-update.js.map +1 -1
  486. package/dist/workers/repository/process/fingerprint-fields.js +0 -1
  487. package/dist/workers/repository/process/fingerprint-fields.js.map +1 -1
  488. package/dist/workers/repository/process/libyear.js +2 -2
  489. package/dist/workers/repository/process/libyear.js.map +1 -1
  490. package/dist/workers/repository/process/lookup/index.js +13 -4
  491. package/dist/workers/repository/process/lookup/index.js.map +1 -1
  492. package/dist/workers/repository/process/vulnerabilities.js +1 -1
  493. package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
  494. package/dist/workers/repository/process/write.js +1 -8
  495. package/dist/workers/repository/process/write.js.map +1 -1
  496. package/dist/workers/repository/reconfigure/validate.js +1 -0
  497. package/dist/workers/repository/reconfigure/validate.js.map +1 -1
  498. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +10 -1
  499. package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
  500. package/dist/workers/repository/update/pr/changelog/github/index.js +6 -3
  501. package/dist/workers/repository/update/pr/changelog/github/index.js.map +1 -1
  502. package/dist/workers/repository/update/pr/changelog/source.js +1 -0
  503. package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
  504. package/dist/workers/repository/updates/flatten.js +8 -4
  505. package/dist/workers/repository/updates/flatten.js.map +1 -1
  506. package/dist/workers/repository/updates/generate.js +1 -2
  507. package/dist/workers/repository/updates/generate.js.map +1 -1
  508. package/dist/workers/types.d.ts +1 -4
  509. package/dist/workers/types.js.map +1 -1
  510. package/package.json +45 -43
  511. package/renovate-schema.json +14 -1
  512. package/dist/modules/manager/github-actions/types.d.ts +0 -30
  513. package/dist/modules/manager/github-actions/types.js +0 -3
  514. package/dist/modules/manager/github-actions/types.js.map +0 -1
  515. package/dist/modules/manager/gitlabci/common.d.ts +0 -6
  516. package/dist/modules/manager/gitlabci/common.js +0 -30
  517. package/dist/modules/manager/gitlabci/common.js.map +0 -1
  518. package/dist/modules/manager/gitlabci/types.d.ts +0 -35
  519. package/dist/modules/manager/gitlabci/types.js +0 -3
  520. package/dist/modules/manager/gitlabci/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/platform/azure/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { setTimeout } from 'timers/promises';\nimport is from '@sindresorhus/is';\nimport type {\n GitPullRequest,\n GitPullRequestCommentThread,\n GitStatus,\n GitVersionDescriptor,\n} from 'azure-devops-node-api/interfaces/GitInterfaces.js';\nimport {\n GitPullRequestMergeStrategy,\n GitStatusState,\n PullRequestStatus,\n} from 'azure-devops-node-api/interfaces/GitInterfaces.js';\nimport {\n REPOSITORY_ARCHIVED,\n REPOSITORY_EMPTY,\n REPOSITORY_NOT_FOUND,\n} from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport type { BranchStatus } from '../../../types';\nimport { ExternalHostError } from '../../../types/errors/external-host-error';\nimport { parseJson } from '../../../util/common';\nimport * as git from '../../../util/git';\nimport * as hostRules from '../../../util/host-rules';\nimport { regEx } from '../../../util/regex';\nimport { sanitize } from '../../../util/sanitize';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport type {\n BranchStatusConfig,\n CreatePRConfig,\n EnsureCommentConfig,\n EnsureCommentRemovalConfig,\n EnsureIssueResult,\n FindPRConfig,\n Issue,\n MergePRConfig,\n PlatformParams,\n PlatformResult,\n Pr,\n RepoParams,\n RepoResult,\n UpdatePrConfig,\n} from '../types';\nimport { getNewBranchName, repoFingerprint } from '../util';\nimport { smartTruncate } from '../utils/pr-body';\nimport * as azureApi from './azure-got-wrapper';\nimport * as azureHelper from './azure-helper';\nimport type { AzurePr } from './types';\nimport { AzurePrVote } from './types';\nimport {\n getBranchNameWithoutRefsheadsPrefix,\n getGitStatusContextCombinedName,\n getGitStatusContextFromCombinedName,\n getRenovatePRFormat,\n getRepoByName,\n getStorageExtraCloneOpts,\n mapMergeStrategy,\n max4000Chars,\n} from './util';\n\ninterface Config {\n repoForceRebase: boolean;\n mergeMethods: Record<string, GitPullRequestMergeStrategy>;\n owner: string;\n repoId: string;\n project: string;\n prList: AzurePr[];\n fileList: null;\n repository: string;\n defaultBranch: string;\n}\n\ninterface User {\n id: string;\n name: string;\n isRequired: boolean;\n}\n\nlet config: Config = {} as any;\n\nconst defaults: {\n endpoint?: string;\n hostType: string;\n} = {\n hostType: 'azure',\n};\n\nexport const id = 'azure';\n\nexport function initPlatform({\n endpoint,\n token,\n username,\n password,\n}: PlatformParams): Promise<PlatformResult> {\n if (!endpoint) {\n throw new Error('Init: You must configure an Azure DevOps endpoint');\n }\n if (!token && !(username && password)) {\n throw new Error(\n 'Init: You must configure an Azure DevOps token, or a username and password',\n );\n }\n // TODO: Add a connection check that endpoint/token combination are valid (#9593)\n const res = {\n endpoint: ensureTrailingSlash(endpoint),\n };\n defaults.endpoint = res.endpoint;\n azureApi.setEndpoint(res.endpoint);\n const platformConfig: PlatformResult = {\n endpoint: defaults.endpoint,\n };\n return Promise.resolve(platformConfig);\n}\n\nexport async function getRepos(): Promise<string[]> {\n logger.debug('Autodiscovering Azure DevOps repositories');\n const azureApiGit = await azureApi.gitApi();\n const repos = await azureApiGit.getRepositories();\n return repos\n .filter((repo) => repo.isDisabled !== true)\n .map((repo) => `${repo.project?.name}/${repo.name}`);\n}\n\nexport async function getRawFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<string | null> {\n try {\n const azureApiGit = await azureApi.gitApi();\n\n let repoId: string | undefined;\n if (repoName) {\n const repos = await azureApiGit.getRepositories();\n const repo = getRepoByName(repoName, repos);\n repoId = repo?.id;\n } else {\n repoId = config.repoId;\n }\n\n if (!repoId) {\n logger.debug('No repoId so cannot getRawFile');\n return null;\n }\n\n const versionDescriptor: GitVersionDescriptor = {\n version: branchOrTag,\n } satisfies GitVersionDescriptor;\n\n const item = await azureApiGit.getItem(\n repoId, // repositoryId\n fileName, // path\n undefined, // project\n undefined, // scopePath\n undefined, // recursionLevel\n undefined, // includeContentMetadata\n undefined, // latestProcessedChange\n undefined, // download\n branchOrTag ? versionDescriptor : undefined, // versionDescriptor\n true, // includeContent\n );\n\n return item?.content ?? null;\n } catch (err) /* istanbul ignore next */ {\n if (\n err.message?.includes('<title>Azure DevOps Services Unavailable</title>')\n ) {\n logger.debug(\n 'Azure DevOps is currently unavailable when attempting to fetch file - throwing ExternalHostError',\n );\n throw new ExternalHostError(err, id);\n }\n if (err.code === 'ECONNRESET' || err.code === 'ETIMEDOUT') {\n throw new ExternalHostError(err, id);\n }\n if (err.statusCode && err.statusCode >= 500 && err.statusCode < 600) {\n throw new ExternalHostError(err, id);\n }\n throw err;\n }\n}\n\nexport async function getJsonFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<any> {\n const raw = await getRawFile(fileName, repoName, branchOrTag);\n return parseJson(raw, fileName);\n}\n\nexport async function initRepo({\n repository,\n cloneSubmodules,\n cloneSubmodulesFilter,\n}: RepoParams): Promise<RepoResult> {\n logger.debug(`initRepo(\"${repository}\")`);\n config = { repository } as Config;\n const azureApiGit = await azureApi.gitApi();\n const repos = await azureApiGit.getRepositories();\n const repo = getRepoByName(repository, repos);\n if (!repo) {\n logger.error({ repos, repo }, 'Could not find repo in repo list');\n throw new Error(REPOSITORY_NOT_FOUND);\n }\n logger.debug({ repositoryDetails: repo }, 'Repository details');\n if (repo.isDisabled) {\n logger.debug('Repository is disabled- throwing error to abort renovation');\n throw new Error(REPOSITORY_ARCHIVED);\n }\n // istanbul ignore if\n if (!repo.defaultBranch) {\n logger.debug('Repo is empty');\n throw new Error(REPOSITORY_EMPTY);\n }\n // TODO #22198\n config.repoId = repo.id!;\n\n config.project = repo.project!.name!;\n config.owner = '?owner?';\n logger.debug(`${repository} owner = ${config.owner}`);\n const defaultBranch = repo.defaultBranch.replace('refs/heads/', '');\n config.defaultBranch = defaultBranch;\n logger.debug(`${repository} default branch = ${defaultBranch}`);\n config.mergeMethods = {};\n config.repoForceRebase = false;\n\n const [projectName, repoName] = repository.split('/');\n const opts = hostRules.find({\n hostType: defaults.hostType,\n url: defaults.endpoint,\n });\n // TODO: types (#22198)\n const manualUrl = `${defaults.endpoint!}${encodeURIComponent(\n projectName,\n )}/_git/${encodeURIComponent(repoName)}`;\n const url = repo.remoteUrl ?? manualUrl;\n await git.initRepo({\n ...config,\n url,\n extraCloneOpts: getStorageExtraCloneOpts(opts),\n cloneSubmodules,\n cloneSubmodulesFilter,\n });\n const repoConfig: RepoResult = {\n defaultBranch,\n isFork: false,\n repoFingerprint: repoFingerprint(repo.id!, defaults.endpoint),\n };\n return repoConfig;\n}\n\nexport async function getPrList(): Promise<AzurePr[]> {\n logger.debug('getPrList()');\n if (!config.prList) {\n const azureApiGit = await azureApi.gitApi();\n let prs: GitPullRequest[] = [];\n let fetchedPrs: GitPullRequest[];\n let skip = 0;\n do {\n fetchedPrs = await azureApiGit.getPullRequests(\n config.repoId,\n {\n status: 4,\n // fetch only prs directly created on the repo and not by forks\n sourceRepositoryId: config.project,\n },\n config.project,\n 0,\n skip,\n 100,\n );\n prs = prs.concat(fetchedPrs);\n skip += 100;\n } while (fetchedPrs.length > 0);\n\n config.prList = prs.map(getRenovatePRFormat);\n logger.debug(`Retrieved Pull Requests count: ${config.prList.length}`);\n }\n return config.prList;\n}\n\nexport async function getPr(pullRequestId: number): Promise<Pr | null> {\n logger.debug(`getPr(${pullRequestId})`);\n if (!pullRequestId) {\n return null;\n }\n const azurePr = (await getPrList()).find(\n (item) => item.number === pullRequestId,\n );\n\n if (!azurePr) {\n return null;\n }\n\n const azureApiGit = await azureApi.gitApi();\n const labels = await azureApiGit.getPullRequestLabels(\n config.repoId,\n pullRequestId,\n );\n\n azurePr.labels = labels\n .filter((label) => label.active)\n .map((label) => label.name)\n .filter(is.string);\n return azurePr;\n}\n\nexport async function findPr({\n branchName,\n prTitle,\n state = 'all',\n targetBranch,\n}: FindPRConfig): Promise<Pr | null> {\n let prsFiltered: Pr[] = [];\n try {\n const prs = await getPrList();\n\n prsFiltered = prs.filter(\n (item) => item.sourceRefName === getNewBranchName(branchName),\n );\n\n if (prTitle) {\n prsFiltered = prsFiltered.filter(\n (item) => item.title.toUpperCase() === prTitle.toUpperCase(),\n );\n }\n\n switch (state) {\n case 'all':\n // no more filter needed, we can go further...\n break;\n case '!open':\n prsFiltered = prsFiltered.filter((item) => item.state !== 'open');\n break;\n default:\n prsFiltered = prsFiltered.filter((item) => item.state === state);\n break;\n }\n } catch (err) {\n logger.error({ err }, 'findPr error');\n }\n if (prsFiltered.length === 0) {\n return null;\n }\n if (targetBranch && prsFiltered.length > 1) {\n const pr = prsFiltered.find((item) => item.targetBranch === targetBranch);\n if (pr) {\n return pr;\n }\n }\n return prsFiltered[0];\n}\n\nexport async function getBranchPr(\n branchName: string,\n targetBranch?: string,\n): Promise<Pr | null> {\n logger.debug(`getBranchPr(${branchName}, ${targetBranch})`);\n const existingPr = await findPr({\n branchName,\n state: 'open',\n targetBranch,\n });\n return existingPr ? getPr(existingPr.number) : null;\n}\n\nasync function getStatusCheck(branchName: string): Promise<GitStatus[]> {\n const azureApiGit = await azureApi.gitApi();\n const branch = await azureApiGit.getBranch(\n config.repoId,\n\n // TODO: fix undefined (#22198)\n getBranchNameWithoutRefsheadsPrefix(branchName)!,\n );\n // only grab the latest statuses, it will group any by context\n return azureApiGit.getStatuses(\n // TODO #22198\n branch.commit!.commitId!,\n config.repoId,\n undefined,\n undefined,\n undefined,\n true,\n );\n}\n\nconst azureToRenovateStatusMapping: Record<GitStatusState, BranchStatus> = {\n [GitStatusState.Succeeded]: 'green',\n [GitStatusState.NotApplicable]: 'green',\n [GitStatusState.NotSet]: 'yellow',\n [GitStatusState.Pending]: 'yellow',\n [GitStatusState.PartiallySucceeded]: 'yellow',\n [GitStatusState.Error]: 'red',\n [GitStatusState.Failed]: 'red',\n};\n\nexport async function getBranchStatusCheck(\n branchName: string,\n context: string,\n): Promise<BranchStatus | null> {\n const res = await getStatusCheck(branchName);\n for (const check of res) {\n if (getGitStatusContextCombinedName(check.context) === context) {\n // TODO #22198\n return azureToRenovateStatusMapping[check.state!] ?? 'yellow';\n }\n }\n return null;\n}\n\nexport async function getBranchStatus(\n branchName: string,\n internalChecksAsSuccess: boolean,\n): Promise<BranchStatus> {\n logger.debug(`getBranchStatus(${branchName})`);\n const statuses = await getStatusCheck(branchName);\n logger.debug({ branch: branchName, statuses }, 'branch status check result');\n if (!statuses.length) {\n logger.debug('empty branch status check result = returning \"pending\"');\n return 'yellow';\n }\n const noOfFailures = statuses.filter(\n (status) =>\n status.state === GitStatusState.Error ||\n status.state === GitStatusState.Failed,\n ).length;\n if (noOfFailures) {\n return 'red';\n }\n const noOfPending = statuses.filter(\n (status) =>\n status.state === GitStatusState.NotSet ||\n status.state === GitStatusState.Pending,\n ).length;\n if (noOfPending) {\n return 'yellow';\n }\n if (\n !internalChecksAsSuccess &&\n statuses.every(\n (status) =>\n status.state === GitStatusState.Succeeded &&\n status.context?.genre === 'renovate',\n )\n ) {\n logger.debug(\n 'Successful checks are all internal renovate/ checks, so returning \"pending\" branch status',\n );\n return 'yellow';\n }\n return 'green';\n}\n\nasync function getMergeStrategy(\n targetRefName: string,\n): Promise<GitPullRequestMergeStrategy> {\n return (\n config.mergeMethods[targetRefName] ??\n (config.mergeMethods[targetRefName] = await azureHelper.getMergeMethod(\n config.repoId,\n config.project,\n targetRefName,\n config.defaultBranch,\n ))\n );\n}\n\nexport async function createPr({\n sourceBranch,\n targetBranch,\n prTitle: title,\n prBody: body,\n labels,\n draftPR = false,\n platformPrOptions,\n}: CreatePRConfig): Promise<Pr> {\n const sourceRefName = getNewBranchName(sourceBranch);\n const targetRefName = getNewBranchName(targetBranch);\n const description = max4000Chars(sanitize(body));\n const azureApiGit = await azureApi.gitApi();\n const workItemRefs = [\n {\n id: platformPrOptions?.azureWorkItemId?.toString(),\n },\n ];\n let pr: GitPullRequest = await azureApiGit.createPullRequest(\n {\n sourceRefName,\n targetRefName,\n title,\n description,\n workItemRefs,\n isDraft: draftPR,\n },\n config.repoId,\n );\n if (platformPrOptions?.usePlatformAutomerge) {\n const mergeStrategy =\n platformPrOptions.automergeStrategy === 'auto'\n ? await getMergeStrategy(pr.targetRefName!)\n : mapMergeStrategy(platformPrOptions.automergeStrategy);\n pr = await azureApiGit.updatePullRequest(\n {\n autoCompleteSetBy: {\n // TODO #22198\n id: pr.createdBy!.id,\n },\n completionOptions: {\n mergeStrategy,\n deleteSourceBranch: true,\n mergeCommitMessage: title,\n },\n },\n config.repoId,\n // TODO #22198\n pr.pullRequestId!,\n );\n }\n if (platformPrOptions?.autoApprove) {\n await azureApiGit.createPullRequestReviewer(\n {\n reviewerUrl: pr.createdBy!.url,\n vote: AzurePrVote.Approved,\n isFlagged: false,\n isRequired: false,\n },\n config.repoId,\n // TODO #22198\n pr.pullRequestId!,\n pr.createdBy!.id!,\n );\n }\n await Promise.all(\n labels!.map((label) =>\n azureApiGit.createPullRequestLabel(\n {\n name: label,\n },\n config.repoId,\n // TODO #22198\n pr.pullRequestId!,\n ),\n ),\n );\n\n const result = getRenovatePRFormat(pr);\n if (config.prList) {\n config.prList.push(result);\n }\n return result;\n}\n\nexport async function updatePr({\n number: prNo,\n prTitle: title,\n prBody: body,\n state,\n platformPrOptions,\n targetBranch,\n}: UpdatePrConfig): Promise<void> {\n logger.debug(`updatePr(${prNo}, ${title}, body)`);\n\n const azureApiGit = await azureApi.gitApi();\n const objToUpdate: GitPullRequest = {\n title,\n };\n\n if (targetBranch) {\n objToUpdate.targetRefName = getNewBranchName(targetBranch);\n }\n\n if (body) {\n objToUpdate.description = max4000Chars(sanitize(body));\n }\n\n if (state === 'open') {\n await azureApiGit.updatePullRequest(\n {\n status: PullRequestStatus.Active,\n },\n config.repoId,\n prNo,\n );\n } else if (state === 'closed') {\n objToUpdate.status = PullRequestStatus.Abandoned;\n }\n if (platformPrOptions?.autoApprove) {\n const pr = await azureApiGit.getPullRequestById(prNo, config.project);\n await azureApiGit.createPullRequestReviewer(\n {\n reviewerUrl: pr.createdBy!.url,\n vote: AzurePrVote.Approved,\n isFlagged: false,\n isRequired: false,\n },\n config.repoId,\n // TODO #22198\n pr.pullRequestId!,\n pr.createdBy!.id!,\n );\n }\n\n const updatedPr = await azureApiGit.updatePullRequest(\n objToUpdate,\n config.repoId,\n prNo,\n );\n if (config.prList) {\n const prToCache = getRenovatePRFormat(updatedPr);\n // We need to update the cached entry for this PR\n const existingIndex = config.prList.findIndex(\n (item) => item.number === prNo,\n );\n // istanbul ignore if: should not happen\n if (existingIndex === -1) {\n logger.warn({ prNo }, 'PR not found in cache');\n // Add to cache\n config.prList.push(prToCache);\n } else {\n // overwrite existing PR in cache\n config.prList[existingIndex] = prToCache;\n }\n }\n}\n\nexport async function ensureComment({\n number,\n topic,\n content,\n}: EnsureCommentConfig): Promise<boolean> {\n logger.debug(`ensureComment(${number}, ${topic!}, content)`);\n const header = topic ? `### ${topic}\\n\\n` : '';\n const body = `${header}${sanitize(massageMarkdown(content))}`;\n const azureApiGit = await azureApi.gitApi();\n\n const threads = await azureApiGit.getThreads(config.repoId, number);\n let threadIdFound: number | undefined;\n let commentIdFound: number | undefined;\n let commentNeedsUpdating = false;\n threads.forEach((thread) => {\n const firstCommentContent = thread.comments?.[0].content;\n if (\n (topic && firstCommentContent?.startsWith(header)) === true ||\n (!topic && firstCommentContent === body)\n ) {\n threadIdFound = thread.id;\n commentIdFound = thread.comments?.[0].id;\n commentNeedsUpdating = firstCommentContent !== body;\n }\n });\n\n if (!threadIdFound) {\n await azureApiGit.createThread(\n {\n comments: [{ content: body, commentType: 1, parentCommentId: 0 }],\n status: 1,\n },\n config.repoId,\n number,\n );\n logger.info(\n { repository: config.repository, issueNo: number, topic },\n 'Comment added',\n );\n } else if (commentNeedsUpdating) {\n await azureApiGit.updateComment(\n {\n content: body,\n },\n config.repoId,\n number,\n threadIdFound,\n // TODO #22198\n commentIdFound!,\n );\n logger.debug(\n { repository: config.repository, issueNo: number, topic },\n 'Comment updated',\n );\n } else {\n logger.debug(\n { repository: config.repository, issueNo: number, topic },\n 'Comment is already update-to-date',\n );\n }\n\n return true;\n}\n\nexport async function ensureCommentRemoval(\n removeConfig: EnsureCommentRemovalConfig,\n): Promise<void> {\n const { number: issueNo } = removeConfig;\n const key =\n removeConfig.type === 'by-topic'\n ? removeConfig.topic\n : removeConfig.content;\n logger.debug(`Ensuring comment \"${key}\" in #${issueNo} is removed`);\n\n const azureApiGit = await azureApi.gitApi();\n const threads = await azureApiGit.getThreads(config.repoId, issueNo);\n\n let threadIdFound: number | null | undefined = null;\n if (removeConfig.type === 'by-topic') {\n const thread = threads.find(\n (thread: GitPullRequestCommentThread): boolean =>\n !!thread.comments?.[0].content?.startsWith(\n `### ${removeConfig.topic}\\n\\n`,\n ),\n );\n threadIdFound = thread?.id;\n } else {\n const thread = threads.find(\n (thread: GitPullRequestCommentThread): boolean =>\n thread.comments?.[0].content?.trim() === removeConfig.content,\n );\n threadIdFound = thread?.id;\n }\n\n if (threadIdFound) {\n await azureApiGit.updateThread(\n {\n status: 4, // close\n },\n config.repoId,\n issueNo,\n threadIdFound,\n );\n }\n}\n\nconst renovateToAzureStatusMapping: Record<BranchStatus, GitStatusState> = {\n ['green']: GitStatusState.Succeeded,\n ['yellow']: GitStatusState.Pending,\n ['red']: GitStatusState.Failed,\n};\n\nexport async function setBranchStatus({\n branchName,\n context,\n description,\n state,\n url: targetUrl,\n}: BranchStatusConfig): Promise<void> {\n logger.debug(\n `setBranchStatus(${branchName}, ${context}, ${description}, ${state}, ${targetUrl!})`,\n );\n const azureApiGit = await azureApi.gitApi();\n const branch = await azureApiGit.getBranch(\n config.repoId,\n getBranchNameWithoutRefsheadsPrefix(branchName)!,\n );\n const statusToCreate: GitStatus = {\n description,\n context: getGitStatusContextFromCombinedName(context),\n state: renovateToAzureStatusMapping[state],\n targetUrl,\n };\n await azureApiGit.createCommitStatus(\n statusToCreate,\n // TODO #22198\n branch.commit!.commitId!,\n config.repoId,\n );\n logger.trace(`Created commit status of ${state} on branch ${branchName}`);\n}\n\nexport async function mergePr({\n branchName,\n id: pullRequestId,\n strategy,\n}: MergePRConfig): Promise<boolean> {\n logger.debug(`mergePr(${pullRequestId}, ${branchName!})`);\n const azureApiGit = await azureApi.gitApi();\n\n let pr = await azureApiGit.getPullRequestById(pullRequestId, config.project);\n\n const mergeStrategy =\n strategy === 'auto'\n ? await getMergeStrategy(pr.targetRefName!)\n : mapMergeStrategy(strategy);\n const objToUpdate: GitPullRequest = {\n status: PullRequestStatus.Completed,\n lastMergeSourceCommit: pr.lastMergeSourceCommit,\n completionOptions: {\n mergeStrategy,\n deleteSourceBranch: true,\n mergeCommitMessage: pr.title,\n },\n };\n\n logger.trace(\n `Updating PR ${pullRequestId} to status ${PullRequestStatus.Completed} (${\n PullRequestStatus[PullRequestStatus.Completed]\n }) with lastMergeSourceCommit ${\n // TODO: types (#22198)\n pr.lastMergeSourceCommit?.commitId\n } using mergeStrategy ${mergeStrategy} (${\n GitPullRequestMergeStrategy[mergeStrategy]\n })`,\n );\n\n try {\n const response = await azureApiGit.updatePullRequest(\n objToUpdate,\n config.repoId,\n pullRequestId,\n );\n\n let retries = 0;\n let isClosed = response.status === PullRequestStatus.Completed;\n while (!isClosed && retries < 5) {\n retries += 1;\n const sleepMs = retries * 1000;\n logger.trace(\n { pullRequestId, status: pr.status, retries },\n `Updated PR to closed status but change has not taken effect yet. Retrying...`,\n );\n\n await setTimeout(sleepMs);\n pr = await azureApiGit.getPullRequestById(pullRequestId, config.project);\n isClosed = pr.status === PullRequestStatus.Completed;\n }\n\n if (!isClosed) {\n logger.warn(\n {\n pullRequestId,\n status: pr.status,\n expectedPRStatus: PullRequestStatus[PullRequestStatus.Completed],\n actualPRStatus: PullRequestStatus[pr.status!],\n },\n 'Expected PR to have completed status. However, the PR has a different status',\n );\n }\n return true;\n } catch (err) {\n logger.debug({ err }, 'Failed to set the PR as completed.');\n return false;\n }\n}\n\nexport function massageMarkdown(input: string): string {\n // Remove any HTML we use\n return smartTruncate(input, maxBodyLength())\n .replace(\n 'you tick the rebase/retry checkbox',\n 'PR is renamed to start with \"rebase!\"',\n )\n .replace(\n 'checking the rebase/retry box above',\n 'renaming the PR to start with \"rebase!\"',\n )\n .replace(regEx(`\\n---\\n\\n.*?<!-- rebase-check -->.*?\\n`), '')\n .replace(regEx(/<!--renovate-(?:debug|config-hash):.*?-->/g), '');\n}\n\nexport function maxBodyLength(): number {\n return 4000;\n}\n\n/* istanbul ignore next */\nexport function findIssue(): Promise<Issue | null> {\n // TODO: Needs implementation (#9592)\n logger.debug(`findIssue() is not implemented`);\n return Promise.resolve(null);\n}\n\n/* istanbul ignore next */\nexport function ensureIssue(): Promise<EnsureIssueResult | null> {\n // TODO: Needs implementation (#9592)\n logger.debug(`ensureIssue() is not implemented`);\n return Promise.resolve(null);\n}\n\n/* istanbul ignore next */\nexport function ensureIssueClosing(): Promise<void> {\n return Promise.resolve();\n}\n\n/* istanbul ignore next */\nexport function getIssueList(): Promise<Issue[]> {\n logger.debug(`getIssueList()`);\n // TODO: Needs implementation (#9592)\n return Promise.resolve([]);\n}\n\nasync function getUserIds(users: string[]): Promise<User[]> {\n const azureApiGit = await azureApi.gitApi();\n const azureApiCore = await azureApi.coreApi();\n const repos = await azureApiGit.getRepositories();\n const repo = repos.find((c) => c.id === config.repoId)!;\n const requiredReviewerPrefix = 'required:';\n const validReviewers = new Set<string>();\n\n // TODO #22198\n const teams = await azureHelper.getAllProjectTeams(repo.project!.id!);\n const members = await Promise.all(\n teams.map(\n async (t) =>\n await azureApiCore.getTeamMembersWithExtendedProperties(\n // TODO #22198\n repo.project!.id!,\n t.id!,\n ),\n ),\n );\n\n const ids: { id: string; name: string; isRequired: boolean }[] = [];\n members.forEach((listMembers) => {\n listMembers.forEach((m) => {\n users.forEach((r) => {\n let reviewer = r;\n let isRequired = false;\n if (reviewer.startsWith(requiredReviewerPrefix)) {\n reviewer = reviewer.replace(requiredReviewerPrefix, '');\n isRequired = true;\n }\n if (\n reviewer.toLowerCase() === m.identity?.displayName?.toLowerCase() ||\n reviewer.toLowerCase() === m.identity?.uniqueName?.toLowerCase()\n ) {\n if (ids.filter((c) => c.id === m.identity?.id).length === 0) {\n // TODO #22198\n ids.push({\n id: m.identity.id!,\n name: reviewer,\n isRequired,\n });\n\n validReviewers.add(reviewer);\n }\n }\n });\n });\n });\n\n teams.forEach((t) => {\n users.forEach((r) => {\n let reviewer = r;\n let isRequired = false;\n if (reviewer.startsWith(requiredReviewerPrefix)) {\n reviewer = reviewer.replace(requiredReviewerPrefix, '');\n isRequired = true;\n }\n if (reviewer.toLowerCase() === t.name?.toLowerCase()) {\n if (ids.filter((c) => c.id === t.id).length === 0) {\n // TODO #22198\n ids.push({ id: t.id!, name: reviewer, isRequired });\n\n validReviewers.add(reviewer);\n }\n }\n });\n });\n\n for (const u of users) {\n const reviewer = u.replace(requiredReviewerPrefix, '');\n if (!validReviewers.has(reviewer)) {\n logger.once.info(\n `${reviewer} is neither an Azure DevOps Team nor a user associated with a Team`,\n );\n }\n }\n\n return ids;\n}\n\n/**\n *\n * @param {number} issueNo\n * @param {string[]} assignees\n */\nexport async function addAssignees(\n issueNo: number,\n assignees: string[],\n): Promise<void> {\n logger.trace(`addAssignees(${issueNo}, [${assignees.join(', ')}])`);\n const ids = await getUserIds(assignees);\n await ensureComment({\n number: issueNo,\n topic: 'Add Assignees',\n content: ids.map((a) => `@<${a.id}>`).join(', '),\n });\n}\n\n/**\n *\n * @param {number} prNo\n * @param {string[]} reviewers\n */\nexport async function addReviewers(\n prNo: number,\n reviewers: string[],\n): Promise<void> {\n logger.trace(`addReviewers(${prNo}, [${reviewers.join(', ')}])`);\n const azureApiGit = await azureApi.gitApi();\n\n const ids = await getUserIds(reviewers);\n\n await Promise.all(\n ids.map(async (obj) => {\n await azureApiGit.createPullRequestReviewer(\n {\n isRequired: obj.isRequired,\n },\n config.repoId,\n prNo,\n obj.id,\n );\n logger.debug(`Reviewer added: ${obj.name}`);\n }),\n );\n}\n\nexport async function deleteLabel(\n prNumber: number,\n label: string,\n): Promise<void> {\n logger.debug(`Deleting label ${label} from #${prNumber}`);\n const azureApiGit = await azureApi.gitApi();\n await azureApiGit.deletePullRequestLabels(config.repoId, prNumber, label);\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/platform/azure/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { setTimeout } from 'timers/promises';\nimport is from '@sindresorhus/is';\nimport type {\n GitPullRequest,\n GitPullRequestCommentThread,\n GitStatus,\n GitVersionDescriptor,\n} from 'azure-devops-node-api/interfaces/GitInterfaces.js';\nimport {\n GitPullRequestMergeStrategy,\n GitStatusState,\n PullRequestStatus,\n} from 'azure-devops-node-api/interfaces/GitInterfaces.js';\nimport {\n REPOSITORY_ARCHIVED,\n REPOSITORY_EMPTY,\n REPOSITORY_NOT_FOUND,\n} from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport type { BranchStatus } from '../../../types';\nimport { ExternalHostError } from '../../../types/errors/external-host-error';\nimport { parseJson } from '../../../util/common';\nimport * as git from '../../../util/git';\nimport * as hostRules from '../../../util/host-rules';\nimport { regEx } from '../../../util/regex';\nimport { sanitize } from '../../../util/sanitize';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport type {\n BranchStatusConfig,\n CreatePRConfig,\n EnsureCommentConfig,\n EnsureCommentRemovalConfig,\n EnsureIssueResult,\n FindPRConfig,\n Issue,\n MergePRConfig,\n PlatformParams,\n PlatformResult,\n Pr,\n RepoParams,\n RepoResult,\n UpdatePrConfig,\n} from '../types';\nimport { getNewBranchName, repoFingerprint } from '../util';\nimport { smartTruncate } from '../utils/pr-body';\nimport * as azureApi from './azure-got-wrapper';\nimport * as azureHelper from './azure-helper';\nimport type { AzurePr } from './types';\nimport { AzurePrVote } from './types';\nimport {\n getBranchNameWithoutRefsheadsPrefix,\n getGitStatusContextCombinedName,\n getGitStatusContextFromCombinedName,\n getRenovatePRFormat,\n getRepoByName,\n getStorageExtraCloneOpts,\n mapMergeStrategy,\n max4000Chars,\n} from './util';\n\ninterface Config {\n repoForceRebase: boolean;\n mergeMethods: Record<string, GitPullRequestMergeStrategy>;\n owner: string;\n repoId: string;\n project: string;\n prList: AzurePr[];\n fileList: null;\n repository: string;\n defaultBranch: string;\n}\n\ninterface User {\n id: string;\n name: string;\n isRequired: boolean;\n}\n\nlet config: Config = {} as any;\n\nconst defaults: {\n endpoint?: string;\n hostType: string;\n} = {\n hostType: 'azure',\n};\n\nexport const id = 'azure';\n\nexport function initPlatform({\n endpoint,\n token,\n username,\n password,\n}: PlatformParams): Promise<PlatformResult> {\n if (!endpoint) {\n throw new Error('Init: You must configure an Azure DevOps endpoint');\n }\n if (!token && !(username && password)) {\n throw new Error(\n 'Init: You must configure an Azure DevOps token, or a username and password',\n );\n }\n // TODO: Add a connection check that endpoint/token combination are valid (#9593)\n const res = {\n endpoint: ensureTrailingSlash(endpoint),\n };\n defaults.endpoint = res.endpoint;\n azureApi.setEndpoint(res.endpoint);\n const platformConfig: PlatformResult = {\n endpoint: defaults.endpoint,\n };\n return Promise.resolve(platformConfig);\n}\n\nexport async function getRepos(): Promise<string[]> {\n logger.debug('Autodiscovering Azure DevOps repositories');\n const azureApiGit = await azureApi.gitApi();\n const repos = await azureApiGit.getRepositories();\n return repos\n .filter((repo) => repo.isDisabled !== true)\n .map((repo) => `${repo.project?.name}/${repo.name}`);\n}\n\nexport async function getRawFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<string | null> {\n try {\n const azureApiGit = await azureApi.gitApi();\n\n let repoId: string | undefined;\n if (repoName) {\n const repos = await azureApiGit.getRepositories();\n const repo = getRepoByName(repoName, repos);\n repoId = repo?.id;\n } else {\n repoId = config.repoId;\n }\n\n if (!repoId) {\n logger.debug('No repoId so cannot getRawFile');\n return null;\n }\n\n const versionDescriptor: GitVersionDescriptor = {\n version: branchOrTag,\n } satisfies GitVersionDescriptor;\n\n const item = await azureApiGit.getItem(\n repoId, // repositoryId\n fileName, // path\n undefined, // project\n undefined, // scopePath\n undefined, // recursionLevel\n undefined, // includeContentMetadata\n undefined, // latestProcessedChange\n undefined, // download\n branchOrTag ? versionDescriptor : undefined, // versionDescriptor\n true, // includeContent\n );\n\n return item?.content ?? null;\n } catch (err) /* v8 ignore start */ {\n if (\n err.message?.includes('<title>Azure DevOps Services Unavailable</title>')\n ) {\n logger.debug(\n 'Azure DevOps is currently unavailable when attempting to fetch file - throwing ExternalHostError',\n );\n throw new ExternalHostError(err, id);\n }\n if (err.code === 'ECONNRESET' || err.code === 'ETIMEDOUT') {\n throw new ExternalHostError(err, id);\n }\n if (err.statusCode && err.statusCode >= 500 && err.statusCode < 600) {\n throw new ExternalHostError(err, id);\n }\n throw err;\n } /* v8 ignore stop */\n}\n\nexport async function getJsonFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<any> {\n const raw = await getRawFile(fileName, repoName, branchOrTag);\n return parseJson(raw, fileName);\n}\n\nexport async function initRepo({\n repository,\n cloneSubmodules,\n cloneSubmodulesFilter,\n}: RepoParams): Promise<RepoResult> {\n logger.debug(`initRepo(\"${repository}\")`);\n config = { repository } as Config;\n const azureApiGit = await azureApi.gitApi();\n const repos = await azureApiGit.getRepositories();\n const repo = getRepoByName(repository, repos);\n if (!repo) {\n logger.error({ repos, repo }, 'Could not find repo in repo list');\n throw new Error(REPOSITORY_NOT_FOUND);\n }\n logger.debug({ repositoryDetails: repo }, 'Repository details');\n if (repo.isDisabled) {\n logger.debug('Repository is disabled- throwing error to abort renovation');\n throw new Error(REPOSITORY_ARCHIVED);\n }\n /* v8 ignore start */\n if (!repo.defaultBranch) {\n logger.debug('Repo is empty');\n throw new Error(REPOSITORY_EMPTY);\n } /* v8 ignore stop */\n // TODO #22198\n config.repoId = repo.id!;\n\n config.project = repo.project!.name!;\n config.owner = '?owner?';\n logger.debug(`${repository} owner = ${config.owner}`);\n const defaultBranch = repo.defaultBranch.replace('refs/heads/', '');\n config.defaultBranch = defaultBranch;\n logger.debug(`${repository} default branch = ${defaultBranch}`);\n config.mergeMethods = {};\n config.repoForceRebase = false;\n\n const [projectName, repoName] = repository.split('/');\n const opts = hostRules.find({\n hostType: defaults.hostType,\n url: defaults.endpoint,\n });\n // TODO: types (#22198)\n const manualUrl = `${defaults.endpoint!}${encodeURIComponent(\n projectName,\n )}/_git/${encodeURIComponent(repoName)}`;\n const url = repo.remoteUrl ?? manualUrl;\n await git.initRepo({\n ...config,\n url,\n extraCloneOpts: getStorageExtraCloneOpts(opts),\n cloneSubmodules,\n cloneSubmodulesFilter,\n });\n const repoConfig: RepoResult = {\n defaultBranch,\n isFork: false,\n repoFingerprint: repoFingerprint(repo.id!, defaults.endpoint),\n };\n return repoConfig;\n}\n\nexport async function getPrList(): Promise<AzurePr[]> {\n logger.debug('getPrList()');\n if (!config.prList) {\n const azureApiGit = await azureApi.gitApi();\n let prs: GitPullRequest[] = [];\n let fetchedPrs: GitPullRequest[];\n let skip = 0;\n do {\n fetchedPrs = await azureApiGit.getPullRequests(\n config.repoId,\n {\n status: 4,\n // fetch only prs directly created on the repo and not by forks\n sourceRepositoryId: config.project,\n },\n config.project,\n 0,\n skip,\n 100,\n );\n prs = prs.concat(fetchedPrs);\n skip += 100;\n } while (fetchedPrs.length > 0);\n\n config.prList = prs.map(getRenovatePRFormat);\n logger.debug(`Retrieved Pull Requests count: ${config.prList.length}`);\n }\n return config.prList;\n}\n\nexport async function getPr(pullRequestId: number): Promise<Pr | null> {\n logger.debug(`getPr(${pullRequestId})`);\n if (!pullRequestId) {\n return null;\n }\n const azurePr = (await getPrList()).find(\n (item) => item.number === pullRequestId,\n );\n\n if (!azurePr) {\n return null;\n }\n\n const azureApiGit = await azureApi.gitApi();\n const labels = await azureApiGit.getPullRequestLabels(\n config.repoId,\n pullRequestId,\n );\n\n azurePr.labels = labels\n .filter((label) => label.active)\n .map((label) => label.name)\n .filter(is.string);\n return azurePr;\n}\n\nexport async function findPr({\n branchName,\n prTitle,\n state = 'all',\n targetBranch,\n}: FindPRConfig): Promise<Pr | null> {\n let prsFiltered: Pr[] = [];\n try {\n const prs = await getPrList();\n\n prsFiltered = prs.filter(\n (item) => item.sourceRefName === getNewBranchName(branchName),\n );\n\n if (prTitle) {\n prsFiltered = prsFiltered.filter(\n (item) => item.title.toUpperCase() === prTitle.toUpperCase(),\n );\n }\n\n switch (state) {\n case 'all':\n // no more filter needed, we can go further...\n break;\n case '!open':\n prsFiltered = prsFiltered.filter((item) => item.state !== 'open');\n break;\n default:\n prsFiltered = prsFiltered.filter((item) => item.state === state);\n break;\n }\n } catch (err) {\n logger.error({ err }, 'findPr error');\n }\n if (prsFiltered.length === 0) {\n return null;\n }\n if (targetBranch && prsFiltered.length > 1) {\n const pr = prsFiltered.find((item) => item.targetBranch === targetBranch);\n if (pr) {\n return pr;\n }\n }\n return prsFiltered[0];\n}\n\nexport async function getBranchPr(\n branchName: string,\n targetBranch?: string,\n): Promise<Pr | null> {\n logger.debug(`getBranchPr(${branchName}, ${targetBranch})`);\n const existingPr = await findPr({\n branchName,\n state: 'open',\n targetBranch,\n });\n return existingPr ? getPr(existingPr.number) : null;\n}\n\nasync function getStatusCheck(branchName: string): Promise<GitStatus[]> {\n const azureApiGit = await azureApi.gitApi();\n const branch = await azureApiGit.getBranch(\n config.repoId,\n\n // TODO: fix undefined (#22198)\n getBranchNameWithoutRefsheadsPrefix(branchName)!,\n );\n // only grab the latest statuses, it will group any by context\n return azureApiGit.getStatuses(\n // TODO #22198\n branch.commit!.commitId!,\n config.repoId,\n undefined,\n undefined,\n undefined,\n true,\n );\n}\n\nconst azureToRenovateStatusMapping: Record<GitStatusState, BranchStatus> = {\n [GitStatusState.Succeeded]: 'green',\n [GitStatusState.NotApplicable]: 'green',\n [GitStatusState.NotSet]: 'yellow',\n [GitStatusState.Pending]: 'yellow',\n [GitStatusState.PartiallySucceeded]: 'yellow',\n [GitStatusState.Error]: 'red',\n [GitStatusState.Failed]: 'red',\n};\n\nexport async function getBranchStatusCheck(\n branchName: string,\n context: string,\n): Promise<BranchStatus | null> {\n const res = await getStatusCheck(branchName);\n for (const check of res) {\n if (getGitStatusContextCombinedName(check.context) === context) {\n // TODO #22198\n return azureToRenovateStatusMapping[check.state!] ?? 'yellow';\n }\n }\n return null;\n}\n\nexport async function getBranchStatus(\n branchName: string,\n internalChecksAsSuccess: boolean,\n): Promise<BranchStatus> {\n logger.debug(`getBranchStatus(${branchName})`);\n const statuses = await getStatusCheck(branchName);\n logger.debug({ branch: branchName, statuses }, 'branch status check result');\n if (!statuses.length) {\n logger.debug('empty branch status check result = returning \"pending\"');\n return 'yellow';\n }\n const noOfFailures = statuses.filter(\n (status) =>\n status.state === GitStatusState.Error ||\n status.state === GitStatusState.Failed,\n ).length;\n if (noOfFailures) {\n return 'red';\n }\n const noOfPending = statuses.filter(\n (status) =>\n status.state === GitStatusState.NotSet ||\n status.state === GitStatusState.Pending,\n ).length;\n if (noOfPending) {\n return 'yellow';\n }\n if (\n !internalChecksAsSuccess &&\n statuses.every(\n (status) =>\n status.state === GitStatusState.Succeeded &&\n status.context?.genre === 'renovate',\n )\n ) {\n logger.debug(\n 'Successful checks are all internal renovate/ checks, so returning \"pending\" branch status',\n );\n return 'yellow';\n }\n return 'green';\n}\n\nasync function getMergeStrategy(\n targetRefName: string,\n): Promise<GitPullRequestMergeStrategy> {\n return (\n config.mergeMethods[targetRefName] ??\n (config.mergeMethods[targetRefName] = await azureHelper.getMergeMethod(\n config.repoId,\n config.project,\n targetRefName,\n config.defaultBranch,\n ))\n );\n}\n\nexport async function createPr({\n sourceBranch,\n targetBranch,\n prTitle: title,\n prBody: body,\n labels,\n draftPR = false,\n platformPrOptions,\n}: CreatePRConfig): Promise<Pr> {\n const sourceRefName = getNewBranchName(sourceBranch);\n const targetRefName = getNewBranchName(targetBranch);\n const description = max4000Chars(sanitize(body));\n const azureApiGit = await azureApi.gitApi();\n const workItemRefs = [\n {\n id: platformPrOptions?.azureWorkItemId?.toString(),\n },\n ];\n let pr: GitPullRequest = await azureApiGit.createPullRequest(\n {\n sourceRefName,\n targetRefName,\n title,\n description,\n workItemRefs,\n isDraft: draftPR,\n },\n config.repoId,\n );\n if (platformPrOptions?.usePlatformAutomerge) {\n const mergeStrategy =\n platformPrOptions.automergeStrategy === 'auto'\n ? await getMergeStrategy(pr.targetRefName!)\n : mapMergeStrategy(platformPrOptions.automergeStrategy);\n pr = await azureApiGit.updatePullRequest(\n {\n autoCompleteSetBy: {\n // TODO #22198\n id: pr.createdBy!.id,\n },\n completionOptions: {\n mergeStrategy,\n deleteSourceBranch: true,\n mergeCommitMessage: title,\n },\n },\n config.repoId,\n // TODO #22198\n pr.pullRequestId!,\n );\n }\n if (platformPrOptions?.autoApprove) {\n await azureApiGit.createPullRequestReviewer(\n {\n reviewerUrl: pr.createdBy!.url,\n vote: AzurePrVote.Approved,\n isFlagged: false,\n isRequired: false,\n },\n config.repoId,\n // TODO #22198\n pr.pullRequestId!,\n pr.createdBy!.id!,\n );\n }\n await Promise.all(\n labels!.map((label) =>\n azureApiGit.createPullRequestLabel(\n {\n name: label,\n },\n config.repoId,\n // TODO #22198\n pr.pullRequestId!,\n ),\n ),\n );\n\n const result = getRenovatePRFormat(pr);\n if (config.prList) {\n config.prList.push(result);\n }\n return result;\n}\n\nexport async function updatePr({\n number: prNo,\n prTitle: title,\n prBody: body,\n state,\n platformPrOptions,\n targetBranch,\n}: UpdatePrConfig): Promise<void> {\n logger.debug(`updatePr(${prNo}, ${title}, body)`);\n\n const azureApiGit = await azureApi.gitApi();\n const objToUpdate: GitPullRequest = {\n title,\n };\n\n if (targetBranch) {\n objToUpdate.targetRefName = getNewBranchName(targetBranch);\n }\n\n if (body) {\n objToUpdate.description = max4000Chars(sanitize(body));\n }\n\n if (state === 'open') {\n await azureApiGit.updatePullRequest(\n {\n status: PullRequestStatus.Active,\n },\n config.repoId,\n prNo,\n );\n } else if (state === 'closed') {\n objToUpdate.status = PullRequestStatus.Abandoned;\n }\n if (platformPrOptions?.autoApprove) {\n const pr = await azureApiGit.getPullRequestById(prNo, config.project);\n await azureApiGit.createPullRequestReviewer(\n {\n reviewerUrl: pr.createdBy!.url,\n vote: AzurePrVote.Approved,\n isFlagged: false,\n isRequired: false,\n },\n config.repoId,\n // TODO #22198\n pr.pullRequestId!,\n pr.createdBy!.id!,\n );\n }\n\n const updatedPr = await azureApiGit.updatePullRequest(\n objToUpdate,\n config.repoId,\n prNo,\n );\n if (config.prList) {\n const prToCache = getRenovatePRFormat(updatedPr);\n // We need to update the cached entry for this PR\n const existingIndex = config.prList.findIndex(\n (item) => item.number === prNo,\n );\n /* v8 ignore start: should not happen */\n if (existingIndex === -1) {\n logger.warn({ prNo }, 'PR not found in cache');\n // Add to cache\n config.prList.push(prToCache);\n } /* v8 ignore stop */ else {\n // overwrite existing PR in cache\n config.prList[existingIndex] = prToCache;\n }\n }\n}\n\nexport async function ensureComment({\n number,\n topic,\n content,\n}: EnsureCommentConfig): Promise<boolean> {\n logger.debug(`ensureComment(${number}, ${topic!}, content)`);\n const header = topic ? `### ${topic}\\n\\n` : '';\n const body = `${header}${sanitize(massageMarkdown(content))}`;\n const azureApiGit = await azureApi.gitApi();\n\n const threads = await azureApiGit.getThreads(config.repoId, number);\n let threadIdFound: number | undefined;\n let commentIdFound: number | undefined;\n let commentNeedsUpdating = false;\n threads.forEach((thread) => {\n const firstCommentContent = thread.comments?.[0].content;\n if (\n (topic && firstCommentContent?.startsWith(header)) === true ||\n (!topic && firstCommentContent === body)\n ) {\n threadIdFound = thread.id;\n commentIdFound = thread.comments?.[0].id;\n commentNeedsUpdating = firstCommentContent !== body;\n }\n });\n\n if (!threadIdFound) {\n await azureApiGit.createThread(\n {\n comments: [{ content: body, commentType: 1, parentCommentId: 0 }],\n status: 1,\n },\n config.repoId,\n number,\n );\n logger.info(\n { repository: config.repository, issueNo: number, topic },\n 'Comment added',\n );\n } else if (commentNeedsUpdating) {\n await azureApiGit.updateComment(\n {\n content: body,\n },\n config.repoId,\n number,\n threadIdFound,\n // TODO #22198\n commentIdFound!,\n );\n logger.debug(\n { repository: config.repository, issueNo: number, topic },\n 'Comment updated',\n );\n } else {\n logger.debug(\n { repository: config.repository, issueNo: number, topic },\n 'Comment is already update-to-date',\n );\n }\n\n return true;\n}\n\nexport async function ensureCommentRemoval(\n removeConfig: EnsureCommentRemovalConfig,\n): Promise<void> {\n const { number: issueNo } = removeConfig;\n const key =\n removeConfig.type === 'by-topic'\n ? removeConfig.topic\n : removeConfig.content;\n logger.debug(`Ensuring comment \"${key}\" in #${issueNo} is removed`);\n\n const azureApiGit = await azureApi.gitApi();\n const threads = await azureApiGit.getThreads(config.repoId, issueNo);\n\n let threadIdFound: number | null | undefined = null;\n if (removeConfig.type === 'by-topic') {\n const thread = threads.find(\n (thread: GitPullRequestCommentThread): boolean =>\n !!thread.comments?.[0].content?.startsWith(\n `### ${removeConfig.topic}\\n\\n`,\n ),\n );\n threadIdFound = thread?.id;\n } else {\n const thread = threads.find(\n (thread: GitPullRequestCommentThread): boolean =>\n thread.comments?.[0].content?.trim() === removeConfig.content,\n );\n threadIdFound = thread?.id;\n }\n\n if (threadIdFound) {\n await azureApiGit.updateThread(\n {\n status: 4, // close\n },\n config.repoId,\n issueNo,\n threadIdFound,\n );\n }\n}\n\nconst renovateToAzureStatusMapping: Record<BranchStatus, GitStatusState> = {\n ['green']: GitStatusState.Succeeded,\n ['yellow']: GitStatusState.Pending,\n ['red']: GitStatusState.Failed,\n};\n\nexport async function setBranchStatus({\n branchName,\n context,\n description,\n state,\n url: targetUrl,\n}: BranchStatusConfig): Promise<void> {\n logger.debug(\n `setBranchStatus(${branchName}, ${context}, ${description}, ${state}, ${targetUrl!})`,\n );\n const azureApiGit = await azureApi.gitApi();\n const branch = await azureApiGit.getBranch(\n config.repoId,\n getBranchNameWithoutRefsheadsPrefix(branchName)!,\n );\n const statusToCreate: GitStatus = {\n description,\n context: getGitStatusContextFromCombinedName(context),\n state: renovateToAzureStatusMapping[state],\n targetUrl,\n };\n await azureApiGit.createCommitStatus(\n statusToCreate,\n // TODO #22198\n branch.commit!.commitId!,\n config.repoId,\n );\n logger.trace(`Created commit status of ${state} on branch ${branchName}`);\n}\n\nexport async function mergePr({\n branchName,\n id: pullRequestId,\n strategy,\n}: MergePRConfig): Promise<boolean> {\n logger.debug(`mergePr(${pullRequestId}, ${branchName!})`);\n const azureApiGit = await azureApi.gitApi();\n\n let pr = await azureApiGit.getPullRequestById(pullRequestId, config.project);\n\n const mergeStrategy =\n strategy === 'auto'\n ? await getMergeStrategy(pr.targetRefName!)\n : mapMergeStrategy(strategy);\n const objToUpdate: GitPullRequest = {\n status: PullRequestStatus.Completed,\n lastMergeSourceCommit: pr.lastMergeSourceCommit,\n completionOptions: {\n mergeStrategy,\n deleteSourceBranch: true,\n mergeCommitMessage: pr.title,\n },\n };\n\n logger.trace(\n `Updating PR ${pullRequestId} to status ${PullRequestStatus.Completed} (${\n PullRequestStatus[PullRequestStatus.Completed]\n }) with lastMergeSourceCommit ${\n // TODO: types (#22198)\n pr.lastMergeSourceCommit?.commitId\n } using mergeStrategy ${mergeStrategy} (${\n GitPullRequestMergeStrategy[mergeStrategy]\n })`,\n );\n\n try {\n const response = await azureApiGit.updatePullRequest(\n objToUpdate,\n config.repoId,\n pullRequestId,\n );\n\n let retries = 0;\n let isClosed = response.status === PullRequestStatus.Completed;\n while (!isClosed && retries < 5) {\n retries += 1;\n const sleepMs = retries * 1000;\n logger.trace(\n { pullRequestId, status: pr.status, retries },\n `Updated PR to closed status but change has not taken effect yet. Retrying...`,\n );\n\n await setTimeout(sleepMs);\n pr = await azureApiGit.getPullRequestById(pullRequestId, config.project);\n isClosed = pr.status === PullRequestStatus.Completed;\n }\n\n if (!isClosed) {\n logger.warn(\n {\n pullRequestId,\n status: pr.status,\n expectedPRStatus: PullRequestStatus[PullRequestStatus.Completed],\n actualPRStatus: PullRequestStatus[pr.status!],\n },\n 'Expected PR to have completed status. However, the PR has a different status',\n );\n }\n return true;\n } catch (err) {\n logger.debug({ err }, 'Failed to set the PR as completed.');\n return false;\n }\n}\n\nexport function massageMarkdown(input: string): string {\n // Remove any HTML we use\n return smartTruncate(input, maxBodyLength())\n .replace(\n 'you tick the rebase/retry checkbox',\n 'PR is renamed to start with \"rebase!\"',\n )\n .replace(\n 'checking the rebase/retry box above',\n 'renaming the PR to start with \"rebase!\"',\n )\n .replace(regEx(`\\n---\\n\\n.*?<!-- rebase-check -->.*?\\n`), '')\n .replace(regEx(/<!--renovate-(?:debug|config-hash):.*?-->/g), '');\n}\n\nexport function maxBodyLength(): number {\n return 4000;\n}\n\n/* v8 ignore start */\nexport function findIssue(): Promise<Issue | null> {\n // TODO: Needs implementation (#9592)\n logger.debug(`findIssue() is not implemented`);\n return Promise.resolve(null);\n} /* v8 ignore stop */\n\n/* v8 ignore start */\nexport function ensureIssue(): Promise<EnsureIssueResult | null> {\n // TODO: Needs implementation (#9592)\n logger.debug(`ensureIssue() is not implemented`);\n return Promise.resolve(null);\n} /* v8 ignore stop */\n\n/* v8 ignore start */\nexport function ensureIssueClosing(): Promise<void> {\n return Promise.resolve();\n} /* v8 ignore stop */\n\n/* v8 ignore start */\nexport function getIssueList(): Promise<Issue[]> {\n logger.debug(`getIssueList()`);\n // TODO: Needs implementation (#9592)\n return Promise.resolve([]);\n} /* v8 ignore stop */\n\nasync function getUserIds(users: string[]): Promise<User[]> {\n const azureApiGit = await azureApi.gitApi();\n const azureApiCore = await azureApi.coreApi();\n const repos = await azureApiGit.getRepositories();\n const repo = repos.find((c) => c.id === config.repoId)!;\n const requiredReviewerPrefix = 'required:';\n const validReviewers = new Set<string>();\n\n // TODO #22198\n const teams = await azureHelper.getAllProjectTeams(repo.project!.id!);\n const members = await Promise.all(\n teams.map(\n async (t) =>\n await azureApiCore.getTeamMembersWithExtendedProperties(\n // TODO #22198\n repo.project!.id!,\n t.id!,\n ),\n ),\n );\n\n const ids: { id: string; name: string; isRequired: boolean }[] = [];\n members.forEach((listMembers) => {\n listMembers.forEach((m) => {\n users.forEach((r) => {\n let reviewer = r;\n let isRequired = false;\n if (reviewer.startsWith(requiredReviewerPrefix)) {\n reviewer = reviewer.replace(requiredReviewerPrefix, '');\n isRequired = true;\n }\n if (\n reviewer.toLowerCase() === m.identity?.displayName?.toLowerCase() ||\n reviewer.toLowerCase() === m.identity?.uniqueName?.toLowerCase()\n ) {\n if (ids.filter((c) => c.id === m.identity?.id).length === 0) {\n // TODO #22198\n ids.push({\n id: m.identity.id!,\n name: reviewer,\n isRequired,\n });\n\n validReviewers.add(reviewer);\n }\n }\n });\n });\n });\n\n teams.forEach((t) => {\n users.forEach((r) => {\n let reviewer = r;\n let isRequired = false;\n if (reviewer.startsWith(requiredReviewerPrefix)) {\n reviewer = reviewer.replace(requiredReviewerPrefix, '');\n isRequired = true;\n }\n if (reviewer.toLowerCase() === t.name?.toLowerCase()) {\n if (ids.filter((c) => c.id === t.id).length === 0) {\n // TODO #22198\n ids.push({ id: t.id!, name: reviewer, isRequired });\n\n validReviewers.add(reviewer);\n }\n }\n });\n });\n\n for (const u of users) {\n const reviewer = u.replace(requiredReviewerPrefix, '');\n if (!validReviewers.has(reviewer)) {\n logger.once.info(\n `${reviewer} is neither an Azure DevOps Team nor a user associated with a Team`,\n );\n }\n }\n\n return ids;\n}\n\n/**\n *\n * @param {number} issueNo\n * @param {string[]} assignees\n */\nexport async function addAssignees(\n issueNo: number,\n assignees: string[],\n): Promise<void> {\n logger.trace(`addAssignees(${issueNo}, [${assignees.join(', ')}])`);\n const ids = await getUserIds(assignees);\n await ensureComment({\n number: issueNo,\n topic: 'Add Assignees',\n content: ids.map((a) => `@<${a.id}>`).join(', '),\n });\n}\n\n/**\n *\n * @param {number} prNo\n * @param {string[]} reviewers\n */\nexport async function addReviewers(\n prNo: number,\n reviewers: string[],\n): Promise<void> {\n logger.trace(`addReviewers(${prNo}, [${reviewers.join(', ')}])`);\n const azureApiGit = await azureApi.gitApi();\n\n const ids = await getUserIds(reviewers);\n\n await Promise.all(\n ids.map(async (obj) => {\n await azureApiGit.createPullRequestReviewer(\n {\n isRequired: obj.isRequired,\n },\n config.repoId,\n prNo,\n obj.id,\n );\n logger.debug(`Reviewer added: ${obj.name}`);\n }),\n );\n}\n\nexport async function deleteLabel(\n prNumber: number,\n label: string,\n): Promise<void> {\n logger.debug(`Deleting label ${label} from #${prNumber}`);\n const azureApiGit = await azureApi.gitApi();\n await azureApiGit.deletePullRequestLabels(config.repoId, prNumber, label);\n}\n"]}
@@ -69,10 +69,10 @@ async function ensureComment({ config, number: prNo, topic, content, }) {
69
69
  }
70
70
  return true;
71
71
  }
72
- catch (err) /* istanbul ignore next */ {
72
+ catch (err) /* v8 ignore start */ {
73
73
  logger_1.logger.warn({ err }, 'Error ensuring comment');
74
74
  return false;
75
- }
75
+ } /* v8 ignore stop */
76
76
  }
77
77
  async function reopenComments(config, prNo) {
78
78
  const comments = await getComments(config, prNo);
@@ -100,9 +100,9 @@ async function ensureCommentRemoval(config, deleteConfig) {
100
100
  await deleteComment(config, prNo, commentId);
101
101
  }
102
102
  }
103
- catch (err) /* istanbul ignore next */ {
103
+ catch (err) /* v8 ignore start */ {
104
104
  logger_1.logger.warn({ err }, 'Error ensuring comment removal');
105
- }
105
+ } /* v8 ignore stop */
106
106
  }
107
107
  function sanitizeCommentBody(body) {
108
108
  return body
@@ -1 +1 @@
1
- {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../../../lib/modules/platform/bitbucket/comments.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { BitbucketHttp } from '../../../util/http/bitbucket';\nimport type { EnsureCommentConfig, EnsureCommentRemovalConfig } from '../types';\nimport type { Account, Config, PagedResult } from './types';\n\nexport const REOPEN_PR_COMMENT_KEYWORD = 'reopen!';\n\nconst bitbucketHttp = new BitbucketHttp();\n\ninterface Comment {\n content: { raw: string };\n id: number;\n user: Account;\n}\n\nexport type CommentsConfig = Pick<Config, 'repository'>;\n\ninterface EnsureBitbucketCommentConfig extends EnsureCommentConfig {\n config: CommentsConfig;\n}\n\nasync function getComments(\n config: CommentsConfig,\n prNo: number,\n): Promise<Comment[]> {\n const comments = (\n await bitbucketHttp.getJsonUnchecked<PagedResult<Comment>>(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}/comments`,\n {\n paginate: true,\n },\n )\n ).body.values;\n\n logger.debug(`Found ${comments.length} comments`);\n return comments;\n}\n\nasync function addComment(\n config: CommentsConfig,\n prNo: number,\n raw: string,\n): Promise<void> {\n await bitbucketHttp.postJson(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}/comments`,\n {\n body: { content: { raw } },\n },\n );\n}\n\nasync function editComment(\n config: CommentsConfig,\n prNo: number,\n commentId: number,\n raw: string,\n): Promise<void> {\n await bitbucketHttp.putJson(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}/comments/${commentId}`,\n {\n body: { content: { raw } },\n },\n );\n}\n\nasync function deleteComment(\n config: CommentsConfig,\n prNo: number,\n commentId: number,\n): Promise<void> {\n await bitbucketHttp.deleteJson(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}/comments/${commentId}`,\n );\n}\n\nexport async function ensureComment({\n config,\n number: prNo,\n topic,\n content,\n}: EnsureBitbucketCommentConfig): Promise<boolean> {\n try {\n const comments = await getComments(config, prNo);\n let body: string;\n let commentId: number | undefined;\n let commentNeedsUpdating: boolean | undefined;\n if (topic) {\n logger.debug(`Ensuring comment \"${topic}\" in #${prNo}`);\n body = `### ${topic}\\n\\n${content}`;\n comments.forEach((comment) => {\n if (comment.content.raw.startsWith(`### ${topic}\\n\\n`)) {\n commentId = comment.id;\n commentNeedsUpdating = comment.content.raw !== body;\n }\n });\n } else {\n logger.debug(`Ensuring content-only comment in #${prNo}`);\n body = `${content}`;\n comments.forEach((comment) => {\n if (comment.content.raw === body) {\n commentId = comment.id;\n commentNeedsUpdating = false;\n }\n });\n }\n\n // sanitize any language that isn't supported by Bitbucket Cloud\n body = sanitizeCommentBody(body);\n\n if (!commentId) {\n await addComment(config, prNo, body);\n logger.info(\n { repository: config.repository, prNo, topic },\n 'Comment added',\n );\n } else if (commentNeedsUpdating) {\n await editComment(config, prNo, commentId, body);\n logger.debug({ repository: config.repository, prNo }, 'Comment updated');\n } else {\n logger.debug('Comment is already update-to-date');\n }\n return true;\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ err }, 'Error ensuring comment');\n return false;\n }\n}\n\nexport async function reopenComments(\n config: CommentsConfig,\n prNo: number,\n): Promise<Comment[]> {\n const comments = await getComments(config, prNo);\n\n const reopenComments = comments.filter((comment) =>\n comment.content.raw.startsWith(REOPEN_PR_COMMENT_KEYWORD),\n );\n\n return reopenComments;\n}\n\nexport async function ensureCommentRemoval(\n config: CommentsConfig,\n deleteConfig: EnsureCommentRemovalConfig,\n): Promise<void> {\n try {\n const { number: prNo } = deleteConfig;\n const key =\n deleteConfig.type === 'by-topic'\n ? deleteConfig.topic\n : deleteConfig.content;\n logger.debug(`Ensuring comment \"${key}\" in #${prNo} is removed`);\n const comments = await getComments(config, prNo);\n\n let commentId: number | undefined = undefined;\n\n if (deleteConfig.type === 'by-topic') {\n const byTopic = (comment: Comment): boolean =>\n comment.content.raw.startsWith(`### ${deleteConfig.topic}\\n\\n`);\n commentId = comments.find(byTopic)?.id;\n } else if (deleteConfig.type === 'by-content') {\n const byContent = (comment: Comment): boolean =>\n comment.content.raw.trim() === deleteConfig.content;\n commentId = comments.find(byContent)?.id;\n }\n\n if (commentId) {\n await deleteComment(config, prNo, commentId);\n }\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ err }, 'Error ensuring comment removal');\n }\n}\n\nfunction sanitizeCommentBody(body: string): string {\n return body\n .replace(\n 'checking the rebase/retry box above',\n 'renaming this PR to start with \"rebase!\"',\n )\n .replace(\n 'rename this PR to get a fresh replacement',\n 'add a comment starting with \"reopen!\" to get a fresh replacement',\n );\n}\n"]}
1
+ {"version":3,"file":"comments.js","sourceRoot":"","sources":["../../../../lib/modules/platform/bitbucket/comments.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { BitbucketHttp } from '../../../util/http/bitbucket';\nimport type { EnsureCommentConfig, EnsureCommentRemovalConfig } from '../types';\nimport type { Account, Config, PagedResult } from './types';\n\nexport const REOPEN_PR_COMMENT_KEYWORD = 'reopen!';\n\nconst bitbucketHttp = new BitbucketHttp();\n\ninterface Comment {\n content: { raw: string };\n id: number;\n user: Account;\n}\n\nexport type CommentsConfig = Pick<Config, 'repository'>;\n\ninterface EnsureBitbucketCommentConfig extends EnsureCommentConfig {\n config: CommentsConfig;\n}\n\nasync function getComments(\n config: CommentsConfig,\n prNo: number,\n): Promise<Comment[]> {\n const comments = (\n await bitbucketHttp.getJsonUnchecked<PagedResult<Comment>>(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}/comments`,\n {\n paginate: true,\n },\n )\n ).body.values;\n\n logger.debug(`Found ${comments.length} comments`);\n return comments;\n}\n\nasync function addComment(\n config: CommentsConfig,\n prNo: number,\n raw: string,\n): Promise<void> {\n await bitbucketHttp.postJson(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}/comments`,\n {\n body: { content: { raw } },\n },\n );\n}\n\nasync function editComment(\n config: CommentsConfig,\n prNo: number,\n commentId: number,\n raw: string,\n): Promise<void> {\n await bitbucketHttp.putJson(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}/comments/${commentId}`,\n {\n body: { content: { raw } },\n },\n );\n}\n\nasync function deleteComment(\n config: CommentsConfig,\n prNo: number,\n commentId: number,\n): Promise<void> {\n await bitbucketHttp.deleteJson(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}/comments/${commentId}`,\n );\n}\n\nexport async function ensureComment({\n config,\n number: prNo,\n topic,\n content,\n}: EnsureBitbucketCommentConfig): Promise<boolean> {\n try {\n const comments = await getComments(config, prNo);\n let body: string;\n let commentId: number | undefined;\n let commentNeedsUpdating: boolean | undefined;\n if (topic) {\n logger.debug(`Ensuring comment \"${topic}\" in #${prNo}`);\n body = `### ${topic}\\n\\n${content}`;\n comments.forEach((comment) => {\n if (comment.content.raw.startsWith(`### ${topic}\\n\\n`)) {\n commentId = comment.id;\n commentNeedsUpdating = comment.content.raw !== body;\n }\n });\n } else {\n logger.debug(`Ensuring content-only comment in #${prNo}`);\n body = `${content}`;\n comments.forEach((comment) => {\n if (comment.content.raw === body) {\n commentId = comment.id;\n commentNeedsUpdating = false;\n }\n });\n }\n\n // sanitize any language that isn't supported by Bitbucket Cloud\n body = sanitizeCommentBody(body);\n\n if (!commentId) {\n await addComment(config, prNo, body);\n logger.info(\n { repository: config.repository, prNo, topic },\n 'Comment added',\n );\n } else if (commentNeedsUpdating) {\n await editComment(config, prNo, commentId, body);\n logger.debug({ repository: config.repository, prNo }, 'Comment updated');\n } else {\n logger.debug('Comment is already update-to-date');\n }\n return true;\n } catch (err) /* v8 ignore start */ {\n logger.warn({ err }, 'Error ensuring comment');\n return false;\n } /* v8 ignore stop */\n}\n\nexport async function reopenComments(\n config: CommentsConfig,\n prNo: number,\n): Promise<Comment[]> {\n const comments = await getComments(config, prNo);\n\n const reopenComments = comments.filter((comment) =>\n comment.content.raw.startsWith(REOPEN_PR_COMMENT_KEYWORD),\n );\n\n return reopenComments;\n}\n\nexport async function ensureCommentRemoval(\n config: CommentsConfig,\n deleteConfig: EnsureCommentRemovalConfig,\n): Promise<void> {\n try {\n const { number: prNo } = deleteConfig;\n const key =\n deleteConfig.type === 'by-topic'\n ? deleteConfig.topic\n : deleteConfig.content;\n logger.debug(`Ensuring comment \"${key}\" in #${prNo} is removed`);\n const comments = await getComments(config, prNo);\n\n let commentId: number | undefined = undefined;\n\n if (deleteConfig.type === 'by-topic') {\n const byTopic = (comment: Comment): boolean =>\n comment.content.raw.startsWith(`### ${deleteConfig.topic}\\n\\n`);\n commentId = comments.find(byTopic)?.id;\n } else if (deleteConfig.type === 'by-content') {\n const byContent = (comment: Comment): boolean =>\n comment.content.raw.trim() === deleteConfig.content;\n commentId = comments.find(byContent)?.id;\n }\n\n if (commentId) {\n await deleteComment(config, prNo, commentId);\n }\n } catch (err) /* v8 ignore start */ {\n logger.warn({ err }, 'Error ensuring comment removal');\n } /* v8 ignore stop */\n}\n\nfunction sanitizeCommentBody(body: string): string {\n return body\n .replace(\n 'checking the rebase/retry box above',\n 'renaming this PR to start with \"rebase!\"',\n )\n .replace(\n 'rename this PR to get a fresh replacement',\n 'add a comment starting with \"reopen!\" to get a fresh replacement',\n );\n}\n"]}
@@ -37,6 +37,7 @@ const common_1 = require("../../../util/common");
37
37
  const git = tslib_1.__importStar(require("../../../util/git"));
38
38
  const hostRules = tslib_1.__importStar(require("../../../util/host-rules"));
39
39
  const bitbucket_1 = require("../../../util/http/bitbucket");
40
+ const memory_http_cache_provider_1 = require("../../../util/http/cache/memory-http-cache-provider");
40
41
  const repository_http_cache_provider_1 = require("../../../util/http/cache/repository-http-cache-provider");
41
42
  const regex_1 = require("../../../util/regex");
42
43
  const sanitize_1 = require("../../../util/sanitize");
@@ -70,9 +71,7 @@ async function initPlatform({ endpoint, username, password, token, }) {
70
71
  }
71
72
  (0, bitbucket_1.setBaseUrl)(defaults.endpoint);
72
73
  renovateUserUuid = null;
73
- const options = {
74
- memCache: false,
75
- };
74
+ const options = { memCache: false };
76
75
  if (token) {
77
76
  options.token = token;
78
77
  }
@@ -114,10 +113,10 @@ async function getRepos(config) {
114
113
  }
115
114
  return repos.map(({ owner, name }) => `${owner}/${name}`);
116
115
  }
117
- catch (err) /* istanbul ignore next */ {
116
+ catch (err) /* v8 ignore start */ {
118
117
  logger_1.logger.error({ err }, `bitbucket getRepos error`);
119
118
  throw err;
120
- }
119
+ } /* v8 ignore stop */
121
120
  }
122
121
  async function getRawFile(fileName, repoName, branchOrTag) {
123
122
  // See: https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/src/%7Bcommit%7D/%7Bpath%7D
@@ -133,7 +132,6 @@ async function getRawFile(fileName, repoName, branchOrTag) {
133
132
  `/${path}`;
134
133
  const res = await bitbucketHttp.getText(url, {
135
134
  cacheProvider: repository_http_cache_provider_1.repoCacheProvider,
136
- memCache: true,
137
135
  });
138
136
  return res.body;
139
137
  }
@@ -176,13 +174,13 @@ async function initRepo({ repository, cloneSubmodules, cloneSubmodulesFilter, ig
176
174
  };
177
175
  logger_1.logger.debug(`${repository} owner = ${config.owner}`);
178
176
  }
179
- catch (err) /* istanbul ignore next */ {
177
+ catch (err) /* v8 ignore start */ {
180
178
  if (err.statusCode === 404) {
181
179
  throw new Error(error_messages_1.REPOSITORY_NOT_FOUND);
182
180
  }
183
181
  logger_1.logger.debug({ err }, 'Unknown Bitbucket initRepo error');
184
182
  throw err;
185
- }
183
+ } /* v8 ignore stop */
186
184
  const { hostname } = node_url_1.default.parse(defaults.endpoint);
187
185
  // Converts API hostnames to their respective HTTP git hosts:
188
186
  // `api.bitbucket.org` to `bitbucket.org`
@@ -211,7 +209,7 @@ async function initRepo({ repository, cloneSubmodules, cloneSubmodulesFilter, ig
211
209
  };
212
210
  return repoConfig;
213
211
  }
214
- // istanbul ignore next
212
+ /* v8 ignore start */
215
213
  function matchesState(state, desiredState) {
216
214
  if (desiredState === 'all') {
217
215
  return true;
@@ -220,7 +218,7 @@ function matchesState(state, desiredState) {
220
218
  return state !== desiredState.substring(1);
221
219
  }
222
220
  return state === desiredState;
223
- }
221
+ } /* v8 ignore stop */
224
222
  async function getPrList() {
225
223
  logger_1.logger.trace('getPrList()');
226
224
  return await pr_cache_1.BitbucketPrCache.getPrs(bitbucketHttp, config.repository, renovateUserUuid);
@@ -229,7 +227,7 @@ async function findPr({ branchName, prTitle, state = 'all', includeOtherAuthors,
229
227
  logger_1.logger.debug(`findPr(${branchName}, ${prTitle}, ${state})`);
230
228
  if (includeOtherAuthors) {
231
229
  // PR might have been created by anyone, so don't use the cached Renovate PR list
232
- const prs = (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/pullrequests?q=source.branch.name="${branchName}"&state=open`)).body.values;
230
+ const prs = (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/pullrequests?q=source.branch.name="${branchName}"&state=open`, { cacheProvider: memory_http_cache_provider_1.memCacheProvider })).body.values;
233
231
  if (prs.length === 0) {
234
232
  logger_1.logger.debug(`No PR found for branch ${branchName}`);
235
233
  return null;
@@ -268,11 +266,11 @@ async function findPr({ branchName, prTitle, state = 'all', includeOtherAuthors,
268
266
  }
269
267
  // Gets details for a PR
270
268
  async function getPr(prNo) {
271
- const pr = (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/pullrequests/${prNo}`)).body;
272
- // istanbul ignore if
269
+ const pr = (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/pullrequests/${prNo}`, { cacheProvider: memory_http_cache_provider_1.memCacheProvider })).body;
270
+ /* v8 ignore start */
273
271
  if (!pr) {
274
272
  return null;
275
- }
273
+ } /* v8 ignore stop */
276
274
  const res = {
277
275
  ...utils.prInfo(pr),
278
276
  };
@@ -287,13 +285,13 @@ const escapeHash = (input) => input?.replace((0, regex_1.regEx)(/#/g), '%23');
287
285
  // Return the commit SHA for a branch
288
286
  async function getBranchCommit(branchName) {
289
287
  try {
290
- const branch = (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/refs/branches/${escapeHash(branchName)}`)).body;
288
+ const branch = (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/refs/branches/${escapeHash(branchName)}`, { cacheProvider: memory_http_cache_provider_1.memCacheProvider })).body;
291
289
  return branch.target.hash;
292
290
  }
293
- catch (err) /* istanbul ignore next */ {
291
+ catch (err) /* v8 ignore start */ {
294
292
  logger_1.logger.debug({ err }, `getBranchCommit('${branchName}') failed'`);
295
293
  return undefined;
296
- }
294
+ } /* v8 ignore stop */
297
295
  }
298
296
  // Returns the Pull Request for a branch. Null if not exists.
299
297
  async function getBranchPr(branchName) {
@@ -306,10 +304,15 @@ async function getBranchPr(branchName) {
306
304
  }
307
305
  async function getStatus(branchName, memCache = true) {
308
306
  const sha = await getBranchCommit(branchName);
309
- return (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/commit/${sha}/statuses`, {
310
- paginate: true,
311
- memCache,
312
- })).body.values;
307
+ const opts = { paginate: true };
308
+ /* v8 ignore start: temporary code */
309
+ if (memCache) {
310
+ opts.cacheProvider = memory_http_cache_provider_1.memCacheProvider;
311
+ }
312
+ else {
313
+ opts.memCache = false;
314
+ } /* v8 ignore stop */
315
+ return (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/commit/${sha}/statuses`, opts)).body.values;
313
316
  }
314
317
  // Returns the combined status for a branch.
315
318
  async function getBranchStatus(branchName, internalChecksAsSuccess) {
@@ -349,7 +352,8 @@ async function getBranchStatusCheck(branchName, context) {
349
352
  async function setBranchStatus({ branchName, context, description, state, url: targetUrl, }) {
350
353
  const sha = await getBranchCommit(branchName);
351
354
  // TargetUrl can not be empty so default to bitbucket
352
- const url = targetUrl ?? /* istanbul ignore next */ 'https://bitbucket.org';
355
+ /* v8 ignore next */
356
+ const url = targetUrl ?? 'https://bitbucket.org';
353
357
  const body = {
354
358
  name: context,
355
359
  state: utils.buildStates[state],
@@ -371,20 +375,20 @@ async function findOpenIssues(title) {
371
375
  filters.push(`reporter.uuid="${renovateUserUuid}"`);
372
376
  }
373
377
  const filter = encodeURIComponent(filters.join(' AND '));
374
- return ((await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/issues?q=${filter}`)).body.values || /* istanbul ignore next */ []);
378
+ return ((await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/issues?q=${filter}`, { cacheProvider: memory_http_cache_provider_1.memCacheProvider })).body.values /* v8 ignore start */ || [] /* v8 ignore stop */);
375
379
  }
376
- catch (err) /* istanbul ignore next */ {
380
+ catch (err) /* v8 ignore start */ {
377
381
  logger_1.logger.warn({ err }, 'Error finding issues');
378
382
  return [];
379
- }
383
+ } /* v8 ignore stop */
380
384
  }
381
385
  async function findIssue(title) {
382
386
  logger_1.logger.debug(`findIssue(${title})`);
383
- /* istanbul ignore if */
387
+ /* v8 ignore start */
384
388
  if (!config.has_issues) {
385
389
  logger_1.logger.debug('Issues are disabled - cannot findIssue');
386
390
  return null;
387
- }
391
+ } /* v8 ignore stop */
388
392
  const issues = await findOpenIssues(title);
389
393
  if (!issues.length) {
390
394
  return null;
@@ -416,12 +420,12 @@ function maxBodyLength() {
416
420
  }
417
421
  async function ensureIssue({ title, reuseTitle, body, }) {
418
422
  logger_1.logger.debug(`ensureIssue()`);
419
- /* istanbul ignore if */
423
+ /* v8 ignore start */
420
424
  if (!config.has_issues) {
421
425
  logger_1.logger.debug('Issues are disabled - cannot ensureIssue');
422
426
  logger_1.logger.debug(`Failed to ensure Issue with title:${title}`);
423
427
  return null;
424
- }
428
+ } /* v8 ignore stop */
425
429
  try {
426
430
  let issues = await findOpenIssues(title);
427
431
  const description = massageMarkdown((0, sanitize_1.sanitize)(body));
@@ -462,17 +466,17 @@ async function ensureIssue({ title, reuseTitle, body, }) {
462
466
  return 'created';
463
467
  }
464
468
  }
465
- catch (err) /* istanbul ignore next */ {
469
+ catch (err) /* v8 ignore start */ {
466
470
  if (err.message.startsWith('Repository has no issue tracker.')) {
467
471
  logger_1.logger.debug(`Issues are disabled, so could not create issue: ${title}`);
468
472
  }
469
473
  else {
470
474
  logger_1.logger.warn({ err }, 'Could not ensure issue');
471
475
  }
472
- }
476
+ } /* v8 ignore stop */
473
477
  return null;
474
478
  }
475
- /* istanbul ignore next */
479
+ /* v8 ignore start */
476
480
  async function getIssueList() {
477
481
  logger_1.logger.debug(`getIssueList()`);
478
482
  if (!config.has_issues) {
@@ -495,13 +499,13 @@ async function getIssueList() {
495
499
  logger_1.logger.warn({ err }, 'Error finding issues');
496
500
  return [];
497
501
  }
498
- }
502
+ } /* v8 ignore stop */
499
503
  async function ensureIssueClosing(title) {
500
- /* istanbul ignore if */
504
+ /* v8 ignore start */
501
505
  if (!config.has_issues) {
502
506
  logger_1.logger.debug('Issues are disabled - cannot ensureIssueClosing');
503
507
  return;
504
- }
508
+ } /* v8 ignore stop */
505
509
  const issues = await findOpenIssues(title);
506
510
  for (const issue of issues) {
507
511
  await closeIssue(issue.id);
@@ -532,10 +536,10 @@ async function addReviewers(prId, reviewers) {
532
536
  body,
533
537
  });
534
538
  }
535
- /* istanbul ignore next */
539
+ /* v8 ignore start */
536
540
  function deleteLabel() {
537
541
  throw new Error('deleteLabel not implemented');
538
- }
542
+ } /* v8 ignore stop */
539
543
  function ensureComment({ number, topic, content, }) {
540
544
  // https://developer.atlassian.com/bitbucket/api/2/reference/search?q=pullrequest+comment
541
545
  return comments.ensureComment({
@@ -560,7 +564,7 @@ async function sanitizeReviewers(reviewers, err) {
560
564
  logger_1.logger.debug({ err }, 'PR contains reviewers that may be either inactive or no longer a member of this workspace. Will try setting only active reviewers');
561
565
  // Validate that each previous PR reviewer account is still active
562
566
  for (const reviewer of reviewers) {
563
- const reviewerUser = (await bitbucketHttp.getJsonUnchecked(`/2.0/users/${reviewer.uuid}`, { memCache: true })).body;
567
+ const reviewerUser = (await bitbucketHttp.getJsonUnchecked(`/2.0/users/${reviewer.uuid}`, { cacheProvider: memory_http_cache_provider_1.memCacheProvider })).body;
564
568
  if (reviewerUser.account_status === 'active') {
565
569
  // There are cases where an active user may still not be a member of a workspace
566
570
  if (await isAccountMemberOfWorkspace(reviewer, config.repository)) {
@@ -599,7 +603,7 @@ async function sanitizeReviewers(reviewers, err) {
599
603
  async function isAccountMemberOfWorkspace(reviewer, repository) {
600
604
  const workspace = repository.split('/')[0];
601
605
  try {
602
- await bitbucketHttp.get(`/2.0/workspaces/${workspace}/members/${reviewer.uuid}`, { memCache: true });
606
+ await bitbucketHttp.get(`/2.0/workspaces/${workspace}/members/${reviewer.uuid}`, { cacheProvider: memory_http_cache_provider_1.memCacheProvider });
603
607
  return true;
604
608
  }
605
609
  catch (err) {
@@ -620,6 +624,7 @@ async function createPr({ sourceBranch, targetBranch, prTitle: title, prBody: de
620
624
  if (platformPrOptions?.bbUseDefaultReviewers) {
621
625
  const reviewersResponse = (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/effective-default-reviewers`, {
622
626
  paginate: true,
627
+ cacheProvider: memory_http_cache_provider_1.memCacheProvider,
623
628
  })).body;
624
629
  reviewers = reviewersResponse.values.map((reviewer) => ({
625
630
  uuid: reviewer.user.uuid,
@@ -653,7 +658,7 @@ async function createPr({ sourceBranch, targetBranch, prTitle: title, prBody: de
653
658
  }
654
659
  return pr;
655
660
  }
656
- catch (err) /* istanbul ignore next */ {
661
+ catch (err) /* v8 ignore start */ {
657
662
  // Try sanitizing reviewers
658
663
  const sanitizedReviewers = await sanitizeReviewers(reviewers, err);
659
664
  if (sanitizedReviewers === undefined) {
@@ -674,7 +679,7 @@ async function createPr({ sourceBranch, targetBranch, prTitle: title, prBody: de
674
679
  }
675
680
  return pr;
676
681
  }
677
- }
682
+ } /* v8 ignore stop */
678
683
  }
679
684
  async function autoResolvePrTasks(pr) {
680
685
  logger_1.logger.debug(`Auto resolve PR tasks in #${pr.number}`);
@@ -758,11 +763,11 @@ async function mergePr({ branchName, id: prNo, strategy: mergeStrategy, }) {
758
763
  });
759
764
  logger_1.logger.debug('Automerging succeeded');
760
765
  }
761
- catch (err) /* istanbul ignore next */ {
766
+ catch (err) /* v8 ignore start */ {
762
767
  logger_1.logger.debug({ err }, `PR merge error`);
763
768
  logger_1.logger.info({ pr: prNo }, 'PR automerge failed');
764
769
  return false;
765
- }
770
+ } /* v8 ignore stop */
766
771
  return true;
767
772
  }
768
773
  //# sourceMappingURL=index.js.map