renovate 43.208.2 → 43.209.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -70,7 +70,7 @@ hashMap.set("maven", "2bf7b65d51718daf3eec4f30c0fc7f2f045f4f8f24862bebe17c2174ab
70
70
  hashMap.set("maven-wrapper", "976ed8a59cf43b0c765b1a49ebc5669478e78278cf48f4ce3d0deb49647d10e3");
71
71
  hashMap.set("meteor", "4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4");
72
72
  hashMap.set("mint", "b816a49c8525716454d0a2bc9127916d5b27e5cca7b2aa2030312f218942af3e");
73
- hashMap.set("mise", "15309bd4f868167cace7dc2d86d31b7641a0def85bd3ed2dd5a673cda431c2ee");
73
+ hashMap.set("mise", "d39d941e81e44ea6c3f78ced7869645a874949fefcd2fd2ba5b8091156b887d8");
74
74
  hashMap.set("mix", "a82c3d73372c2da723b467c29f0ad0bb1f85acb8cfb313a0aa734cc7ec2d46bf");
75
75
  hashMap.set("nix", "95f0827f7ec9a3bfd5119534f129aad6cf26b28e99d55aec0945f08bbfff9fb1");
76
76
  hashMap.set("nodenv", "ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8");
@@ -1 +1 @@
1
- {"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','1fbc76f78daa14a8c9ab1142e9d1e05c746c0419a9f1455e4279f476590d0c04');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('ant','2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','a599d9834f33a92e7c25753f933621f0b1b076ba8a068628a3f64e1dc545b739');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','49631e6572d4cf53b82d839ebae923b7e52be6fcacd28c5e99476497e3d0ec38');\nhashMap.set('bazelisk','49e6bd1fc8f03facd06e517dc64596833b90ee0a079a45cff78f0eeb3c3566f8');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','2df1756b14b3d690e5ad1295bc1e78d8a8d7b967a552fd7b8e3274866a5acf3e');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','cf7b07339eec46097c479fc5d9aa1c699d74b11954aea156eef7b893251b070d');\nhashMap.set('cake','65ad4f28c318675b9edb49dbd11d677f42c762b01b3f5a25dd3b2f345ecd387e');\nhashMap.set('cargo','23fcc425ccd3a50559210e0ab8c84c1d47cf5c617cd5d58afdcf258ab862bafa');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','08310c39254947632d42058f74f755e9d3f3019c2edeeaf52b5142917085e2df');\nhashMap.set('composer','e7d1bf044d838d1a294929a1fa730d80f159252405652cf87793c34a009aa02a');\nhashMap.set('conan','b846e8812d65d4201dc0bf7c1d5c344e3a1edaaff6441010875171028be2f0fb');\nhashMap.set('copier','b26904512023c7785e86ee57744f16b336a380ae80d2b85924bf7c30e3c6f1c5');\nhashMap.set('cpanfile','6a1d67d9c8751123deaf0c7f3ac38a07024e960c140f8228fcbcb93954fdca01');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deno','2d79ef509b7249a318e94e5dacd8e13a945f2b44007b9a17438a2c915b596120');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','ac472ae4897dc1df85326dbd89a8c3488579ae2b180014ffcf085ce422e19dbd');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f278912e');\nhashMap.set('flux','7cbca9a0e639dbfac830f05f8713f05435fedcda8ce8e9ff46a5dee16d64a438');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','475d08a1a75e5732dd6003f63bd98c91ce09e42229cdcd9d2d060c60ce474e49');\nhashMap.set('github-actions','30479622f3138996116d419485423d5a64843ae49ed50c5cd5e1e6d4e122944f');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','e7ee3392d1f900fc1299308c8e930db9288790c6d0b6c35f1a62e55683090d34');\nhashMap.set('gomod','f675e8c7bf83c00101d9725814927c69d04e5e347dc6b0346a7100892b1ea4c9');\nhashMap.set('gradle','1108234b4fcfebf95c453111f652ab75f5c6cc6c4472efb60b7bc29cbe683612');\nhashMap.set('gradle-wrapper','f85031e7feb4e811aa5f29c589a30f8076a078e5bbf366fb65fb28b5a47d2c44');\nhashMap.set('haskell-cabal','a4f01c22bdd453dd4610473d92946f7764ceb27624547325f5e21d294214811b');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','5bbc18bf059640191e2237408ca3b442556834e5c1c05d3317e82e7e097ae1f2');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','65603bcfc4b8b5a615bee4570206c301ced27a2031e17b8a3101321f6f995a89');\nhashMap.set('hermit','f30ba5fe8ee46997c1f3d15235e6ff64c96d7ce5e439ee99f8008580348fe0da');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','56ef90301143874355fd2ed25dff7c646875f701f97422d02e01d45608a88f31');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','f918a7f378dc207cadf291e7481006008c69623f690902ed921e1e33db270b78');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','c6ee547378d5c5619a0fe94be35f9838e0f006b4807a896e9caefefa20efacf7');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','2bf7b65d51718daf3eec4f30c0fc7f2f045f4f8f24862bebe17c2174abb606b9');\nhashMap.set('maven-wrapper','976ed8a59cf43b0c765b1a49ebc5669478e78278cf48f4ce3d0deb49647d10e3');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','b816a49c8525716454d0a2bc9127916d5b27e5cca7b2aa2030312f218942af3e');\nhashMap.set('mise','15309bd4f868167cace7dc2d86d31b7641a0def85bd3ed2dd5a673cda431c2ee');\nhashMap.set('mix','a82c3d73372c2da723b467c29f0ad0bb1f85acb8cfb313a0aa734cc7ec2d46bf');\nhashMap.set('nix','95f0827f7ec9a3bfd5119534f129aad6cf26b28e99d55aec0945f08bbfff9fb1');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','cdb387ad533db812e39e16d8679a2da2cf2983b23f7a348c7d55f07be9fa98fe');\nhashMap.set('nuget','da72ddc95788d80b81c0b539b1b54001ef0c782f790efdc6e73aafb235d1e5f8');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','0e0fa5337367a9d5b597a11258f07cf8991d197082735d8e17a7980b9c0062b9');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','c750b18e58134ca1f22e3338e331c8a53890763cb3d6bf5277a5c8a43adffd11');\nhashMap.set('pip_requirements','5ef648e398281294c79ec5dc56a868af904efddc536c9ce8d693a8425afd9677');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','1d0af710667f6dce377feae9aa238b21fe5e0e75e75758a70f5e9758c6cb6678');\nhashMap.set('pixi','7d183aaae4370a0c62496bbff60ad12fd4dd46822630541f712f437dcea021e1');\nhashMap.set('poetry','0211739556f8193c70fa69cbf66c60e688042fd7dc7a2fe08f9f328b35ad1f82');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('proto','412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843');\nhashMap.set('pub','82a922bad525bc8d878226918cbe711427fe7bb32cc3d655210dd0dbaf894637');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e355e13e104351a8b3516a8e272fc5f7e625c9f39b0c492ba27283a36227c2d4');\nhashMap.set('renovate-config','2a4e4fb671aed5d0c900b8d54c31bfef46ca36d0f4e16b00ff73377b9c09fb69');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('rust-toolchain','065ab64215fbeb4859e7e65f3268543ea37b7c384dd27c7a1e9acc4d0d44d8be');\nhashMap.set('sbt','74125bd9c76a5724092258cd1dee1ea99fc0d735b463a2b64fedc5d950efde2a');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','05b3158e88771ed4629e171592cf4f1bf0ff342f8aeae89be0b340c630cc6d8e');\nhashMap.set('swift','56cdc6fe4cd00519f953459f94323c71677f6bde007537eef891154fb8696db1');\nhashMap.set('tekton','fdc5b9b5edec2a90cda2f858f3ebc532aa8efb1187d1e0b7c89b07796e9cb6cd');\nhashMap.set('terraform','ab8e39dd081ba22b10cfd08246efd7a14f1fc8cff8503c254b23a98e835ddd74');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','142c3f0549c4152297615b5bbf3a78ba8f7ce6a0cebcea63b81e9815dca40494');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','4a975f0cc1aa22cd258aa835de3dc98d7a5c0d1cee0a1092324338968e08a827');\nhashMap.set('travis','bb482a0195cd009ec3896a6227bb95617f5c84bedb518c7d971e50c62235d9ca');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','dfd7b905577b362093ce72e6ee597308f97c83678ddb15d6455a1627969b8b7d');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','3b5f465b586993f92c8490e70885e7eecce9b6556bcc376dd9c11db8ee9e6960');\nhashMap.set('regex','dbe6889ea021a05127fed06226d73366fdada2ae577147a5c027996fd325416e');"],"mappings":"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"}
1
+ {"version":3,"file":"fingerprint.generated.js","names":[],"sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','1fbc76f78daa14a8c9ab1142e9d1e05c746c0419a9f1455e4279f476590d0c04');\nhashMap.set('ansible-galaxy','8226d47128f2018825d4d6f84794e3183eb79c706045fa7e88491edd5e64106f');\nhashMap.set('ant','2df5943cf0ed19a21b94df13729dbb925655548130caf37e3e22bebaed518e17');\nhashMap.set('argocd','5d35b1992e53130bf83b0e59a0f90ccd3a78919974c69044f306dc5d162f48ce');\nhashMap.set('asdf','a599d9834f33a92e7c25753f933621f0b1b076ba8a068628a3f64e1dc545b739');\nhashMap.set('azure-pipelines','4f635b0ecd388ee266d992e8281fd40e3db2f5867d86fc1cbce72dc33a66e796');\nhashMap.set('batect','fad98996bea8626525ab925f83a6ae0ce9262c53770e7aa7cb448a1e0f1ddf21');\nhashMap.set('batect-wrapper','d999355511ea7f4053325a18b8cfc8d2b586c61e6760c35e557d383a673e3939');\nhashMap.set('bazel','c6e0ad88ea468664c3a33263baf7452d83d2d37ff09ba920e18f64ee81fd0acb');\nhashMap.set('bazel-module','49631e6572d4cf53b82d839ebae923b7e52be6fcacd28c5e99476497e3d0ec38');\nhashMap.set('bazelisk','49e6bd1fc8f03facd06e517dc64596833b90ee0a079a45cff78f0eeb3c3566f8');\nhashMap.set('bicep','7246e0bfc06e0e28cbb03ac088c5591f648956b086e106aeb251fe5d628329db');\nhashMap.set('bitbucket-pipelines','59c0503494ab1442b127914503c01b97ac17b6742b19c632292d5aa24de115cd');\nhashMap.set('bitrise','478dfd316221fad7c29e177c70d1018d832fb2626b53308a5d0f1f0380e69f42');\nhashMap.set('buildkite','a93effb1f1c5d65b3277c3b4709924eacde282e8efd028a8e3d8c1ce3ef69407');\nhashMap.set('buildpacks','6bef3cb04d66b5cfbb195adb4829bcbccae6408518706744d291bacf0610421f');\nhashMap.set('bun','2df1756b14b3d690e5ad1295bc1e78d8a8d7b967a552fd7b8e3274866a5acf3e');\nhashMap.set('bun-version','df3ae8e4a5de1fa1b4544f3d7fc8117e80adb1e151c46d1ede54a4dbea6521e4');\nhashMap.set('bundler','cf7b07339eec46097c479fc5d9aa1c699d74b11954aea156eef7b893251b070d');\nhashMap.set('cake','65ad4f28c318675b9edb49dbd11d677f42c762b01b3f5a25dd3b2f345ecd387e');\nhashMap.set('cargo','23fcc425ccd3a50559210e0ab8c84c1d47cf5c617cd5d58afdcf258ab862bafa');\nhashMap.set('cdnurl','d3edf6cdc38e92eb43ff5a2b4e8df6a6a13154cf83244725c39e28d7e6ea9177');\nhashMap.set('circleci','91cbeb33ea20f9838e2c81a1195eb806f0b38fa282bc3679f62552f20575ca85');\nhashMap.set('cloudbuild','8c0c739f7e4082bbfe8e3fdffebaf43e26f70a1314d95b306e9b93e4f4297886');\nhashMap.set('cocoapods','08310c39254947632d42058f74f755e9d3f3019c2edeeaf52b5142917085e2df');\nhashMap.set('composer','e7d1bf044d838d1a294929a1fa730d80f159252405652cf87793c34a009aa02a');\nhashMap.set('conan','b846e8812d65d4201dc0bf7c1d5c344e3a1edaaff6441010875171028be2f0fb');\nhashMap.set('copier','b26904512023c7785e86ee57744f16b336a380ae80d2b85924bf7c30e3c6f1c5');\nhashMap.set('cpanfile','6a1d67d9c8751123deaf0c7f3ac38a07024e960c140f8228fcbcb93954fdca01');\nhashMap.set('crossplane','5c26b1201a1a51454ffb94d829e223a76a781569bf79cdb1e47087c30233ec40');\nhashMap.set('crow','eb9a5f9f95041855dded67bcce3dd54724f690995ed6268d272e8a666ff28fd0');\nhashMap.set('deno','2d79ef509b7249a318e94e5dacd8e13a945f2b44007b9a17438a2c915b596120');\nhashMap.set('deps-edn','c87dd5e88587147ad1a78f047b814f3c4aa60d6de30d0c49d849391eeaf1b64c');\nhashMap.set('devbox','ac472ae4897dc1df85326dbd89a8c3488579ae2b180014ffcf085ce422e19dbd');\nhashMap.set('devcontainer','24320ed1cb6191d04cb8b2707214d82c08c682597aed1d84f250aa00ad1632ec');\nhashMap.set('docker-compose','5441af5b5abf8d347e46002d47f02f85743401bda28232f49fb7b3bbb772a4fb');\nhashMap.set('dockerfile','322b95f7e55dd78d7fe71306a6f649479eca61c60d75bb10b23604a230dbdd08');\nhashMap.set('droneci','237c8de87b9bf653fb943b56e84e99c45f6d86ae27d86e599b3f3f99c35ba8ee');\nhashMap.set('fleet','d73d5d35f10df0599a561d9c8d25f3935350407d0e3bd3a1d1545295f278912e');\nhashMap.set('flux','7cbca9a0e639dbfac830f05f8713f05435fedcda8ce8e9ff46a5dee16d64a438');\nhashMap.set('fvm','9b161df0f14bc6e536368952adf373e343630097121a913cea60ee284027fb90');\nhashMap.set('git-submodules','475d08a1a75e5732dd6003f63bd98c91ce09e42229cdcd9d2d060c60ce474e49');\nhashMap.set('github-actions','30479622f3138996116d419485423d5a64843ae49ed50c5cd5e1e6d4e122944f');\nhashMap.set('gitlabci','0dec44dd398bfc5b3c19d0929bea2fef7f386c94acfd1b1d7bc2a31d81d96fd6');\nhashMap.set('gitlabci-include','354cfc4ea327c6d5cd5bee1f17763832efc7f5402e9fd22c579239fccb9c6dab');\nhashMap.set('glasskube','253d6db30bdec75ed5ab5d26f31d69bc07813ba10089a28da12c6a29eff4ec70');\nhashMap.set('gleam','e7ee3392d1f900fc1299308c8e930db9288790c6d0b6c35f1a62e55683090d34');\nhashMap.set('gomod','f675e8c7bf83c00101d9725814927c69d04e5e347dc6b0346a7100892b1ea4c9');\nhashMap.set('gradle','1108234b4fcfebf95c453111f652ab75f5c6cc6c4472efb60b7bc29cbe683612');\nhashMap.set('gradle-wrapper','f85031e7feb4e811aa5f29c589a30f8076a078e5bbf366fb65fb28b5a47d2c44');\nhashMap.set('haskell-cabal','a4f01c22bdd453dd4610473d92946f7764ceb27624547325f5e21d294214811b');\nhashMap.set('helm-requirements','4d90e5e18a380876ad48e21e1ad88ea62e25d973a1ddaa3763447fc0a9f9915b');\nhashMap.set('helm-values','b5c52c6a27d805557418c585c5d3030c95ee641d53057021f3fe060f81b6e1af');\nhashMap.set('helmfile','5bbc18bf059640191e2237408ca3b442556834e5c1c05d3317e82e7e097ae1f2');\nhashMap.set('helmsman','ef9680c612f702c7f07aea9b6e5d811e91214dcfa5755c9f3803e9528090935e');\nhashMap.set('helmv3','65603bcfc4b8b5a615bee4570206c301ced27a2031e17b8a3101321f6f995a89');\nhashMap.set('hermit','f30ba5fe8ee46997c1f3d15235e6ff64c96d7ce5e439ee99f8008580348fe0da');\nhashMap.set('homeassistant-manifest','05043c6db870cffbb6f8f3e351c025e3de227eaae0b24134b796aec46f84b65f');\nhashMap.set('homebrew','56ef90301143874355fd2ed25dff7c646875f701f97422d02e01d45608a88f31');\nhashMap.set('html','67c5f3c5c58e96f5dd257ba5987d900cf7fef81d667c3640e96c847b37de35a8');\nhashMap.set('jenkins','268ebfc8a1caf3edeb2192c2b1b2fa4bf18a78a3e731ba20a6c104940a5539f3');\nhashMap.set('jsonnet-bundler','f918a7f378dc207cadf291e7481006008c69623f690902ed921e1e33db270b78');\nhashMap.set('kotlin-script','99ef296792a0ca575ed31d3defb514b05a58083dc01c52ea0890c69d867ba1dd');\nhashMap.set('kubernetes','321e7d77fb3600dd4c00a86eaa1294927e7f92300b74fa2977d813dcaa3bb4de');\nhashMap.set('kustomize','c6ee547378d5c5619a0fe94be35f9838e0f006b4807a896e9caefefa20efacf7');\nhashMap.set('leiningen','133fca2c3423f53f2ccc22518153ddbcafbf0f4812376c77e952eb3d24d81f85');\nhashMap.set('maven','2bf7b65d51718daf3eec4f30c0fc7f2f045f4f8f24862bebe17c2174abb606b9');\nhashMap.set('maven-wrapper','976ed8a59cf43b0c765b1a49ebc5669478e78278cf48f4ce3d0deb49647d10e3');\nhashMap.set('meteor','4a93a326b27bedfe52118e27e06f39fecd7c55bd4cd7fccec4cb120cac14cec4');\nhashMap.set('mint','b816a49c8525716454d0a2bc9127916d5b27e5cca7b2aa2030312f218942af3e');\nhashMap.set('mise','d39d941e81e44ea6c3f78ced7869645a874949fefcd2fd2ba5b8091156b887d8');\nhashMap.set('mix','a82c3d73372c2da723b467c29f0ad0bb1f85acb8cfb313a0aa734cc7ec2d46bf');\nhashMap.set('nix','95f0827f7ec9a3bfd5119534f129aad6cf26b28e99d55aec0945f08bbfff9fb1');\nhashMap.set('nodenv','ac652c28481b001f7471f4183eac07b45d98ecbe83efc275830b0a1b2e0459b8');\nhashMap.set('npm','cdb387ad533db812e39e16d8679a2da2cf2983b23f7a348c7d55f07be9fa98fe');\nhashMap.set('nuget','da72ddc95788d80b81c0b539b1b54001ef0c782f790efdc6e73aafb235d1e5f8');\nhashMap.set('nvm','3eb77c7b0acf6d64753de78fad2499b352719853aa6872878c40675d14152322');\nhashMap.set('ocb','032b216684c14b0954e0bb019513a2aca3faaee5748587acb668d377d7c891ca');\nhashMap.set('osgi','32233a1a8a2725699d7448ba438e3d0b78141f7799cd2b588de278d41e26ed10');\nhashMap.set('pep621','0e0fa5337367a9d5b597a11258f07cf8991d197082735d8e17a7980b9c0062b9');\nhashMap.set('pep723','b96683163de63ed93207ec0538066705b1e58a1cd5b8bd11c63fc28b26bddba1');\nhashMap.set('pip-compile','c750b18e58134ca1f22e3338e331c8a53890763cb3d6bf5277a5c8a43adffd11');\nhashMap.set('pip_requirements','5ef648e398281294c79ec5dc56a868af904efddc536c9ce8d693a8425afd9677');\nhashMap.set('pip_setup','0175fe550c19d9bd31c978bd83fdc088cb40fcacd5d6751f640164274ae64e61');\nhashMap.set('pipenv','1d0af710667f6dce377feae9aa238b21fe5e0e75e75758a70f5e9758c6cb6678');\nhashMap.set('pixi','7d183aaae4370a0c62496bbff60ad12fd4dd46822630541f712f437dcea021e1');\nhashMap.set('poetry','0211739556f8193c70fa69cbf66c60e688042fd7dc7a2fe08f9f328b35ad1f82');\nhashMap.set('pre-commit','a6a6e847fdb0f56650e66ef7d69e68de752b390913f79ac31d1a7ec5955d03da');\nhashMap.set('proto','412053d4550026b4ace490b46e970915b87ec1abf0b0a0c6c8c58ccf1fc16843');\nhashMap.set('pub','82a922bad525bc8d878226918cbe711427fe7bb32cc3d655210dd0dbaf894637');\nhashMap.set('puppet','ba58ab689e44acc8f61c3569ab8b40fde01b8a9d3aad712708e2a419e57d8b45');\nhashMap.set('pyenv','9ede8becc97774f9040b40f4472d3e933534b596e04c360bfe0f3c6f95f25182');\nhashMap.set('quadlet','e355e13e104351a8b3516a8e272fc5f7e625c9f39b0c492ba27283a36227c2d4');\nhashMap.set('renovate-config','2a4e4fb671aed5d0c900b8d54c31bfef46ca36d0f4e16b00ff73377b9c09fb69');\nhashMap.set('ruby-version','2db2140d9eee8c555e729a4de0396fa2d78846d3149890ee12fa515bd654be97');\nhashMap.set('runtime-version','b582b168c0cc595e39010feb10f4b97a82683eb269e9598216fbb11cc186e160');\nhashMap.set('rust-toolchain','065ab64215fbeb4859e7e65f3268543ea37b7c384dd27c7a1e9acc4d0d44d8be');\nhashMap.set('sbt','74125bd9c76a5724092258cd1dee1ea99fc0d735b463a2b64fedc5d950efde2a');\nhashMap.set('scalafmt','9d36159b56835e96498af026a1fb0543200db0581681ef95ec54988f411e180f');\nhashMap.set('setup-cfg','7dea08c5708625e753bd56918bc214df7fb4d8543a26e936926a21ab43b5f785');\nhashMap.set('sveltos','05b3158e88771ed4629e171592cf4f1bf0ff342f8aeae89be0b340c630cc6d8e');\nhashMap.set('swift','56cdc6fe4cd00519f953459f94323c71677f6bde007537eef891154fb8696db1');\nhashMap.set('tekton','fdc5b9b5edec2a90cda2f858f3ebc532aa8efb1187d1e0b7c89b07796e9cb6cd');\nhashMap.set('terraform','ab8e39dd081ba22b10cfd08246efd7a14f1fc8cff8503c254b23a98e835ddd74');\nhashMap.set('terraform-version','ec8f786b9731d47f2c2fe0307caf64d7ddd83046fe7ff1f7d8423239f8b0f2aa');\nhashMap.set('terragrunt','142c3f0549c4152297615b5bbf3a78ba8f7ce6a0cebcea63b81e9815dca40494');\nhashMap.set('terragrunt-version','eea6087b33717d22ede2fc68c2f64df8390b75abe82110ed831a180648feb51d');\nhashMap.set('tflint-plugin','4a975f0cc1aa22cd258aa835de3dc98d7a5c0d1cee0a1092324338968e08a827');\nhashMap.set('travis','bb482a0195cd009ec3896a6227bb95617f5c84bedb518c7d971e50c62235d9ca');\nhashMap.set('typst','d080a79fbd961c6e21fcc505d544b7e0ff2126142acb1dcabdf6abbcd9339248');\nhashMap.set('unity3d','f13e25e115e3443f4e16cf31578acffa78fb1a5e23339680a92d8d6de6052920');\nhashMap.set('velaci','fda00ddb7cc23e9a37e0a8a253151df0a6930b4276d3e4f78cc54b9ac09af7de');\nhashMap.set('vendir','dfd7b905577b362093ce72e6ee597308f97c83678ddb15d6455a1627969b8b7d');\nhashMap.set('woodpecker','6110d3bec33aaeb3511d4bbfa896cec3c8e02fb04a6cff50c9ba81061c851045');\nhashMap.set('xcodegen','dad511d88a9ce1dbdde8b9731f3da7f2bdaa4ca8a083294ee58d56da62ab1683');\nhashMap.set('jsonata','3b5f465b586993f92c8490e70885e7eecce9b6556bcc376dd9c11db8ee9e6960');\nhashMap.set('regex','dbe6889ea021a05127fed06226d73366fdada2ae577147a5c027996fd325416e');"],"mappings":"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"}
@@ -19,16 +19,8 @@ async function extractPackageFile(content, packageFile) {
19
19
  const misefile = parseTomlFile(content, packageFile);
20
20
  if (!misefile) return null;
21
21
  const deps = [];
22
- for (const [name, toolData] of Object.entries(misefile.tools)) {
23
- const version = parseVersion(toolData);
24
- const { name: depName, options: optionsInName } = optionInToolNameRegex.exec(name.trim()).groups;
25
- const delimiterIndex = name.indexOf(":");
26
- const backend = depName.substring(0, delimiterIndex);
27
- const toolName = depName.substring(delimiterIndex + 1);
28
- const options = parseOptions(optionsInName, isNonEmptyObject(toolData) ? toolData : {});
29
- const dep = createDependency(depName, version, version === null ? null : getToolConfig(backend, toolName, version, options));
30
- deps.push(dep);
31
- }
22
+ for (const [name, toolData] of Object.entries(misefile.tools)) deps.push(extractToolEntry(name, toolData));
23
+ for (const taskData of Object.values(misefile.tasks)) for (const [name, toolData] of Object.entries(taskData.tools ?? {})) deps.push(extractToolEntry(name, toolData));
32
24
  if (!deps.length) return null;
33
25
  const result = { deps };
34
26
  const lockFileName = getLockFileName(packageFile);
@@ -106,6 +98,15 @@ function getConfigFromTooling(toolingSource, name, version) {
106
98
  if (!toolDefinition) return null;
107
99
  return (isFunction(toolDefinition.config) ? toolDefinition.config(version) : toolDefinition.config) ?? null;
108
100
  }
101
+ function extractToolEntry(name, toolData) {
102
+ const version = parseVersion(toolData);
103
+ const { name: depName, options: optionsInName } = optionInToolNameRegex.exec(name.trim()).groups;
104
+ const delimiterIndex = depName.indexOf(":");
105
+ const backend = depName.substring(0, delimiterIndex);
106
+ const toolName = depName.substring(delimiterIndex + 1);
107
+ const options = parseOptions(optionsInName, isNonEmptyObject(toolData) ? toolData : {});
108
+ return createDependency(depName, version, version === null ? null : getToolConfig(backend, toolName, version, options));
109
+ }
109
110
  function createDependency(name, version, config) {
110
111
  if (version === null) return {
111
112
  depName: name,
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","names":[],"sources":["../../../../lib/modules/manager/mise/extract.ts"],"sourcesContent":["import {\n isArray,\n isFunction,\n isNonEmptyObject,\n isNonEmptyString,\n isObject,\n isString,\n} from '@sindresorhus/is';\nimport { logger } from '../../../logger/index.ts';\nimport { readLocalFile } from '../../../util/fs/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport type { StaticTooling } from '../asdf/upgradeable-tooling.ts';\nimport type { PackageDependency, PackageFileContent } from '../types.ts';\nimport type { BackendToolingConfig } from './backends.ts';\nimport {\n createAquaToolConfig,\n createCargoToolConfig,\n createDotnetToolConfig,\n createGemToolConfig,\n createGithubToolConfig,\n createGoToolConfig,\n createNpmToolConfig,\n createPipxToolConfig,\n createSpmToolConfig,\n createUbiToolConfig,\n} from './backends.ts';\nimport { getLockFileName, getLockedVersion } from './lockfile.ts';\nimport type { MiseTool, MiseToolOptions } from './schema.ts';\nimport { MiseLockFile } from './schema.ts';\nimport type { ToolingDefinition } from './upgradeable-tooling.ts';\nimport {\n asdfTooling,\n getOrderedMiseRegistryBackends,\n miseTooling,\n} from './upgradeable-tooling.ts';\nimport { parseTomlFile } from './utils.ts';\n\n// Tool names can have options in the tool name\n// e.g. ubi:tamasfe/taplo[matching=full,exe=taplo]\nconst optionInToolNameRegex = regEx(/^(?<name>.+?)(?:\\[(?<options>.+)\\])?$/);\n\n/**\n * Extracts mise tool dependencies from a mise configuration file.\n * Supports various backends (core, asdf, aqua, cargo, etc.) and\n * extracts locked versions when a corresponding lock file exists.\n */\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n): Promise<PackageFileContent | null> {\n logger.trace(`mise.extractPackageFile(${packageFile})`);\n\n const misefile = parseTomlFile(content, packageFile);\n if (!misefile) {\n return null;\n }\n\n const deps: PackageDependency[] = [];\n\n for (const [name, toolData] of Object.entries(misefile.tools)) {\n const version = parseVersion(toolData);\n // Parse the tool options in the tool name\n const { name: depName, options: optionsInName } =\n optionInToolNameRegex.exec(name.trim())!.groups!;\n const delimiterIndex = name.indexOf(':');\n const backend = depName.substring(0, delimiterIndex);\n const toolName = depName.substring(delimiterIndex + 1);\n const options = parseOptions(\n optionsInName,\n isNonEmptyObject(toolData) ? toolData : {},\n );\n const toolConfig =\n version === null\n ? null\n : getToolConfig(backend, toolName, version, options);\n const dep = createDependency(depName, version, toolConfig);\n deps.push(dep);\n }\n\n if (!deps.length) {\n return null;\n }\n\n const result: PackageFileContent = { deps };\n\n const lockFileName = getLockFileName(packageFile);\n const lockFileContent = await readLocalFile(lockFileName, 'utf8');\n\n if (lockFileContent) {\n const lockFileParsed = MiseLockFile.safeParse(lockFileContent);\n if (lockFileParsed.success) {\n result.lockFiles = [lockFileName];\n for (const dep of deps) {\n const lockedVersion = getLockedVersion(\n lockFileParsed.data,\n dep.depName!,\n );\n if (lockedVersion) {\n dep.lockedVersion = lockedVersion;\n }\n }\n } else {\n logger.debug(\n { lockFileName, error: lockFileParsed.error },\n 'Failed to parse mise lock file',\n );\n }\n }\n\n return result;\n}\n\nfunction parseVersion(toolData: MiseTool): string | null {\n if (isNonEmptyString(toolData)) {\n // Handle the string case\n // e.g. 'erlang = \"23.3\"'\n return toolData;\n }\n if (isArray(toolData, isString)) {\n // Handle the array case\n // e.g. 'erlang = [\"23.3\", \"24.0\"]'\n return toolData.length ? toolData[0] : null; // Get the first version in the array\n }\n if (isObject(toolData) && isNonEmptyString(toolData.version)) {\n // Handle the object case with a string version\n // e.g. 'python = { version = \"3.11.2\" }'\n return toolData.version;\n }\n return null; // Return null if no version is found\n}\n\nfunction parseOptions(\n optionsInName: string,\n toolOptions: MiseToolOptions,\n): MiseToolOptions {\n const options = isNonEmptyString(optionsInName)\n ? Object.fromEntries(\n optionsInName.split(',').map((option) => option.split('=', 2)),\n )\n : {};\n // Options in toolOptions will override options in the tool name\n return {\n ...options,\n ...toolOptions,\n };\n}\n\nfunction getToolConfig(\n backend: string,\n toolName: string,\n version: string,\n toolOptions: MiseToolOptions,\n): StaticTooling | BackendToolingConfig | null {\n switch (backend) {\n case '': {\n // If the tool name does not specify a backend, it should be a short name or an alias defined by users\n const staticResult = getRegistryToolConfig(toolName, version);\n if (staticResult) {\n return staticResult;\n }\n\n // Otherwise, see if we have any known short tool names that are in the `mise-registry.json` data file\n const backends = getOrderedMiseRegistryBackends(toolName);\n\n // prioritise the github backend as the best source for data\n if (backends.github) {\n const result = getToolConfig(\n 'github',\n backends.github,\n version,\n toolOptions,\n );\n // v8 ignore else -- TODO: add test #40625\n if (result !== null) {\n return result;\n }\n }\n\n for (const [backendType, backendName] of Object.entries(backends)) {\n const result = getToolConfig(\n backendType,\n backendName,\n version,\n toolOptions,\n );\n // v8 ignore else -- TODO: add test #40625\n if (result !== null) {\n return result;\n }\n }\n return null;\n }\n // We can specify core, asdf, vfox, aqua backends for tools in the default registry\n // e.g. 'core:rust', 'asdf:rust', 'vfox:clang', 'aqua:act'\n case 'core':\n return getConfigFromTooling(miseTooling, toolName, version);\n case 'asdf':\n return getConfigFromTooling(asdfTooling, toolName, version);\n case 'vfox':\n return getRegistryToolConfig(toolName, version);\n case 'aqua':\n return (\n getRegistryToolConfig(toolName, version) ??\n createAquaToolConfig(toolName, version)\n );\n case 'cargo':\n return createCargoToolConfig(toolName, version);\n case 'dotnet':\n return createDotnetToolConfig(toolName);\n case 'gem':\n return createGemToolConfig(toolName);\n case 'github':\n return createGithubToolConfig(toolName, version, toolOptions);\n case 'go':\n return createGoToolConfig(toolName);\n case 'npm':\n return createNpmToolConfig(toolName);\n case 'pipx':\n return createPipxToolConfig(toolName);\n case 'spm':\n return createSpmToolConfig(toolName);\n case 'ubi':\n return createUbiToolConfig(toolName, version, toolOptions);\n default:\n // Unsupported backend\n return null;\n }\n}\n\n/**\n * Get the tooling config for a short name defined in the default registry\n * @link https://mise.jdx.dev/registry.html\n */\nfunction getRegistryToolConfig(\n short: string,\n version: string,\n): StaticTooling | null {\n // Try to get the config from miseTooling first, then asdfTooling\n return (\n getConfigFromTooling(miseTooling, short, version) ??\n getConfigFromTooling(asdfTooling, short, version)\n );\n}\n\nfunction getConfigFromTooling(\n toolingSource: Record<string, ToolingDefinition>,\n name: string,\n version: string,\n): StaticTooling | null {\n const toolDefinition = toolingSource[name];\n if (!toolDefinition) {\n return null;\n } // Return null if no toolDefinition is found\n\n return (\n (isFunction(toolDefinition.config)\n ? toolDefinition.config(version)\n : toolDefinition.config) ?? null\n ); // Ensure null is returned instead of undefined\n}\n\nfunction createDependency(\n name: string,\n version: string | null,\n config: StaticTooling | BackendToolingConfig | null,\n): PackageDependency {\n if (version === null) {\n return {\n depName: name,\n skipReason: 'unspecified-version',\n };\n }\n if (config === null) {\n return {\n depName: name,\n skipReason: 'unsupported-datasource',\n };\n }\n\n return {\n depName: name,\n currentValue: version,\n // Spread the config last to override other properties\n ...config,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"extract.js","names":[],"sources":["../../../../lib/modules/manager/mise/extract.ts"],"sourcesContent":["import {\n isArray,\n isFunction,\n isNonEmptyObject,\n isNonEmptyString,\n isObject,\n isString,\n} from '@sindresorhus/is';\nimport { logger } from '../../../logger/index.ts';\nimport { readLocalFile } from '../../../util/fs/index.ts';\nimport { regEx } from '../../../util/regex.ts';\nimport type { StaticTooling } from '../asdf/upgradeable-tooling.ts';\nimport type { PackageDependency, PackageFileContent } from '../types.ts';\nimport type { BackendToolingConfig } from './backends.ts';\nimport {\n createAquaToolConfig,\n createCargoToolConfig,\n createDotnetToolConfig,\n createGemToolConfig,\n createGithubToolConfig,\n createGoToolConfig,\n createNpmToolConfig,\n createPipxToolConfig,\n createSpmToolConfig,\n createUbiToolConfig,\n} from './backends.ts';\nimport { getLockFileName, getLockedVersion } from './lockfile.ts';\nimport type { MiseTool, MiseToolOptions } from './schema.ts';\nimport { MiseLockFile } from './schema.ts';\nimport type { ToolingDefinition } from './upgradeable-tooling.ts';\nimport {\n asdfTooling,\n getOrderedMiseRegistryBackends,\n miseTooling,\n} from './upgradeable-tooling.ts';\nimport { parseTomlFile } from './utils.ts';\n\n// Tool names can have options in the tool name\n// e.g. ubi:tamasfe/taplo[matching=full,exe=taplo]\nconst optionInToolNameRegex = regEx(/^(?<name>.+?)(?:\\[(?<options>.+)\\])?$/);\n\n/**\n * Extracts mise tool dependencies from a mise configuration file.\n * Supports various backends (core, asdf, aqua, cargo, etc.) and\n * extracts locked versions when a corresponding lock file exists.\n */\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n): Promise<PackageFileContent | null> {\n logger.trace(`mise.extractPackageFile(${packageFile})`);\n\n const misefile = parseTomlFile(content, packageFile);\n if (!misefile) {\n return null;\n }\n\n const deps: PackageDependency[] = [];\n\n for (const [name, toolData] of Object.entries(misefile.tools)) {\n deps.push(extractToolEntry(name, toolData));\n }\n\n for (const taskData of Object.values(misefile.tasks)) {\n for (const [name, toolData] of Object.entries(taskData.tools ?? {})) {\n deps.push(extractToolEntry(name, toolData));\n }\n }\n\n if (!deps.length) {\n return null;\n }\n\n const result: PackageFileContent = { deps };\n\n const lockFileName = getLockFileName(packageFile);\n const lockFileContent = await readLocalFile(lockFileName, 'utf8');\n\n if (lockFileContent) {\n const lockFileParsed = MiseLockFile.safeParse(lockFileContent);\n if (lockFileParsed.success) {\n result.lockFiles = [lockFileName];\n for (const dep of deps) {\n const lockedVersion = getLockedVersion(\n lockFileParsed.data,\n dep.depName!,\n );\n if (lockedVersion) {\n dep.lockedVersion = lockedVersion;\n }\n }\n } else {\n logger.debug(\n { lockFileName, error: lockFileParsed.error },\n 'Failed to parse mise lock file',\n );\n }\n }\n\n return result;\n}\n\nfunction parseVersion(toolData: MiseTool): string | null {\n if (isNonEmptyString(toolData)) {\n // Handle the string case\n // e.g. 'erlang = \"23.3\"'\n return toolData;\n }\n if (isArray(toolData, isString)) {\n // Handle the array case\n // e.g. 'erlang = [\"23.3\", \"24.0\"]'\n return toolData.length ? toolData[0] : null; // Get the first version in the array\n }\n if (isObject(toolData) && isNonEmptyString(toolData.version)) {\n // Handle the object case with a string version\n // e.g. 'python = { version = \"3.11.2\" }'\n return toolData.version;\n }\n return null; // Return null if no version is found\n}\n\nfunction parseOptions(\n optionsInName: string,\n toolOptions: MiseToolOptions,\n): MiseToolOptions {\n const options = isNonEmptyString(optionsInName)\n ? Object.fromEntries(\n optionsInName.split(',').map((option) => option.split('=', 2)),\n )\n : {};\n // Options in toolOptions will override options in the tool name\n return {\n ...options,\n ...toolOptions,\n };\n}\n\nfunction getToolConfig(\n backend: string,\n toolName: string,\n version: string,\n toolOptions: MiseToolOptions,\n): StaticTooling | BackendToolingConfig | null {\n switch (backend) {\n case '': {\n // If the tool name does not specify a backend, it should be a short name or an alias defined by users\n const staticResult = getRegistryToolConfig(toolName, version);\n if (staticResult) {\n return staticResult;\n }\n\n // Otherwise, see if we have any known short tool names that are in the `mise-registry.json` data file\n const backends = getOrderedMiseRegistryBackends(toolName);\n\n // prioritise the github backend as the best source for data\n if (backends.github) {\n const result = getToolConfig(\n 'github',\n backends.github,\n version,\n toolOptions,\n );\n // v8 ignore else -- TODO: add test #40625\n if (result !== null) {\n return result;\n }\n }\n\n for (const [backendType, backendName] of Object.entries(backends)) {\n const result = getToolConfig(\n backendType,\n backendName,\n version,\n toolOptions,\n );\n // v8 ignore else -- TODO: add test #40625\n if (result !== null) {\n return result;\n }\n }\n return null;\n }\n // We can specify core, asdf, vfox, aqua backends for tools in the default registry\n // e.g. 'core:rust', 'asdf:rust', 'vfox:clang', 'aqua:act'\n case 'core':\n return getConfigFromTooling(miseTooling, toolName, version);\n case 'asdf':\n return getConfigFromTooling(asdfTooling, toolName, version);\n case 'vfox':\n return getRegistryToolConfig(toolName, version);\n case 'aqua':\n return (\n getRegistryToolConfig(toolName, version) ??\n createAquaToolConfig(toolName, version)\n );\n case 'cargo':\n return createCargoToolConfig(toolName, version);\n case 'dotnet':\n return createDotnetToolConfig(toolName);\n case 'gem':\n return createGemToolConfig(toolName);\n case 'github':\n return createGithubToolConfig(toolName, version, toolOptions);\n case 'go':\n return createGoToolConfig(toolName);\n case 'npm':\n return createNpmToolConfig(toolName);\n case 'pipx':\n return createPipxToolConfig(toolName);\n case 'spm':\n return createSpmToolConfig(toolName);\n case 'ubi':\n return createUbiToolConfig(toolName, version, toolOptions);\n default:\n // Unsupported backend\n return null;\n }\n}\n\n/**\n * Get the tooling config for a short name defined in the default registry\n * @link https://mise.jdx.dev/registry.html\n */\nfunction getRegistryToolConfig(\n short: string,\n version: string,\n): StaticTooling | null {\n // Try to get the config from miseTooling first, then asdfTooling\n return (\n getConfigFromTooling(miseTooling, short, version) ??\n getConfigFromTooling(asdfTooling, short, version)\n );\n}\n\nfunction getConfigFromTooling(\n toolingSource: Record<string, ToolingDefinition>,\n name: string,\n version: string,\n): StaticTooling | null {\n const toolDefinition = toolingSource[name];\n if (!toolDefinition) {\n return null;\n } // Return null if no toolDefinition is found\n\n return (\n (isFunction(toolDefinition.config)\n ? toolDefinition.config(version)\n : toolDefinition.config) ?? null\n ); // Ensure null is returned instead of undefined\n}\n\nfunction extractToolEntry(name: string, toolData: MiseTool): PackageDependency {\n const version = parseVersion(toolData);\n const { name: depName, options: optionsInName } = optionInToolNameRegex.exec(\n name.trim(),\n )!.groups!;\n const delimiterIndex = depName.indexOf(':');\n const backend = depName.substring(0, delimiterIndex);\n const toolName = depName.substring(delimiterIndex + 1);\n const options = parseOptions(\n optionsInName,\n isNonEmptyObject(toolData) ? toolData : {},\n );\n const toolConfig =\n version === null\n ? null\n : getToolConfig(backend, toolName, version, options);\n return createDependency(depName, version, toolConfig);\n}\n\nfunction createDependency(\n name: string,\n version: string | null,\n config: StaticTooling | BackendToolingConfig | null,\n): PackageDependency {\n if (version === null) {\n return {\n depName: name,\n skipReason: 'unspecified-version',\n };\n }\n if (config === null) {\n return {\n depName: name,\n skipReason: 'unsupported-datasource',\n };\n }\n\n return {\n depName: name,\n currentValue: version,\n // Spread the config last to override other properties\n ...config,\n };\n}\n"],"mappings":"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"}
@@ -14,7 +14,11 @@ const MiseTool = z.union([
14
14
  MiseToolOptions.extend({ version: z.string().optional() }),
15
15
  z.array(z.string())
16
16
  ]);
17
- const MiseFile = Toml.pipe(z.object({ tools: z.record(z.string(), MiseTool).default({}) }));
17
+ const MiseTask = z.object({ tools: z.record(z.string(), MiseTool).optional() }).passthrough().catch({});
18
+ const MiseFile = Toml.pipe(z.object({
19
+ tools: z.record(z.string(), MiseTool).default({}),
20
+ tasks: z.record(z.string(), MiseTask).default({})
21
+ }));
18
22
  const MiseLockTool = z.object({
19
23
  version: z.string(),
20
24
  backend: z.string().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/manager/mise/schema.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { Toml } from '../../../util/schema-utils/index.ts';\n\nexport const MiseRegistryJson = z.object({\n meta: z.object({\n version: z.string(),\n }),\n tools: z.record(z.string(), z.record(z.string(), z.string())),\n});\n\nconst MiseToolOptions = z.object({\n // ubi backend only\n tag_regex: z.string().optional(),\n // github backend only\n version_prefix: z.string().optional(),\n});\nexport type MiseToolOptions = z.infer<typeof MiseToolOptions>;\n\nconst MiseTool = z.union([\n z.string(),\n MiseToolOptions.extend({\n version: z.string().optional(),\n }),\n z.array(z.string()),\n]);\nexport type MiseTool = z.infer<typeof MiseTool>;\n\nexport const MiseFile = Toml.pipe(\n z.object({\n tools: z.record(z.string(), MiseTool).default({}),\n }),\n);\nexport type MiseFile = z.infer<typeof MiseFile>;\n\nconst MiseLockTool = z.object({\n version: z.string(),\n backend: z.string().optional(),\n options: z.record(z.string(), z.string()).optional(),\n platforms: z\n .record(\n z.string(),\n z.object({\n checksum: z.string().optional(),\n size: z.number().optional(),\n url: z.string().optional(),\n }),\n )\n .optional(),\n});\n\nexport const MiseLockFile = Toml.pipe(\n z.object({\n tools: z.record(z.string(), z.array(MiseLockTool)),\n }),\n);\nexport type MiseLockFile = z.infer<typeof MiseLockFile>;\n"],"mappings":";;;AAGA,MAAa,mBAAmB,EAAE,OAAO;CACvC,MAAM,EAAE,OAAO,EACb,SAAS,EAAE,OAAO,EACpB,CAAC;CACD,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,kBAAkB,EAAE,OAAO;CAE/B,WAAW,EAAE,OAAO,EAAE,SAAS;CAE/B,gBAAgB,EAAE,OAAO,EAAE,SAAS;AACtC,CAAC;AAGD,MAAM,WAAW,EAAE,MAAM;CACvB,EAAE,OAAO;CACT,gBAAgB,OAAO,EACrB,SAAS,EAAE,OAAO,EAAE,SAAS,EAC/B,CAAC;CACD,EAAE,MAAM,EAAE,OAAO,CAAC;AACpB,CAAC;AAGD,MAAa,WAAW,KAAK,KAC3B,EAAE,OAAO,EACP,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAClD,CAAC,CACH;AAGA,MAAM,eAAe,EAAE,OAAO;CAC5B,SAAS,EAAE,OAAO;CAClB,SAAS,EAAE,OAAO,EAAE,SAAS;CAC7B,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,SAAS;CACnD,WAAW,EACR,OACC,EAAE,OAAO,GACT,EAAE,OAAO;EACP,UAAU,EAAE,OAAO,EAAE,SAAS;EAC9B,MAAM,EAAE,OAAO,EAAE,SAAS;EAC1B,KAAK,EAAE,OAAO,EAAE,SAAS;CAC3B,CAAC,CACH,EACC,SAAS;AACd,CAAC;AAED,MAAa,eAAe,KAAK,KAC/B,EAAE,OAAO,EACP,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,MAAM,YAAY,CAAC,EACnD,CAAC,CACH"}
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/manager/mise/schema.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { Toml } from '../../../util/schema-utils/index.ts';\n\nexport const MiseRegistryJson = z.object({\n meta: z.object({\n version: z.string(),\n }),\n tools: z.record(z.string(), z.record(z.string(), z.string())),\n});\n\nconst MiseToolOptions = z.object({\n // ubi backend only\n tag_regex: z.string().optional(),\n // github backend only\n version_prefix: z.string().optional(),\n});\nexport type MiseToolOptions = z.infer<typeof MiseToolOptions>;\n\nconst MiseTool = z.union([\n z.string(),\n MiseToolOptions.extend({\n version: z.string().optional(),\n }),\n z.array(z.string()),\n]);\nexport type MiseTool = z.infer<typeof MiseTool>;\n\nconst MiseTask = z\n .object({\n tools: z.record(z.string(), MiseTool).optional(),\n })\n .passthrough()\n .catch({});\n\nexport const MiseFile = Toml.pipe(\n z.object({\n tools: z.record(z.string(), MiseTool).default({}),\n tasks: z.record(z.string(), MiseTask).default({}),\n }),\n);\nexport type MiseFile = z.infer<typeof MiseFile>;\n\nconst MiseLockTool = z.object({\n version: z.string(),\n backend: z.string().optional(),\n options: z.record(z.string(), z.string()).optional(),\n platforms: z\n .record(\n z.string(),\n z.object({\n checksum: z.string().optional(),\n size: z.number().optional(),\n url: z.string().optional(),\n }),\n )\n .optional(),\n});\n\nexport const MiseLockFile = Toml.pipe(\n z.object({\n tools: z.record(z.string(), z.array(MiseLockTool)),\n }),\n);\nexport type MiseLockFile = z.infer<typeof MiseLockFile>;\n"],"mappings":";;;AAGA,MAAa,mBAAmB,EAAE,OAAO;CACvC,MAAM,EAAE,OAAO,EACb,SAAS,EAAE,OAAO,EACpB,CAAC;CACD,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,kBAAkB,EAAE,OAAO;CAE/B,WAAW,EAAE,OAAO,EAAE,SAAS;CAE/B,gBAAgB,EAAE,OAAO,EAAE,SAAS;AACtC,CAAC;AAGD,MAAM,WAAW,EAAE,MAAM;CACvB,EAAE,OAAO;CACT,gBAAgB,OAAO,EACrB,SAAS,EAAE,OAAO,EAAE,SAAS,EAC/B,CAAC;CACD,EAAE,MAAM,EAAE,OAAO,CAAC;AACpB,CAAC;AAGD,MAAM,WAAW,EACd,OAAO,EACN,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,EAAE,SAAS,EACjD,CAAC,EACA,YAAY,EACZ,MAAM,CAAC,CAAC;AAEX,MAAa,WAAW,KAAK,KAC3B,EAAE,OAAO;CACP,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,EAAE,QAAQ,CAAC,CAAC;CAChD,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC,CACH;AAGA,MAAM,eAAe,EAAE,OAAO;CAC5B,SAAS,EAAE,OAAO;CAClB,SAAS,EAAE,OAAO,EAAE,SAAS;CAC7B,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,EAAE,SAAS;CACnD,WAAW,EACR,OACC,EAAE,OAAO,GACT,EAAE,OAAO;EACP,UAAU,EAAE,OAAO,EAAE,SAAS;EAC9B,MAAM,EAAE,OAAO,EAAE,SAAS;EAC1B,KAAK,EAAE,OAAO,EAAE,SAAS;CAC3B,CAAC,CACH,EACC,SAAS;AACd,CAAC;AAED,MAAa,eAAe,KAAK,KAC/B,EAAE,OAAO,EACP,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,MAAM,YAAY,CAAC,EACnD,CAAC,CACH"}
@@ -1,172 +1,175 @@
1
1
  import { EXTERNAL_HOST_ERROR, MISSING_API_CREDENTIALS, REPOSITORY_CLOSED_ONBOARDING, REPOSITORY_DISABLED, REPOSITORY_DISABLED_BY_CONFIG, REPOSITORY_NO_CONFIG, SYSTEM_INSUFFICIENT_DISK_SPACE, TEMPORARY_ERROR, UNKNOWN_ERROR } from "../../constants/error-messages.js";
2
2
  import { logger } from "../../logger/index.js";
3
3
  import { ExternalHostError } from "../../types/errors/external-host-error.js";
4
+ import { instrument } from "../../instrumentation/index.js";
4
5
  import { raiseConfigWarningIssue, raiseCredentialsWarningIssue } from "./error-config.js";
5
6
  //#region lib/workers/repository/error.ts
6
7
  async function handleError(config, err) {
7
- if (err.message === "uninitiated") {
8
- logger.info("Repository is uninitiated - skipping");
9
- delete config.branchList;
10
- return err.message;
11
- }
12
- if (err.message === "empty") {
13
- logger.info("Repository is empty - skipping");
14
- delete config.branchList;
15
- return err.message;
16
- }
17
- switch (err.message) {
18
- case REPOSITORY_CLOSED_ONBOARDING:
19
- case REPOSITORY_DISABLED:
20
- case REPOSITORY_DISABLED_BY_CONFIG:
21
- case REPOSITORY_NO_CONFIG:
22
- logger.info("Repository is disabled - skipping");
23
- return err.message;
24
- }
25
- if (err.message === "archived") {
26
- logger.info("Repository is archived - skipping");
27
- delete config.branchList;
28
- return err.message;
29
- }
30
- if (err.message === "mirror") {
31
- logger.info("Repository is a mirror - skipping");
32
- delete config.branchList;
33
- return err.message;
34
- }
35
- if (err.message === "renamed") {
36
- logger.info("Repository has been renamed - skipping");
37
- delete config.branchList;
38
- return err.message;
39
- }
40
- if (err.message === "blocked") {
41
- delete config.branchList;
42
- logger.info("Repository is blocked - skipping");
43
- return err.message;
44
- }
45
- if (err.message === "forbidden") {
46
- delete config.branchList;
47
- logger.info("Repository is forbidden");
48
- return err.message;
49
- }
50
- if (err.message === "not-found") {
51
- delete config.branchList;
52
- logger.error("Repository is not found");
53
- return err.message;
54
- }
55
- if (err.message === "fork-mode-forked") {
56
- logger.info("Repository is a fork and cannot be processed when Renovate is running in fork mode itself");
57
- return err.message;
58
- }
59
- if (err.message === "fork") {
60
- logger.info("Repository is a fork and not manually configured - skipping - did you want to run with --fork-processing=enabled?");
61
- return err.message;
62
- }
63
- if (err.message === "cannot-fork") {
64
- logger.info("Cannot fork repository - skipping");
65
- return err.message;
66
- }
67
- if (err.message === "fork-missing") {
68
- logger.info("Cannot find fork required for fork mode - skipping");
69
- return err.message;
70
- }
71
- if (err.message === "no-package-files") {
72
- logger.info("Repository has no package files - skipping");
73
- return err.message;
74
- }
75
- if (err.message === "no-vulnerability-alerts") {
76
- logger.info("Repository has no vulnerability alerts - skipping");
77
- return err.message;
78
- }
79
- if (err.message === "repository-changed") {
80
- logger.info("Repository has changed during renovation - aborting");
81
- delete config.branchList;
82
- return err.message;
83
- }
84
- if (err.message === "config-validation") {
85
- delete config.branchList;
86
- if (config.configValidationError) logger.error({ error: err }, "Repository has invalid config");
87
- else logger.warn({ error: err }, "Repository has invalid config");
88
- await raiseConfigWarningIssue(config, err);
89
- return err.message;
90
- }
91
- if (err.message === "missing-api-credentials") {
92
- delete config.branchList;
93
- logger.info({ error: err }, MISSING_API_CREDENTIALS);
94
- await raiseCredentialsWarningIssue(config, err);
95
- return err.message;
96
- }
97
- if (err.message === "config-secrets-exposed") {
98
- delete config.branchList;
99
- logger.warn({ error: err }, "Repository aborted due to potential secrets exposure");
100
- return err.message;
101
- }
102
- if (err instanceof ExternalHostError) {
103
- logger.warn({
104
- hostType: err.hostType,
105
- packageName: err.packageName,
106
- err: err.err
107
- }, "Host error");
108
- logger.info("External host error causing abort - skipping");
109
- delete config.branchList;
110
- return EXTERNAL_HOST_ERROR;
111
- }
112
- if (err.message.includes("No space left on device") || err.message === "disk-space") {
113
- logger.error("Disk space error - skipping");
114
- delete config.branchList;
115
- return SYSTEM_INSUFFICIENT_DISK_SPACE;
116
- }
117
- if (err.message === "rate-limit-exceeded") {
118
- logger.warn("Rate limit exceeded - aborting");
119
- delete config.branchList;
120
- return err.message;
121
- }
122
- if (err.message === "out-of-memory") {
123
- logger.warn("Insufficient memory - aborting");
124
- delete config.branchList;
125
- return err.message;
126
- }
127
- if (err.message === "bad-credentials") {
128
- logger.warn("Bad credentials - aborting");
129
- delete config.branchList;
130
- return err.message;
131
- }
132
- if (err.message === "integration-unauthorized") {
133
- logger.warn("Integration unauthorized - aborting");
134
- delete config.branchList;
135
- return err.message;
136
- }
137
- if (err.message === "authentication-error") {
138
- logger.warn("Authentication error - aborting");
139
- delete config.branchList;
140
- return err.message;
141
- }
142
- if (err.message === "temporary-error") {
143
- logger.info("Temporary error - aborting");
144
- delete config.branchList;
145
- return err.message;
146
- }
147
- if (err.message === "lockfile-error") {
148
- delete config.branchList;
149
- logger.info("Lock file error - aborting");
150
- delete config.branchList;
151
- return err.message;
152
- }
153
- if (err.message.includes("The requested URL returned error: 5")) {
154
- logger.warn({ err }, "Git error - aborting");
155
- delete config.branchList;
156
- return EXTERNAL_HOST_ERROR;
157
- }
158
- if (err.message.includes("remote end hung up unexpectedly") || err.message.includes("access denied or repository not exported")) {
159
- logger.warn({ err }, "Git error - aborting");
160
- delete config.branchList;
161
- return EXTERNAL_HOST_ERROR;
162
- }
163
- if (err.message.includes("fatal: not a git repository")) {
164
- delete config.branchList;
165
- return TEMPORARY_ERROR;
166
- }
167
- logger.error({ err }, `Repository has unknown error`);
168
- delete config.branchList;
169
- return UNKNOWN_ERROR;
8
+ return instrument("handleError", async () => {
9
+ if (err.message === "uninitiated") {
10
+ logger.info("Repository is uninitiated - skipping");
11
+ delete config.branchList;
12
+ return err.message;
13
+ }
14
+ if (err.message === "empty") {
15
+ logger.info("Repository is empty - skipping");
16
+ delete config.branchList;
17
+ return err.message;
18
+ }
19
+ switch (err.message) {
20
+ case REPOSITORY_CLOSED_ONBOARDING:
21
+ case REPOSITORY_DISABLED:
22
+ case REPOSITORY_DISABLED_BY_CONFIG:
23
+ case REPOSITORY_NO_CONFIG:
24
+ logger.info("Repository is disabled - skipping");
25
+ return err.message;
26
+ }
27
+ if (err.message === "archived") {
28
+ logger.info("Repository is archived - skipping");
29
+ delete config.branchList;
30
+ return err.message;
31
+ }
32
+ if (err.message === "mirror") {
33
+ logger.info("Repository is a mirror - skipping");
34
+ delete config.branchList;
35
+ return err.message;
36
+ }
37
+ if (err.message === "renamed") {
38
+ logger.info("Repository has been renamed - skipping");
39
+ delete config.branchList;
40
+ return err.message;
41
+ }
42
+ if (err.message === "blocked") {
43
+ delete config.branchList;
44
+ logger.info("Repository is blocked - skipping");
45
+ return err.message;
46
+ }
47
+ if (err.message === "forbidden") {
48
+ delete config.branchList;
49
+ logger.info("Repository is forbidden");
50
+ return err.message;
51
+ }
52
+ if (err.message === "not-found") {
53
+ delete config.branchList;
54
+ logger.error("Repository is not found");
55
+ return err.message;
56
+ }
57
+ if (err.message === "fork-mode-forked") {
58
+ logger.info("Repository is a fork and cannot be processed when Renovate is running in fork mode itself");
59
+ return err.message;
60
+ }
61
+ if (err.message === "fork") {
62
+ logger.info("Repository is a fork and not manually configured - skipping - did you want to run with --fork-processing=enabled?");
63
+ return err.message;
64
+ }
65
+ if (err.message === "cannot-fork") {
66
+ logger.info("Cannot fork repository - skipping");
67
+ return err.message;
68
+ }
69
+ if (err.message === "fork-missing") {
70
+ logger.info("Cannot find fork required for fork mode - skipping");
71
+ return err.message;
72
+ }
73
+ if (err.message === "no-package-files") {
74
+ logger.info("Repository has no package files - skipping");
75
+ return err.message;
76
+ }
77
+ if (err.message === "no-vulnerability-alerts") {
78
+ logger.info("Repository has no vulnerability alerts - skipping");
79
+ return err.message;
80
+ }
81
+ if (err.message === "repository-changed") {
82
+ logger.info("Repository has changed during renovation - aborting");
83
+ delete config.branchList;
84
+ return err.message;
85
+ }
86
+ if (err.message === "config-validation") {
87
+ delete config.branchList;
88
+ if (config.configValidationError) logger.error({ error: err }, "Repository has invalid config");
89
+ else logger.warn({ error: err }, "Repository has invalid config");
90
+ await raiseConfigWarningIssue(config, err);
91
+ return err.message;
92
+ }
93
+ if (err.message === "missing-api-credentials") {
94
+ delete config.branchList;
95
+ logger.info({ error: err }, MISSING_API_CREDENTIALS);
96
+ await raiseCredentialsWarningIssue(config, err);
97
+ return err.message;
98
+ }
99
+ if (err.message === "config-secrets-exposed") {
100
+ delete config.branchList;
101
+ logger.warn({ error: err }, "Repository aborted due to potential secrets exposure");
102
+ return err.message;
103
+ }
104
+ if (err instanceof ExternalHostError) {
105
+ logger.warn({
106
+ hostType: err.hostType,
107
+ packageName: err.packageName,
108
+ err: err.err
109
+ }, "Host error");
110
+ logger.info("External host error causing abort - skipping");
111
+ delete config.branchList;
112
+ return EXTERNAL_HOST_ERROR;
113
+ }
114
+ if (err.message.includes("No space left on device") || err.message === "disk-space") {
115
+ logger.error("Disk space error - skipping");
116
+ delete config.branchList;
117
+ return SYSTEM_INSUFFICIENT_DISK_SPACE;
118
+ }
119
+ if (err.message === "rate-limit-exceeded") {
120
+ logger.warn("Rate limit exceeded - aborting");
121
+ delete config.branchList;
122
+ return err.message;
123
+ }
124
+ if (err.message === "out-of-memory") {
125
+ logger.warn("Insufficient memory - aborting");
126
+ delete config.branchList;
127
+ return err.message;
128
+ }
129
+ if (err.message === "bad-credentials") {
130
+ logger.warn("Bad credentials - aborting");
131
+ delete config.branchList;
132
+ return err.message;
133
+ }
134
+ if (err.message === "integration-unauthorized") {
135
+ logger.warn("Integration unauthorized - aborting");
136
+ delete config.branchList;
137
+ return err.message;
138
+ }
139
+ if (err.message === "authentication-error") {
140
+ logger.warn("Authentication error - aborting");
141
+ delete config.branchList;
142
+ return err.message;
143
+ }
144
+ if (err.message === "temporary-error") {
145
+ logger.info("Temporary error - aborting");
146
+ delete config.branchList;
147
+ return err.message;
148
+ }
149
+ if (err.message === "lockfile-error") {
150
+ delete config.branchList;
151
+ logger.info("Lock file error - aborting");
152
+ delete config.branchList;
153
+ return err.message;
154
+ }
155
+ if (err.message.includes("The requested URL returned error: 5")) {
156
+ logger.warn({ err }, "Git error - aborting");
157
+ delete config.branchList;
158
+ return EXTERNAL_HOST_ERROR;
159
+ }
160
+ if (err.message.includes("remote end hung up unexpectedly") || err.message.includes("access denied or repository not exported")) {
161
+ logger.warn({ err }, "Git error - aborting");
162
+ delete config.branchList;
163
+ return EXTERNAL_HOST_ERROR;
164
+ }
165
+ if (err.message.includes("fatal: not a git repository")) {
166
+ delete config.branchList;
167
+ return TEMPORARY_ERROR;
168
+ }
169
+ logger.error({ err }, `Repository has unknown error`);
170
+ delete config.branchList;
171
+ return UNKNOWN_ERROR;
172
+ });
170
173
  }
171
174
  //#endregion
172
175
  export { handleError as default };
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","names":[],"sources":["../../../lib/workers/repository/error.ts"],"sourcesContent":["import type { RenovateConfig } from '../../config/types.ts';\n\nimport {\n CONFIG_SECRETS_EXPOSED,\n CONFIG_VALIDATION,\n EXTERNAL_HOST_ERROR,\n MANAGER_LOCKFILE_ERROR,\n MISSING_API_CREDENTIALS,\n NO_VULNERABILITY_ALERTS,\n PLATFORM_AUTHENTICATION_ERROR,\n PLATFORM_BAD_CREDENTIALS,\n PLATFORM_INTEGRATION_UNAUTHORIZED,\n PLATFORM_RATE_LIMIT_EXCEEDED,\n REPOSITORY_ACCESS_FORBIDDEN,\n REPOSITORY_ARCHIVED,\n REPOSITORY_BLOCKED,\n REPOSITORY_CANNOT_FORK,\n REPOSITORY_CHANGED,\n REPOSITORY_CLOSED_ONBOARDING,\n REPOSITORY_DISABLED,\n REPOSITORY_DISABLED_BY_CONFIG,\n REPOSITORY_EMPTY,\n REPOSITORY_FORKED,\n REPOSITORY_FORK_MISSING,\n REPOSITORY_FORK_MODE_FORKED,\n REPOSITORY_MIRRORED,\n REPOSITORY_NOT_FOUND,\n REPOSITORY_NO_CONFIG,\n REPOSITORY_NO_PACKAGE_FILES,\n REPOSITORY_RENAMED,\n REPOSITORY_UNINITIATED,\n SYSTEM_INSUFFICIENT_DISK_SPACE,\n SYSTEM_INSUFFICIENT_MEMORY,\n TEMPORARY_ERROR,\n UNKNOWN_ERROR,\n} from '../../constants/error-messages.ts';\nimport { logger } from '../../logger/index.ts';\nimport { ExternalHostError } from '../../types/errors/external-host-error.ts';\nimport {\n raiseConfigWarningIssue,\n raiseCredentialsWarningIssue,\n} from './error-config.ts';\nimport type { RepositoryResult } from './result.ts';\n\nexport default async function handleError(\n config: RenovateConfig,\n err: Error,\n): Promise<RepositoryResult> {\n if (err.message === REPOSITORY_UNINITIATED) {\n logger.info('Repository is uninitiated - skipping');\n delete config.branchList;\n return err.message;\n }\n if (err.message === REPOSITORY_EMPTY) {\n logger.info('Repository is empty - skipping');\n delete config.branchList;\n return err.message;\n }\n switch (err.message) {\n case REPOSITORY_CLOSED_ONBOARDING:\n case REPOSITORY_DISABLED:\n case REPOSITORY_DISABLED_BY_CONFIG:\n case REPOSITORY_NO_CONFIG:\n logger.info('Repository is disabled - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_ARCHIVED) {\n logger.info('Repository is archived - skipping');\n delete config.branchList;\n return err.message;\n }\n if (err.message === REPOSITORY_MIRRORED) {\n logger.info('Repository is a mirror - skipping');\n delete config.branchList;\n return err.message;\n }\n if (err.message === REPOSITORY_RENAMED) {\n logger.info('Repository has been renamed - skipping');\n delete config.branchList;\n return err.message;\n }\n if (err.message === REPOSITORY_BLOCKED) {\n delete config.branchList;\n logger.info('Repository is blocked - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_ACCESS_FORBIDDEN) {\n delete config.branchList;\n logger.info('Repository is forbidden');\n return err.message;\n }\n if (err.message === REPOSITORY_NOT_FOUND) {\n delete config.branchList;\n logger.error('Repository is not found');\n return err.message;\n }\n if (err.message === REPOSITORY_FORK_MODE_FORKED) {\n logger.info(\n 'Repository is a fork and cannot be processed when Renovate is running in fork mode itself',\n );\n return err.message;\n }\n if (err.message === REPOSITORY_FORKED) {\n logger.info(\n 'Repository is a fork and not manually configured - skipping - did you want to run with --fork-processing=enabled?',\n );\n return err.message;\n }\n if (err.message === REPOSITORY_CANNOT_FORK) {\n logger.info('Cannot fork repository - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_FORK_MISSING) {\n logger.info('Cannot find fork required for fork mode - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_NO_PACKAGE_FILES) {\n logger.info('Repository has no package files - skipping');\n return err.message;\n }\n if (err.message === NO_VULNERABILITY_ALERTS) {\n logger.info('Repository has no vulnerability alerts - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_CHANGED) {\n logger.info('Repository has changed during renovation - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === CONFIG_VALIDATION) {\n delete config.branchList;\n if (config.configValidationError) {\n logger.error({ error: err }, 'Repository has invalid config');\n } else {\n logger.warn({ error: err }, 'Repository has invalid config');\n }\n await raiseConfigWarningIssue(config, err);\n return err.message;\n }\n if (err.message === MISSING_API_CREDENTIALS) {\n delete config.branchList;\n logger.info({ error: err }, MISSING_API_CREDENTIALS);\n await raiseCredentialsWarningIssue(config, err);\n return err.message;\n }\n if (err.message === CONFIG_SECRETS_EXPOSED) {\n delete config.branchList;\n logger.warn(\n { error: err },\n 'Repository aborted due to potential secrets exposure',\n );\n return err.message;\n }\n if (err instanceof ExternalHostError) {\n logger.warn(\n { hostType: err.hostType, packageName: err.packageName, err: err.err },\n 'Host error',\n );\n logger.info('External host error causing abort - skipping');\n delete config.branchList;\n return EXTERNAL_HOST_ERROR;\n }\n if (\n err.message.includes('No space left on device') ||\n err.message === SYSTEM_INSUFFICIENT_DISK_SPACE\n ) {\n logger.error('Disk space error - skipping');\n delete config.branchList;\n return SYSTEM_INSUFFICIENT_DISK_SPACE;\n }\n if (err.message === PLATFORM_RATE_LIMIT_EXCEEDED) {\n logger.warn('Rate limit exceeded - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === SYSTEM_INSUFFICIENT_MEMORY) {\n logger.warn('Insufficient memory - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === PLATFORM_BAD_CREDENTIALS) {\n logger.warn('Bad credentials - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === PLATFORM_INTEGRATION_UNAUTHORIZED) {\n logger.warn('Integration unauthorized - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === PLATFORM_AUTHENTICATION_ERROR) {\n logger.warn('Authentication error - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === TEMPORARY_ERROR) {\n logger.info('Temporary error - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === MANAGER_LOCKFILE_ERROR) {\n delete config.branchList;\n logger.info('Lock file error - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message.includes('The requested URL returned error: 5')) {\n logger.warn({ err }, 'Git error - aborting');\n delete config.branchList;\n // rewrite this error\n return EXTERNAL_HOST_ERROR;\n }\n if (\n err.message.includes('remote end hung up unexpectedly') ||\n err.message.includes('access denied or repository not exported')\n ) {\n logger.warn({ err }, 'Git error - aborting');\n delete config.branchList;\n // rewrite this error\n return EXTERNAL_HOST_ERROR;\n }\n if (err.message.includes('fatal: not a git repository')) {\n delete config.branchList;\n return TEMPORARY_ERROR;\n }\n // Swallow this error so that other repositories can be processed\n logger.error({ err }, `Repository has unknown error`);\n // delete branchList to avoid cleaning up branches\n delete config.branchList;\n\n return UNKNOWN_ERROR;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"error.js","names":[],"sources":["../../../lib/workers/repository/error.ts"],"sourcesContent":["import type { RenovateConfig } from '../../config/types.ts';\n\nimport {\n CONFIG_SECRETS_EXPOSED,\n CONFIG_VALIDATION,\n EXTERNAL_HOST_ERROR,\n MANAGER_LOCKFILE_ERROR,\n MISSING_API_CREDENTIALS,\n NO_VULNERABILITY_ALERTS,\n PLATFORM_AUTHENTICATION_ERROR,\n PLATFORM_BAD_CREDENTIALS,\n PLATFORM_INTEGRATION_UNAUTHORIZED,\n PLATFORM_RATE_LIMIT_EXCEEDED,\n REPOSITORY_ACCESS_FORBIDDEN,\n REPOSITORY_ARCHIVED,\n REPOSITORY_BLOCKED,\n REPOSITORY_CANNOT_FORK,\n REPOSITORY_CHANGED,\n REPOSITORY_CLOSED_ONBOARDING,\n REPOSITORY_DISABLED,\n REPOSITORY_DISABLED_BY_CONFIG,\n REPOSITORY_EMPTY,\n REPOSITORY_FORKED,\n REPOSITORY_FORK_MISSING,\n REPOSITORY_FORK_MODE_FORKED,\n REPOSITORY_MIRRORED,\n REPOSITORY_NOT_FOUND,\n REPOSITORY_NO_CONFIG,\n REPOSITORY_NO_PACKAGE_FILES,\n REPOSITORY_RENAMED,\n REPOSITORY_UNINITIATED,\n SYSTEM_INSUFFICIENT_DISK_SPACE,\n SYSTEM_INSUFFICIENT_MEMORY,\n TEMPORARY_ERROR,\n UNKNOWN_ERROR,\n} from '../../constants/error-messages.ts';\nimport { instrument } from '../../instrumentation/index.ts';\nimport { logger } from '../../logger/index.ts';\nimport { ExternalHostError } from '../../types/errors/external-host-error.ts';\nimport {\n raiseConfigWarningIssue,\n raiseCredentialsWarningIssue,\n} from './error-config.ts';\nimport type { RepositoryResult } from './result.ts';\n\nexport default async function handleError(\n config: RenovateConfig,\n err: Error,\n): Promise<RepositoryResult> {\n return instrument('handleError', async () => {\n if (err.message === REPOSITORY_UNINITIATED) {\n logger.info('Repository is uninitiated - skipping');\n delete config.branchList;\n return err.message;\n }\n if (err.message === REPOSITORY_EMPTY) {\n logger.info('Repository is empty - skipping');\n delete config.branchList;\n return err.message;\n }\n switch (err.message) {\n case REPOSITORY_CLOSED_ONBOARDING:\n case REPOSITORY_DISABLED:\n case REPOSITORY_DISABLED_BY_CONFIG:\n case REPOSITORY_NO_CONFIG:\n logger.info('Repository is disabled - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_ARCHIVED) {\n logger.info('Repository is archived - skipping');\n delete config.branchList;\n return err.message;\n }\n if (err.message === REPOSITORY_MIRRORED) {\n logger.info('Repository is a mirror - skipping');\n delete config.branchList;\n return err.message;\n }\n if (err.message === REPOSITORY_RENAMED) {\n logger.info('Repository has been renamed - skipping');\n delete config.branchList;\n return err.message;\n }\n if (err.message === REPOSITORY_BLOCKED) {\n delete config.branchList;\n logger.info('Repository is blocked - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_ACCESS_FORBIDDEN) {\n delete config.branchList;\n logger.info('Repository is forbidden');\n return err.message;\n }\n if (err.message === REPOSITORY_NOT_FOUND) {\n delete config.branchList;\n logger.error('Repository is not found');\n return err.message;\n }\n if (err.message === REPOSITORY_FORK_MODE_FORKED) {\n logger.info(\n 'Repository is a fork and cannot be processed when Renovate is running in fork mode itself',\n );\n return err.message;\n }\n if (err.message === REPOSITORY_FORKED) {\n logger.info(\n 'Repository is a fork and not manually configured - skipping - did you want to run with --fork-processing=enabled?',\n );\n return err.message;\n }\n if (err.message === REPOSITORY_CANNOT_FORK) {\n logger.info('Cannot fork repository - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_FORK_MISSING) {\n logger.info('Cannot find fork required for fork mode - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_NO_PACKAGE_FILES) {\n logger.info('Repository has no package files - skipping');\n return err.message;\n }\n if (err.message === NO_VULNERABILITY_ALERTS) {\n logger.info('Repository has no vulnerability alerts - skipping');\n return err.message;\n }\n if (err.message === REPOSITORY_CHANGED) {\n logger.info('Repository has changed during renovation - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === CONFIG_VALIDATION) {\n delete config.branchList;\n if (config.configValidationError) {\n logger.error({ error: err }, 'Repository has invalid config');\n } else {\n logger.warn({ error: err }, 'Repository has invalid config');\n }\n await raiseConfigWarningIssue(config, err);\n return err.message;\n }\n if (err.message === MISSING_API_CREDENTIALS) {\n delete config.branchList;\n logger.info({ error: err }, MISSING_API_CREDENTIALS);\n await raiseCredentialsWarningIssue(config, err);\n return err.message;\n }\n if (err.message === CONFIG_SECRETS_EXPOSED) {\n delete config.branchList;\n logger.warn(\n { error: err },\n 'Repository aborted due to potential secrets exposure',\n );\n return err.message;\n }\n if (err instanceof ExternalHostError) {\n logger.warn(\n { hostType: err.hostType, packageName: err.packageName, err: err.err },\n 'Host error',\n );\n logger.info('External host error causing abort - skipping');\n delete config.branchList;\n return EXTERNAL_HOST_ERROR;\n }\n if (\n err.message.includes('No space left on device') ||\n err.message === SYSTEM_INSUFFICIENT_DISK_SPACE\n ) {\n logger.error('Disk space error - skipping');\n delete config.branchList;\n return SYSTEM_INSUFFICIENT_DISK_SPACE;\n }\n if (err.message === PLATFORM_RATE_LIMIT_EXCEEDED) {\n logger.warn('Rate limit exceeded - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === SYSTEM_INSUFFICIENT_MEMORY) {\n logger.warn('Insufficient memory - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === PLATFORM_BAD_CREDENTIALS) {\n logger.warn('Bad credentials - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === PLATFORM_INTEGRATION_UNAUTHORIZED) {\n logger.warn('Integration unauthorized - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === PLATFORM_AUTHENTICATION_ERROR) {\n logger.warn('Authentication error - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === TEMPORARY_ERROR) {\n logger.info('Temporary error - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message === MANAGER_LOCKFILE_ERROR) {\n delete config.branchList;\n logger.info('Lock file error - aborting');\n delete config.branchList;\n return err.message;\n }\n if (err.message.includes('The requested URL returned error: 5')) {\n logger.warn({ err }, 'Git error - aborting');\n delete config.branchList;\n // rewrite this error\n return EXTERNAL_HOST_ERROR;\n }\n if (\n err.message.includes('remote end hung up unexpectedly') ||\n err.message.includes('access denied or repository not exported')\n ) {\n logger.warn({ err }, 'Git error - aborting');\n delete config.branchList;\n // rewrite this error\n return EXTERNAL_HOST_ERROR;\n }\n if (err.message.includes('fatal: not a git repository')) {\n delete config.branchList;\n return TEMPORARY_ERROR;\n }\n // Swallow this error so that other repositories can be processed\n logger.error({ err }, `Repository has unknown error`);\n // delete branchList to avoid cleaning up branches\n delete config.branchList;\n\n return UNKNOWN_ERROR;\n });\n}\n"],"mappings":"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"}
@@ -34,8 +34,7 @@ import fs from "fs-extra";
34
34
  async function renovateRepository(repoConfig, canRetry = true) {
35
35
  splitInit();
36
36
  let repoResult;
37
- const { config, localDir, errorRes } = await instrument("init", async () => {
38
- let errorRes;
37
+ const { config, localDir, error } = await instrument("init", async () => {
39
38
  let config = GlobalConfig.set(applySecretsAndVariablesToConfig({
40
39
  config: repoConfig,
41
40
  deleteVariables: false,
@@ -55,22 +54,25 @@ async function renovateRepository(repoConfig, canRetry = true) {
55
54
  addSplit("init");
56
55
  } catch (err) /* istanbul ignore next */ {
57
56
  setMeta({ repository: config.repository });
58
- errorRes = await handleError(config, err);
57
+ const errorRes = await handleError(config, err);
59
58
  if ([
60
59
  "disabled-by-config",
61
60
  "fork",
62
61
  "disabled-no-config"
63
62
  ].includes(errorRes)) await pruneStaleBranches(config, []);
64
63
  repoResult = processResult(config, errorRes);
64
+ return {
65
+ config,
66
+ localDir,
67
+ error: err
68
+ };
65
69
  }
66
70
  return {
67
71
  config,
68
- localDir,
69
- errorRes
72
+ localDir
70
73
  };
71
74
  }, { attributes: { [ATTR_RENOVATE_SPLIT]: "init" } });
72
- try {
73
- if (errorRes) throw new Error(errorRes);
75
+ if (error === void 0) try {
74
76
  const performExtract = config.repoIsOnboarded || !OnboardingState.onboardingCacheValid || OnboardingState.prUpdateRequested;
75
77
  const extractResult = performExtract ? await extractDependencies(config) : emptyExtract();
76
78
  addExtractionStats(config, extractResult);
@@ -104,6 +106,7 @@ async function renovateRepository(repoConfig, canRetry = true) {
104
106
  ].includes(errorRes)) await pruneStaleBranches(config, []);
105
107
  repoResult = processResult(config, errorRes);
106
108
  }
109
+ else logger.debug({ error }, "Skipping the rest to the Renovate run due to error in `init` phase");
107
110
  if (localDir && !repoConfig.persistRepoData) try {
108
111
  await deleteLocalFile(".");
109
112
  } catch (err) /* istanbul ignore if */ {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../lib/workers/repository/index.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport { GlobalConfig } from '../../config/global.ts';\nimport { applySecretsAndVariablesToConfig } from '../../config/secrets.ts';\nimport type { RenovateConfig } from '../../config/types.ts';\nimport {\n REPOSITORY_DISABLED_BY_CONFIG,\n REPOSITORY_FORKED,\n REPOSITORY_NO_CONFIG,\n} from '../../constants/error-messages.ts';\nimport { pkg } from '../../expose.ts';\nimport { instrument } from '../../instrumentation/index.ts';\nimport { addExtractionStats } from '../../instrumentation/reporting.ts';\nimport { ATTR_RENOVATE_SPLIT } from '../../instrumentation/types.ts';\nimport { logger, setMeta } from '../../logger/index.ts';\nimport { resetRepositoryLogLevelRemaps } from '../../logger/remap.ts';\nimport { getInheritedOrGlobal } from '../../util/common.ts';\nimport { removeDanglingContainers } from '../../util/exec/docker/index.ts';\nimport { deleteLocalFile, privateCacheDir } from '../../util/fs/index.ts';\nimport { isCloned } from '../../util/git/index.ts';\nimport { detectSemanticCommits } from '../../util/git/semantic.ts';\nimport * as queue from '../../util/http/queue.ts';\nimport * as throttle from '../../util/http/throttle.ts';\nimport { addSplit, getSplits, splitInit } from '../../util/split.ts';\nimport {\n AbandonedPackageStats,\n DatasourceCacheStats,\n GetDatasourceReleasesStats,\n GitOperationStats,\n HttpCacheStats,\n HttpStats,\n LookupStats,\n ObsoleteCacheHitLogger,\n PackageCacheStats,\n} from '../../util/stats.ts';\nimport { setBranchCache } from './cache.ts';\nimport { extractRepoProblems } from './common.ts';\nimport { configMigration } from './config-migration/index.ts';\nimport { ensureDependencyDashboard } from './dependency-dashboard.ts';\nimport handleError from './error.ts';\nimport { finalizeRepo } from './finalize/index.ts';\nimport { pruneStaleBranches } from './finalize/prune.ts';\nimport { initRepo } from './init/index.ts';\nimport { OnboardingState } from './onboarding/common.ts';\nimport { ensureOnboardingPr } from './onboarding/pr/index.ts';\nimport type { ExtractResult } from './process/extract-update.ts';\nimport { extractDependencies, updateRepo } from './process/index.ts';\nimport type { ProcessResult, RepositoryResult } from './result.ts';\nimport { processResult } from './result.ts';\n\n// istanbul ignore next\nexport async function renovateRepository(\n repoConfig: RenovateConfig,\n canRetry = true,\n): Promise<ProcessResult | undefined> {\n splitInit();\n\n let repoResult: ProcessResult | undefined;\n const { config, localDir, errorRes } = await instrument(\n 'init',\n async (): Promise<{\n config: RenovateConfig;\n localDir: string;\n errorRes?: string;\n }> => {\n let errorRes: RepositoryResult | undefined;\n let config = GlobalConfig.set(\n applySecretsAndVariablesToConfig({\n config: repoConfig,\n deleteVariables: false,\n deleteSecrets: false,\n }),\n );\n await removeDanglingContainers();\n setMeta({ repository: config.repository });\n logger.info({ renovateVersion: pkg.version }, 'Repository started');\n logger.trace({ config });\n queue.clear();\n throttle.clear();\n const localDir = GlobalConfig.get('localDir');\n\n try {\n await fs.ensureDir(localDir);\n logger.debug(`Using localDir: ${localDir}`);\n config = await initRepo(config);\n addSplit('init');\n } catch (err) /* istanbul ignore next */ {\n setMeta({ repository: config.repository });\n errorRes = await handleError(config, err);\n const pruneWhenErrors = [\n REPOSITORY_DISABLED_BY_CONFIG,\n REPOSITORY_FORKED,\n REPOSITORY_NO_CONFIG,\n ];\n if (pruneWhenErrors.includes(errorRes)) {\n await pruneStaleBranches(config, []);\n }\n repoResult = processResult(config, errorRes);\n }\n\n return { config, localDir, errorRes };\n },\n {\n attributes: {\n [ATTR_RENOVATE_SPLIT]: 'init',\n },\n },\n );\n\n try {\n // only continue if init stage was successful\n if (errorRes) {\n throw new Error(errorRes);\n }\n\n const performExtract =\n config.repoIsOnboarded! ||\n !OnboardingState.onboardingCacheValid ||\n OnboardingState.prUpdateRequested;\n const extractResult = performExtract\n ? await extractDependencies(config)\n : emptyExtract();\n addExtractionStats(config, extractResult);\n\n const { branches, branchList, packageFiles } = extractResult;\n\n if (config.semanticCommits === 'auto') {\n config.semanticCommits = await detectSemanticCommits();\n }\n\n if (\n GlobalConfig.get('dryRun') !== 'lookup' &&\n GlobalConfig.get('dryRun') !== 'extract'\n ) {\n await instrument(\n 'onboarding',\n () => ensureOnboardingPr(config, packageFiles, branches),\n {\n attributes: {\n [ATTR_RENOVATE_SPLIT]: 'onboarding',\n },\n },\n );\n addSplit('onboarding');\n const res = await instrument(\n 'update',\n () => updateRepo(config, branches),\n {\n attributes: {\n [ATTR_RENOVATE_SPLIT]: 'update',\n },\n },\n );\n setMeta({ repository: config.repository });\n addSplit('update');\n if (performExtract) {\n await setBranchCache(branches); // update branch cache if performed extraction\n }\n if (res === 'automerged') {\n if (canRetry) {\n logger.info('Restarting repository job after automerge result');\n const recursiveRes = await renovateRepository(repoConfig, false);\n return recursiveRes;\n }\n logger.debug(`Automerged but already retried once`);\n } else {\n const configMigrationRes = await configMigration(config, branchList);\n await ensureDependencyDashboard(\n config,\n branches,\n packageFiles,\n configMigrationRes,\n );\n }\n await finalizeRepo(config, branchList, repoConfig);\n // TODO #22198\n repoResult = processResult(config, res!);\n }\n printRepositoryProblems(config.repository);\n } catch (err) /* istanbul ignore next */ {\n setMeta({ repository: config.repository });\n const errorRes = await handleError(config, err);\n const pruneWhenErrors = [\n REPOSITORY_DISABLED_BY_CONFIG,\n REPOSITORY_FORKED,\n REPOSITORY_NO_CONFIG,\n ];\n if (pruneWhenErrors.includes(errorRes)) {\n await pruneStaleBranches(config, []);\n }\n repoResult = processResult(config, errorRes);\n }\n if (localDir && !repoConfig.persistRepoData) {\n try {\n await deleteLocalFile('.');\n } catch (err) /* istanbul ignore if */ {\n logger.warn({ err }, 'localDir deletion error');\n }\n }\n try {\n await fs.remove(privateCacheDir());\n } catch (err) /* istanbul ignore if */ {\n logger.warn({ err }, 'privateCacheDir deletion error');\n }\n const splits = getSplits();\n logger.debug(splits, 'Repository timing splits (milliseconds)');\n PackageCacheStats.report();\n DatasourceCacheStats.report();\n HttpStats.report();\n HttpCacheStats.report();\n LookupStats.report();\n GetDatasourceReleasesStats.report();\n ObsoleteCacheHitLogger.report();\n AbandonedPackageStats.report();\n GitOperationStats.report();\n const cloned = isCloned();\n /* v8 ignore next 11 -- coverage not required of these `undefined` checks, as we're happy receiving an `undefined` in the logs */\n logger.info(\n {\n cloned,\n durationMs: splits.total,\n result: repoResult?.res,\n status: repoResult?.status,\n enabled: repoResult?.enabled,\n onboarded: repoResult?.onboarded,\n },\n 'Repository finished',\n );\n resetRepositoryLogLevelRemaps();\n return repoResult;\n}\n\n// istanbul ignore next: renovateRepository is ignored\nfunction emptyExtract(): ExtractResult {\n return instrument(\n 'extract',\n () => {\n addSplit('extract');\n addSplit('lookup');\n return {\n branches: [],\n branchList: [getInheritedOrGlobal('onboardingBranch')!], // to prevent auto closing\n packageFiles: {},\n };\n },\n {\n attributes: {\n [ATTR_RENOVATE_SPLIT]: 'extract',\n },\n },\n );\n}\n\nexport function printRepositoryProblems(repository: string | undefined): void {\n const repoProblems = extractRepoProblems(repository);\n if (repoProblems.size) {\n logger.debug(\n { repoProblems: Array.from(repoProblems) },\n 'repository problems',\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../lib/workers/repository/index.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport { GlobalConfig } from '../../config/global.ts';\nimport { applySecretsAndVariablesToConfig } from '../../config/secrets.ts';\nimport type { RenovateConfig } from '../../config/types.ts';\nimport {\n REPOSITORY_DISABLED_BY_CONFIG,\n REPOSITORY_FORKED,\n REPOSITORY_NO_CONFIG,\n} from '../../constants/error-messages.ts';\nimport { pkg } from '../../expose.ts';\nimport { instrument } from '../../instrumentation/index.ts';\nimport { addExtractionStats } from '../../instrumentation/reporting.ts';\nimport { ATTR_RENOVATE_SPLIT } from '../../instrumentation/types.ts';\nimport { logger, setMeta } from '../../logger/index.ts';\nimport { resetRepositoryLogLevelRemaps } from '../../logger/remap.ts';\nimport { getInheritedOrGlobal } from '../../util/common.ts';\nimport { removeDanglingContainers } from '../../util/exec/docker/index.ts';\nimport { deleteLocalFile, privateCacheDir } from '../../util/fs/index.ts';\nimport { isCloned } from '../../util/git/index.ts';\nimport { detectSemanticCommits } from '../../util/git/semantic.ts';\nimport * as queue from '../../util/http/queue.ts';\nimport * as throttle from '../../util/http/throttle.ts';\nimport { addSplit, getSplits, splitInit } from '../../util/split.ts';\nimport {\n AbandonedPackageStats,\n DatasourceCacheStats,\n GetDatasourceReleasesStats,\n GitOperationStats,\n HttpCacheStats,\n HttpStats,\n LookupStats,\n ObsoleteCacheHitLogger,\n PackageCacheStats,\n} from '../../util/stats.ts';\nimport { setBranchCache } from './cache.ts';\nimport { extractRepoProblems } from './common.ts';\nimport { configMigration } from './config-migration/index.ts';\nimport { ensureDependencyDashboard } from './dependency-dashboard.ts';\nimport handleError from './error.ts';\nimport { finalizeRepo } from './finalize/index.ts';\nimport { pruneStaleBranches } from './finalize/prune.ts';\nimport { initRepo } from './init/index.ts';\nimport { OnboardingState } from './onboarding/common.ts';\nimport { ensureOnboardingPr } from './onboarding/pr/index.ts';\nimport type { ExtractResult } from './process/extract-update.ts';\nimport { extractDependencies, updateRepo } from './process/index.ts';\nimport type { ProcessResult } from './result.ts';\nimport { processResult } from './result.ts';\n\n// istanbul ignore next\nexport async function renovateRepository(\n repoConfig: RenovateConfig,\n canRetry = true,\n): Promise<ProcessResult | undefined> {\n splitInit();\n\n let repoResult: ProcessResult | undefined;\n const { config, localDir, error } = await instrument(\n 'init',\n async (): Promise<{\n config: RenovateConfig;\n localDir: string;\n error?: Error;\n }> => {\n let config = GlobalConfig.set(\n applySecretsAndVariablesToConfig({\n config: repoConfig,\n deleteVariables: false,\n deleteSecrets: false,\n }),\n );\n await removeDanglingContainers();\n setMeta({ repository: config.repository });\n logger.info({ renovateVersion: pkg.version }, 'Repository started');\n logger.trace({ config });\n queue.clear();\n throttle.clear();\n const localDir = GlobalConfig.get('localDir');\n\n try {\n await fs.ensureDir(localDir);\n logger.debug(`Using localDir: ${localDir}`);\n config = await initRepo(config);\n addSplit('init');\n } catch (err) /* istanbul ignore next */ {\n setMeta({ repository: config.repository });\n const errorRes = await handleError(config, err);\n const pruneWhenErrors = [\n REPOSITORY_DISABLED_BY_CONFIG,\n REPOSITORY_FORKED,\n REPOSITORY_NO_CONFIG,\n ];\n if (pruneWhenErrors.includes(errorRes)) {\n await pruneStaleBranches(config, []);\n }\n repoResult = processResult(config, errorRes);\n\n return { config, localDir, error: err };\n }\n\n return { config, localDir };\n },\n {\n attributes: {\n [ATTR_RENOVATE_SPLIT]: 'init',\n },\n },\n );\n\n // only continue if init stage was successful\n if (error === undefined) {\n try {\n const performExtract =\n config.repoIsOnboarded! ||\n !OnboardingState.onboardingCacheValid ||\n OnboardingState.prUpdateRequested;\n const extractResult = performExtract\n ? await extractDependencies(config)\n : emptyExtract();\n addExtractionStats(config, extractResult);\n\n const { branches, branchList, packageFiles } = extractResult;\n\n if (config.semanticCommits === 'auto') {\n config.semanticCommits = await detectSemanticCommits();\n }\n\n if (\n GlobalConfig.get('dryRun') !== 'lookup' &&\n GlobalConfig.get('dryRun') !== 'extract'\n ) {\n await instrument(\n 'onboarding',\n () => ensureOnboardingPr(config, packageFiles, branches),\n {\n attributes: {\n [ATTR_RENOVATE_SPLIT]: 'onboarding',\n },\n },\n );\n addSplit('onboarding');\n const res = await instrument(\n 'update',\n () => updateRepo(config, branches),\n {\n attributes: {\n [ATTR_RENOVATE_SPLIT]: 'update',\n },\n },\n );\n setMeta({ repository: config.repository });\n addSplit('update');\n if (performExtract) {\n await setBranchCache(branches); // update branch cache if performed extraction\n }\n if (res === 'automerged') {\n if (canRetry) {\n logger.info('Restarting repository job after automerge result');\n const recursiveRes = await renovateRepository(repoConfig, false);\n return recursiveRes;\n }\n logger.debug(`Automerged but already retried once`);\n } else {\n const configMigrationRes = await configMigration(config, branchList);\n await ensureDependencyDashboard(\n config,\n branches,\n packageFiles,\n configMigrationRes,\n );\n }\n await finalizeRepo(config, branchList, repoConfig);\n // TODO #22198\n repoResult = processResult(config, res!);\n }\n printRepositoryProblems(config.repository);\n } catch (err) /* istanbul ignore next */ {\n setMeta({ repository: config.repository });\n const errorRes = await handleError(config, err);\n const pruneWhenErrors = [\n REPOSITORY_DISABLED_BY_CONFIG,\n REPOSITORY_FORKED,\n REPOSITORY_NO_CONFIG,\n ];\n if (pruneWhenErrors.includes(errorRes)) {\n await pruneStaleBranches(config, []);\n }\n repoResult = processResult(config, errorRes);\n }\n } else {\n logger.debug(\n { error },\n 'Skipping the rest to the Renovate run due to error in `init` phase',\n );\n }\n\n if (localDir && !repoConfig.persistRepoData) {\n try {\n await deleteLocalFile('.');\n } catch (err) /* istanbul ignore if */ {\n logger.warn({ err }, 'localDir deletion error');\n }\n }\n try {\n await fs.remove(privateCacheDir());\n } catch (err) /* istanbul ignore if */ {\n logger.warn({ err }, 'privateCacheDir deletion error');\n }\n const splits = getSplits();\n logger.debug(splits, 'Repository timing splits (milliseconds)');\n PackageCacheStats.report();\n DatasourceCacheStats.report();\n HttpStats.report();\n HttpCacheStats.report();\n LookupStats.report();\n GetDatasourceReleasesStats.report();\n ObsoleteCacheHitLogger.report();\n AbandonedPackageStats.report();\n GitOperationStats.report();\n const cloned = isCloned();\n /* v8 ignore next 11 -- coverage not required of these `undefined` checks, as we're happy receiving an `undefined` in the logs */\n logger.info(\n {\n cloned,\n durationMs: splits.total,\n result: repoResult?.res,\n status: repoResult?.status,\n enabled: repoResult?.enabled,\n onboarded: repoResult?.onboarded,\n },\n 'Repository finished',\n );\n resetRepositoryLogLevelRemaps();\n return repoResult;\n}\n\n// istanbul ignore next: renovateRepository is ignored\nfunction emptyExtract(): ExtractResult {\n return instrument(\n 'extract',\n () => {\n addSplit('extract');\n addSplit('lookup');\n return {\n branches: [],\n branchList: [getInheritedOrGlobal('onboardingBranch')!], // to prevent auto closing\n packageFiles: {},\n };\n },\n {\n attributes: {\n [ATTR_RENOVATE_SPLIT]: 'extract',\n },\n },\n );\n}\n\nexport function printRepositoryProblems(repository: string | undefined): void {\n const repoProblems = extractRepoProblems(repository);\n if (repoProblems.size) {\n logger.debug(\n { repoProblems: Array.from(repoProblems) },\n 'repository problems',\n );\n }\n}\n"],"mappings":"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"}
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": "43.208.2",
4
+ "version": "43.209.1",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",