renovate 40.0.0-next.14 → 40.0.0-next.15

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.
@@ -10,7 +10,7 @@ exports.hashMap.set('azure-pipelines', '4a57ee599aa5432cfb3de657df1e9eafdd6d6dde
10
10
  exports.hashMap.set('batect', '523e8d7a309b4814a02819371313b2dac3764eab64cabfaf1d58b6e89de4ce43');
11
11
  exports.hashMap.set('batect-wrapper', '81efd8400e445894e64b9352cf175736085a15d21967455f046b4a60b56a9c92');
12
12
  exports.hashMap.set('bazel', 'def827204204e207bbe62bd7a93a1be0118b5d4e6a92da444f367f9f6bfbaa4b');
13
- exports.hashMap.set('bazel-module', 'ba39225a203ad812a23ef6a38823782a420ae90e3d28b35ae94e3901fe32979b');
13
+ exports.hashMap.set('bazel-module', 'fce90be23ab19f429215597f2c36d41fb888c04e395946680dea0e93474335f9');
14
14
  exports.hashMap.set('bazelisk', '6fbef61d534724ff259ea6e4fc1cd0a3d5a46d740c375128fa59b225daddd39f');
15
15
  exports.hashMap.set('bicep', 'fbbd74998411012cfba829526701109d1fc184ade0cb11a28e4ca2956174b0f1');
16
16
  exports.hashMap.set('bitbucket-pipelines', '1ffc62c9948db58cf9dd63f2f15382fc705859f76712483b0012ea6ebba5229a');
@@ -19,16 +19,16 @@ exports.hashMap.set('buildkite', 'ac713ce38da057ff3ceb08d092291356dfc74f5b33b75f
19
19
  exports.hashMap.set('buildpacks', 'cc8bbe937416a012df36a5c7ab01ae3cdedbed03615549bbe9f0f27fa40a150b');
20
20
  exports.hashMap.set('bun', '4e58773a8ea03fc62b77d91a66f8287a66e3c6a20e83b1224f5f06f52296aa30');
21
21
  exports.hashMap.set('bun-version', '49194d7fcb6b7bdd7e7a1264f71532bb2be8142d48478bf74716f7a9d4b306b9');
22
- exports.hashMap.set('bundler', 'f2da30703f4cd8f44d5883cf4a7f73fb912fd2328151af2f28b489acac02c08a');
22
+ exports.hashMap.set('bundler', '42a824a73cacedd41f251e6f69b03473b43e1ebf2a95a01812c5f1fc05e4da78');
23
23
  exports.hashMap.set('cake', '4f42bf5e1202986d0f0b0bf906122c1b7d7630e4167903abaab378af4c539bd0');
24
- exports.hashMap.set('cargo', '136f31642bf89829b1a633cbbf34042021773fe94b6598221907a97226698ae3');
24
+ exports.hashMap.set('cargo', 'c8939694d36bf441406292b60deac3bbe0589a5fbc8b8000910dd2ca796d6fbd');
25
25
  exports.hashMap.set('cdnurl', '47cca9f24b9b403d5406608d2e4a35ab35234c8726062f5410e88d4e31c90172');
26
26
  exports.hashMap.set('circleci', '484389d287082ed41f8d8b763197c78af8e3513fa64f98122d92b821775b6d20');
27
27
  exports.hashMap.set('cloudbuild', '03dff1a999971305efd975f99f652433dd7d1d4aab5b21b78961dea525267310');
28
- exports.hashMap.set('cocoapods', 'e8c7c64f74f1ed116e0c11939c3a8f027ae125e03da4ad1b6b67bb4391b3c886');
29
- exports.hashMap.set('composer', 'd0cfbde0a4ddd71b377c827d3d60cf13a5723bf226f9b766e120f252d555cfe4');
28
+ exports.hashMap.set('cocoapods', '51db6584368d13c23d5623de360e07d5be361ee6b417742785943d03ed7c724a');
29
+ exports.hashMap.set('composer', '71b3988ead0b94aad55dd90d3bb215f0b294b197c3c87f7a97b530525a24537f');
30
30
  exports.hashMap.set('conan', '9db48a893bdd3cd21d2dc080fef0c2eb61976df1f43466f48435432253584daf');
31
- exports.hashMap.set('copier', '17f5adaba7964e5771eaa1abffc2a4ed8eb4cb671ed98cb26d9b756f26ba8916');
31
+ exports.hashMap.set('copier', 'b7be1de98f4616163b81f047f5c943690d19e7e6db787f8b63dd1c398b6bb6ae');
32
32
  exports.hashMap.set('cpanfile', '9b354db9666eee2485b27e44a6e61eaadc86ec2f2c6af9bb7bbc9fab54f31642');
33
33
  exports.hashMap.set('crossplane', 'c0873b443836a9dd12a61cecef4da56dfc6c6af446af58d823747c1e72e4fd0b');
34
34
  exports.hashMap.set('deps-edn', 'ad88e1a2190140795c6ae873178c1307e3ece258bc4d24f4c7a42cb8ccaea662');
@@ -37,7 +37,7 @@ exports.hashMap.set('devcontainer', '4fc86c93667d4215e645b2048f1e98c547a744e1b3a
37
37
  exports.hashMap.set('docker-compose', '3ec6aa79e6fa44801a35cfe1551b7b067ff9125f431928c404bba6ac7daa6e0a');
38
38
  exports.hashMap.set('dockerfile', '91c229d3c9049411fb2ddc1469ed5625b11045483c740ab0265721bcc68f47de');
39
39
  exports.hashMap.set('droneci', '6466e5192f59e9b59113b51e3f83921860002b829befe99b141f9173fae41dc9');
40
- exports.hashMap.set('fleet', 'a20a10fe38e9a7916890cae21f66d802742e1f85bcd672a8f9ff734817ff93a3');
40
+ exports.hashMap.set('fleet', '7c088a2ee643cb038f4fdcdeb114a70284c1382fbdb73f55effd13b5967e3867');
41
41
  exports.hashMap.set('flux', 'c16d154fd8154e7418f22ea1fc5f66a03be2a52a7a1c5eb0b981587b20b21caa');
42
42
  exports.hashMap.set('fvm', 'aa154dd5ffe3caced30713a9a55967360b7a0f35edd2fc06bd6f3e73c5c87570');
43
43
  exports.hashMap.set('git-submodules', '299b5e7e82aebedafae0588aa60345869f8e30bdf9feac8032dda11ad4b9c098');
@@ -46,15 +46,15 @@ exports.hashMap.set('gitlabci', 'a6b9faa686756f3c5d3d515b53afdbbdde2831e38d65c5b
46
46
  exports.hashMap.set('gitlabci-include', '997a736793457d4ec62545d285b582736d79de6e0efce2c4c58a18efe9fc4782');
47
47
  exports.hashMap.set('glasskube', 'fc313573e00f776e3d595acf7a69f16a7736ad52f2eef745bcd9da32f9781dbf');
48
48
  exports.hashMap.set('gleam', '0d350c63afeb65b9ede88108121b03e21c00662e272b7acabbcfeee9d3f09977');
49
- exports.hashMap.set('gomod', 'b0e4df38b43b6409e80120871b2150967c1e7cb1a93e5e4afb7eb63a8271d9eb');
50
- exports.hashMap.set('gradle', '9ce903a8bd6c7a18a2b0efc8089020345f6a829e633eacc05d1628c04ab99efe');
51
- exports.hashMap.set('gradle-wrapper', '65e2db03310824752f743cf4b552b7c31817efe067407f42eb8babe74e2b7d30');
49
+ exports.hashMap.set('gomod', 'e26be1b760314a8b379fb0b0130e84d1a33e64b2fd21e7e50d9a1101bbe7ff08');
50
+ exports.hashMap.set('gradle', 'eb6fcdbc27c975dcf925b6e3195fafcf57d304e3e0a0bf16bb2094bc8cf6fd16');
51
+ exports.hashMap.set('gradle-wrapper', 'a5c53f194436487370f7ff2423c3d8e68825c6ee9138b2e4caffcc88cdc0068d');
52
52
  exports.hashMap.set('haskell-cabal', 'a2bf118238529952d0f2f352112dfbc86fb5533ef819625161a130f39c8ca713');
53
53
  exports.hashMap.set('helm-requirements', 'e9c2551a4346d16a83256e05e742d96086cb7bf429bb3819dfb2e60d4949a644');
54
54
  exports.hashMap.set('helm-values', '533d938b56283692a63a9227181b5a3b7697755d8b900063a2e10b0a57de31b2');
55
- exports.hashMap.set('helmfile', '016f3860af57e63326f49bf7c353c9889580c8aff41982c9b9d7a2b60ba67bd8');
55
+ exports.hashMap.set('helmfile', '095b46f0566031cc29991d5f03fb1880f5fbc0e9e5b82169c08ea608f491629d');
56
56
  exports.hashMap.set('helmsman', 'c6c6db7f82c7c983bd2f5fa909ffdf48e55296e413b728f75ff4ba05da8b9717');
57
- exports.hashMap.set('helmv3', '64a175856c1a153b49d7d667b9eb1456f4f05cecc1374b7a7641d72120c80317');
57
+ exports.hashMap.set('helmv3', '8c43b4f590015353fa4540cfb0500bf47c7f3cb9a3d80300a295f84ea2122703');
58
58
  exports.hashMap.set('hermit', 'cf0b57ff837f13e6de0719ebe48e3caa0fa432348479220f0af9a16423b894ff');
59
59
  exports.hashMap.set('homebrew', 'ed5d88362dfb01ab608408ece9676d590fef2aed7fa86954eb8e3986da2d58e2');
60
60
  exports.hashMap.set('html', '724454ac0bebcb0d1d71402980c905f5cf55b485b24e25bdc5c30fbea287ff27');
@@ -65,27 +65,27 @@ exports.hashMap.set('kubernetes', 'e7e844cd3c693e7ddb987c13dd113c843a42169511ffc
65
65
  exports.hashMap.set('kustomize', '74fad6ba2d4f5d739396f1099ddddf2b8c85887e49642a49b9ff2c401de3d5c8');
66
66
  exports.hashMap.set('leiningen', '5e662117d3ed7e2885d583ed69644b37943a00f9fc89f20aa9b60fde09cdefc4');
67
67
  exports.hashMap.set('maven', '5116080d06a472e0cc13cef7dda90aa907a0e99abf7aa5f948f055e915fcc1c5');
68
- exports.hashMap.set('maven-wrapper', '38366b0e7f59f950e957a8e5aea683d90bc76aa5532f6501fbd2247ea0ee5e0f');
68
+ exports.hashMap.set('maven-wrapper', 'f37c57006dc49ae15dd98508299aa3d78929249eb6e810cbd4f6ee858fb574de');
69
69
  exports.hashMap.set('meteor', '00ab5fc89abb363595e0ee38866f92b9ffdb5fed674f568c8ba778bf20aebd12');
70
70
  exports.hashMap.set('mint', '7072e37f18bb57500018406eb8711b2615b1916f073867f30653cdd4a99dab81');
71
71
  exports.hashMap.set('mise', '9dcc123e01777066f6b682d4679894789110ae5e922a8ade1a13454cbd826cd9');
72
- exports.hashMap.set('mix', '8550aae2fcd8857a89d6642e6cf09dc24a51dbccd24bf2d374837ce815fe5d32');
73
- exports.hashMap.set('nix', 'f1518a9be4aa6d574dbeeaa51d296a874b28b6195ab559a5c01b763dee75e595');
72
+ exports.hashMap.set('mix', '975c939c6730fc23fe19a2d4ec7f5025c1ef2e789c4bb0ed00786e4f51f3f50f');
73
+ exports.hashMap.set('nix', 'cb6b73fba10834cc5ac9db06ac240dfd27f7ad136b8fb3228dcec84f933c4eb5');
74
74
  exports.hashMap.set('nodenv', 'd159174d53e39af2013443cf86df88e14aac79a5a8d602180af229dcb2ddeda9');
75
- exports.hashMap.set('npm', 'e904bde3b1ee69d9bb03984b42cccc9c9942ff6096d118944822dfc1e3037eb2');
76
- exports.hashMap.set('nuget', 'f8b3f41e61924f9afcb4936ae39a75049ad40d25b37295ff973c7b4382dad9d2');
75
+ exports.hashMap.set('npm', 'd6d942ff32b7af62fa91ef67c4f0b24e06aa884c399c69af98414f6d1df1b748');
76
+ exports.hashMap.set('nuget', '39cc028b7ef27f36dbabf64b89f07b8a3f8af786fa20e90f848441b5cb605398');
77
77
  exports.hashMap.set('nvm', '1928fd50bd6cc9f42d73262630056f2c0f8b0e061282bd02e58d116fc1788e2b');
78
78
  exports.hashMap.set('ocb', '55559051102728868b619820a6dc95753cdfbbb8aed46840e53db6733bc2ede4');
79
79
  exports.hashMap.set('osgi', 'dae012cd486843eb53da4b032105e54d18f4e7537bd59c5321313950dd108a95');
80
- exports.hashMap.set('pep621', '69c6d49dee1ca1d930af3d990b37bf26b83a15856a8ae2913a114f45e0d1d78e');
80
+ exports.hashMap.set('pep621', '688f89cc34eedecc84bd023527bfa9cb3f6b24c5bef76fd0d14684335f9bf517');
81
81
  exports.hashMap.set('pep723', 'bf07d466ea1bc9513c8d2cb475fcca3bc9b61f2184bd9af0a7a28d45b6f57ecd');
82
- exports.hashMap.set('pip-compile', 'e6d3d8228873a9ebf17e9eb3c52c24ce50f54c742c428cb62cc936ae9c98aaf4');
83
- exports.hashMap.set('pip_requirements', '4efc958723e9eb1d40df4ec506d835ebc33ef3356791d303893efbeb50529d34');
82
+ exports.hashMap.set('pip-compile', 'd78e01e6896216bd9a27758781f9f635ab0b198f6dd92aa67335efbcfacecc9e');
83
+ exports.hashMap.set('pip_requirements', '1e6f1efccfce4b9af83038a3b82d13815ea77aac35f2b9ca2e7ccb7f4c94c189');
84
84
  exports.hashMap.set('pip_setup', '8a81b67b249666cd7037ca5abdf44d0a9c4edea6aee7509cb47c9761f7a8e999');
85
85
  exports.hashMap.set('pipenv', '06d21a14af2625ce1ba7684254a5f289140ad803d5440b3eeb3a6453348f26b2');
86
- exports.hashMap.set('poetry', '5622a4120294124514835ba42e6e65c2a9e4b855aa6f6b3ca3f1eafdb45fc598');
87
- exports.hashMap.set('pre-commit', '541b6e142d2987f03418d3ffedb4ef9df038c7f68abc7ae5843eedd4818b44a0');
88
- exports.hashMap.set('pub', '50b29783803c7b0f291fc8ae9f2ae12a04e7261fe338019b7f59f883cc0edf09');
86
+ exports.hashMap.set('poetry', '999f8511f895480d1720afeeecf68250446a967d8b7edf46ad4903b253f175ef');
87
+ exports.hashMap.set('pre-commit', '4b0c5fe9f769b321540efb915e7da0c948a640d6c5cde38643ef1f54110ee33a');
88
+ exports.hashMap.set('pub', 'fc27bcb987e8035683af16534ad5c9ad74a10903602c046d458511ce78aa0e97');
89
89
  exports.hashMap.set('puppet', 'ada8a1260068ce08307fb3b6efabc2e6ecd7d396ed48db5174413d22a9d0151a');
90
90
  exports.hashMap.set('pyenv', '4e520570d9a1407864aa7c5461d4008372d889254067e405cee2212d0ef8990b');
91
91
  exports.hashMap.set('ruby-version', '4aac2178a20ccdf8136363030e5156017f3d44368b4192b3280997df596dcacc');
@@ -96,14 +96,14 @@ exports.hashMap.set('setup-cfg', 'dc4899bbe699876ff20a9212601747e56f6853f2326e71
96
96
  exports.hashMap.set('sveltos', 'a69f9e206526af08685e20a72344b22d856f2effd882e67333a153a989a0a047');
97
97
  exports.hashMap.set('swift', '079016c9df036f4e87cac24b9e6df544a66106c49cd39360d118909a34724253');
98
98
  exports.hashMap.set('tekton', 'b160e57509c644fc8286bc1e9c01e52aeca587aa5fdf7b0653767a25856c96d1');
99
- exports.hashMap.set('terraform', 'c869b421e0e2e733ffa460b6c7678eb0265cb327e73647f0b0953677b6b3479e');
99
+ exports.hashMap.set('terraform', '56dca81f7711fbd6fddeb37fcb48051bedce504ded2c7968f65ec7beb24fda46');
100
100
  exports.hashMap.set('terraform-version', 'b08480f326c45daf3daeccc2d2f593a723c30a50437a66ac2290d671b427a355');
101
101
  exports.hashMap.set('terragrunt', 'befdc3e2984b9900b0b040b7a5159cacc6bbb2da3b120a5f85acef18e1e673f4');
102
102
  exports.hashMap.set('terragrunt-version', '45f221b13a193a42687f318e10cf1558079e28c970e91ce25c370f35f88f2f58');
103
103
  exports.hashMap.set('tflint-plugin', '40ab6d0c975ff0b8e42651c088e159afe9f0d0c43a1dbf7c1295ec03c77bdc7c');
104
104
  exports.hashMap.set('travis', 'da7b4a64148c39fe19c648f5da6e1537b92be8ed4ed9a4a36c55503a8fe8c6b7');
105
105
  exports.hashMap.set('velaci', '19f265237b1bda5d28c54133e2cd3259181ffa6c5af544c1240f9a8635ec5718');
106
- exports.hashMap.set('vendir', '664f55d107a39cdeaccfc66fc736db89f08126091fffbd3afaad86a0fa3c9908');
106
+ exports.hashMap.set('vendir', '0ef4ccdc2f273238dba3c445934290780adc7c7d249d28d1b8507e91d8f3d300');
107
107
  exports.hashMap.set('woodpecker', '9bcc581026e2797b2d6dd9060b4384f7352aa38bb12247445ff36ec271dfa6da');
108
108
  exports.hashMap.set('jsonata', '61294a22c613ad11701d907e9dd3f67defc9fe79a4a65964cb2cb7f6cabceb2d');
109
109
  exports.hashMap.set('regex', 'e28c82f8017d96a81ef1b5c807d805c5a498f057dd72bbac480a5dc6a2e4cc82');
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprint.generated.js","sourceRoot":"","sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"names":[],"mappings":"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","sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','82b5ae4c50286abb2a1bb298be035f5124c55f4516a691db16bacee23b6571ad');\nhashMap.set('ansible-galaxy','931341f8f942cdb91352173c3dc2069bd2e0e295b822a1e415983ae21da8c79e');\nhashMap.set('argocd','9faa5dc34541f099823785d2590b43a433350ac5abdd11b89be71e123c67d9e5');\nhashMap.set('asdf','be1913ee9260b861edb04ca359c45c5aa78fd0ded147150c5395b78a5e488775');\nhashMap.set('azure-pipelines','4a57ee599aa5432cfb3de657df1e9eafdd6d6ddebb8678613d56360b8a1de970');\nhashMap.set('batect','523e8d7a309b4814a02819371313b2dac3764eab64cabfaf1d58b6e89de4ce43');\nhashMap.set('batect-wrapper','81efd8400e445894e64b9352cf175736085a15d21967455f046b4a60b56a9c92');\nhashMap.set('bazel','def827204204e207bbe62bd7a93a1be0118b5d4e6a92da444f367f9f6bfbaa4b');\nhashMap.set('bazel-module','ba39225a203ad812a23ef6a38823782a420ae90e3d28b35ae94e3901fe32979b');\nhashMap.set('bazelisk','6fbef61d534724ff259ea6e4fc1cd0a3d5a46d740c375128fa59b225daddd39f');\nhashMap.set('bicep','fbbd74998411012cfba829526701109d1fc184ade0cb11a28e4ca2956174b0f1');\nhashMap.set('bitbucket-pipelines','1ffc62c9948db58cf9dd63f2f15382fc705859f76712483b0012ea6ebba5229a');\nhashMap.set('bitrise','d18d2dcd356e19c4cd94912511a88636198c23b64e54f31da273be11044970cf');\nhashMap.set('buildkite','ac713ce38da057ff3ceb08d092291356dfc74f5b33b75f010bb9db1a211439c0');\nhashMap.set('buildpacks','cc8bbe937416a012df36a5c7ab01ae3cdedbed03615549bbe9f0f27fa40a150b');\nhashMap.set('bun','4e58773a8ea03fc62b77d91a66f8287a66e3c6a20e83b1224f5f06f52296aa30');\nhashMap.set('bun-version','49194d7fcb6b7bdd7e7a1264f71532bb2be8142d48478bf74716f7a9d4b306b9');\nhashMap.set('bundler','f2da30703f4cd8f44d5883cf4a7f73fb912fd2328151af2f28b489acac02c08a');\nhashMap.set('cake','4f42bf5e1202986d0f0b0bf906122c1b7d7630e4167903abaab378af4c539bd0');\nhashMap.set('cargo','136f31642bf89829b1a633cbbf34042021773fe94b6598221907a97226698ae3');\nhashMap.set('cdnurl','47cca9f24b9b403d5406608d2e4a35ab35234c8726062f5410e88d4e31c90172');\nhashMap.set('circleci','484389d287082ed41f8d8b763197c78af8e3513fa64f98122d92b821775b6d20');\nhashMap.set('cloudbuild','03dff1a999971305efd975f99f652433dd7d1d4aab5b21b78961dea525267310');\nhashMap.set('cocoapods','e8c7c64f74f1ed116e0c11939c3a8f027ae125e03da4ad1b6b67bb4391b3c886');\nhashMap.set('composer','d0cfbde0a4ddd71b377c827d3d60cf13a5723bf226f9b766e120f252d555cfe4');\nhashMap.set('conan','9db48a893bdd3cd21d2dc080fef0c2eb61976df1f43466f48435432253584daf');\nhashMap.set('copier','17f5adaba7964e5771eaa1abffc2a4ed8eb4cb671ed98cb26d9b756f26ba8916');\nhashMap.set('cpanfile','9b354db9666eee2485b27e44a6e61eaadc86ec2f2c6af9bb7bbc9fab54f31642');\nhashMap.set('crossplane','c0873b443836a9dd12a61cecef4da56dfc6c6af446af58d823747c1e72e4fd0b');\nhashMap.set('deps-edn','ad88e1a2190140795c6ae873178c1307e3ece258bc4d24f4c7a42cb8ccaea662');\nhashMap.set('devbox','72cb174a7573c2253b8079d7f0470712053ddfebbfaebbd6a14d5a88f5444582');\nhashMap.set('devcontainer','4fc86c93667d4215e645b2048f1e98c547a744e1b3a65bc14d8732d512404659');\nhashMap.set('docker-compose','3ec6aa79e6fa44801a35cfe1551b7b067ff9125f431928c404bba6ac7daa6e0a');\nhashMap.set('dockerfile','91c229d3c9049411fb2ddc1469ed5625b11045483c740ab0265721bcc68f47de');\nhashMap.set('droneci','6466e5192f59e9b59113b51e3f83921860002b829befe99b141f9173fae41dc9');\nhashMap.set('fleet','a20a10fe38e9a7916890cae21f66d802742e1f85bcd672a8f9ff734817ff93a3');\nhashMap.set('flux','c16d154fd8154e7418f22ea1fc5f66a03be2a52a7a1c5eb0b981587b20b21caa');\nhashMap.set('fvm','aa154dd5ffe3caced30713a9a55967360b7a0f35edd2fc06bd6f3e73c5c87570');\nhashMap.set('git-submodules','299b5e7e82aebedafae0588aa60345869f8e30bdf9feac8032dda11ad4b9c098');\nhashMap.set('github-actions','99987f82816dd23c2f53aa735125711e9daf1c68f86026518e40febfd209f1d2');\nhashMap.set('gitlabci','a6b9faa686756f3c5d3d515b53afdbbdde2831e38d65c5b4afc95c0c063a7709');\nhashMap.set('gitlabci-include','997a736793457d4ec62545d285b582736d79de6e0efce2c4c58a18efe9fc4782');\nhashMap.set('glasskube','fc313573e00f776e3d595acf7a69f16a7736ad52f2eef745bcd9da32f9781dbf');\nhashMap.set('gleam','0d350c63afeb65b9ede88108121b03e21c00662e272b7acabbcfeee9d3f09977');\nhashMap.set('gomod','b0e4df38b43b6409e80120871b2150967c1e7cb1a93e5e4afb7eb63a8271d9eb');\nhashMap.set('gradle','9ce903a8bd6c7a18a2b0efc8089020345f6a829e633eacc05d1628c04ab99efe');\nhashMap.set('gradle-wrapper','65e2db03310824752f743cf4b552b7c31817efe067407f42eb8babe74e2b7d30');\nhashMap.set('haskell-cabal','a2bf118238529952d0f2f352112dfbc86fb5533ef819625161a130f39c8ca713');\nhashMap.set('helm-requirements','e9c2551a4346d16a83256e05e742d96086cb7bf429bb3819dfb2e60d4949a644');\nhashMap.set('helm-values','533d938b56283692a63a9227181b5a3b7697755d8b900063a2e10b0a57de31b2');\nhashMap.set('helmfile','016f3860af57e63326f49bf7c353c9889580c8aff41982c9b9d7a2b60ba67bd8');\nhashMap.set('helmsman','c6c6db7f82c7c983bd2f5fa909ffdf48e55296e413b728f75ff4ba05da8b9717');\nhashMap.set('helmv3','64a175856c1a153b49d7d667b9eb1456f4f05cecc1374b7a7641d72120c80317');\nhashMap.set('hermit','cf0b57ff837f13e6de0719ebe48e3caa0fa432348479220f0af9a16423b894ff');\nhashMap.set('homebrew','ed5d88362dfb01ab608408ece9676d590fef2aed7fa86954eb8e3986da2d58e2');\nhashMap.set('html','724454ac0bebcb0d1d71402980c905f5cf55b485b24e25bdc5c30fbea287ff27');\nhashMap.set('jenkins','aaf4705a5e59cd2f8e3fa1a38db9d4484b9337d181be66fdeacf79128be3b921');\nhashMap.set('jsonnet-bundler','2e31b1080a2f37156f450d1e6d572b12d11db69db134e61c0292aea3992f4d19');\nhashMap.set('kotlin-script','b3ba662db27a003ac3d644d5aa98b36362d6e0f0832573a14971f1ba1a63f48a');\nhashMap.set('kubernetes','e7e844cd3c693e7ddb987c13dd113c843a42169511ffc3125179f1d115dab3bc');\nhashMap.set('kustomize','74fad6ba2d4f5d739396f1099ddddf2b8c85887e49642a49b9ff2c401de3d5c8');\nhashMap.set('leiningen','5e662117d3ed7e2885d583ed69644b37943a00f9fc89f20aa9b60fde09cdefc4');\nhashMap.set('maven','5116080d06a472e0cc13cef7dda90aa907a0e99abf7aa5f948f055e915fcc1c5');\nhashMap.set('maven-wrapper','38366b0e7f59f950e957a8e5aea683d90bc76aa5532f6501fbd2247ea0ee5e0f');\nhashMap.set('meteor','00ab5fc89abb363595e0ee38866f92b9ffdb5fed674f568c8ba778bf20aebd12');\nhashMap.set('mint','7072e37f18bb57500018406eb8711b2615b1916f073867f30653cdd4a99dab81');\nhashMap.set('mise','9dcc123e01777066f6b682d4679894789110ae5e922a8ade1a13454cbd826cd9');\nhashMap.set('mix','8550aae2fcd8857a89d6642e6cf09dc24a51dbccd24bf2d374837ce815fe5d32');\nhashMap.set('nix','f1518a9be4aa6d574dbeeaa51d296a874b28b6195ab559a5c01b763dee75e595');\nhashMap.set('nodenv','d159174d53e39af2013443cf86df88e14aac79a5a8d602180af229dcb2ddeda9');\nhashMap.set('npm','e904bde3b1ee69d9bb03984b42cccc9c9942ff6096d118944822dfc1e3037eb2');\nhashMap.set('nuget','f8b3f41e61924f9afcb4936ae39a75049ad40d25b37295ff973c7b4382dad9d2');\nhashMap.set('nvm','1928fd50bd6cc9f42d73262630056f2c0f8b0e061282bd02e58d116fc1788e2b');\nhashMap.set('ocb','55559051102728868b619820a6dc95753cdfbbb8aed46840e53db6733bc2ede4');\nhashMap.set('osgi','dae012cd486843eb53da4b032105e54d18f4e7537bd59c5321313950dd108a95');\nhashMap.set('pep621','69c6d49dee1ca1d930af3d990b37bf26b83a15856a8ae2913a114f45e0d1d78e');\nhashMap.set('pep723','bf07d466ea1bc9513c8d2cb475fcca3bc9b61f2184bd9af0a7a28d45b6f57ecd');\nhashMap.set('pip-compile','e6d3d8228873a9ebf17e9eb3c52c24ce50f54c742c428cb62cc936ae9c98aaf4');\nhashMap.set('pip_requirements','4efc958723e9eb1d40df4ec506d835ebc33ef3356791d303893efbeb50529d34');\nhashMap.set('pip_setup','8a81b67b249666cd7037ca5abdf44d0a9c4edea6aee7509cb47c9761f7a8e999');\nhashMap.set('pipenv','06d21a14af2625ce1ba7684254a5f289140ad803d5440b3eeb3a6453348f26b2');\nhashMap.set('poetry','5622a4120294124514835ba42e6e65c2a9e4b855aa6f6b3ca3f1eafdb45fc598');\nhashMap.set('pre-commit','541b6e142d2987f03418d3ffedb4ef9df038c7f68abc7ae5843eedd4818b44a0');\nhashMap.set('pub','50b29783803c7b0f291fc8ae9f2ae12a04e7261fe338019b7f59f883cc0edf09');\nhashMap.set('puppet','ada8a1260068ce08307fb3b6efabc2e6ecd7d396ed48db5174413d22a9d0151a');\nhashMap.set('pyenv','4e520570d9a1407864aa7c5461d4008372d889254067e405cee2212d0ef8990b');\nhashMap.set('ruby-version','4aac2178a20ccdf8136363030e5156017f3d44368b4192b3280997df596dcacc');\nhashMap.set('runtime-version','dbf80ce2a5f07dd34bc9a008159b4f08052cc6fd0d92cbd2aeb0026c8008fa72');\nhashMap.set('sbt','0a8cac802b48a726ee771e10207df4f067dd0ac9fac6501d874da22799ec7682');\nhashMap.set('scalafmt','06ab7baa0f0dc355ca9bb583c4a584236ff69ebfd973b7f87a6bce78a27ee2ba');\nhashMap.set('setup-cfg','dc4899bbe699876ff20a9212601747e56f6853f2326e71caf02e989e34dd1627');\nhashMap.set('sveltos','a69f9e206526af08685e20a72344b22d856f2effd882e67333a153a989a0a047');\nhashMap.set('swift','079016c9df036f4e87cac24b9e6df544a66106c49cd39360d118909a34724253');\nhashMap.set('tekton','b160e57509c644fc8286bc1e9c01e52aeca587aa5fdf7b0653767a25856c96d1');\nhashMap.set('terraform','c869b421e0e2e733ffa460b6c7678eb0265cb327e73647f0b0953677b6b3479e');\nhashMap.set('terraform-version','b08480f326c45daf3daeccc2d2f593a723c30a50437a66ac2290d671b427a355');\nhashMap.set('terragrunt','befdc3e2984b9900b0b040b7a5159cacc6bbb2da3b120a5f85acef18e1e673f4');\nhashMap.set('terragrunt-version','45f221b13a193a42687f318e10cf1558079e28c970e91ce25c370f35f88f2f58');\nhashMap.set('tflint-plugin','40ab6d0c975ff0b8e42651c088e159afe9f0d0c43a1dbf7c1295ec03c77bdc7c');\nhashMap.set('travis','da7b4a64148c39fe19c648f5da6e1537b92be8ed4ed9a4a36c55503a8fe8c6b7');\nhashMap.set('velaci','19f265237b1bda5d28c54133e2cd3259181ffa6c5af544c1240f9a8635ec5718');\nhashMap.set('vendir','664f55d107a39cdeaccfc66fc736db89f08126091fffbd3afaad86a0fa3c9908');\nhashMap.set('woodpecker','9bcc581026e2797b2d6dd9060b4384f7352aa38bb12247445ff36ec271dfa6da');\nhashMap.set('jsonata','61294a22c613ad11701d907e9dd3f67defc9fe79a4a65964cb2cb7f6cabceb2d');\nhashMap.set('regex','e28c82f8017d96a81ef1b5c807d805c5a498f057dd72bbac480a5dc6a2e4cc82');"]}
1
+ {"version":3,"file":"fingerprint.generated.js","sourceRoot":"","sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"names":[],"mappings":"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","sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','82b5ae4c50286abb2a1bb298be035f5124c55f4516a691db16bacee23b6571ad');\nhashMap.set('ansible-galaxy','931341f8f942cdb91352173c3dc2069bd2e0e295b822a1e415983ae21da8c79e');\nhashMap.set('argocd','9faa5dc34541f099823785d2590b43a433350ac5abdd11b89be71e123c67d9e5');\nhashMap.set('asdf','be1913ee9260b861edb04ca359c45c5aa78fd0ded147150c5395b78a5e488775');\nhashMap.set('azure-pipelines','4a57ee599aa5432cfb3de657df1e9eafdd6d6ddebb8678613d56360b8a1de970');\nhashMap.set('batect','523e8d7a309b4814a02819371313b2dac3764eab64cabfaf1d58b6e89de4ce43');\nhashMap.set('batect-wrapper','81efd8400e445894e64b9352cf175736085a15d21967455f046b4a60b56a9c92');\nhashMap.set('bazel','def827204204e207bbe62bd7a93a1be0118b5d4e6a92da444f367f9f6bfbaa4b');\nhashMap.set('bazel-module','fce90be23ab19f429215597f2c36d41fb888c04e395946680dea0e93474335f9');\nhashMap.set('bazelisk','6fbef61d534724ff259ea6e4fc1cd0a3d5a46d740c375128fa59b225daddd39f');\nhashMap.set('bicep','fbbd74998411012cfba829526701109d1fc184ade0cb11a28e4ca2956174b0f1');\nhashMap.set('bitbucket-pipelines','1ffc62c9948db58cf9dd63f2f15382fc705859f76712483b0012ea6ebba5229a');\nhashMap.set('bitrise','d18d2dcd356e19c4cd94912511a88636198c23b64e54f31da273be11044970cf');\nhashMap.set('buildkite','ac713ce38da057ff3ceb08d092291356dfc74f5b33b75f010bb9db1a211439c0');\nhashMap.set('buildpacks','cc8bbe937416a012df36a5c7ab01ae3cdedbed03615549bbe9f0f27fa40a150b');\nhashMap.set('bun','4e58773a8ea03fc62b77d91a66f8287a66e3c6a20e83b1224f5f06f52296aa30');\nhashMap.set('bun-version','49194d7fcb6b7bdd7e7a1264f71532bb2be8142d48478bf74716f7a9d4b306b9');\nhashMap.set('bundler','42a824a73cacedd41f251e6f69b03473b43e1ebf2a95a01812c5f1fc05e4da78');\nhashMap.set('cake','4f42bf5e1202986d0f0b0bf906122c1b7d7630e4167903abaab378af4c539bd0');\nhashMap.set('cargo','c8939694d36bf441406292b60deac3bbe0589a5fbc8b8000910dd2ca796d6fbd');\nhashMap.set('cdnurl','47cca9f24b9b403d5406608d2e4a35ab35234c8726062f5410e88d4e31c90172');\nhashMap.set('circleci','484389d287082ed41f8d8b763197c78af8e3513fa64f98122d92b821775b6d20');\nhashMap.set('cloudbuild','03dff1a999971305efd975f99f652433dd7d1d4aab5b21b78961dea525267310');\nhashMap.set('cocoapods','51db6584368d13c23d5623de360e07d5be361ee6b417742785943d03ed7c724a');\nhashMap.set('composer','71b3988ead0b94aad55dd90d3bb215f0b294b197c3c87f7a97b530525a24537f');\nhashMap.set('conan','9db48a893bdd3cd21d2dc080fef0c2eb61976df1f43466f48435432253584daf');\nhashMap.set('copier','b7be1de98f4616163b81f047f5c943690d19e7e6db787f8b63dd1c398b6bb6ae');\nhashMap.set('cpanfile','9b354db9666eee2485b27e44a6e61eaadc86ec2f2c6af9bb7bbc9fab54f31642');\nhashMap.set('crossplane','c0873b443836a9dd12a61cecef4da56dfc6c6af446af58d823747c1e72e4fd0b');\nhashMap.set('deps-edn','ad88e1a2190140795c6ae873178c1307e3ece258bc4d24f4c7a42cb8ccaea662');\nhashMap.set('devbox','72cb174a7573c2253b8079d7f0470712053ddfebbfaebbd6a14d5a88f5444582');\nhashMap.set('devcontainer','4fc86c93667d4215e645b2048f1e98c547a744e1b3a65bc14d8732d512404659');\nhashMap.set('docker-compose','3ec6aa79e6fa44801a35cfe1551b7b067ff9125f431928c404bba6ac7daa6e0a');\nhashMap.set('dockerfile','91c229d3c9049411fb2ddc1469ed5625b11045483c740ab0265721bcc68f47de');\nhashMap.set('droneci','6466e5192f59e9b59113b51e3f83921860002b829befe99b141f9173fae41dc9');\nhashMap.set('fleet','7c088a2ee643cb038f4fdcdeb114a70284c1382fbdb73f55effd13b5967e3867');\nhashMap.set('flux','c16d154fd8154e7418f22ea1fc5f66a03be2a52a7a1c5eb0b981587b20b21caa');\nhashMap.set('fvm','aa154dd5ffe3caced30713a9a55967360b7a0f35edd2fc06bd6f3e73c5c87570');\nhashMap.set('git-submodules','299b5e7e82aebedafae0588aa60345869f8e30bdf9feac8032dda11ad4b9c098');\nhashMap.set('github-actions','99987f82816dd23c2f53aa735125711e9daf1c68f86026518e40febfd209f1d2');\nhashMap.set('gitlabci','a6b9faa686756f3c5d3d515b53afdbbdde2831e38d65c5b4afc95c0c063a7709');\nhashMap.set('gitlabci-include','997a736793457d4ec62545d285b582736d79de6e0efce2c4c58a18efe9fc4782');\nhashMap.set('glasskube','fc313573e00f776e3d595acf7a69f16a7736ad52f2eef745bcd9da32f9781dbf');\nhashMap.set('gleam','0d350c63afeb65b9ede88108121b03e21c00662e272b7acabbcfeee9d3f09977');\nhashMap.set('gomod','e26be1b760314a8b379fb0b0130e84d1a33e64b2fd21e7e50d9a1101bbe7ff08');\nhashMap.set('gradle','eb6fcdbc27c975dcf925b6e3195fafcf57d304e3e0a0bf16bb2094bc8cf6fd16');\nhashMap.set('gradle-wrapper','a5c53f194436487370f7ff2423c3d8e68825c6ee9138b2e4caffcc88cdc0068d');\nhashMap.set('haskell-cabal','a2bf118238529952d0f2f352112dfbc86fb5533ef819625161a130f39c8ca713');\nhashMap.set('helm-requirements','e9c2551a4346d16a83256e05e742d96086cb7bf429bb3819dfb2e60d4949a644');\nhashMap.set('helm-values','533d938b56283692a63a9227181b5a3b7697755d8b900063a2e10b0a57de31b2');\nhashMap.set('helmfile','095b46f0566031cc29991d5f03fb1880f5fbc0e9e5b82169c08ea608f491629d');\nhashMap.set('helmsman','c6c6db7f82c7c983bd2f5fa909ffdf48e55296e413b728f75ff4ba05da8b9717');\nhashMap.set('helmv3','8c43b4f590015353fa4540cfb0500bf47c7f3cb9a3d80300a295f84ea2122703');\nhashMap.set('hermit','cf0b57ff837f13e6de0719ebe48e3caa0fa432348479220f0af9a16423b894ff');\nhashMap.set('homebrew','ed5d88362dfb01ab608408ece9676d590fef2aed7fa86954eb8e3986da2d58e2');\nhashMap.set('html','724454ac0bebcb0d1d71402980c905f5cf55b485b24e25bdc5c30fbea287ff27');\nhashMap.set('jenkins','aaf4705a5e59cd2f8e3fa1a38db9d4484b9337d181be66fdeacf79128be3b921');\nhashMap.set('jsonnet-bundler','2e31b1080a2f37156f450d1e6d572b12d11db69db134e61c0292aea3992f4d19');\nhashMap.set('kotlin-script','b3ba662db27a003ac3d644d5aa98b36362d6e0f0832573a14971f1ba1a63f48a');\nhashMap.set('kubernetes','e7e844cd3c693e7ddb987c13dd113c843a42169511ffc3125179f1d115dab3bc');\nhashMap.set('kustomize','74fad6ba2d4f5d739396f1099ddddf2b8c85887e49642a49b9ff2c401de3d5c8');\nhashMap.set('leiningen','5e662117d3ed7e2885d583ed69644b37943a00f9fc89f20aa9b60fde09cdefc4');\nhashMap.set('maven','5116080d06a472e0cc13cef7dda90aa907a0e99abf7aa5f948f055e915fcc1c5');\nhashMap.set('maven-wrapper','f37c57006dc49ae15dd98508299aa3d78929249eb6e810cbd4f6ee858fb574de');\nhashMap.set('meteor','00ab5fc89abb363595e0ee38866f92b9ffdb5fed674f568c8ba778bf20aebd12');\nhashMap.set('mint','7072e37f18bb57500018406eb8711b2615b1916f073867f30653cdd4a99dab81');\nhashMap.set('mise','9dcc123e01777066f6b682d4679894789110ae5e922a8ade1a13454cbd826cd9');\nhashMap.set('mix','975c939c6730fc23fe19a2d4ec7f5025c1ef2e789c4bb0ed00786e4f51f3f50f');\nhashMap.set('nix','cb6b73fba10834cc5ac9db06ac240dfd27f7ad136b8fb3228dcec84f933c4eb5');\nhashMap.set('nodenv','d159174d53e39af2013443cf86df88e14aac79a5a8d602180af229dcb2ddeda9');\nhashMap.set('npm','d6d942ff32b7af62fa91ef67c4f0b24e06aa884c399c69af98414f6d1df1b748');\nhashMap.set('nuget','39cc028b7ef27f36dbabf64b89f07b8a3f8af786fa20e90f848441b5cb605398');\nhashMap.set('nvm','1928fd50bd6cc9f42d73262630056f2c0f8b0e061282bd02e58d116fc1788e2b');\nhashMap.set('ocb','55559051102728868b619820a6dc95753cdfbbb8aed46840e53db6733bc2ede4');\nhashMap.set('osgi','dae012cd486843eb53da4b032105e54d18f4e7537bd59c5321313950dd108a95');\nhashMap.set('pep621','688f89cc34eedecc84bd023527bfa9cb3f6b24c5bef76fd0d14684335f9bf517');\nhashMap.set('pep723','bf07d466ea1bc9513c8d2cb475fcca3bc9b61f2184bd9af0a7a28d45b6f57ecd');\nhashMap.set('pip-compile','d78e01e6896216bd9a27758781f9f635ab0b198f6dd92aa67335efbcfacecc9e');\nhashMap.set('pip_requirements','1e6f1efccfce4b9af83038a3b82d13815ea77aac35f2b9ca2e7ccb7f4c94c189');\nhashMap.set('pip_setup','8a81b67b249666cd7037ca5abdf44d0a9c4edea6aee7509cb47c9761f7a8e999');\nhashMap.set('pipenv','06d21a14af2625ce1ba7684254a5f289140ad803d5440b3eeb3a6453348f26b2');\nhashMap.set('poetry','999f8511f895480d1720afeeecf68250446a967d8b7edf46ad4903b253f175ef');\nhashMap.set('pre-commit','4b0c5fe9f769b321540efb915e7da0c948a640d6c5cde38643ef1f54110ee33a');\nhashMap.set('pub','fc27bcb987e8035683af16534ad5c9ad74a10903602c046d458511ce78aa0e97');\nhashMap.set('puppet','ada8a1260068ce08307fb3b6efabc2e6ecd7d396ed48db5174413d22a9d0151a');\nhashMap.set('pyenv','4e520570d9a1407864aa7c5461d4008372d889254067e405cee2212d0ef8990b');\nhashMap.set('ruby-version','4aac2178a20ccdf8136363030e5156017f3d44368b4192b3280997df596dcacc');\nhashMap.set('runtime-version','dbf80ce2a5f07dd34bc9a008159b4f08052cc6fd0d92cbd2aeb0026c8008fa72');\nhashMap.set('sbt','0a8cac802b48a726ee771e10207df4f067dd0ac9fac6501d874da22799ec7682');\nhashMap.set('scalafmt','06ab7baa0f0dc355ca9bb583c4a584236ff69ebfd973b7f87a6bce78a27ee2ba');\nhashMap.set('setup-cfg','dc4899bbe699876ff20a9212601747e56f6853f2326e71caf02e989e34dd1627');\nhashMap.set('sveltos','a69f9e206526af08685e20a72344b22d856f2effd882e67333a153a989a0a047');\nhashMap.set('swift','079016c9df036f4e87cac24b9e6df544a66106c49cd39360d118909a34724253');\nhashMap.set('tekton','b160e57509c644fc8286bc1e9c01e52aeca587aa5fdf7b0653767a25856c96d1');\nhashMap.set('terraform','56dca81f7711fbd6fddeb37fcb48051bedce504ded2c7968f65ec7beb24fda46');\nhashMap.set('terraform-version','b08480f326c45daf3daeccc2d2f593a723c30a50437a66ac2290d671b427a355');\nhashMap.set('terragrunt','befdc3e2984b9900b0b040b7a5159cacc6bbb2da3b120a5f85acef18e1e673f4');\nhashMap.set('terragrunt-version','45f221b13a193a42687f318e10cf1558079e28c970e91ce25c370f35f88f2f58');\nhashMap.set('tflint-plugin','40ab6d0c975ff0b8e42651c088e159afe9f0d0c43a1dbf7c1295ec03c77bdc7c');\nhashMap.set('travis','da7b4a64148c39fe19c648f5da6e1537b92be8ed4ed9a4a36c55503a8fe8c6b7');\nhashMap.set('velaci','19f265237b1bda5d28c54133e2cd3259181ffa6c5af544c1240f9a8635ec5718');\nhashMap.set('vendir','0ef4ccdc2f273238dba3c445934290780adc7c7d249d28d1b8507e91d8f3d300');\nhashMap.set('woodpecker','9bcc581026e2797b2d6dd9060b4384f7352aa38bb12247445ff36ec271dfa6da');\nhashMap.set('jsonata','61294a22c613ad11701d907e9dd3f67defc9fe79a4a65964cb2cb7f6cabceb2d');\nhashMap.set('regex','e28c82f8017d96a81ef1b5c807d805c5a498f057dd72bbac480a5dc6a2e4cc82');"]}
@@ -130,8 +130,8 @@ async function initPlatform({ endpoint, token, username, password, gitAuthor, })
130
130
  async function getRepos() {
131
131
  logger_1.logger.debug('Autodiscovering Bitbucket Server repositories');
132
132
  try {
133
- const repos = await utils.accumulateValues(`./rest/api/1.0/repos?permission=REPO_WRITE&state=AVAILABLE`);
134
- const result = repos.map((r) => `${r.project.key}/${r.slug}`);
133
+ const repos = (await bitbucketServerHttp.getJsonUnchecked(`./rest/api/1.0/repos?permission=REPO_WRITE&state=AVAILABLE`, { paginate: true })).body;
134
+ const result = repos.map((repo) => `${repo.project.key}/${repo.slug}`);
135
135
  logger_1.logger.debug({ result }, 'result of getRepos()');
136
136
  return result;
137
137
  }
@@ -266,7 +266,7 @@ async function getPrList(refreshCache) {
266
266
  searchParams['username.1'] = config.username;
267
267
  }
268
268
  const query = (0, url_1.getQueryString)(searchParams);
269
- const values = await utils.accumulateValues(`./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests?${query}`);
269
+ const values = (await bitbucketServerHttp.getJsonUnchecked(`./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests?${query}`, { paginate: true })).body;
270
270
  config.prList = values.map(utils.prInfo);
271
271
  logger_1.logger.debug(`Retrieved Pull Requests, count: ${config.prList.length}`);
272
272
  }
@@ -287,7 +287,10 @@ async function findPr({ branchName, prTitle, state = 'all', refreshCache, includ
287
287
  searchParams.direction = 'outgoing';
288
288
  searchParams.at = `refs/heads/${branchName}`;
289
289
  const query = (0, url_1.getQueryString)(searchParams);
290
- const prs = await utils.accumulateValues(`./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests?${query}`, 'get', {}, 1);
290
+ const prs = (await bitbucketServerHttp.getJsonUnchecked(`./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests?${query}`, {
291
+ paginate: true,
292
+ limit: 1, // only fetch the latest pr
293
+ })).body;
291
294
  if (!prs.length) {
292
295
  logger_1.logger.debug(`No PR found for branch ${branchName}`);
293
296
  return null;
@@ -351,11 +354,9 @@ async function getBranchStatus(branchName) {
351
354
  return 'red';
352
355
  }
353
356
  }
354
- function getStatusCheck(branchName, memCache = true) {
357
+ async function getStatusCheck(branchName, memCache = true) {
355
358
  const branchCommit = git.getBranchCommit(branchName);
356
- return utils.accumulateValues(
357
- // TODO: types (#22198)
358
- `./rest/build-status/1.0/commits/${branchCommit}`, 'get', { memCache });
359
+ return (await bitbucketServerHttp.getJsonUnchecked(`./rest/build-status/1.0/commits/${branchCommit}`, { paginate: true, memCache })).body;
359
360
  }
360
361
  // https://docs.atlassian.com/bitbucket-server/rest/6.0.0/bitbucket-build-rest.html#idp2
361
362
  async function getBranchStatusCheck(branchName, context) {
@@ -538,9 +539,10 @@ function deleteLabel(issueNo, label) {
538
539
  }
539
540
  async function getComments(prNo) {
540
541
  // GET /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/pull-requests/{pullRequestId}/activities
541
- let comments = await utils.accumulateValues(`./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${prNo}/activities`);
542
- comments = comments
543
- .filter((a) => a.action === 'COMMENTED' && a.commentAction === 'ADDED')
542
+ const activities = (await bitbucketServerHttp.getJsonUnchecked(`./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${prNo}/activities`, { paginate: true })).body;
543
+ const comments = activities
544
+ .filter((a) => a.action === 'COMMENTED' && 'comment' in a && 'commentAction' in a)
545
+ .filter((a) => a.commentAction === 'ADDED')
544
546
  .map((a) => a.comment);
545
547
  logger_1.logger.debug(`Found ${comments.length} comments`);
546
548
  return comments;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/platform/bitbucket-server/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { setTimeout } from 'timers/promises';\nimport semver from 'semver';\nimport type { PartialDeep } from 'type-fest';\nimport {\n REPOSITORY_CHANGED,\n REPOSITORY_EMPTY,\n REPOSITORY_NOT_FOUND,\n} from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport type { BranchStatus } from '../../../types';\nimport type { FileData } from '../../../types/platform/bitbucket-server';\nimport { parseJson } from '../../../util/common';\nimport * as git from '../../../util/git';\nimport { deleteBranch } from '../../../util/git';\nimport * as hostRules from '../../../util/host-rules';\nimport {\n BitbucketServerHttp,\n setBaseUrl,\n} from '../../../util/http/bitbucket-server';\nimport type { HttpOptions, HttpResponse } from '../../../util/http/types';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport { sanitize } from '../../../util/sanitize';\nimport { ensureTrailingSlash, getQueryString } from '../../../util/url';\nimport type {\n BranchStatusConfig,\n CreatePRConfig,\n EnsureCommentConfig,\n EnsureCommentRemovalConfig,\n EnsureIssueConfig,\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 { UserSchema } from './schema';\nimport type {\n BbsConfig,\n BbsPr,\n BbsRestBranch,\n BbsRestPr,\n BbsRestRepo,\n BbsRestUserRef,\n} from './types';\nimport * as utils from './utils';\nimport { getExtraCloneOpts } from './utils';\n\n/*\n * Version: 5.3 (EOL Date: 15 Aug 2019)\n * See following docs for api information:\n * https://docs.atlassian.com/bitbucket-server/rest/5.3.0/bitbucket-rest.html\n * https://docs.atlassian.com/bitbucket-server/rest/5.3.0/bitbucket-build-rest.html\n *\n * See following page for uptodate supported versions\n * https://confluence.atlassian.com/support/atlassian-support-end-of-life-policy-201851003.html#AtlassianSupportEndofLifePolicy-BitbucketServer\n */\n\nexport const id = 'bitbucket-server';\n\nlet config: BbsConfig = {} as any;\n\nconst bitbucketServerHttp = new BitbucketServerHttp();\n\nconst defaults: {\n endpoint?: string;\n hostType: string;\n version: string;\n} = {\n hostType: 'bitbucket-server',\n version: '0.0.0',\n};\n\n/* istanbul ignore next */\nfunction updatePrVersion(pr: number, version: number): number {\n const res = Math.max(config.prVersions.get(pr) ?? 0, version);\n config.prVersions.set(pr, res);\n return res;\n}\n\nexport async function initPlatform({\n endpoint,\n token,\n username,\n password,\n gitAuthor,\n}: PlatformParams): Promise<PlatformResult> {\n if (!endpoint) {\n throw new Error('Init: You must configure a Bitbucket Server endpoint');\n }\n if (!(username && password) && !token) {\n throw new Error(\n 'Init: You must either configure a Bitbucket Server username/password or a HTTP access token',\n );\n } else if (password && token) {\n throw new Error(\n 'Init: You must configure either a Bitbucket Server password or a HTTP access token, not both',\n );\n }\n // TODO: Add a connection check that endpoint/username/password combination are valid (#9595)\n defaults.endpoint = ensureTrailingSlash(endpoint);\n setBaseUrl(defaults.endpoint);\n const platformConfig: PlatformResult = {\n endpoint: defaults.endpoint,\n };\n try {\n let bitbucketServerVersion: string;\n // istanbul ignore if: experimental feature\n if (process.env.RENOVATE_X_PLATFORM_VERSION) {\n bitbucketServerVersion = process.env.RENOVATE_X_PLATFORM_VERSION;\n } else {\n const { version } = (\n await bitbucketServerHttp.getJsonUnchecked<{ version: string }>(\n `./rest/api/1.0/application-properties`,\n )\n ).body;\n bitbucketServerVersion = version;\n logger.debug('Bitbucket Server version is: ' + bitbucketServerVersion);\n }\n\n if (semver.valid(bitbucketServerVersion)) {\n defaults.version = bitbucketServerVersion;\n }\n } catch (err) {\n logger.debug(\n { err },\n 'Error authenticating with Bitbucket. Check that your token includes \"api\" permissions',\n );\n }\n\n if (!gitAuthor && username) {\n logger.debug(`Attempting to confirm gitAuthor from username`);\n const options: HttpOptions = {\n memCache: false,\n };\n\n if (token) {\n options.token = token;\n } else {\n options.username = username;\n options.password = password;\n }\n\n try {\n const { displayName, emailAddress } = (\n await bitbucketServerHttp.getJson(\n `./rest/api/1.0/users/${username}`,\n options,\n UserSchema,\n )\n ).body;\n\n platformConfig.gitAuthor = `${displayName} <${emailAddress}>`;\n\n logger.debug(`Detected gitAuthor: ${platformConfig.gitAuthor}`);\n } catch (err) {\n logger.debug(\n { err },\n 'Failed to get user info, fallback gitAuthor will be used',\n );\n }\n }\n\n return platformConfig;\n}\n\n// Get all repositories that the user has access to\nexport async function getRepos(): Promise<string[]> {\n logger.debug('Autodiscovering Bitbucket Server repositories');\n try {\n const repos = await utils.accumulateValues(\n `./rest/api/1.0/repos?permission=REPO_WRITE&state=AVAILABLE`,\n );\n const result = repos.map(\n (r: { project: { key: string }; slug: string }) =>\n `${r.project.key}/${r.slug}`,\n );\n logger.debug({ result }, 'result of getRepos()');\n return result;\n } catch (err) /* istanbul ignore next */ {\n logger.error({ err }, `bitbucket getRepos error`);\n throw err;\n }\n}\n\nexport async function getRawFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<string | null> {\n const repo = repoName ?? config.repository;\n const [project, slug] = repo.split('/');\n const fileUrl =\n `./rest/api/1.0/projects/${project}/repos/${slug}/browse/${fileName}?limit=20000` +\n (branchOrTag ? '&at=' + branchOrTag : '');\n const res = await bitbucketServerHttp.getJsonUnchecked<FileData>(fileUrl);\n const { isLastPage, lines, size } = res.body;\n if (isLastPage) {\n return lines.map(({ text }) => text).join('\\n');\n }\n logger.warn({ size }, 'The file is too big');\n throw new Error(`The file is too big (${size}B)`);\n}\n\nexport async function getJsonFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<any> {\n // TODO #22198\n const raw = await getRawFile(fileName, repoName, branchOrTag);\n return parseJson(raw, fileName);\n}\n\n// Initialize Bitbucket Server by getting base branch\nexport async function initRepo({\n repository,\n cloneSubmodules,\n cloneSubmodulesFilter,\n ignorePrAuthor,\n gitUrl,\n}: RepoParams): Promise<RepoResult> {\n logger.debug(`initRepo(\"${JSON.stringify({ repository }, null, 2)}\")`);\n const opts = hostRules.find({\n hostType: defaults.hostType,\n url: defaults.endpoint,\n });\n\n const [projectKey, repositorySlug] = repository.split('/');\n\n config = {\n projectKey,\n repositorySlug,\n repository,\n prVersions: new Map<number, number>(),\n username: opts.username,\n ignorePrAuthor,\n } as any;\n\n try {\n const info = (\n await bitbucketServerHttp.getJsonUnchecked<BbsRestRepo>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}`,\n )\n ).body;\n config.owner = info.project.key;\n logger.debug(`${repository} owner = ${config.owner}`);\n const branchRes = await bitbucketServerHttp.getJsonUnchecked<BbsRestBranch>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/branches/default`,\n );\n\n // 204 means empty, 404 means repo not found or missing default branch. repo must exist here.\n if ([204, 404].includes(branchRes.statusCode)) {\n throw new Error(REPOSITORY_EMPTY);\n }\n\n const url = utils.getRepoGitUrl(\n config.repositorySlug,\n // TODO #22198\n defaults.endpoint!,\n gitUrl,\n info,\n opts,\n );\n\n await git.initRepo({\n ...config,\n url,\n extraCloneOpts: getExtraCloneOpts(opts),\n cloneSubmodules,\n cloneSubmodulesFilter,\n fullClone: semver.lte(defaults.version, '8.0.0'),\n });\n\n config.mergeMethod = 'merge';\n const repoConfig: RepoResult = {\n defaultBranch: branchRes.body.displayId,\n isFork: !!info.origin,\n repoFingerprint: repoFingerprint(info.id, defaults.endpoint),\n };\n\n return repoConfig;\n } catch (err) /* istanbul ignore next */ {\n if (err.statusCode === 404) {\n throw new Error(REPOSITORY_NOT_FOUND);\n }\n if (err.message === REPOSITORY_EMPTY) {\n throw err;\n }\n\n logger.debug({ err }, 'Unknown Bitbucket initRepo error');\n throw err;\n }\n}\n\nexport async function getBranchForceRebase(\n _branchName: string,\n): Promise<boolean> {\n // https://docs.atlassian.com/bitbucket-server/rest/7.0.1/bitbucket-rest.html#idp342\n const res = await bitbucketServerHttp.getJsonUnchecked<{\n mergeConfig: { defaultStrategy: { id: string } };\n }>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/settings/pull-requests`,\n );\n\n // If the default merge strategy contains `ff-only` the PR can only be merged\n // if it is up to date with the base branch.\n // The current options for id are:\n // no-ff, ff, ff-only, rebase-no-ff, rebase-ff-only, squash, squash-ff-only\n return Boolean(\n res.body?.mergeConfig?.defaultStrategy?.id.includes('ff-only'),\n );\n}\n// Gets details for a PR\nexport async function getPr(\n prNo: number,\n refreshCache?: boolean,\n): Promise<BbsPr | null> {\n logger.debug(`getPr(${prNo})`);\n if (!prNo) {\n return null;\n }\n\n const res = await bitbucketServerHttp.getJsonUnchecked<BbsRestPr>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${prNo}`,\n { memCache: !refreshCache },\n );\n\n const pr: BbsPr = {\n ...utils.prInfo(res.body),\n reviewers: res.body.reviewers.map((r) => r.user.name),\n };\n // TODO #22198\n pr.version = updatePrVersion(pr.number, pr.version!);\n\n return pr;\n}\n\n// TODO: coverage (#9624)\n// istanbul ignore next\nfunction matchesState(state: string, desiredState: string): boolean {\n if (desiredState === 'all') {\n return true;\n }\n if (desiredState.startsWith('!')) {\n return state !== desiredState.substring(1);\n }\n return state === desiredState;\n}\n\n// TODO: coverage (#9624)\n// istanbul ignore next\nconst isRelevantPr =\n (branchName: string, prTitle: string | null | undefined, state: string) =>\n (p: Pr): boolean =>\n p.sourceBranch === branchName &&\n (!prTitle || p.title.toUpperCase() === prTitle.toUpperCase()) &&\n matchesState(p.state, state);\n\n// TODO: coverage (#9624)\nexport async function getPrList(refreshCache?: boolean): Promise<Pr[]> {\n logger.debug(`getPrList()`);\n // istanbul ignore next\n if (!config.prList || refreshCache) {\n const searchParams: Record<string, string> = {\n state: 'ALL',\n };\n if (!config.ignorePrAuthor && config.username !== undefined) {\n searchParams['role.1'] = 'AUTHOR';\n searchParams['username.1'] = config.username;\n }\n const query = getQueryString(searchParams);\n const values = await utils.accumulateValues(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests?${query}`,\n );\n\n config.prList = values.map(utils.prInfo);\n logger.debug(`Retrieved Pull Requests, count: ${config.prList.length}`);\n } else {\n logger.debug('returning cached PR list');\n }\n return config.prList;\n}\n\n// TODO: coverage (#9624)\n// istanbul ignore next\nexport async function findPr({\n branchName,\n prTitle,\n state = 'all',\n refreshCache,\n includeOtherAuthors,\n}: FindPRConfig): Promise<Pr | null> {\n logger.debug(`findPr(${branchName}, \"${prTitle!}\", \"${state}\")`);\n\n if (includeOtherAuthors) {\n // PR might have been created by anyone, so don't use the cached Renovate PR list\n const searchParams: Record<string, string> = {\n state: 'OPEN',\n };\n searchParams.direction = 'outgoing';\n searchParams.at = `refs/heads/${branchName}`;\n\n const query = getQueryString(searchParams);\n const prs = await utils.accumulateValues(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests?${query}`,\n 'get',\n {},\n 1, // only fetch the latest pr\n );\n\n if (!prs.length) {\n logger.debug(`No PR found for branch ${branchName}`);\n return null;\n }\n\n return utils.prInfo(prs[0]);\n }\n\n const prList = await getPrList(refreshCache);\n const pr = prList.find(isRelevantPr(branchName, prTitle, state));\n if (pr) {\n logger.debug(`Found PR #${pr.number}`);\n } else {\n logger.debug(`Renovate did not find a PR for branch #${branchName}`);\n }\n return pr ?? null;\n}\n\n// Returns the Pull Request for a branch. Null if not exists.\nexport async function getBranchPr(branchName: string): Promise<BbsPr | null> {\n logger.debug(`getBranchPr(${branchName})`);\n const existingPr = await findPr({\n branchName,\n state: 'open',\n });\n return existingPr ? getPr(existingPr.number) : null;\n}\n\n// istanbul ignore next\nexport async function refreshPr(number: number): Promise<void> {\n // wait for pr change propagation\n await setTimeout(1000);\n // refresh cache\n await getPr(number, true);\n}\n\nasync function getStatus(\n branchName: string,\n memCache = true,\n): Promise<utils.BitbucketCommitStatus> {\n const branchCommit = git.getBranchCommit(branchName);\n\n return (\n await bitbucketServerHttp.getJsonUnchecked<utils.BitbucketCommitStatus>(\n // TODO: types (#22198)\n `./rest/build-status/1.0/commits/stats/${branchCommit!}`,\n { memCache },\n )\n ).body;\n}\n\n// Returns the combined status for a branch.\n// umbrella for status checks\n// https://docs.atlassian.com/bitbucket-server/rest/6.0.0/bitbucket-build-rest.html#idp2\nexport async function getBranchStatus(\n branchName: string,\n): Promise<BranchStatus> {\n logger.debug(`getBranchStatus(${branchName})`);\n\n if (!git.branchExists(branchName)) {\n logger.debug('Branch does not exist - cannot fetch status');\n throw new Error(REPOSITORY_CHANGED);\n }\n\n try {\n const commitStatus = await getStatus(branchName);\n\n logger.debug({ commitStatus }, 'branch status check result');\n\n if (commitStatus.failed > 0) {\n return 'red';\n }\n if (commitStatus.inProgress > 0) {\n return 'yellow';\n }\n return commitStatus.successful > 0 ? 'green' : 'yellow';\n } catch (err) {\n logger.warn({ err }, `Failed to get branch status`);\n return 'red';\n }\n}\n\nfunction getStatusCheck(\n branchName: string,\n memCache = true,\n): Promise<utils.BitbucketStatus[]> {\n const branchCommit = git.getBranchCommit(branchName);\n\n return utils.accumulateValues(\n // TODO: types (#22198)\n `./rest/build-status/1.0/commits/${branchCommit!}`,\n 'get',\n { memCache },\n );\n}\n\n// https://docs.atlassian.com/bitbucket-server/rest/6.0.0/bitbucket-build-rest.html#idp2\nexport async function getBranchStatusCheck(\n branchName: string,\n context: string,\n): Promise<BranchStatus | null> {\n logger.debug(`getBranchStatusCheck(${branchName}, context=${context})`);\n\n try {\n const states = await getStatusCheck(branchName);\n\n for (const state of states) {\n if (state.key === context) {\n switch (state.state) {\n case 'SUCCESSFUL':\n return 'green';\n case 'INPROGRESS':\n return 'yellow';\n case 'FAILED':\n default:\n return 'red';\n }\n }\n }\n } catch (err) {\n logger.warn({ err }, `Failed to check branch status`);\n }\n return null;\n}\n\nexport async function setBranchStatus({\n branchName,\n context,\n description,\n state,\n url: targetUrl,\n}: BranchStatusConfig): Promise<void> {\n logger.debug(`setBranchStatus(${branchName})`);\n\n const existingStatus = await getBranchStatusCheck(branchName, context);\n if (existingStatus === state) {\n return;\n }\n logger.debug({ branch: branchName, context, state }, 'Setting branch status');\n\n const branchCommit = git.getBranchCommit(branchName);\n\n try {\n const body: any = {\n key: context,\n description,\n url: targetUrl ?? 'https://renovatebot.com',\n };\n\n switch (state) {\n case 'green':\n body.state = 'SUCCESSFUL';\n break;\n case 'yellow':\n body.state = 'INPROGRESS';\n break;\n case 'red':\n default:\n body.state = 'FAILED';\n break;\n }\n\n await bitbucketServerHttp.postJson(\n // TODO: types (#22198)\n `./rest/build-status/1.0/commits/${branchCommit!}`,\n { body },\n );\n\n // update status cache\n await getStatus(branchName, false);\n await getStatusCheck(branchName, false);\n } catch (err) {\n logger.warn({ err }, `Failed to set branch status`);\n }\n}\n\n// Issue\n\n/* istanbul ignore next */\nexport function findIssue(title: string): Promise<Issue | null> {\n logger.debug(`findIssue(${title})`);\n // This is used by Renovate when creating its own issues,\n // e.g. for deprecated package warnings,\n // config error notifications, or \"dependencyDashboard\"\n //\n // Bitbucket Server does not have issues\n return Promise.resolve(null);\n}\n\n/* istanbul ignore next */\nexport function ensureIssue({\n title,\n}: EnsureIssueConfig): Promise<EnsureIssueResult | null> {\n logger.warn({ title }, 'Cannot ensure issue');\n // This is used by Renovate when creating its own issues,\n // e.g. for deprecated package warnings,\n // config error notifications, or \"dependencyDashboard\"\n //\n // Bitbucket Server does not have issues\n return Promise.resolve(null);\n}\n\n/* istanbul ignore next */\nexport function getIssueList(): Promise<Issue[]> {\n logger.debug(`getIssueList()`);\n // This is used by Renovate when creating its own issues,\n // e.g. for deprecated package warnings,\n // config error notifications, or \"dependencyDashboard\"\n //\n // Bitbucket Server does not have issues\n return Promise.resolve([]);\n}\n\n/* istanbul ignore next */\nexport function ensureIssueClosing(title: string): Promise<void> {\n logger.debug(`ensureIssueClosing(${title})`);\n // This is used by Renovate when creating its own issues,\n // e.g. for deprecated package warnings,\n // config error notifications, or \"dependencyDashboard\"\n //\n // Bitbucket Server does not have issues\n return Promise.resolve();\n}\n\nexport function addAssignees(iid: number, assignees: string[]): Promise<void> {\n logger.debug(`addAssignees(${iid}, [${assignees.join(', ')}])`);\n // This is used by Renovate when creating its own issues,\n // e.g. for deprecated package warnings,\n // config error notifications, or \"dependencyDashboard\"\n //\n // Bitbucket Server does not have issues\n return Promise.resolve();\n}\n\nexport async function addReviewers(\n prNo: number,\n reviewers: string[],\n): Promise<void> {\n logger.debug(`Adding reviewers '${reviewers.join(', ')}' to #${prNo}`);\n\n await retry(updatePRAndAddReviewers, [prNo, reviewers], 3, [\n REPOSITORY_CHANGED,\n ]);\n}\n\nasync function updatePRAndAddReviewers(\n prNo: number,\n reviewers: string[],\n): Promise<void> {\n try {\n const pr = await getPr(prNo);\n if (!pr) {\n throw new Error(REPOSITORY_NOT_FOUND);\n }\n\n // TODO: can `reviewers` be undefined? (#22198)\n const reviewersSet = new Set([...pr.reviewers!, ...reviewers]);\n\n await bitbucketServerHttp.putJson(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${prNo}`,\n {\n body: {\n title: pr.title,\n version: pr.version,\n reviewers: Array.from(reviewersSet).map((name) => ({\n user: { name },\n })),\n },\n },\n );\n await getPr(prNo, true);\n } catch (err) {\n logger.warn({ err, reviewers, prNo }, `Failed to add reviewers`);\n if (err.statusCode === 404) {\n throw new Error(REPOSITORY_NOT_FOUND);\n } else if (\n err.statusCode === 409 &&\n !utils.isInvalidReviewersResponse(err)\n ) {\n logger.debug(\n '409 response to adding reviewers - has repository changed?',\n );\n throw new Error(REPOSITORY_CHANGED);\n } else {\n throw err;\n }\n }\n}\n\nasync function retry<T extends (...arg0: any[]) => Promise<any>>(\n fn: T,\n args: Parameters<T>,\n maxTries: number,\n retryErrorMessages: string[],\n): Promise<Awaited<ReturnType<T>>> {\n const maxAttempts = Math.max(maxTries, 1);\n let lastError: Error | undefined;\n for (let attempt = 0; attempt < maxAttempts; attempt++) {\n try {\n return await fn(...args);\n } catch (e) {\n lastError = e;\n if (\n retryErrorMessages.length !== 0 &&\n !retryErrorMessages.includes(e.message)\n ) {\n logger.debug(`Error not marked for retry`);\n throw e;\n }\n }\n }\n\n logger.debug(`All ${maxAttempts} retry attempts exhausted`);\n // Can't be `undefined` here.\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw lastError;\n}\n\nexport function deleteLabel(issueNo: number, label: string): Promise<void> {\n logger.debug(`deleteLabel(${issueNo}, ${label})`);\n // Only used for the \"request Renovate to rebase a PR using a label\" feature\n //\n // Bitbucket Server does not have issues\n return Promise.resolve();\n}\n\ninterface Comment {\n text: string;\n id: number;\n}\n\nasync function getComments(prNo: number): Promise<Comment[]> {\n // GET /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/pull-requests/{pullRequestId}/activities\n let comments = await utils.accumulateValues(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${prNo}/activities`,\n );\n\n comments = comments\n .filter(\n (a: { action: string; commentAction: string }) =>\n a.action === 'COMMENTED' && a.commentAction === 'ADDED',\n )\n .map((a: { comment: Comment }) => a.comment);\n\n logger.debug(`Found ${comments.length} comments`);\n\n return comments;\n}\n\nasync function addComment(prNo: number, text: string): Promise<void> {\n // POST /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/pull-requests/{pullRequestId}/comments\n await bitbucketServerHttp.postJson(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${prNo}/comments`,\n {\n body: { text },\n },\n );\n}\n\nasync function getCommentVersion(\n prNo: number,\n commentId: number,\n): Promise<number> {\n // GET /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/pull-requests/{pullRequestId}/comments/{commentId}\n const { version } = (\n await bitbucketServerHttp.getJsonUnchecked<{ version: number }>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${prNo}/comments/${commentId}`,\n )\n ).body;\n\n return version;\n}\n\nasync function editComment(\n prNo: number,\n commentId: number,\n text: string,\n): Promise<void> {\n const version = await getCommentVersion(prNo, commentId);\n\n // PUT /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/pull-requests/{pullRequestId}/comments/{commentId}\n await bitbucketServerHttp.putJson(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${prNo}/comments/${commentId}`,\n {\n body: { text, version },\n },\n );\n}\n\nasync function deleteComment(prNo: number, commentId: number): Promise<void> {\n const version = await getCommentVersion(prNo, commentId);\n\n // DELETE /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/pull-requests/{pullRequestId}/comments/{commentId}\n await bitbucketServerHttp.deleteJson(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${prNo}/comments/${commentId}?version=${version}`,\n );\n}\n\nexport async function ensureComment({\n number,\n topic,\n content,\n}: EnsureCommentConfig): Promise<boolean> {\n const sanitizedContent = sanitize(content);\n try {\n const comments = await getComments(number);\n let body: string;\n let commentId: number | undefined;\n let commentNeedsUpdating: boolean | undefined;\n if (topic) {\n logger.debug(`Ensuring comment \"${topic}\" in #${number}`);\n body = `### ${topic}\\n\\n${sanitizedContent}`;\n comments.forEach((comment) => {\n if (comment.text.startsWith(`### ${topic}\\n\\n`)) {\n commentId = comment.id;\n commentNeedsUpdating = comment.text !== body;\n }\n });\n } else {\n logger.debug(`Ensuring content-only comment in #${number}`);\n body = `${sanitizedContent}`;\n comments.forEach((comment) => {\n if (comment.text === body) {\n commentId = comment.id;\n commentNeedsUpdating = false;\n }\n });\n }\n if (!commentId) {\n await addComment(number, body);\n logger.info(\n { repository: config.repository, prNo: number, topic },\n 'Comment added',\n );\n } else if (commentNeedsUpdating) {\n await editComment(number, commentId, body);\n logger.debug(\n { repository: config.repository, prNo: number },\n 'Comment updated',\n );\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 ensureCommentRemoval(\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(prNo);\n\n let commentId: number | null | undefined = null;\n if (deleteConfig.type === 'by-topic') {\n const byTopic = (comment: Comment): boolean =>\n comment.text.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.text.trim() === deleteConfig.content;\n commentId = comments.find(byContent)?.id;\n }\n\n if (commentId) {\n await deleteComment(prNo, commentId);\n }\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ err }, 'Error ensuring comment removal');\n }\n}\n\n// Pull Request\n\nconst escapeHash = (input: string): string =>\n input?.replace(regEx(/#/g), '%23');\n\nexport async function createPr({\n sourceBranch,\n targetBranch,\n prTitle: title,\n prBody: rawDescription,\n platformPrOptions,\n}: CreatePRConfig): Promise<Pr> {\n const description = sanitize(rawDescription);\n logger.debug(`createPr(${sourceBranch}, title=${title})`);\n const base = targetBranch;\n let reviewers: BbsRestUserRef[] = [];\n\n if (platformPrOptions?.bbUseDefaultReviewers) {\n logger.debug(`fetching default reviewers`);\n const { id } = (\n await bitbucketServerHttp.getJsonUnchecked<{ id: number }>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}`,\n )\n ).body;\n\n const defReviewers = (\n await bitbucketServerHttp.getJsonUnchecked<{ name: string }[]>(\n `./rest/default-reviewers/1.0/projects/${config.projectKey}/repos/${\n config.repositorySlug\n }/reviewers?sourceRefId=refs/heads/${escapeHash(\n sourceBranch,\n )}&targetRefId=refs/heads/${base}&sourceRepoId=${id}&targetRepoId=${id}`,\n )\n ).body;\n\n reviewers = defReviewers.map((u) => ({\n user: { name: u.name },\n }));\n }\n\n const body: PartialDeep<BbsRestPr> = {\n title,\n description,\n fromRef: {\n id: `refs/heads/${sourceBranch}`,\n },\n toRef: {\n id: `refs/heads/${base}`,\n },\n reviewers,\n };\n let prInfoRes: HttpResponse<BbsRestPr>;\n try {\n prInfoRes = await bitbucketServerHttp.postJson<BbsRestPr>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests`,\n { body },\n );\n } catch (err) /* istanbul ignore next */ {\n if (\n err.body?.errors?.[0]?.exceptionName ===\n 'com.atlassian.bitbucket.pull.EmptyPullRequestException'\n ) {\n logger.debug(\n 'Empty pull request - deleting branch so it can be recreated next run',\n );\n await deleteBranch(sourceBranch);\n throw new Error(REPOSITORY_CHANGED);\n }\n throw err;\n }\n\n const pr: BbsPr = {\n ...utils.prInfo(prInfoRes.body),\n };\n\n // TODO #22198\n updatePrVersion(pr.number, pr.version!);\n\n // istanbul ignore if\n if (config.prList) {\n config.prList.push(pr);\n }\n\n return pr;\n}\n\nexport async function updatePr({\n number: prNo,\n prTitle: title,\n prBody: rawDescription,\n state,\n bitbucketInvalidReviewers,\n targetBranch,\n}: UpdatePrConfig & {\n bitbucketInvalidReviewers?: string[] | undefined;\n}): Promise<void> {\n const description = sanitize(rawDescription);\n logger.debug(`updatePr(${prNo}, title=${title})`);\n\n try {\n const pr = await getPr(prNo);\n if (!pr) {\n throw Object.assign(new Error(REPOSITORY_NOT_FOUND), { statusCode: 404 });\n }\n\n const body: any = {\n title,\n description,\n version: pr.version,\n reviewers: pr.reviewers\n ?.filter((name: string) => !bitbucketInvalidReviewers?.includes(name))\n .map((name: string) => ({ user: { name } })),\n };\n if (targetBranch) {\n body.toRef = {\n id: getNewBranchName(targetBranch),\n };\n }\n\n const { body: updatedPr } = await bitbucketServerHttp.putJson<\n BbsRestPr & {\n version: number;\n }\n >(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${prNo}`,\n { body },\n );\n\n updatePrVersion(prNo, updatedPr.version);\n\n const currentState = updatedPr.state;\n // TODO #22198\n const newState = {\n ['open']: 'OPEN',\n ['closed']: 'DECLINED',\n }[state!];\n\n let finalState: 'open' | 'closed' =\n currentState === 'OPEN' ? 'open' : 'closed';\n\n if (\n newState &&\n ['OPEN', 'DECLINED'].includes(currentState) &&\n currentState !== newState\n ) {\n const command = state === 'open' ? 'reopen' : 'decline';\n const { body: updatedStatePr } = await bitbucketServerHttp.postJson<{\n version: number;\n }>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${pr.number}/${command}?version=${updatedPr.version}`,\n );\n\n finalState = state!;\n\n updatePrVersion(pr.number, updatedStatePr.version);\n }\n\n if (config.prList) {\n const bbsPr = utils.prInfo(updatedPr);\n const existingIndex = config.prList.findIndex(\n (item) => item.number === prNo,\n );\n // istanbul ignore if: should never happen\n if (existingIndex === -1) {\n logger.warn(\n { pr: bbsPr },\n 'Possible error: Updated PR was not found in the PRs that were returned from getPrList().',\n );\n config.prList.push({ ...bbsPr, state: finalState });\n } else {\n config.prList[existingIndex] = { ...bbsPr, state: finalState };\n }\n }\n } catch (err) {\n logger.debug({ err, prNo }, `Failed to update PR`);\n if (err.statusCode === 404) {\n throw new Error(REPOSITORY_NOT_FOUND);\n } else if (err.statusCode === 409) {\n if (utils.isInvalidReviewersResponse(err) && !bitbucketInvalidReviewers) {\n // Retry again with invalid reviewers being removed\n const invalidReviewers = utils.getInvalidReviewers(err);\n await updatePr({\n number: prNo,\n prTitle: title,\n prBody: rawDescription,\n state,\n bitbucketInvalidReviewers: invalidReviewers,\n });\n } else {\n throw new Error(REPOSITORY_CHANGED);\n }\n } else {\n throw err;\n }\n }\n}\n\n// https://docs.atlassian.com/bitbucket-server/rest/6.0.0/bitbucket-rest.html#idp261\nexport async function mergePr({\n branchName,\n id: prNo,\n}: MergePRConfig): Promise<boolean> {\n logger.debug(`mergePr(${prNo}, ${branchName!})`);\n // Used for \"automerge\" feature\n try {\n const pr = await getPr(prNo);\n if (!pr) {\n throw Object.assign(new Error(REPOSITORY_NOT_FOUND), { statusCode: 404 });\n }\n const { body } = await bitbucketServerHttp.postJson<{ version: number }>(\n // TODO: types (#22198)\n `./rest/api/1.0/projects/${config.projectKey}/repos/${\n config.repositorySlug\n }/pull-requests/${prNo}/merge?version=${pr.version!}`,\n );\n updatePrVersion(prNo, body.version);\n } catch (err) {\n if (err.statusCode === 404) {\n throw new Error(REPOSITORY_NOT_FOUND);\n } else if (err.statusCode === 409) {\n logger.warn({ err }, `Failed to merge PR`);\n return false;\n } else {\n logger.warn({ err }, `Failed to merge PR`);\n return false;\n }\n }\n\n logger.debug(`PR merged, PrNo:${prNo}`);\n return true;\n}\n\nexport function massageMarkdown(input: string): string {\n logger.debug(`massageMarkdown(${input.split(newlineRegex)[0]})`);\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(/<\\/?summary>/g), '**')\n .replace(regEx(/<\\/?details>/g), '')\n .replace(regEx(`\\n---\\n\\n.*?<!-- rebase-check -->.*?(\\n|$)`), '')\n .replace(regEx(/<!--.*?-->/gs), '');\n}\n\nexport function maxBodyLength(): number {\n return 30000;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/platform/bitbucket-server/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { setTimeout } from 'timers/promises';\nimport semver from 'semver';\nimport type { PartialDeep } from 'type-fest';\nimport {\n REPOSITORY_CHANGED,\n REPOSITORY_EMPTY,\n REPOSITORY_NOT_FOUND,\n} from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport type { BranchStatus } from '../../../types';\nimport type { FileData } from '../../../types/platform/bitbucket-server';\nimport { parseJson } from '../../../util/common';\nimport * as git from '../../../util/git';\nimport { deleteBranch } from '../../../util/git';\nimport * as hostRules from '../../../util/host-rules';\nimport {\n BitbucketServerHttp,\n setBaseUrl,\n} from '../../../util/http/bitbucket-server';\nimport type { HttpOptions, HttpResponse } from '../../../util/http/types';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport { sanitize } from '../../../util/sanitize';\nimport { ensureTrailingSlash, getQueryString } from '../../../util/url';\nimport type {\n BranchStatusConfig,\n CreatePRConfig,\n EnsureCommentConfig,\n EnsureCommentRemovalConfig,\n EnsureIssueConfig,\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 type {\n Comment,\n PullRequestActivity,\n PullRequestCommentActivity,\n} from './schema';\nimport { UserSchema } from './schema';\nimport type {\n BbsConfig,\n BbsPr,\n BbsRestBranch,\n BbsRestPr,\n BbsRestRepo,\n BbsRestUserRef,\n} from './types';\nimport * as utils from './utils';\nimport { getExtraCloneOpts } from './utils';\n\n/*\n * Version: 5.3 (EOL Date: 15 Aug 2019)\n * See following docs for api information:\n * https://docs.atlassian.com/bitbucket-server/rest/5.3.0/bitbucket-rest.html\n * https://docs.atlassian.com/bitbucket-server/rest/5.3.0/bitbucket-build-rest.html\n *\n * See following page for uptodate supported versions\n * https://confluence.atlassian.com/support/atlassian-support-end-of-life-policy-201851003.html#AtlassianSupportEndofLifePolicy-BitbucketServer\n */\n\nexport const id = 'bitbucket-server';\n\nlet config: BbsConfig = {} as any;\n\nconst bitbucketServerHttp = new BitbucketServerHttp();\n\nconst defaults: {\n endpoint?: string;\n hostType: string;\n version: string;\n} = {\n hostType: 'bitbucket-server',\n version: '0.0.0',\n};\n\n/* istanbul ignore next */\nfunction updatePrVersion(pr: number, version: number): number {\n const res = Math.max(config.prVersions.get(pr) ?? 0, version);\n config.prVersions.set(pr, res);\n return res;\n}\n\nexport async function initPlatform({\n endpoint,\n token,\n username,\n password,\n gitAuthor,\n}: PlatformParams): Promise<PlatformResult> {\n if (!endpoint) {\n throw new Error('Init: You must configure a Bitbucket Server endpoint');\n }\n if (!(username && password) && !token) {\n throw new Error(\n 'Init: You must either configure a Bitbucket Server username/password or a HTTP access token',\n );\n } else if (password && token) {\n throw new Error(\n 'Init: You must configure either a Bitbucket Server password or a HTTP access token, not both',\n );\n }\n // TODO: Add a connection check that endpoint/username/password combination are valid (#9595)\n defaults.endpoint = ensureTrailingSlash(endpoint);\n setBaseUrl(defaults.endpoint);\n const platformConfig: PlatformResult = {\n endpoint: defaults.endpoint,\n };\n try {\n let bitbucketServerVersion: string;\n // istanbul ignore if: experimental feature\n if (process.env.RENOVATE_X_PLATFORM_VERSION) {\n bitbucketServerVersion = process.env.RENOVATE_X_PLATFORM_VERSION;\n } else {\n const { version } = (\n await bitbucketServerHttp.getJsonUnchecked<{ version: string }>(\n `./rest/api/1.0/application-properties`,\n )\n ).body;\n bitbucketServerVersion = version;\n logger.debug('Bitbucket Server version is: ' + bitbucketServerVersion);\n }\n\n if (semver.valid(bitbucketServerVersion)) {\n defaults.version = bitbucketServerVersion;\n }\n } catch (err) {\n logger.debug(\n { err },\n 'Error authenticating with Bitbucket. Check that your token includes \"api\" permissions',\n );\n }\n\n if (!gitAuthor && username) {\n logger.debug(`Attempting to confirm gitAuthor from username`);\n const options: HttpOptions = {\n memCache: false,\n };\n\n if (token) {\n options.token = token;\n } else {\n options.username = username;\n options.password = password;\n }\n\n try {\n const { displayName, emailAddress } = (\n await bitbucketServerHttp.getJson(\n `./rest/api/1.0/users/${username}`,\n options,\n UserSchema,\n )\n ).body;\n\n platformConfig.gitAuthor = `${displayName} <${emailAddress}>`;\n\n logger.debug(`Detected gitAuthor: ${platformConfig.gitAuthor}`);\n } catch (err) {\n logger.debug(\n { err },\n 'Failed to get user info, fallback gitAuthor will be used',\n );\n }\n }\n\n return platformConfig;\n}\n\n// Get all repositories that the user has access to\nexport async function getRepos(): Promise<string[]> {\n logger.debug('Autodiscovering Bitbucket Server repositories');\n try {\n const repos = (\n await bitbucketServerHttp.getJsonUnchecked<BbsRestRepo[]>(\n `./rest/api/1.0/repos?permission=REPO_WRITE&state=AVAILABLE`,\n { paginate: true },\n )\n ).body;\n\n const result = repos.map((repo) => `${repo.project.key}/${repo.slug}`);\n logger.debug({ result }, 'result of getRepos()');\n return result;\n } catch (err) /* istanbul ignore next */ {\n logger.error({ err }, `bitbucket getRepos error`);\n throw err;\n }\n}\n\nexport async function getRawFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<string | null> {\n const repo = repoName ?? config.repository;\n const [project, slug] = repo.split('/');\n const fileUrl =\n `./rest/api/1.0/projects/${project}/repos/${slug}/browse/${fileName}?limit=20000` +\n (branchOrTag ? '&at=' + branchOrTag : '');\n const res = await bitbucketServerHttp.getJsonUnchecked<FileData>(fileUrl);\n const { isLastPage, lines, size } = res.body;\n if (isLastPage) {\n return lines.map(({ text }) => text).join('\\n');\n }\n logger.warn({ size }, 'The file is too big');\n throw new Error(`The file is too big (${size}B)`);\n}\n\nexport async function getJsonFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<any> {\n // TODO #22198\n const raw = await getRawFile(fileName, repoName, branchOrTag);\n return parseJson(raw, fileName);\n}\n\n// Initialize Bitbucket Server by getting base branch\nexport async function initRepo({\n repository,\n cloneSubmodules,\n cloneSubmodulesFilter,\n ignorePrAuthor,\n gitUrl,\n}: RepoParams): Promise<RepoResult> {\n logger.debug(`initRepo(\"${JSON.stringify({ repository }, null, 2)}\")`);\n const opts = hostRules.find({\n hostType: defaults.hostType,\n url: defaults.endpoint,\n });\n\n const [projectKey, repositorySlug] = repository.split('/');\n\n config = {\n projectKey,\n repositorySlug,\n repository,\n prVersions: new Map<number, number>(),\n username: opts.username,\n ignorePrAuthor,\n } as any;\n\n try {\n const info = (\n await bitbucketServerHttp.getJsonUnchecked<BbsRestRepo>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}`,\n )\n ).body;\n config.owner = info.project.key;\n logger.debug(`${repository} owner = ${config.owner}`);\n const branchRes = await bitbucketServerHttp.getJsonUnchecked<BbsRestBranch>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/branches/default`,\n );\n\n // 204 means empty, 404 means repo not found or missing default branch. repo must exist here.\n if ([204, 404].includes(branchRes.statusCode)) {\n throw new Error(REPOSITORY_EMPTY);\n }\n\n const url = utils.getRepoGitUrl(\n config.repositorySlug,\n // TODO #22198\n defaults.endpoint!,\n gitUrl,\n info,\n opts,\n );\n\n await git.initRepo({\n ...config,\n url,\n extraCloneOpts: getExtraCloneOpts(opts),\n cloneSubmodules,\n cloneSubmodulesFilter,\n fullClone: semver.lte(defaults.version, '8.0.0'),\n });\n\n config.mergeMethod = 'merge';\n const repoConfig: RepoResult = {\n defaultBranch: branchRes.body.displayId,\n isFork: !!info.origin,\n repoFingerprint: repoFingerprint(info.id, defaults.endpoint),\n };\n\n return repoConfig;\n } catch (err) /* istanbul ignore next */ {\n if (err.statusCode === 404) {\n throw new Error(REPOSITORY_NOT_FOUND);\n }\n if (err.message === REPOSITORY_EMPTY) {\n throw err;\n }\n\n logger.debug({ err }, 'Unknown Bitbucket initRepo error');\n throw err;\n }\n}\n\nexport async function getBranchForceRebase(\n _branchName: string,\n): Promise<boolean> {\n // https://docs.atlassian.com/bitbucket-server/rest/7.0.1/bitbucket-rest.html#idp342\n const res = await bitbucketServerHttp.getJsonUnchecked<{\n mergeConfig: { defaultStrategy: { id: string } };\n }>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/settings/pull-requests`,\n );\n\n // If the default merge strategy contains `ff-only` the PR can only be merged\n // if it is up to date with the base branch.\n // The current options for id are:\n // no-ff, ff, ff-only, rebase-no-ff, rebase-ff-only, squash, squash-ff-only\n return Boolean(\n res.body?.mergeConfig?.defaultStrategy?.id.includes('ff-only'),\n );\n}\n// Gets details for a PR\nexport async function getPr(\n prNo: number,\n refreshCache?: boolean,\n): Promise<BbsPr | null> {\n logger.debug(`getPr(${prNo})`);\n if (!prNo) {\n return null;\n }\n\n const res = await bitbucketServerHttp.getJsonUnchecked<BbsRestPr>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${prNo}`,\n { memCache: !refreshCache },\n );\n\n const pr: BbsPr = {\n ...utils.prInfo(res.body),\n reviewers: res.body.reviewers.map((r) => r.user.name),\n };\n // TODO #22198\n pr.version = updatePrVersion(pr.number, pr.version!);\n\n return pr;\n}\n\n// TODO: coverage (#9624)\n// istanbul ignore next\nfunction matchesState(state: string, desiredState: string): boolean {\n if (desiredState === 'all') {\n return true;\n }\n if (desiredState.startsWith('!')) {\n return state !== desiredState.substring(1);\n }\n return state === desiredState;\n}\n\n// TODO: coverage (#9624)\n// istanbul ignore next\nconst isRelevantPr =\n (branchName: string, prTitle: string | null | undefined, state: string) =>\n (p: Pr): boolean =>\n p.sourceBranch === branchName &&\n (!prTitle || p.title.toUpperCase() === prTitle.toUpperCase()) &&\n matchesState(p.state, state);\n\n// TODO: coverage (#9624)\nexport async function getPrList(refreshCache?: boolean): Promise<Pr[]> {\n logger.debug(`getPrList()`);\n // istanbul ignore next\n if (!config.prList || refreshCache) {\n const searchParams: Record<string, string> = {\n state: 'ALL',\n };\n if (!config.ignorePrAuthor && config.username !== undefined) {\n searchParams['role.1'] = 'AUTHOR';\n searchParams['username.1'] = config.username;\n }\n const query = getQueryString(searchParams);\n const values = (\n await bitbucketServerHttp.getJsonUnchecked<BbsRestPr[]>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests?${query}`,\n { paginate: true },\n )\n ).body;\n\n config.prList = values.map(utils.prInfo);\n logger.debug(`Retrieved Pull Requests, count: ${config.prList.length}`);\n } else {\n logger.debug('returning cached PR list');\n }\n return config.prList;\n}\n\n// TODO: coverage (#9624)\n// istanbul ignore next\nexport async function findPr({\n branchName,\n prTitle,\n state = 'all',\n refreshCache,\n includeOtherAuthors,\n}: FindPRConfig): Promise<Pr | null> {\n logger.debug(`findPr(${branchName}, \"${prTitle!}\", \"${state}\")`);\n\n if (includeOtherAuthors) {\n // PR might have been created by anyone, so don't use the cached Renovate PR list\n const searchParams: Record<string, string> = {\n state: 'OPEN',\n };\n searchParams.direction = 'outgoing';\n searchParams.at = `refs/heads/${branchName}`;\n\n const query = getQueryString(searchParams);\n const prs = (\n await bitbucketServerHttp.getJsonUnchecked<BbsRestPr[]>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests?${query}`,\n {\n paginate: true,\n limit: 1, // only fetch the latest pr\n },\n )\n ).body;\n\n if (!prs.length) {\n logger.debug(`No PR found for branch ${branchName}`);\n return null;\n }\n\n return utils.prInfo(prs[0]);\n }\n\n const prList = await getPrList(refreshCache);\n const pr = prList.find(isRelevantPr(branchName, prTitle, state));\n if (pr) {\n logger.debug(`Found PR #${pr.number}`);\n } else {\n logger.debug(`Renovate did not find a PR for branch #${branchName}`);\n }\n return pr ?? null;\n}\n\n// Returns the Pull Request for a branch. Null if not exists.\nexport async function getBranchPr(branchName: string): Promise<BbsPr | null> {\n logger.debug(`getBranchPr(${branchName})`);\n const existingPr = await findPr({\n branchName,\n state: 'open',\n });\n return existingPr ? getPr(existingPr.number) : null;\n}\n\n// istanbul ignore next\nexport async function refreshPr(number: number): Promise<void> {\n // wait for pr change propagation\n await setTimeout(1000);\n // refresh cache\n await getPr(number, true);\n}\n\nasync function getStatus(\n branchName: string,\n memCache = true,\n): Promise<utils.BitbucketCommitStatus> {\n const branchCommit = git.getBranchCommit(branchName);\n\n return (\n await bitbucketServerHttp.getJsonUnchecked<utils.BitbucketCommitStatus>(\n // TODO: types (#22198)\n `./rest/build-status/1.0/commits/stats/${branchCommit!}`,\n { memCache },\n )\n ).body;\n}\n\n// Returns the combined status for a branch.\n// umbrella for status checks\n// https://docs.atlassian.com/bitbucket-server/rest/6.0.0/bitbucket-build-rest.html#idp2\nexport async function getBranchStatus(\n branchName: string,\n): Promise<BranchStatus> {\n logger.debug(`getBranchStatus(${branchName})`);\n\n if (!git.branchExists(branchName)) {\n logger.debug('Branch does not exist - cannot fetch status');\n throw new Error(REPOSITORY_CHANGED);\n }\n\n try {\n const commitStatus = await getStatus(branchName);\n\n logger.debug({ commitStatus }, 'branch status check result');\n\n if (commitStatus.failed > 0) {\n return 'red';\n }\n if (commitStatus.inProgress > 0) {\n return 'yellow';\n }\n return commitStatus.successful > 0 ? 'green' : 'yellow';\n } catch (err) {\n logger.warn({ err }, `Failed to get branch status`);\n return 'red';\n }\n}\n\nasync function getStatusCheck(\n branchName: string,\n memCache = true,\n): Promise<utils.BitbucketStatus[]> {\n const branchCommit = git.getBranchCommit(branchName);\n\n return (\n await bitbucketServerHttp.getJsonUnchecked<utils.BitbucketStatus[]>(\n `./rest/build-status/1.0/commits/${branchCommit!}`,\n { paginate: true, memCache },\n )\n ).body;\n}\n\n// https://docs.atlassian.com/bitbucket-server/rest/6.0.0/bitbucket-build-rest.html#idp2\nexport async function getBranchStatusCheck(\n branchName: string,\n context: string,\n): Promise<BranchStatus | null> {\n logger.debug(`getBranchStatusCheck(${branchName}, context=${context})`);\n\n try {\n const states = await getStatusCheck(branchName);\n\n for (const state of states) {\n if (state.key === context) {\n switch (state.state) {\n case 'SUCCESSFUL':\n return 'green';\n case 'INPROGRESS':\n return 'yellow';\n case 'FAILED':\n default:\n return 'red';\n }\n }\n }\n } catch (err) {\n logger.warn({ err }, `Failed to check branch status`);\n }\n return null;\n}\n\nexport async function setBranchStatus({\n branchName,\n context,\n description,\n state,\n url: targetUrl,\n}: BranchStatusConfig): Promise<void> {\n logger.debug(`setBranchStatus(${branchName})`);\n\n const existingStatus = await getBranchStatusCheck(branchName, context);\n if (existingStatus === state) {\n return;\n }\n logger.debug({ branch: branchName, context, state }, 'Setting branch status');\n\n const branchCommit = git.getBranchCommit(branchName);\n\n try {\n const body: any = {\n key: context,\n description,\n url: targetUrl ?? 'https://renovatebot.com',\n };\n\n switch (state) {\n case 'green':\n body.state = 'SUCCESSFUL';\n break;\n case 'yellow':\n body.state = 'INPROGRESS';\n break;\n case 'red':\n default:\n body.state = 'FAILED';\n break;\n }\n\n await bitbucketServerHttp.postJson(\n // TODO: types (#22198)\n `./rest/build-status/1.0/commits/${branchCommit!}`,\n { body },\n );\n\n // update status cache\n await getStatus(branchName, false);\n await getStatusCheck(branchName, false);\n } catch (err) {\n logger.warn({ err }, `Failed to set branch status`);\n }\n}\n\n// Issue\n\n/* istanbul ignore next */\nexport function findIssue(title: string): Promise<Issue | null> {\n logger.debug(`findIssue(${title})`);\n // This is used by Renovate when creating its own issues,\n // e.g. for deprecated package warnings,\n // config error notifications, or \"dependencyDashboard\"\n //\n // Bitbucket Server does not have issues\n return Promise.resolve(null);\n}\n\n/* istanbul ignore next */\nexport function ensureIssue({\n title,\n}: EnsureIssueConfig): Promise<EnsureIssueResult | null> {\n logger.warn({ title }, 'Cannot ensure issue');\n // This is used by Renovate when creating its own issues,\n // e.g. for deprecated package warnings,\n // config error notifications, or \"dependencyDashboard\"\n //\n // Bitbucket Server does not have issues\n return Promise.resolve(null);\n}\n\n/* istanbul ignore next */\nexport function getIssueList(): Promise<Issue[]> {\n logger.debug(`getIssueList()`);\n // This is used by Renovate when creating its own issues,\n // e.g. for deprecated package warnings,\n // config error notifications, or \"dependencyDashboard\"\n //\n // Bitbucket Server does not have issues\n return Promise.resolve([]);\n}\n\n/* istanbul ignore next */\nexport function ensureIssueClosing(title: string): Promise<void> {\n logger.debug(`ensureIssueClosing(${title})`);\n // This is used by Renovate when creating its own issues,\n // e.g. for deprecated package warnings,\n // config error notifications, or \"dependencyDashboard\"\n //\n // Bitbucket Server does not have issues\n return Promise.resolve();\n}\n\nexport function addAssignees(iid: number, assignees: string[]): Promise<void> {\n logger.debug(`addAssignees(${iid}, [${assignees.join(', ')}])`);\n // This is used by Renovate when creating its own issues,\n // e.g. for deprecated package warnings,\n // config error notifications, or \"dependencyDashboard\"\n //\n // Bitbucket Server does not have issues\n return Promise.resolve();\n}\n\nexport async function addReviewers(\n prNo: number,\n reviewers: string[],\n): Promise<void> {\n logger.debug(`Adding reviewers '${reviewers.join(', ')}' to #${prNo}`);\n\n await retry(updatePRAndAddReviewers, [prNo, reviewers], 3, [\n REPOSITORY_CHANGED,\n ]);\n}\n\nasync function updatePRAndAddReviewers(\n prNo: number,\n reviewers: string[],\n): Promise<void> {\n try {\n const pr = await getPr(prNo);\n if (!pr) {\n throw new Error(REPOSITORY_NOT_FOUND);\n }\n\n // TODO: can `reviewers` be undefined? (#22198)\n const reviewersSet = new Set([...pr.reviewers!, ...reviewers]);\n\n await bitbucketServerHttp.putJson(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${prNo}`,\n {\n body: {\n title: pr.title,\n version: pr.version,\n reviewers: Array.from(reviewersSet).map((name) => ({\n user: { name },\n })),\n },\n },\n );\n await getPr(prNo, true);\n } catch (err) {\n logger.warn({ err, reviewers, prNo }, `Failed to add reviewers`);\n if (err.statusCode === 404) {\n throw new Error(REPOSITORY_NOT_FOUND);\n } else if (\n err.statusCode === 409 &&\n !utils.isInvalidReviewersResponse(err)\n ) {\n logger.debug(\n '409 response to adding reviewers - has repository changed?',\n );\n throw new Error(REPOSITORY_CHANGED);\n } else {\n throw err;\n }\n }\n}\n\nasync function retry<T extends (...arg0: any[]) => Promise<any>>(\n fn: T,\n args: Parameters<T>,\n maxTries: number,\n retryErrorMessages: string[],\n): Promise<Awaited<ReturnType<T>>> {\n const maxAttempts = Math.max(maxTries, 1);\n let lastError: Error | undefined;\n for (let attempt = 0; attempt < maxAttempts; attempt++) {\n try {\n return await fn(...args);\n } catch (e) {\n lastError = e;\n if (\n retryErrorMessages.length !== 0 &&\n !retryErrorMessages.includes(e.message)\n ) {\n logger.debug(`Error not marked for retry`);\n throw e;\n }\n }\n }\n\n logger.debug(`All ${maxAttempts} retry attempts exhausted`);\n // Can't be `undefined` here.\n // eslint-disable-next-line @typescript-eslint/only-throw-error\n throw lastError;\n}\n\nexport function deleteLabel(issueNo: number, label: string): Promise<void> {\n logger.debug(`deleteLabel(${issueNo}, ${label})`);\n // Only used for the \"request Renovate to rebase a PR using a label\" feature\n //\n // Bitbucket Server does not have issues\n return Promise.resolve();\n}\n\nasync function getComments(prNo: number): Promise<Comment[]> {\n // GET /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/pull-requests/{pullRequestId}/activities\n const activities = (\n await bitbucketServerHttp.getJsonUnchecked<PullRequestActivity[]>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${prNo}/activities`,\n { paginate: true },\n )\n ).body;\n\n const comments = activities\n .filter(\n (a): a is PullRequestCommentActivity =>\n a.action === 'COMMENTED' && 'comment' in a && 'commentAction' in a,\n )\n .filter((a) => a.commentAction === 'ADDED')\n .map((a) => a.comment);\n\n logger.debug(`Found ${comments.length} comments`);\n\n return comments;\n}\n\nasync function addComment(prNo: number, text: string): Promise<void> {\n // POST /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/pull-requests/{pullRequestId}/comments\n await bitbucketServerHttp.postJson(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${prNo}/comments`,\n {\n body: { text },\n },\n );\n}\n\nasync function getCommentVersion(\n prNo: number,\n commentId: number,\n): Promise<number> {\n // GET /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/pull-requests/{pullRequestId}/comments/{commentId}\n const { version } = (\n await bitbucketServerHttp.getJsonUnchecked<{ version: number }>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${prNo}/comments/${commentId}`,\n )\n ).body;\n\n return version;\n}\n\nasync function editComment(\n prNo: number,\n commentId: number,\n text: string,\n): Promise<void> {\n const version = await getCommentVersion(prNo, commentId);\n\n // PUT /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/pull-requests/{pullRequestId}/comments/{commentId}\n await bitbucketServerHttp.putJson(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${prNo}/comments/${commentId}`,\n {\n body: { text, version },\n },\n );\n}\n\nasync function deleteComment(prNo: number, commentId: number): Promise<void> {\n const version = await getCommentVersion(prNo, commentId);\n\n // DELETE /rest/api/1.0/projects/{projectKey}/repos/{repositorySlug}/pull-requests/{pullRequestId}/comments/{commentId}\n await bitbucketServerHttp.deleteJson(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${prNo}/comments/${commentId}?version=${version}`,\n );\n}\n\nexport async function ensureComment({\n number,\n topic,\n content,\n}: EnsureCommentConfig): Promise<boolean> {\n const sanitizedContent = sanitize(content);\n try {\n const comments = await getComments(number);\n let body: string;\n let commentId: number | undefined;\n let commentNeedsUpdating: boolean | undefined;\n if (topic) {\n logger.debug(`Ensuring comment \"${topic}\" in #${number}`);\n body = `### ${topic}\\n\\n${sanitizedContent}`;\n comments.forEach((comment) => {\n if (comment.text.startsWith(`### ${topic}\\n\\n`)) {\n commentId = comment.id;\n commentNeedsUpdating = comment.text !== body;\n }\n });\n } else {\n logger.debug(`Ensuring content-only comment in #${number}`);\n body = `${sanitizedContent}`;\n comments.forEach((comment) => {\n if (comment.text === body) {\n commentId = comment.id;\n commentNeedsUpdating = false;\n }\n });\n }\n if (!commentId) {\n await addComment(number, body);\n logger.info(\n { repository: config.repository, prNo: number, topic },\n 'Comment added',\n );\n } else if (commentNeedsUpdating) {\n await editComment(number, commentId, body);\n logger.debug(\n { repository: config.repository, prNo: number },\n 'Comment updated',\n );\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 ensureCommentRemoval(\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(prNo);\n\n let commentId: number | null | undefined = null;\n if (deleteConfig.type === 'by-topic') {\n const byTopic = (comment: Comment): boolean =>\n comment.text.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.text.trim() === deleteConfig.content;\n commentId = comments.find(byContent)?.id;\n }\n\n if (commentId) {\n await deleteComment(prNo, commentId);\n }\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ err }, 'Error ensuring comment removal');\n }\n}\n\n// Pull Request\n\nconst escapeHash = (input: string): string =>\n input?.replace(regEx(/#/g), '%23');\n\nexport async function createPr({\n sourceBranch,\n targetBranch,\n prTitle: title,\n prBody: rawDescription,\n platformPrOptions,\n}: CreatePRConfig): Promise<Pr> {\n const description = sanitize(rawDescription);\n logger.debug(`createPr(${sourceBranch}, title=${title})`);\n const base = targetBranch;\n let reviewers: BbsRestUserRef[] = [];\n\n if (platformPrOptions?.bbUseDefaultReviewers) {\n logger.debug(`fetching default reviewers`);\n const { id } = (\n await bitbucketServerHttp.getJsonUnchecked<{ id: number }>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}`,\n )\n ).body;\n\n const defReviewers = (\n await bitbucketServerHttp.getJsonUnchecked<{ name: string }[]>(\n `./rest/default-reviewers/1.0/projects/${config.projectKey}/repos/${\n config.repositorySlug\n }/reviewers?sourceRefId=refs/heads/${escapeHash(\n sourceBranch,\n )}&targetRefId=refs/heads/${base}&sourceRepoId=${id}&targetRepoId=${id}`,\n )\n ).body;\n\n reviewers = defReviewers.map((u) => ({\n user: { name: u.name },\n }));\n }\n\n const body: PartialDeep<BbsRestPr> = {\n title,\n description,\n fromRef: {\n id: `refs/heads/${sourceBranch}`,\n },\n toRef: {\n id: `refs/heads/${base}`,\n },\n reviewers,\n };\n let prInfoRes: HttpResponse<BbsRestPr>;\n try {\n prInfoRes = await bitbucketServerHttp.postJson<BbsRestPr>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests`,\n { body },\n );\n } catch (err) /* istanbul ignore next */ {\n if (\n err.body?.errors?.[0]?.exceptionName ===\n 'com.atlassian.bitbucket.pull.EmptyPullRequestException'\n ) {\n logger.debug(\n 'Empty pull request - deleting branch so it can be recreated next run',\n );\n await deleteBranch(sourceBranch);\n throw new Error(REPOSITORY_CHANGED);\n }\n throw err;\n }\n\n const pr: BbsPr = {\n ...utils.prInfo(prInfoRes.body),\n };\n\n // TODO #22198\n updatePrVersion(pr.number, pr.version!);\n\n // istanbul ignore if\n if (config.prList) {\n config.prList.push(pr);\n }\n\n return pr;\n}\n\nexport async function updatePr({\n number: prNo,\n prTitle: title,\n prBody: rawDescription,\n state,\n bitbucketInvalidReviewers,\n targetBranch,\n}: UpdatePrConfig & {\n bitbucketInvalidReviewers?: string[] | undefined;\n}): Promise<void> {\n const description = sanitize(rawDescription);\n logger.debug(`updatePr(${prNo}, title=${title})`);\n\n try {\n const pr = await getPr(prNo);\n if (!pr) {\n throw Object.assign(new Error(REPOSITORY_NOT_FOUND), { statusCode: 404 });\n }\n\n const body: any = {\n title,\n description,\n version: pr.version,\n reviewers: pr.reviewers\n ?.filter((name: string) => !bitbucketInvalidReviewers?.includes(name))\n .map((name: string) => ({ user: { name } })),\n };\n if (targetBranch) {\n body.toRef = {\n id: getNewBranchName(targetBranch),\n };\n }\n\n const { body: updatedPr } = await bitbucketServerHttp.putJson<\n BbsRestPr & {\n version: number;\n }\n >(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${prNo}`,\n { body },\n );\n\n updatePrVersion(prNo, updatedPr.version);\n\n const currentState = updatedPr.state;\n // TODO #22198\n const newState = {\n ['open']: 'OPEN',\n ['closed']: 'DECLINED',\n }[state!];\n\n let finalState: 'open' | 'closed' =\n currentState === 'OPEN' ? 'open' : 'closed';\n\n if (\n newState &&\n ['OPEN', 'DECLINED'].includes(currentState) &&\n currentState !== newState\n ) {\n const command = state === 'open' ? 'reopen' : 'decline';\n const { body: updatedStatePr } = await bitbucketServerHttp.postJson<{\n version: number;\n }>(\n `./rest/api/1.0/projects/${config.projectKey}/repos/${config.repositorySlug}/pull-requests/${pr.number}/${command}?version=${updatedPr.version}`,\n );\n\n finalState = state!;\n\n updatePrVersion(pr.number, updatedStatePr.version);\n }\n\n if (config.prList) {\n const bbsPr = utils.prInfo(updatedPr);\n const existingIndex = config.prList.findIndex(\n (item) => item.number === prNo,\n );\n // istanbul ignore if: should never happen\n if (existingIndex === -1) {\n logger.warn(\n { pr: bbsPr },\n 'Possible error: Updated PR was not found in the PRs that were returned from getPrList().',\n );\n config.prList.push({ ...bbsPr, state: finalState });\n } else {\n config.prList[existingIndex] = { ...bbsPr, state: finalState };\n }\n }\n } catch (err) {\n logger.debug({ err, prNo }, `Failed to update PR`);\n if (err.statusCode === 404) {\n throw new Error(REPOSITORY_NOT_FOUND);\n } else if (err.statusCode === 409) {\n if (utils.isInvalidReviewersResponse(err) && !bitbucketInvalidReviewers) {\n // Retry again with invalid reviewers being removed\n const invalidReviewers = utils.getInvalidReviewers(err);\n await updatePr({\n number: prNo,\n prTitle: title,\n prBody: rawDescription,\n state,\n bitbucketInvalidReviewers: invalidReviewers,\n });\n } else {\n throw new Error(REPOSITORY_CHANGED);\n }\n } else {\n throw err;\n }\n }\n}\n\n// https://docs.atlassian.com/bitbucket-server/rest/6.0.0/bitbucket-rest.html#idp261\nexport async function mergePr({\n branchName,\n id: prNo,\n}: MergePRConfig): Promise<boolean> {\n logger.debug(`mergePr(${prNo}, ${branchName!})`);\n // Used for \"automerge\" feature\n try {\n const pr = await getPr(prNo);\n if (!pr) {\n throw Object.assign(new Error(REPOSITORY_NOT_FOUND), { statusCode: 404 });\n }\n const { body } = await bitbucketServerHttp.postJson<{ version: number }>(\n // TODO: types (#22198)\n `./rest/api/1.0/projects/${config.projectKey}/repos/${\n config.repositorySlug\n }/pull-requests/${prNo}/merge?version=${pr.version!}`,\n );\n updatePrVersion(prNo, body.version);\n } catch (err) {\n if (err.statusCode === 404) {\n throw new Error(REPOSITORY_NOT_FOUND);\n } else if (err.statusCode === 409) {\n logger.warn({ err }, `Failed to merge PR`);\n return false;\n } else {\n logger.warn({ err }, `Failed to merge PR`);\n return false;\n }\n }\n\n logger.debug(`PR merged, PrNo:${prNo}`);\n return true;\n}\n\nexport function massageMarkdown(input: string): string {\n logger.debug(`massageMarkdown(${input.split(newlineRegex)[0]})`);\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(/<\\/?summary>/g), '**')\n .replace(regEx(/<\\/?details>/g), '')\n .replace(regEx(`\\n---\\n\\n.*?<!-- rebase-check -->.*?(\\n|$)`), '')\n .replace(regEx(/<!--.*?-->/gs), '');\n}\n\nexport function maxBodyLength(): number {\n return 30000;\n}\n"]}
@@ -9,3 +9,78 @@ export declare const UserSchema: z.ZodObject<{
9
9
  displayName: string;
10
10
  emailAddress: string;
11
11
  }>;
12
+ export declare const Comment: z.ZodObject<{
13
+ text: z.ZodString;
14
+ id: z.ZodNumber;
15
+ }, "strip", z.ZodTypeAny, {
16
+ id: number;
17
+ text: string;
18
+ }, {
19
+ id: number;
20
+ text: string;
21
+ }>;
22
+ export type Comment = z.infer<typeof Comment>;
23
+ export declare const PullRequestCommentActivity: z.ZodObject<{
24
+ action: z.ZodLiteral<"COMMENTED">;
25
+ commentAction: z.ZodString;
26
+ comment: z.ZodObject<{
27
+ text: z.ZodString;
28
+ id: z.ZodNumber;
29
+ }, "strip", z.ZodTypeAny, {
30
+ id: number;
31
+ text: string;
32
+ }, {
33
+ id: number;
34
+ text: string;
35
+ }>;
36
+ }, "strip", z.ZodTypeAny, {
37
+ action: "COMMENTED";
38
+ comment: {
39
+ id: number;
40
+ text: string;
41
+ };
42
+ commentAction: string;
43
+ }, {
44
+ action: "COMMENTED";
45
+ comment: {
46
+ id: number;
47
+ text: string;
48
+ };
49
+ commentAction: string;
50
+ }>;
51
+ export type PullRequestCommentActivity = z.infer<typeof PullRequestCommentActivity>;
52
+ export declare const PullRequestActivity: z.ZodUnion<[z.ZodObject<{
53
+ action: z.ZodString;
54
+ }, "strip", z.ZodTypeAny, {
55
+ action: string;
56
+ }, {
57
+ action: string;
58
+ }>, z.ZodObject<{
59
+ action: z.ZodLiteral<"COMMENTED">;
60
+ commentAction: z.ZodString;
61
+ comment: z.ZodObject<{
62
+ text: z.ZodString;
63
+ id: z.ZodNumber;
64
+ }, "strip", z.ZodTypeAny, {
65
+ id: number;
66
+ text: string;
67
+ }, {
68
+ id: number;
69
+ text: string;
70
+ }>;
71
+ }, "strip", z.ZodTypeAny, {
72
+ action: "COMMENTED";
73
+ comment: {
74
+ id: number;
75
+ text: string;
76
+ };
77
+ commentAction: string;
78
+ }, {
79
+ action: "COMMENTED";
80
+ comment: {
81
+ id: number;
82
+ text: string;
83
+ };
84
+ commentAction: string;
85
+ }>]>;
86
+ export type PullRequestActivity = z.infer<typeof PullRequestActivity>;
@@ -1,9 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UserSchema = void 0;
3
+ exports.PullRequestActivity = exports.PullRequestCommentActivity = exports.Comment = exports.UserSchema = void 0;
4
4
  const zod_1 = require("zod");
5
5
  exports.UserSchema = zod_1.z.object({
6
6
  displayName: zod_1.z.string(),
7
7
  emailAddress: zod_1.z.string(),
8
8
  });
9
+ exports.Comment = zod_1.z.object({
10
+ text: zod_1.z.string(),
11
+ id: zod_1.z.number(),
12
+ });
13
+ exports.PullRequestCommentActivity = zod_1.z.object({
14
+ action: zod_1.z.literal('COMMENTED'),
15
+ commentAction: zod_1.z.string(),
16
+ comment: exports.Comment,
17
+ });
18
+ exports.PullRequestActivity = zod_1.z.union([
19
+ zod_1.z.object({ action: zod_1.z.string() }),
20
+ exports.PullRequestCommentActivity,
21
+ ]);
9
22
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/platform/bitbucket-server/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE;CACzB,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\n\nexport const UserSchema = z.object({\n displayName: z.string(),\n emailAddress: z.string(),\n});\n"]}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/platform/bitbucket-server/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEX,QAAA,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC;IACjC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE;CACzB,CAAC,CAAC;AAEU,QAAA,OAAO,GAAG,OAAC,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;CACf,CAAC,CAAC;AAIU,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,MAAM,EAAE,OAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC9B,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE;IACzB,OAAO,EAAE,eAAO;CACjB,CAAC,CAAC;AAMU,QAAA,mBAAmB,GAAG,OAAC,CAAC,KAAK,CAAC;IACzC,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC;IAChC,kCAA0B;CAC3B,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\n\nexport const UserSchema = z.object({\n displayName: z.string(),\n emailAddress: z.string(),\n});\n\nexport const Comment = z.object({\n text: z.string(),\n id: z.number(),\n});\n\nexport type Comment = z.infer<typeof Comment>;\n\nexport const PullRequestCommentActivity = z.object({\n action: z.literal('COMMENTED'),\n commentAction: z.string(),\n comment: Comment,\n});\n\nexport type PullRequestCommentActivity = z.infer<\n typeof PullRequestCommentActivity\n>;\n\nexport const PullRequestActivity = z.union([\n z.object({ action: z.string() }),\n PullRequestCommentActivity,\n]);\n\nexport type PullRequestActivity = z.infer<typeof PullRequestActivity>;\n"]}
@@ -40,10 +40,11 @@ export interface BbsRestPr {
40
40
  }
41
41
  export interface BbsRestRepo {
42
42
  id: number;
43
+ slug: string;
43
44
  project: {
44
45
  key: string;
45
46
  };
46
- origin: {
47
+ origin?: {
47
48
  name: string;
48
49
  slug: string;
49
50
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/platform/bitbucket-server/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { HTTPError, Response } from 'got';\nimport type { Pr } from '../types';\n\nexport interface BbsConfig {\n bbUseDefaultReviewers: boolean;\n fileList: any[];\n mergeMethod: string;\n owner: string;\n prList: BbsPr[];\n projectKey: string;\n repository: string;\n repositorySlug: string;\n\n prVersions: Map<number, number>;\n ignorePrAuthor: boolean;\n username: string;\n}\n\nexport interface BbsPr extends Pr {\n version?: number;\n}\n\nexport type BbsRestPrState = 'DECLINED' | 'OPEN' | 'MERGED';\n\nexport interface BbsRestBranchRef {\n displayId: string;\n id: string;\n}\n\nexport interface BbsRestUser {\n name: string;\n}\n\nexport interface BbsRestUserRef {\n user: BbsRestUser;\n}\n\nexport interface BbsRestPr {\n createdDate: string;\n description: string;\n fromRef: BbsRestBranchRef;\n id: number;\n reviewers: BbsRestUserRef[];\n state: BbsRestPrState;\n title: string;\n toRef: BbsRestBranchRef;\n version?: number;\n}\n\nexport interface BbsRestRepo {\n id: number;\n project: { key: string };\n origin: { name: string; slug: string };\n links: {\n clone?: { href: string; name: string }[];\n };\n}\n\nexport interface BbsRestBranch {\n displayId: string;\n}\n\nexport interface BitbucketErrorResponse {\n errors?: {\n exceptionName?: string;\n reviewerErrors?: { context?: string }[];\n }[];\n}\n\nexport interface BitbucketError extends HTTPError {\n readonly response: Response<BitbucketErrorResponse>;\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/platform/bitbucket-server/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { HTTPError, Response } from 'got';\nimport type { Pr } from '../types';\n\nexport interface BbsConfig {\n bbUseDefaultReviewers: boolean;\n fileList: any[];\n mergeMethod: string;\n owner: string;\n prList: BbsPr[];\n projectKey: string;\n repository: string;\n repositorySlug: string;\n\n prVersions: Map<number, number>;\n ignorePrAuthor: boolean;\n username: string;\n}\n\nexport interface BbsPr extends Pr {\n version?: number;\n}\n\nexport type BbsRestPrState = 'DECLINED' | 'OPEN' | 'MERGED';\n\nexport interface BbsRestBranchRef {\n displayId: string;\n id: string;\n}\n\nexport interface BbsRestUser {\n name: string;\n}\n\nexport interface BbsRestUserRef {\n user: BbsRestUser;\n}\n\nexport interface BbsRestPr {\n createdDate: string;\n description: string;\n fromRef: BbsRestBranchRef;\n id: number;\n reviewers: BbsRestUserRef[];\n state: BbsRestPrState;\n title: string;\n toRef: BbsRestBranchRef;\n version?: number;\n}\n\nexport interface BbsRestRepo {\n id: number;\n slug: string;\n project: { key: string };\n origin?: { name: string; slug: string }; // only present in forks\n links: {\n clone?: { href: string; name: string }[];\n };\n}\n\nexport interface BbsRestBranch {\n displayId: string;\n}\n\nexport interface BitbucketErrorResponse {\n errors?: {\n exceptionName?: string;\n reviewerErrors?: { context?: string }[];\n }[];\n}\n\nexport interface BitbucketError extends HTTPError {\n readonly response: Response<BitbucketErrorResponse>;\n}\n"]}
@@ -1,11 +1,9 @@
1
1
  import type { HostRule } from '../../../types';
2
2
  import type { GitOptions } from '../../../types/git';
3
- import type { HttpOptions } from '../../../util/http/types';
4
3
  import type { GitUrlOption } from '../types';
5
4
  import type { BbsPr, BbsRestPr, BbsRestRepo, BitbucketError } from './types';
6
5
  export declare const BITBUCKET_INVALID_REVIEWERS_EXCEPTION = "com.atlassian.bitbucket.pull.InvalidPullRequestReviewersException";
7
6
  export declare function prInfo(pr: BbsRestPr): BbsPr;
8
- export declare function accumulateValues<T = any>(reqUrl: string, method?: string, options?: HttpOptions, limit?: number): Promise<T[]>;
9
7
  export interface BitbucketCommitStatus {
10
8
  failed: number;
11
9
  inProgress: number;
@@ -2,23 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BITBUCKET_INVALID_REVIEWERS_EXCEPTION = void 0;
4
4
  exports.prInfo = prInfo;
5
- exports.accumulateValues = accumulateValues;
6
5
  exports.isInvalidReviewersResponse = isInvalidReviewersResponse;
7
6
  exports.getInvalidReviewers = getInvalidReviewers;
8
7
  exports.getRepoGitUrl = getRepoGitUrl;
9
8
  exports.getExtraCloneOpts = getExtraCloneOpts;
10
9
  const tslib_1 = require("tslib");
11
10
  // SEE for the reference https://github.com/renovatebot/renovate/blob/c3e9e572b225085448d94aa121c7ec81c14d3955/lib/platform/bitbucket/utils.js
12
- const node_url_1 = tslib_1.__importStar(require("node:url"));
11
+ const node_url_1 = require("node:url");
13
12
  const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
14
13
  const error_messages_1 = require("../../../constants/error-messages");
15
14
  const logger_1 = require("../../../logger");
16
15
  const git = tslib_1.__importStar(require("../../../util/git"));
17
- const bitbucket_server_1 = require("../../../util/http/bitbucket-server");
18
16
  const url_1 = require("../../../util/url");
19
17
  const pr_body_1 = require("../pr-body");
20
18
  exports.BITBUCKET_INVALID_REVIEWERS_EXCEPTION = 'com.atlassian.bitbucket.pull.InvalidPullRequestReviewersException';
21
- const bitbucketServerHttp = new bitbucket_server_1.BitbucketServerHttp();
22
19
  // https://docs.atlassian.com/bitbucket-server/rest/6.0.0/bitbucket-rest.html#idp250
23
20
  const prStateMapping = {
24
21
  MERGED: 'merged',
@@ -37,53 +34,6 @@ function prInfo(pr) {
37
34
  createdAt: pr.createdDate,
38
35
  };
39
36
  }
40
- const addMaxLength = (inputUrl, limit = 100) => {
41
- const { search, ...parsedUrl } = node_url_1.default.parse(inputUrl, true);
42
- const maxedUrl = node_url_1.default.format({
43
- ...parsedUrl,
44
- query: { ...parsedUrl.query, limit },
45
- });
46
- return maxedUrl;
47
- };
48
- function callApi(apiUrl, method, options) {
49
- /* istanbul ignore next */
50
- switch (method.toLowerCase()) {
51
- case 'post':
52
- return bitbucketServerHttp.postJson(apiUrl, options);
53
- case 'put':
54
- return bitbucketServerHttp.putJson(apiUrl, options);
55
- case 'patch':
56
- return bitbucketServerHttp.patchJson(apiUrl, options);
57
- case 'head':
58
- return bitbucketServerHttp.headJson(apiUrl, options);
59
- case 'delete':
60
- return bitbucketServerHttp.deleteJson(apiUrl, options);
61
- case 'get':
62
- default:
63
- return bitbucketServerHttp.getJsonUnchecked(apiUrl, options);
64
- }
65
- }
66
- async function accumulateValues(reqUrl, method = 'get', options, limit) {
67
- let accumulator = [];
68
- let nextUrl = addMaxLength(reqUrl, limit);
69
- while (typeof nextUrl !== 'undefined') {
70
- // TODO: fix typing (#9610)
71
- const { body } = await callApi(nextUrl, method, options);
72
- accumulator = [...accumulator, ...body.values];
73
- if (body.isLastPage !== false) {
74
- break;
75
- }
76
- const { search, ...parsedUrl } = node_url_1.default.parse(nextUrl, true);
77
- nextUrl = node_url_1.default.format({
78
- ...parsedUrl,
79
- query: {
80
- ...parsedUrl.query,
81
- start: body.nextPageStart,
82
- },
83
- });
84
- }
85
- return accumulator;
86
- }
87
37
  function isInvalidReviewersResponse(err) {
88
38
  const errors = err?.response?.body?.errors ?? [];
89
39
  return (errors.length > 0 &&
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/modules/platform/bitbucket-server/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// SEE for the reference https://github.com/renovatebot/renovate/blob/c3e9e572b225085448d94aa121c7ec81c14d3955/lib/platform/bitbucket/utils.js\nimport url, { URL } from 'node:url';\nimport is from '@sindresorhus/is';\nimport { CONFIG_GIT_URL_UNAVAILABLE } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport type { HostRule } from '../../../types';\nimport type { GitOptions, GitProtocol } from '../../../types/git';\nimport * as git from '../../../util/git';\nimport { BitbucketServerHttp } from '../../../util/http/bitbucket-server';\nimport type { HttpOptions, HttpResponse } from '../../../util/http/types';\nimport { parseUrl } from '../../../util/url';\nimport { getPrBodyStruct } from '../pr-body';\nimport type { GitUrlOption } from '../types';\nimport type { BbsPr, BbsRestPr, BbsRestRepo, BitbucketError } from './types';\n\nexport const BITBUCKET_INVALID_REVIEWERS_EXCEPTION =\n 'com.atlassian.bitbucket.pull.InvalidPullRequestReviewersException';\n\nconst bitbucketServerHttp = new BitbucketServerHttp();\n\n// https://docs.atlassian.com/bitbucket-server/rest/6.0.0/bitbucket-rest.html#idp250\nconst prStateMapping: any = {\n MERGED: 'merged',\n DECLINED: 'closed',\n OPEN: 'open',\n};\n\nexport function prInfo(pr: BbsRestPr): BbsPr {\n return {\n version: pr.version,\n number: pr.id,\n bodyStruct: getPrBodyStruct(pr.description),\n sourceBranch: pr.fromRef.displayId,\n targetBranch: pr.toRef.displayId,\n title: pr.title,\n state: prStateMapping[pr.state],\n createdAt: pr.createdDate,\n };\n}\n\nconst addMaxLength = (inputUrl: string, limit = 100): string => {\n const { search, ...parsedUrl } = url.parse(inputUrl, true);\n const maxedUrl = url.format({\n ...parsedUrl,\n query: { ...parsedUrl.query, limit },\n });\n return maxedUrl;\n};\n\nfunction callApi<T>(\n apiUrl: string,\n method: string,\n options?: HttpOptions,\n): Promise<HttpResponse<T>> {\n /* istanbul ignore next */\n switch (method.toLowerCase()) {\n case 'post':\n return bitbucketServerHttp.postJson<T>(apiUrl, options);\n case 'put':\n return bitbucketServerHttp.putJson<T>(apiUrl, options);\n case 'patch':\n return bitbucketServerHttp.patchJson<T>(apiUrl, options);\n case 'head':\n return bitbucketServerHttp.headJson(apiUrl, options) as Promise<\n HttpResponse<T>\n >;\n case 'delete':\n return bitbucketServerHttp.deleteJson<T>(apiUrl, options);\n case 'get':\n default:\n return bitbucketServerHttp.getJsonUnchecked<T>(apiUrl, options);\n }\n}\n\nexport async function accumulateValues<T = any>(\n reqUrl: string,\n method = 'get',\n options?: HttpOptions,\n limit?: number,\n): Promise<T[]> {\n let accumulator: T[] = [];\n let nextUrl = addMaxLength(reqUrl, limit);\n\n while (typeof nextUrl !== 'undefined') {\n // TODO: fix typing (#9610)\n const { body } = await callApi<{\n values: T[];\n isLastPage: boolean;\n nextPageStart: string;\n }>(nextUrl, method, options);\n accumulator = [...accumulator, ...body.values];\n if (body.isLastPage !== false) {\n break;\n }\n\n const { search, ...parsedUrl } = url.parse(nextUrl, true);\n nextUrl = url.format({\n ...parsedUrl,\n query: {\n ...parsedUrl.query,\n start: body.nextPageStart,\n },\n });\n }\n\n return accumulator;\n}\n\nexport interface BitbucketCommitStatus {\n failed: number;\n inProgress: number;\n successful: number;\n}\n\nexport type BitbucketBranchState =\n | 'SUCCESSFUL'\n | 'FAILED'\n | 'INPROGRESS'\n | 'STOPPED';\n\nexport interface BitbucketStatus {\n key: string;\n state: BitbucketBranchState;\n}\n\nexport function isInvalidReviewersResponse(err: BitbucketError): boolean {\n const errors = err?.response?.body?.errors ?? [];\n return (\n errors.length > 0 &&\n errors.every(\n (error) => error.exceptionName === BITBUCKET_INVALID_REVIEWERS_EXCEPTION,\n )\n );\n}\n\nexport function getInvalidReviewers(err: BitbucketError): string[] {\n const errors = err?.response?.body?.errors ?? [];\n let invalidReviewers: string[] = [];\n for (const error of errors) {\n if (error.exceptionName === BITBUCKET_INVALID_REVIEWERS_EXCEPTION) {\n invalidReviewers = invalidReviewers.concat(\n error.reviewerErrors\n ?.map(({ context }) => context)\n .filter(is.nonEmptyString) ?? [],\n );\n }\n }\n\n return invalidReviewers;\n}\n\nfunction generateUrlFromEndpoint(\n defaultEndpoint: string,\n opts: HostRule,\n repository: string,\n): string {\n const url = new URL(defaultEndpoint);\n const generatedUrl = git.getUrl({\n protocol: url.protocol as GitProtocol,\n // TODO: types (#22198)\n auth: `${opts.username}:${opts.password}`,\n host: `${url.host}${url.pathname}${\n url.pathname.endsWith('/') ? '' : /* istanbul ignore next */ '/'\n }scm`,\n repository,\n });\n logger.debug(`Using generated endpoint URL: ${generatedUrl}`);\n return generatedUrl;\n}\n\nfunction injectAuth(url: string, opts: HostRule): string {\n const repoUrl = parseUrl(url)!;\n if (!repoUrl) {\n logger.debug(`Invalid url: ${url}`);\n throw new Error(CONFIG_GIT_URL_UNAVAILABLE);\n }\n if (!opts.token && opts.username && opts.password) {\n repoUrl.username = opts.username;\n repoUrl.password = opts.password;\n }\n return repoUrl.toString();\n}\n\nexport function getRepoGitUrl(\n repository: string,\n defaultEndpoint: string,\n gitUrl: GitUrlOption | undefined,\n info: BbsRestRepo,\n opts: HostRule,\n): string {\n if (gitUrl === 'ssh') {\n const sshUrl = info.links.clone?.find(({ name }) => name === 'ssh');\n if (sshUrl === undefined) {\n throw new Error(CONFIG_GIT_URL_UNAVAILABLE);\n }\n logger.debug(`Using ssh URL: ${sshUrl.href}`);\n return sshUrl.href;\n }\n let cloneUrl = info.links.clone?.find(({ name }) => name === 'http');\n if (cloneUrl) {\n // Inject auth into the API provided URL\n return injectAuth(cloneUrl.href, opts);\n }\n // Http access might be disabled, try to find ssh url in this case\n cloneUrl = info.links.clone?.find(({ name }) => name === 'ssh');\n if (gitUrl === 'endpoint' || !cloneUrl) {\n return generateUrlFromEndpoint(defaultEndpoint, opts, repository);\n }\n // SSH urls can be used directly\n return cloneUrl.href;\n}\n\nexport function getExtraCloneOpts(opts: HostRule): GitOptions {\n if (opts.token) {\n return {\n '-c': `http.extraheader=Authorization: Bearer ${opts.token}`,\n };\n }\n return {};\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/modules/platform/bitbucket-server/utils.ts"],"names":[],"mappings":";;;AAuBA,wBAWC;AAmBD,gEAQC;AAED,kDAcC;AAkCD,sCA2BC;AAED,8CAOC;;AAnJD,8IAA8I;AAC9I,uCAA+B;AAC/B,kEAAkC;AAClC,sEAA+E;AAC/E,4CAAyC;AAGzC,+DAAyC;AACzC,2CAA6C;AAC7C,wCAA6C;AAIhC,QAAA,qCAAqC,GAChD,mEAAmE,CAAC;AAEtE,oFAAoF;AACpF,MAAM,cAAc,GAAQ;IAC1B,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,SAAgB,MAAM,CAAC,EAAa;IAClC,OAAO;QACL,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,MAAM,EAAE,EAAE,CAAC,EAAE;QACb,UAAU,EAAE,IAAA,yBAAe,EAAC,EAAE,CAAC,WAAW,CAAC;QAC3C,YAAY,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS;QAClC,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS;QAChC,KAAK,EAAE,EAAE,CAAC,KAAK;QACf,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC;QAC/B,SAAS,EAAE,EAAE,CAAC,WAAW;KAC1B,CAAC;AACJ,CAAC;AAmBD,SAAgB,0BAA0B,CAAC,GAAmB;IAC5D,MAAM,MAAM,GAAG,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;IACjD,OAAO,CACL,MAAM,CAAC,MAAM,GAAG,CAAC;QACjB,MAAM,CAAC,KAAK,CACV,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,KAAK,6CAAqC,CACzE,CACF,CAAC;AACJ,CAAC;AAED,SAAgB,mBAAmB,CAAC,GAAmB;IACrD,MAAM,MAAM,GAAG,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;IACjD,IAAI,gBAAgB,GAAa,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,aAAa,KAAK,6CAAqC,EAAE,CAAC;YAClE,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CACxC,KAAK,CAAC,cAAc;gBAClB,EAAE,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC;iBAC9B,MAAM,CAAC,YAAE,CAAC,cAAc,CAAC,IAAI,EAAE,CACnC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,uBAAuB,CAC9B,eAAuB,EACvB,IAAc,EACd,UAAkB;IAElB,MAAM,GAAG,GAAG,IAAI,cAAG,CAAC,eAAe,CAAC,CAAC;IACrC,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC;QAC9B,QAAQ,EAAE,GAAG,CAAC,QAAuB;QACrC,uBAAuB;QACvB,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;QACzC,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,GAC9B,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,0BAA0B,CAAC,GAC/D,KAAK;QACL,UAAU;KACX,CAAC,CAAC;IACH,eAAM,CAAC,KAAK,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAC;IAC9D,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAE,IAAc;IAC7C,MAAM,OAAO,GAAG,IAAA,cAAQ,EAAC,GAAG,CAAE,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,2CAA0B,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClD,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACnC,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC5B,CAAC;AAED,SAAgB,aAAa,CAC3B,UAAkB,EAClB,eAAuB,EACvB,MAAgC,EAChC,IAAiB,EACjB,IAAc;IAEd,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;QACpE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,2CAA0B,CAAC,CAAC;QAC9C,CAAC;QACD,eAAM,CAAC,KAAK,CAAC,kBAAkB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACrE,IAAI,QAAQ,EAAE,CAAC;QACb,wCAAwC;QACxC,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,kEAAkE;IAClE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;IAChE,IAAI,MAAM,KAAK,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvC,OAAO,uBAAuB,CAAC,eAAe,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;IACpE,CAAC;IACD,gCAAgC;IAChC,OAAO,QAAQ,CAAC,IAAI,CAAC;AACvB,CAAC;AAED,SAAgB,iBAAiB,CAAC,IAAc;IAC9C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO;YACL,IAAI,EAAE,0CAA0C,IAAI,CAAC,KAAK,EAAE;SAC7D,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC","sourcesContent":["// SEE for the reference https://github.com/renovatebot/renovate/blob/c3e9e572b225085448d94aa121c7ec81c14d3955/lib/platform/bitbucket/utils.js\nimport { URL } from 'node:url';\nimport is from '@sindresorhus/is';\nimport { CONFIG_GIT_URL_UNAVAILABLE } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport type { HostRule } from '../../../types';\nimport type { GitOptions, GitProtocol } from '../../../types/git';\nimport * as git from '../../../util/git';\nimport { parseUrl } from '../../../util/url';\nimport { getPrBodyStruct } from '../pr-body';\nimport type { GitUrlOption } from '../types';\nimport type { BbsPr, BbsRestPr, BbsRestRepo, BitbucketError } from './types';\n\nexport const BITBUCKET_INVALID_REVIEWERS_EXCEPTION =\n 'com.atlassian.bitbucket.pull.InvalidPullRequestReviewersException';\n\n// https://docs.atlassian.com/bitbucket-server/rest/6.0.0/bitbucket-rest.html#idp250\nconst prStateMapping: any = {\n MERGED: 'merged',\n DECLINED: 'closed',\n OPEN: 'open',\n};\n\nexport function prInfo(pr: BbsRestPr): BbsPr {\n return {\n version: pr.version,\n number: pr.id,\n bodyStruct: getPrBodyStruct(pr.description),\n sourceBranch: pr.fromRef.displayId,\n targetBranch: pr.toRef.displayId,\n title: pr.title,\n state: prStateMapping[pr.state],\n createdAt: pr.createdDate,\n };\n}\n\nexport interface BitbucketCommitStatus {\n failed: number;\n inProgress: number;\n successful: number;\n}\n\nexport type BitbucketBranchState =\n | 'SUCCESSFUL'\n | 'FAILED'\n | 'INPROGRESS'\n | 'STOPPED';\n\nexport interface BitbucketStatus {\n key: string;\n state: BitbucketBranchState;\n}\n\nexport function isInvalidReviewersResponse(err: BitbucketError): boolean {\n const errors = err?.response?.body?.errors ?? [];\n return (\n errors.length > 0 &&\n errors.every(\n (error) => error.exceptionName === BITBUCKET_INVALID_REVIEWERS_EXCEPTION,\n )\n );\n}\n\nexport function getInvalidReviewers(err: BitbucketError): string[] {\n const errors = err?.response?.body?.errors ?? [];\n let invalidReviewers: string[] = [];\n for (const error of errors) {\n if (error.exceptionName === BITBUCKET_INVALID_REVIEWERS_EXCEPTION) {\n invalidReviewers = invalidReviewers.concat(\n error.reviewerErrors\n ?.map(({ context }) => context)\n .filter(is.nonEmptyString) ?? [],\n );\n }\n }\n\n return invalidReviewers;\n}\n\nfunction generateUrlFromEndpoint(\n defaultEndpoint: string,\n opts: HostRule,\n repository: string,\n): string {\n const url = new URL(defaultEndpoint);\n const generatedUrl = git.getUrl({\n protocol: url.protocol as GitProtocol,\n // TODO: types (#22198)\n auth: `${opts.username}:${opts.password}`,\n host: `${url.host}${url.pathname}${\n url.pathname.endsWith('/') ? '' : /* istanbul ignore next */ '/'\n }scm`,\n repository,\n });\n logger.debug(`Using generated endpoint URL: ${generatedUrl}`);\n return generatedUrl;\n}\n\nfunction injectAuth(url: string, opts: HostRule): string {\n const repoUrl = parseUrl(url)!;\n if (!repoUrl) {\n logger.debug(`Invalid url: ${url}`);\n throw new Error(CONFIG_GIT_URL_UNAVAILABLE);\n }\n if (!opts.token && opts.username && opts.password) {\n repoUrl.username = opts.username;\n repoUrl.password = opts.password;\n }\n return repoUrl.toString();\n}\n\nexport function getRepoGitUrl(\n repository: string,\n defaultEndpoint: string,\n gitUrl: GitUrlOption | undefined,\n info: BbsRestRepo,\n opts: HostRule,\n): string {\n if (gitUrl === 'ssh') {\n const sshUrl = info.links.clone?.find(({ name }) => name === 'ssh');\n if (sshUrl === undefined) {\n throw new Error(CONFIG_GIT_URL_UNAVAILABLE);\n }\n logger.debug(`Using ssh URL: ${sshUrl.href}`);\n return sshUrl.href;\n }\n let cloneUrl = info.links.clone?.find(({ name }) => name === 'http');\n if (cloneUrl) {\n // Inject auth into the API provided URL\n return injectAuth(cloneUrl.href, opts);\n }\n // Http access might be disabled, try to find ssh url in this case\n cloneUrl = info.links.clone?.find(({ name }) => name === 'ssh');\n if (gitUrl === 'endpoint' || !cloneUrl) {\n return generateUrlFromEndpoint(defaultEndpoint, opts, repository);\n }\n // SSH urls can be used directly\n return cloneUrl.href;\n}\n\nexport function getExtraCloneOpts(opts: HostRule): GitOptions {\n if (opts.token) {\n return {\n '-c': `http.extraheader=Authorization: Bearer ${opts.token}`,\n };\n }\n return {};\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "renovate",
3
3
  "description": "Automated dependency updates. Flexible so you don't need to be.",
4
- "version": "40.0.0-next.14",
4
+ "version": "40.0.0-next.15",
5
5
  "type": "commonjs",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -157,7 +157,7 @@
157
157
  "@opentelemetry/context-async-hooks": "1.30.1",
158
158
  "@opentelemetry/exporter-trace-otlp-http": "0.57.2",
159
159
  "@opentelemetry/instrumentation": "0.57.2",
160
- "@opentelemetry/instrumentation-bunyan": "0.45.0",
160
+ "@opentelemetry/instrumentation-bunyan": "0.45.1",
161
161
  "@opentelemetry/instrumentation-http": "0.57.2",
162
162
  "@opentelemetry/resources": "1.30.1",
163
163
  "@opentelemetry/sdk-trace-base": "1.30.1",
@@ -192,7 +192,7 @@
192
192
  "dequal": "2.0.3",
193
193
  "detect-indent": "6.1.0",
194
194
  "diff": "7.0.0",
195
- "editorconfig": "2.0.0",
195
+ "editorconfig": "2.0.1",
196
196
  "email-addresses": "5.0.0",
197
197
  "emoji-regex": "10.4.0",
198
198
  "emojibase": "16.0.0",