renovate 39.248.4 → 39.249.0
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.
- package/dist/modules/manager/fingerprint.generated.js +1 -1
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/gradle/extract.js +3 -4
- package/dist/modules/manager/gradle/extract.js.map +1 -1
- package/dist/modules/manager/gradle/parser/handlers.js +8 -0
- package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
- package/dist/modules/manager/gradle/parser/registry-urls.js +36 -10
- package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
- package/dist/modules/manager/gradle/types.d.ts +1 -0
- package/dist/modules/manager/gradle/types.js.map +1 -1
- package/dist/modules/platform/gerrit/client.d.ts +0 -3
- package/dist/modules/platform/gerrit/client.js +7 -20
- package/dist/modules/platform/gerrit/client.js.map +1 -1
- package/dist/modules/platform/gerrit/index.js +0 -6
- package/dist/modules/platform/gerrit/index.js.map +1 -1
- package/dist/modules/platform/gerrit/scm.js +5 -6
- package/dist/modules/platform/gerrit/scm.js.map +1 -1
- package/dist/util/git/types.d.ts +2 -0
- package/dist/util/git/types.js.map +1 -1
- package/dist/workers/repository/update/branch/commit.js +2 -0
- package/dist/workers/repository/update/branch/commit.js.map +1 -1
- package/package.json +1 -1
@@ -47,7 +47,7 @@ exports.hashMap.set('gitlabci-include', '5bc01de9b40ecc8888a37690152f4a2f9cacc50
|
|
47
47
|
exports.hashMap.set('glasskube', 'fd415356a866ad174a5b70522d662e4289a2c5d5e34c55d57542b0d8968f1645');
|
48
48
|
exports.hashMap.set('gleam', 'a770dca6b63d34d1a5d7fc63130d5e030aac999d6a3398b8460bdf6f62e9a81e');
|
49
49
|
exports.hashMap.set('gomod', '2ef73ed8b8715a680923416bfe7afd45daae4ef515e2c3b5dae80a33aea8198b');
|
50
|
-
exports.hashMap.set('gradle', '
|
50
|
+
exports.hashMap.set('gradle', '0d5ddaed06c1abba30dbf26585aa4d86a7b2e8e5d083599fcf3180c946aa2767');
|
51
51
|
exports.hashMap.set('gradle-wrapper', 'f98404470f93f59794d0fc242779559d5a9d8751f5abc40cb61a49cd0652b1b4');
|
52
52
|
exports.hashMap.set('haskell-cabal', 'a2bf118238529952d0f2f352112dfbc86fb5533ef819625161a130f39c8ca713');
|
53
53
|
exports.hashMap.set('helm-requirements', '8f643d415ab0cfbef05bce4dce9812eef47bddb7b8b67a191e6a4230489e652f');
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fingerprint.generated.js","sourceRoot":"","sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"names":[],"mappings":"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","sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','4c234d79f768392545924fa9b139f8d177f15b6aa46776cf063860a1d36e48c7');\nhashMap.set('ansible-galaxy','a211e40f5c8613986ac16bc8d5389ea23d145cd643091d1b951a7f65926e99ff');\nhashMap.set('argocd','37faccd3854254a2009d963f781e77cf6e5aca3719ffd7cae1fea3d02c153eed');\nhashMap.set('asdf','d4b167265b656f5eb744084dd094c67e699940ddaacb53de30cd5c67e54b6b1d');\nhashMap.set('azure-pipelines','0b741b2629f6d94589524ce9b3886765e5c5648c9b6d707bb0b5fede276f9c09');\nhashMap.set('batect','523e8d7a309b4814a02819371313b2dac3764eab64cabfaf1d58b6e89de4ce43');\nhashMap.set('batect-wrapper','90941650f810adb3d7abe476da7221ff3434aa9d09ffc3d310e35108f360f364');\nhashMap.set('bazel','699577431cada5c8621a238b8f80f0983ee0ed7eac92f93467b5bf8f007e9cda');\nhashMap.set('bazel-module','4d17b230e900c27d1107ccb8a3b1cc5da61286cb702c504e40ed63a126df5997');\nhashMap.set('bazelisk','6fbef61d534724ff259ea6e4fc1cd0a3d5a46d740c375128fa59b225daddd39f');\nhashMap.set('bicep','fbbd74998411012cfba829526701109d1fc184ade0cb11a28e4ca2956174b0f1');\nhashMap.set('bitbucket-pipelines','98c0d715a7eb4e41b8231091b83385f325966373f37dc7d6bc10b1febb6f605e');\nhashMap.set('bitrise','d18d2dcd356e19c4cd94912511a88636198c23b64e54f31da273be11044970cf');\nhashMap.set('buildkite','ac713ce38da057ff3ceb08d092291356dfc74f5b33b75f010bb9db1a211439c0');\nhashMap.set('buildpacks','cc8bbe937416a012df36a5c7ab01ae3cdedbed03615549bbe9f0f27fa40a150b');\nhashMap.set('bun','8840ad7a34860f9d7c651eb00f1db0c9f8a807416c05dafbc04493bebec99ac7');\nhashMap.set('bun-version','49194d7fcb6b7bdd7e7a1264f71532bb2be8142d48478bf74716f7a9d4b306b9');\nhashMap.set('bundler','4cd7892c5c7ab98d254f24a0e62c0f637c8958aebb451158a81656d6be8d6662');\nhashMap.set('cake','a04160b352550cb470acb62f9a532361842c12f2ffbcd473bffca3de024522d9');\nhashMap.set('cargo','62650a1dfa15569c1dbd798a81886e3e78165a4c22f333a70ea93e4a385c8837');\nhashMap.set('cdnurl','70281459e771df007787fc25dba16e4d5109865f97209dcf4f572ddd287d538a');\nhashMap.set('circleci','ccd5e0a0179dce6f2c1817c990e5ac37099c6057710bf87495aa471274ed579d');\nhashMap.set('cloudbuild','e4f926bfb907220e97dce98335837c52b4e0fe66d813593a7e572736acfc53f7');\nhashMap.set('cocoapods','c2695071e5aaec8178e29615b6dc1cdf9cc68c5d73d5d88b54fed41e6aaec832');\nhashMap.set('composer','6d1dffffe36e3cfe98d02cefd4c4403d48d1163aef2810a26d05bbe05e1a3213');\nhashMap.set('conan','7a5d054f43548ce08a428637ad1fe62796f635cabbca5e8c9cecfd629514cfce');\nhashMap.set('copier','6fa1b4898a64ca780d933728ddc8876014c6f0dea7a2ab2f84b832e8bf4df408');\nhashMap.set('cpanfile','9b354db9666eee2485b27e44a6e61eaadc86ec2f2c6af9bb7bbc9fab54f31642');\nhashMap.set('crossplane','76261ff27b38f9850ee1a3a7e95168abefd96b4736f2cf04a7343e16827b42d8');\nhashMap.set('deps-edn','4e4b76596229f23524086c1dca79c52159ae3ec094e28d8a59bd8a1926458046');\nhashMap.set('devbox','7acedf4c5d3bef2f6c75c8b490c47f18fb03597680b46e4670ae5fe6f9873960');\nhashMap.set('devcontainer','e9982b5ff8aeac8fefb40dc363d3ab35f58af8c08b91eb45d22937a8c60447bb');\nhashMap.set('docker-compose','39189def818fcafbd25114ad4905e30695e3e9b6e280b7d24390385ac36b2512');\nhashMap.set('dockerfile','0bddc097addf84db6aa48d985567f247ca89affe1265ac09e6cd9635f61710f9');\nhashMap.set('droneci','f2a98fcece07b462baaceb28cd6904e080cb1ab0727fcd7403bea5ffd2e05239');\nhashMap.set('fleet','d091e008ae47b1b1e4ec0a573b1b6439a875a1d9cac987e8b62e27e0cb0234ad');\nhashMap.set('flux','3b87b351f98c11ca0e6cb275deb708dc9bf601a7e578f7a3a7e83fe6e15eb540');\nhashMap.set('fvm','aa154dd5ffe3caced30713a9a55967360b7a0f35edd2fc06bd6f3e73c5c87570');\nhashMap.set('git-submodules','d49d744fffb965dea648af37ea16591b4a0ecf32c4f103b04f4555b58d0f3573');\nhashMap.set('github-actions','0f53446a1a822e01bc847709ce64573af8f7e58f99b51b93cf41d1526bf3f41e');\nhashMap.set('gitlabci','1bad97e9892ea652b6522154d521aa91b299c52e5618943f04e65f78031a13a9');\nhashMap.set('gitlabci-include','5bc01de9b40ecc8888a37690152f4a2f9cacc509b9cb5902aac024ca7a7c8e65');\nhashMap.set('glasskube','fd415356a866ad174a5b70522d662e4289a2c5d5e34c55d57542b0d8968f1645');\nhashMap.set('gleam','a770dca6b63d34d1a5d7fc63130d5e030aac999d6a3398b8460bdf6f62e9a81e');\nhashMap.set('gomod','2ef73ed8b8715a680923416bfe7afd45daae4ef515e2c3b5dae80a33aea8198b');\nhashMap.set('gradle','f36d00c51b47c8f31586621f15832f30aef96d4e765b2df1c958978adc11034d');\nhashMap.set('gradle-wrapper','f98404470f93f59794d0fc242779559d5a9d8751f5abc40cb61a49cd0652b1b4');\nhashMap.set('haskell-cabal','a2bf118238529952d0f2f352112dfbc86fb5533ef819625161a130f39c8ca713');\nhashMap.set('helm-requirements','8f643d415ab0cfbef05bce4dce9812eef47bddb7b8b67a191e6a4230489e652f');\nhashMap.set('helm-values','fbd4a0b4bdda8a71dc38ac8916287f73e2b7de5ef122096a5b5d525c1a3306cd');\nhashMap.set('helmfile','ee6a6cfb5680f8f896a2f7ac3d68770b300cfd0a4b75a7ca7edb4e1c1f51b7a2');\nhashMap.set('helmsman','734fa89740fd5140ca3e39204872aba3451c05cd17f0b5e2b635934ed7b1710b');\nhashMap.set('helmv3','1d1683f9a792de9ae9ffd9157d9ccd394c012b4d906299b33f21c2bfadbdf30b');\nhashMap.set('hermit','5f5be9105a42a81ea32ea69d935584d2661596cb1815fa33a05bec0182e5683d');\nhashMap.set('homebrew','4b05428b846b8a7c260a41500cc14938cca8e7d5df0e2510050f95718f6f823f');\nhashMap.set('html','226a9084e10ebf754906386159db08667394f5432105249bdb30d9c60af9fb56');\nhashMap.set('jenkins','309db014e3590e1cd6d53ede2755395c82e5cd4b880425daf52a6ab60e0d6a42');\nhashMap.set('jsonnet-bundler','83c3b9f3c6903929f6842bafc8219437dc822005505b64ed2cb6e63babc28dcb');\nhashMap.set('kotlin-script','92685101abed54eed208ff0a4499642684b296a4a5b0bcacf8e8a1a2ef6e5599');\nhashMap.set('kubernetes','bb608410f83a717dae2d065e83a70d339acf1fbd6f67f149cc2610900d9e445f');\nhashMap.set('kustomize','b0a7444bde37c7ea3ad47062fddaf03892c7da4912b8c042e8c07dde182da46c');\nhashMap.set('leiningen','0598d2f53cfc92076d47186245a7b591d2b0df157609a7f55a37b54ab2d32a77');\nhashMap.set('maven','bf854a7bccee272feba54b2002b3c366b7a09e34bbbdc0ab8def4e4c0cae2311');\nhashMap.set('maven-wrapper','56edbbfaf0844fc497de31159719ef5064389120a1a9ca85c0c67d5328c8ac81');\nhashMap.set('meteor','a9785d85b3520ed9e763c800730f36b95747795699758ecbe1395133c5b0040e');\nhashMap.set('mint','7072e37f18bb57500018406eb8711b2615b1916f073867f30653cdd4a99dab81');\nhashMap.set('mise','2ea4e77f536aa3645bdb0a5cf422662d83b74c4d13aa70b9446ed8ab68c4b3d0');\nhashMap.set('mix','9f506a6e42135fd299d240ac445996f414a502c01588107d7e65848b1368ee03');\nhashMap.set('nix','2630474b9fce0f0d3d8e27df4d86abd7564931e2eae3b4d54b3870bb712366f5');\nhashMap.set('nodenv','d159174d53e39af2013443cf86df88e14aac79a5a8d602180af229dcb2ddeda9');\nhashMap.set('npm','cd89f4d6534fa2cb59109385dda1e860142e5ed95bd00d0683407aceb461c24b');\nhashMap.set('nuget','c90dfcdcddafdf24e631d6feff22afa7f5940e88b16c8fc76af7f96fb7067b7b');\nhashMap.set('nvm','1928fd50bd6cc9f42d73262630056f2c0f8b0e061282bd02e58d116fc1788e2b');\nhashMap.set('ocb','55559051102728868b619820a6dc95753cdfbbb8aed46840e53db6733bc2ede4');\nhashMap.set('osgi','dae012cd486843eb53da4b032105e54d18f4e7537bd59c5321313950dd108a95');\nhashMap.set('pep621','7516ee920f797337857350812bc7e67b135ae2f0a602bc216413d8095fe1a53b');\nhashMap.set('pep723','bf07d466ea1bc9513c8d2cb475fcca3bc9b61f2184bd9af0a7a28d45b6f57ecd');\nhashMap.set('pip-compile','ae04fc449e79eefe95aa15553b6a6bebd417f3ca3251b37121e17503c808a2ac');\nhashMap.set('pip_requirements','1388d0a268691b57106e1e1643bccf7febea83f7fc8c3c0e341f36eafc3d4d7e');\nhashMap.set('pip_setup','31b330d9666d61474326a761a3ce1479f9a189ef6838ecfee78843ff4c80af73');\nhashMap.set('pipenv','823f1652628a6ce17943fe24a187aa2faa77d21e0aa001d3f8b0f9cd93a74ba9');\nhashMap.set('pixi','e209242b0dc2e6d57bcdec8f6a6f577db249ecb5eba1afea429cb1ff023a90d8');\nhashMap.set('poetry','f520b329d6b408fa727b0fe82bf464caed8525c3a2b12a746e95ce00e32c2129');\nhashMap.set('pre-commit','a881d191bd52396ea815e60a49b047f0f073e5a567c863829efbab32610bfa40');\nhashMap.set('pub','8e80b151d76db21808ddc36532e46fc657d0f8b7925943f1d13ceb19b1e061a3');\nhashMap.set('puppet','34f7e3916780e8ed352b65864bad91bf66547e29f91ee8fca7fd6e8fcd2621fd');\nhashMap.set('pyenv','4e520570d9a1407864aa7c5461d4008372d889254067e405cee2212d0ef8990b');\nhashMap.set('ruby-version','4aac2178a20ccdf8136363030e5156017f3d44368b4192b3280997df596dcacc');\nhashMap.set('runtime-version','dbf80ce2a5f07dd34bc9a008159b4f08052cc6fd0d92cbd2aeb0026c8008fa72');\nhashMap.set('sbt','dc1ec4aeeb5e012c7a595478873ad67e2dee6e2af951b12b9e9057cb64f2258d');\nhashMap.set('scalafmt','8a54fef703269ed31ce28887e62b0b838a13359e86fa77c7f4dceb89fda0f352');\nhashMap.set('setup-cfg','9a778d8a58f643fff1d23d750dfebed21e45bce99bfdcdc3de39795a407d983f');\nhashMap.set('sveltos','a69f9e206526af08685e20a72344b22d856f2effd882e67333a153a989a0a047');\nhashMap.set('swift','4866ba3e6d6e9288ae9e3a11ef673b36d1d78360e21d8266ae3a945b8683d669');\nhashMap.set('tekton','eb8fb6a25ca7fd0d304f67d5ab2e93ddd8b34854553130003ce3340ca7b3bba1');\nhashMap.set('terraform','8a0076ea3498d7c15beab4daa102ccc7877d154392f5b1750579a86e47b79c1a');\nhashMap.set('terraform-version','b08480f326c45daf3daeccc2d2f593a723c30a50437a66ac2290d671b427a355');\nhashMap.set('terragrunt','9988ff56620548133596437cd4d03a689ab195dd1addc00bc6074c26455a6486');\nhashMap.set('terragrunt-version','45f221b13a193a42687f318e10cf1558079e28c970e91ce25c370f35f88f2f58');\nhashMap.set('tflint-plugin','40ab6d0c975ff0b8e42651c088e159afe9f0d0c43a1dbf7c1295ec03c77bdc7c');\nhashMap.set('travis','30174e78a6297e44db1c030ea2e111084e14b1eac220f522522c77d684a76285');\nhashMap.set('velaci','9ad5d5d2584b9c189c4edcd25ad9103926bd4ba850a419a3b5e4aba9682817c3');\nhashMap.set('vendir','e2584cb214854405fed0b0e5dd608b709df1d8dadb7b761723125182e166fb02');\nhashMap.set('woodpecker','eaaa0a3bcfd0dc60c0990f2a1d7acf19c4f86ce4641ab3cf0a31f2bf46fc61b8');\nhashMap.set('jsonata','ca3fa7cd5d446eab618371ebf8d5aea3e47a494231c5f93b08496b859e67a020');\nhashMap.set('regex','f855dba6f55cf7e571241a0b273d2b12d8968ff76a0eeb773d006346949b6053');"]}
|
1
|
+
{"version":3,"file":"fingerprint.generated.js","sourceRoot":"","sources":["../../../lib/modules/manager/fingerprint.generated.ts"],"names":[],"mappings":"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","sourcesContent":["export const hashMap = new Map<string, string>();\n\nhashMap.set('ansible','4c234d79f768392545924fa9b139f8d177f15b6aa46776cf063860a1d36e48c7');\nhashMap.set('ansible-galaxy','a211e40f5c8613986ac16bc8d5389ea23d145cd643091d1b951a7f65926e99ff');\nhashMap.set('argocd','37faccd3854254a2009d963f781e77cf6e5aca3719ffd7cae1fea3d02c153eed');\nhashMap.set('asdf','d4b167265b656f5eb744084dd094c67e699940ddaacb53de30cd5c67e54b6b1d');\nhashMap.set('azure-pipelines','0b741b2629f6d94589524ce9b3886765e5c5648c9b6d707bb0b5fede276f9c09');\nhashMap.set('batect','523e8d7a309b4814a02819371313b2dac3764eab64cabfaf1d58b6e89de4ce43');\nhashMap.set('batect-wrapper','90941650f810adb3d7abe476da7221ff3434aa9d09ffc3d310e35108f360f364');\nhashMap.set('bazel','699577431cada5c8621a238b8f80f0983ee0ed7eac92f93467b5bf8f007e9cda');\nhashMap.set('bazel-module','4d17b230e900c27d1107ccb8a3b1cc5da61286cb702c504e40ed63a126df5997');\nhashMap.set('bazelisk','6fbef61d534724ff259ea6e4fc1cd0a3d5a46d740c375128fa59b225daddd39f');\nhashMap.set('bicep','fbbd74998411012cfba829526701109d1fc184ade0cb11a28e4ca2956174b0f1');\nhashMap.set('bitbucket-pipelines','98c0d715a7eb4e41b8231091b83385f325966373f37dc7d6bc10b1febb6f605e');\nhashMap.set('bitrise','d18d2dcd356e19c4cd94912511a88636198c23b64e54f31da273be11044970cf');\nhashMap.set('buildkite','ac713ce38da057ff3ceb08d092291356dfc74f5b33b75f010bb9db1a211439c0');\nhashMap.set('buildpacks','cc8bbe937416a012df36a5c7ab01ae3cdedbed03615549bbe9f0f27fa40a150b');\nhashMap.set('bun','8840ad7a34860f9d7c651eb00f1db0c9f8a807416c05dafbc04493bebec99ac7');\nhashMap.set('bun-version','49194d7fcb6b7bdd7e7a1264f71532bb2be8142d48478bf74716f7a9d4b306b9');\nhashMap.set('bundler','4cd7892c5c7ab98d254f24a0e62c0f637c8958aebb451158a81656d6be8d6662');\nhashMap.set('cake','a04160b352550cb470acb62f9a532361842c12f2ffbcd473bffca3de024522d9');\nhashMap.set('cargo','62650a1dfa15569c1dbd798a81886e3e78165a4c22f333a70ea93e4a385c8837');\nhashMap.set('cdnurl','70281459e771df007787fc25dba16e4d5109865f97209dcf4f572ddd287d538a');\nhashMap.set('circleci','ccd5e0a0179dce6f2c1817c990e5ac37099c6057710bf87495aa471274ed579d');\nhashMap.set('cloudbuild','e4f926bfb907220e97dce98335837c52b4e0fe66d813593a7e572736acfc53f7');\nhashMap.set('cocoapods','c2695071e5aaec8178e29615b6dc1cdf9cc68c5d73d5d88b54fed41e6aaec832');\nhashMap.set('composer','6d1dffffe36e3cfe98d02cefd4c4403d48d1163aef2810a26d05bbe05e1a3213');\nhashMap.set('conan','7a5d054f43548ce08a428637ad1fe62796f635cabbca5e8c9cecfd629514cfce');\nhashMap.set('copier','6fa1b4898a64ca780d933728ddc8876014c6f0dea7a2ab2f84b832e8bf4df408');\nhashMap.set('cpanfile','9b354db9666eee2485b27e44a6e61eaadc86ec2f2c6af9bb7bbc9fab54f31642');\nhashMap.set('crossplane','76261ff27b38f9850ee1a3a7e95168abefd96b4736f2cf04a7343e16827b42d8');\nhashMap.set('deps-edn','4e4b76596229f23524086c1dca79c52159ae3ec094e28d8a59bd8a1926458046');\nhashMap.set('devbox','7acedf4c5d3bef2f6c75c8b490c47f18fb03597680b46e4670ae5fe6f9873960');\nhashMap.set('devcontainer','e9982b5ff8aeac8fefb40dc363d3ab35f58af8c08b91eb45d22937a8c60447bb');\nhashMap.set('docker-compose','39189def818fcafbd25114ad4905e30695e3e9b6e280b7d24390385ac36b2512');\nhashMap.set('dockerfile','0bddc097addf84db6aa48d985567f247ca89affe1265ac09e6cd9635f61710f9');\nhashMap.set('droneci','f2a98fcece07b462baaceb28cd6904e080cb1ab0727fcd7403bea5ffd2e05239');\nhashMap.set('fleet','d091e008ae47b1b1e4ec0a573b1b6439a875a1d9cac987e8b62e27e0cb0234ad');\nhashMap.set('flux','3b87b351f98c11ca0e6cb275deb708dc9bf601a7e578f7a3a7e83fe6e15eb540');\nhashMap.set('fvm','aa154dd5ffe3caced30713a9a55967360b7a0f35edd2fc06bd6f3e73c5c87570');\nhashMap.set('git-submodules','d49d744fffb965dea648af37ea16591b4a0ecf32c4f103b04f4555b58d0f3573');\nhashMap.set('github-actions','0f53446a1a822e01bc847709ce64573af8f7e58f99b51b93cf41d1526bf3f41e');\nhashMap.set('gitlabci','1bad97e9892ea652b6522154d521aa91b299c52e5618943f04e65f78031a13a9');\nhashMap.set('gitlabci-include','5bc01de9b40ecc8888a37690152f4a2f9cacc509b9cb5902aac024ca7a7c8e65');\nhashMap.set('glasskube','fd415356a866ad174a5b70522d662e4289a2c5d5e34c55d57542b0d8968f1645');\nhashMap.set('gleam','a770dca6b63d34d1a5d7fc63130d5e030aac999d6a3398b8460bdf6f62e9a81e');\nhashMap.set('gomod','2ef73ed8b8715a680923416bfe7afd45daae4ef515e2c3b5dae80a33aea8198b');\nhashMap.set('gradle','0d5ddaed06c1abba30dbf26585aa4d86a7b2e8e5d083599fcf3180c946aa2767');\nhashMap.set('gradle-wrapper','f98404470f93f59794d0fc242779559d5a9d8751f5abc40cb61a49cd0652b1b4');\nhashMap.set('haskell-cabal','a2bf118238529952d0f2f352112dfbc86fb5533ef819625161a130f39c8ca713');\nhashMap.set('helm-requirements','8f643d415ab0cfbef05bce4dce9812eef47bddb7b8b67a191e6a4230489e652f');\nhashMap.set('helm-values','fbd4a0b4bdda8a71dc38ac8916287f73e2b7de5ef122096a5b5d525c1a3306cd');\nhashMap.set('helmfile','ee6a6cfb5680f8f896a2f7ac3d68770b300cfd0a4b75a7ca7edb4e1c1f51b7a2');\nhashMap.set('helmsman','734fa89740fd5140ca3e39204872aba3451c05cd17f0b5e2b635934ed7b1710b');\nhashMap.set('helmv3','1d1683f9a792de9ae9ffd9157d9ccd394c012b4d906299b33f21c2bfadbdf30b');\nhashMap.set('hermit','5f5be9105a42a81ea32ea69d935584d2661596cb1815fa33a05bec0182e5683d');\nhashMap.set('homebrew','4b05428b846b8a7c260a41500cc14938cca8e7d5df0e2510050f95718f6f823f');\nhashMap.set('html','226a9084e10ebf754906386159db08667394f5432105249bdb30d9c60af9fb56');\nhashMap.set('jenkins','309db014e3590e1cd6d53ede2755395c82e5cd4b880425daf52a6ab60e0d6a42');\nhashMap.set('jsonnet-bundler','83c3b9f3c6903929f6842bafc8219437dc822005505b64ed2cb6e63babc28dcb');\nhashMap.set('kotlin-script','92685101abed54eed208ff0a4499642684b296a4a5b0bcacf8e8a1a2ef6e5599');\nhashMap.set('kubernetes','bb608410f83a717dae2d065e83a70d339acf1fbd6f67f149cc2610900d9e445f');\nhashMap.set('kustomize','b0a7444bde37c7ea3ad47062fddaf03892c7da4912b8c042e8c07dde182da46c');\nhashMap.set('leiningen','0598d2f53cfc92076d47186245a7b591d2b0df157609a7f55a37b54ab2d32a77');\nhashMap.set('maven','bf854a7bccee272feba54b2002b3c366b7a09e34bbbdc0ab8def4e4c0cae2311');\nhashMap.set('maven-wrapper','56edbbfaf0844fc497de31159719ef5064389120a1a9ca85c0c67d5328c8ac81');\nhashMap.set('meteor','a9785d85b3520ed9e763c800730f36b95747795699758ecbe1395133c5b0040e');\nhashMap.set('mint','7072e37f18bb57500018406eb8711b2615b1916f073867f30653cdd4a99dab81');\nhashMap.set('mise','2ea4e77f536aa3645bdb0a5cf422662d83b74c4d13aa70b9446ed8ab68c4b3d0');\nhashMap.set('mix','9f506a6e42135fd299d240ac445996f414a502c01588107d7e65848b1368ee03');\nhashMap.set('nix','2630474b9fce0f0d3d8e27df4d86abd7564931e2eae3b4d54b3870bb712366f5');\nhashMap.set('nodenv','d159174d53e39af2013443cf86df88e14aac79a5a8d602180af229dcb2ddeda9');\nhashMap.set('npm','cd89f4d6534fa2cb59109385dda1e860142e5ed95bd00d0683407aceb461c24b');\nhashMap.set('nuget','c90dfcdcddafdf24e631d6feff22afa7f5940e88b16c8fc76af7f96fb7067b7b');\nhashMap.set('nvm','1928fd50bd6cc9f42d73262630056f2c0f8b0e061282bd02e58d116fc1788e2b');\nhashMap.set('ocb','55559051102728868b619820a6dc95753cdfbbb8aed46840e53db6733bc2ede4');\nhashMap.set('osgi','dae012cd486843eb53da4b032105e54d18f4e7537bd59c5321313950dd108a95');\nhashMap.set('pep621','7516ee920f797337857350812bc7e67b135ae2f0a602bc216413d8095fe1a53b');\nhashMap.set('pep723','bf07d466ea1bc9513c8d2cb475fcca3bc9b61f2184bd9af0a7a28d45b6f57ecd');\nhashMap.set('pip-compile','ae04fc449e79eefe95aa15553b6a6bebd417f3ca3251b37121e17503c808a2ac');\nhashMap.set('pip_requirements','1388d0a268691b57106e1e1643bccf7febea83f7fc8c3c0e341f36eafc3d4d7e');\nhashMap.set('pip_setup','31b330d9666d61474326a761a3ce1479f9a189ef6838ecfee78843ff4c80af73');\nhashMap.set('pipenv','823f1652628a6ce17943fe24a187aa2faa77d21e0aa001d3f8b0f9cd93a74ba9');\nhashMap.set('pixi','e209242b0dc2e6d57bcdec8f6a6f577db249ecb5eba1afea429cb1ff023a90d8');\nhashMap.set('poetry','f520b329d6b408fa727b0fe82bf464caed8525c3a2b12a746e95ce00e32c2129');\nhashMap.set('pre-commit','a881d191bd52396ea815e60a49b047f0f073e5a567c863829efbab32610bfa40');\nhashMap.set('pub','8e80b151d76db21808ddc36532e46fc657d0f8b7925943f1d13ceb19b1e061a3');\nhashMap.set('puppet','34f7e3916780e8ed352b65864bad91bf66547e29f91ee8fca7fd6e8fcd2621fd');\nhashMap.set('pyenv','4e520570d9a1407864aa7c5461d4008372d889254067e405cee2212d0ef8990b');\nhashMap.set('ruby-version','4aac2178a20ccdf8136363030e5156017f3d44368b4192b3280997df596dcacc');\nhashMap.set('runtime-version','dbf80ce2a5f07dd34bc9a008159b4f08052cc6fd0d92cbd2aeb0026c8008fa72');\nhashMap.set('sbt','dc1ec4aeeb5e012c7a595478873ad67e2dee6e2af951b12b9e9057cb64f2258d');\nhashMap.set('scalafmt','8a54fef703269ed31ce28887e62b0b838a13359e86fa77c7f4dceb89fda0f352');\nhashMap.set('setup-cfg','9a778d8a58f643fff1d23d750dfebed21e45bce99bfdcdc3de39795a407d983f');\nhashMap.set('sveltos','a69f9e206526af08685e20a72344b22d856f2effd882e67333a153a989a0a047');\nhashMap.set('swift','4866ba3e6d6e9288ae9e3a11ef673b36d1d78360e21d8266ae3a945b8683d669');\nhashMap.set('tekton','eb8fb6a25ca7fd0d304f67d5ab2e93ddd8b34854553130003ce3340ca7b3bba1');\nhashMap.set('terraform','8a0076ea3498d7c15beab4daa102ccc7877d154392f5b1750579a86e47b79c1a');\nhashMap.set('terraform-version','b08480f326c45daf3daeccc2d2f593a723c30a50437a66ac2290d671b427a355');\nhashMap.set('terragrunt','9988ff56620548133596437cd4d03a689ab195dd1addc00bc6074c26455a6486');\nhashMap.set('terragrunt-version','45f221b13a193a42687f318e10cf1558079e28c970e91ce25c370f35f88f2f58');\nhashMap.set('tflint-plugin','40ab6d0c975ff0b8e42651c088e159afe9f0d0c43a1dbf7c1295ec03c77bdc7c');\nhashMap.set('travis','30174e78a6297e44db1c030ea2e111084e14b1eac220f522522c77d684a76285');\nhashMap.set('velaci','9ad5d5d2584b9c189c4edcd25ad9103926bd4ba850a419a3b5e4aba9682817c3');\nhashMap.set('vendir','e2584cb214854405fed0b0e5dd608b709df1d8dadb7b761723125182e166fb02');\nhashMap.set('woodpecker','eaaa0a3bcfd0dc60c0990f2a1d7acf19c4f86ce4641ab3cf0a31f2bf46fc61b8');\nhashMap.set('jsonata','ca3fa7cd5d446eab618371ebf8d5aea3e47a494231c5f93b08496b859e67a020');\nhashMap.set('regex','f855dba6f55cf7e571241a0b273d2b12d8968ff76a0eeb773d006346949b6053');"]}
|
@@ -96,10 +96,9 @@ function matchesContentDescriptor(dep, contentDescriptors) {
|
|
96
96
|
}
|
97
97
|
function getRegistryUrlsForDep(packageRegistries, dep) {
|
98
98
|
const scope = dep.depType === 'plugin' ? 'plugin' : 'dep';
|
99
|
-
const
|
100
|
-
|
101
|
-
|
102
|
-
.map((item) => item.registryUrl);
|
99
|
+
const matchingRegistries = packageRegistries.filter((item) => item.scope === scope && matchesContentDescriptor(dep, item.content));
|
100
|
+
const exclusiveRegistries = matchingRegistries.filter((item) => item.registryType === 'exclusive');
|
101
|
+
const registryUrls = (exclusiveRegistries.length ? exclusiveRegistries : matchingRegistries).map((item) => item.registryUrl);
|
103
102
|
if (!registryUrls.length && scope === 'plugin') {
|
104
103
|
registryUrls.push(common_1.REGISTRY_URLS.gradlePluginPortal);
|
105
104
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gradle/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import upath from 'upath';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { getLocalFiles } from '../../../util/fs';\nimport { regEx } from '../../../util/regex';\nimport { MavenDatasource } from '../../datasource/maven';\nimport gradleVersioning from '../../versioning/gradle';\nimport type { ExtractConfig, PackageDependency, PackageFile } from '../types';\nimport { parseCatalog } from './extract/catalog';\nimport {\n isGcvPropsFile,\n parseGcv,\n usesGcv,\n} from './extract/consistent-versions-plugin';\nimport { parseGradle, parseKotlinSource, parseProps } from './parser';\nimport { REGISTRY_URLS } from './parser/common';\nimport type {\n ContentDescriptorSpec,\n GradleManagerData,\n PackageRegistry,\n VariableRegistry,\n} from './types';\nimport {\n getVars,\n isGradleScriptFile,\n isKotlinSourceFile,\n isPropsFile,\n isTOMLFile,\n reorderFiles,\n toAbsolutePath,\n updateVars,\n} from './utils';\n\nconst mavenDatasource = MavenDatasource.id;\n\nfunction updatePackageRegistries(\n packageRegistries: PackageRegistry[],\n urls: PackageRegistry[],\n): void {\n for (const url of urls) {\n const registryAlreadyKnown = packageRegistries.some(\n (item) =>\n item.registryUrl === url.registryUrl && item.scope === url.scope,\n );\n if (!registryAlreadyKnown) {\n packageRegistries.push(url);\n }\n }\n}\n\nexport function matchesContentDescriptor(\n dep: PackageDependency<GradleManagerData>,\n contentDescriptors?: ContentDescriptorSpec[],\n): boolean {\n const [groupId, artifactId] = (dep.packageName ?? dep.depName!).split(':');\n let hasIncludes = false;\n let hasExcludes = false;\n let matchesInclude = false;\n let matchesExclude = false;\n\n for (const content of coerceArray(contentDescriptors)) {\n const {\n mode,\n matcher,\n groupId: contentGroupId,\n artifactId: contentArtifactId,\n version: contentVersion,\n } = content;\n\n // group matching\n let groupMatch = false;\n if (matcher === 'regex') {\n groupMatch = regEx(contentGroupId).test(groupId);\n } else if (matcher === 'subgroup') {\n groupMatch =\n groupId === contentGroupId || `${groupId}.`.startsWith(contentGroupId);\n } else {\n groupMatch = groupId === contentGroupId;\n }\n\n // artifact matching (optional)\n let artifactMatch = true;\n if (groupMatch && contentArtifactId) {\n if (matcher === 'regex') {\n artifactMatch = regEx(contentArtifactId).test(artifactId);\n } else {\n artifactMatch = artifactId === contentArtifactId;\n }\n }\n\n // version matching (optional)\n let versionMatch = true;\n if (groupMatch && artifactMatch && contentVersion && dep.currentValue) {\n if (matcher === 'regex') {\n versionMatch = regEx(contentVersion).test(dep.currentValue);\n } else {\n // contentVersion can be an exact version or a gradle-supported version range\n versionMatch = gradleVersioning.matches(\n dep.currentValue,\n contentVersion,\n );\n }\n }\n\n const isMatch = groupMatch && artifactMatch && versionMatch;\n if (mode === 'include') {\n hasIncludes = true;\n if (isMatch) {\n matchesInclude = true;\n }\n } else if (mode === 'exclude') {\n hasExcludes = true;\n if (isMatch) {\n matchesExclude = true;\n }\n }\n }\n\n if (hasIncludes && hasExcludes) {\n // if both includes and excludes exist, dep must match include and not match exclude\n return matchesInclude && !matchesExclude;\n } else if (hasIncludes) {\n // if only includes exist, dep must match at least one include\n return matchesInclude;\n } else if (hasExcludes) {\n // if only excludes exist, dep must not match any exclude\n return !matchesExclude;\n }\n\n // by default, repositories include everything and exclude nothing\n return true;\n}\n\nfunction getRegistryUrlsForDep(\n packageRegistries: PackageRegistry[],\n dep: PackageDependency<GradleManagerData>,\n): string[] {\n const scope = dep.depType === 'plugin' ? 'plugin' : 'dep';\n\n const registryUrls = packageRegistries\n .filter((item) => item.scope === scope)\n .filter((item) => matchesContentDescriptor(dep, item.content))\n .map((item) => item.registryUrl);\n\n if (!registryUrls.length && scope === 'plugin') {\n registryUrls.push(REGISTRY_URLS.gradlePluginPortal);\n }\n\n return [...new Set(registryUrls)];\n}\n\nasync function parsePackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n extractedDeps: PackageDependency<GradleManagerData>[],\n packageFilesByName: Record<string, PackageFile>,\n packageRegistries: PackageRegistry[],\n): Promise<PackageDependency<GradleManagerData>[]> {\n const varRegistry: VariableRegistry = {};\n const fileContents = await getLocalFiles(packageFiles);\n\n for (const packageFile of packageFiles) {\n packageFilesByName[packageFile] = {\n packageFile,\n datasource: mavenDatasource,\n deps: [],\n };\n\n try {\n // TODO #22198\n const content = fileContents[packageFile]!;\n const packageFileDir = upath.dirname(toAbsolutePath(packageFile));\n\n if (isPropsFile(packageFile)) {\n const { vars, deps } = parseProps(content, packageFile);\n updateVars(varRegistry, packageFileDir, vars);\n extractedDeps.push(...deps);\n } else if (isTOMLFile(packageFile)) {\n const deps = parseCatalog(packageFile, content);\n extractedDeps.push(...deps);\n } else if (\n isGcvPropsFile(packageFile) &&\n usesGcv(packageFile, fileContents)\n ) {\n const deps = parseGcv(packageFile, fileContents);\n extractedDeps.push(...deps);\n } else if (isKotlinSourceFile(packageFile)) {\n const vars = getVars(varRegistry, packageFileDir);\n const { vars: gradleVars, deps } = parseKotlinSource(\n content,\n vars,\n packageFile,\n );\n updateVars(varRegistry, '/', gradleVars);\n extractedDeps.push(...deps);\n } else if (isGradleScriptFile(packageFile)) {\n const vars = getVars(varRegistry, packageFileDir);\n const {\n deps,\n urls,\n vars: gradleVars,\n } = parseGradle(content, vars, packageFile, fileContents);\n updatePackageRegistries(packageRegistries, urls);\n updateVars(varRegistry, packageFileDir, gradleVars);\n extractedDeps.push(...deps);\n }\n } catch (err) {\n logger.debug(\n { err, config, packageFile },\n `Failed to process Gradle file`,\n );\n }\n }\n\n return extractedDeps;\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile[] | null> {\n const packageFilesByName: Record<string, PackageFile> = {};\n const packageRegistries: PackageRegistry[] = [];\n const extractedDeps: PackageDependency<GradleManagerData>[] = [];\n const kotlinSourceFiles = packageFiles.filter(isKotlinSourceFile);\n const gradleFiles = reorderFiles(\n packageFiles.filter((e) => !kotlinSourceFiles.includes(e)),\n );\n\n await parsePackageFiles(\n config,\n [...kotlinSourceFiles, ...kotlinSourceFiles, ...gradleFiles],\n extractedDeps,\n packageFilesByName,\n packageRegistries,\n );\n\n if (!extractedDeps.length) {\n return null;\n }\n\n for (const dep of extractedDeps) {\n dep.fileReplacePosition = dep?.managerData?.fileReplacePosition; // #8224\n\n const key = dep.managerData?.packageFile;\n // istanbul ignore else\n if (key) {\n let pkgFile: PackageFile = packageFilesByName[key];\n // istanbul ignore if: won't happen if \"apply from\" processes only initially known files\n if (!pkgFile) {\n pkgFile = {\n packageFile: key,\n datasource: mavenDatasource,\n deps: [],\n };\n }\n\n dep.datasource ??= mavenDatasource;\n\n if (dep.datasource === mavenDatasource) {\n dep.registryUrls = getRegistryUrlsForDep(packageRegistries, dep);\n\n dep.depType ??=\n key.startsWith('buildSrc') && !kotlinSourceFiles.length\n ? 'devDependencies'\n : 'dependencies';\n }\n\n const depAlreadyInPkgFile = pkgFile.deps.some(\n (item) =>\n item.depName === dep.depName &&\n item.managerData?.fileReplacePosition ===\n dep.managerData?.fileReplacePosition,\n );\n if (!depAlreadyInPkgFile) {\n pkgFile.deps.push(dep);\n }\n\n packageFilesByName[key] = pkgFile;\n } else {\n logger.debug({ dep }, `Failed to process Gradle dependency`);\n }\n }\n\n return Object.values(packageFilesByName);\n}\n"]}
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gradle/extract.ts"],"names":[],"mappings":";;AAkDA,4DAiFC;AA8FD,wDAoEC;;AArSD,0DAA0B;AAC1B,4CAAyC;AACzC,+CAAkD;AAClD,yCAAiD;AACjD,+CAA4C;AAC5C,kDAAyD;AACzD,6EAAuD;AAEvD,+CAAiD;AACjD,qFAI8C;AAC9C,qCAAsE;AACtE,4CAAgD;AAOhD,mCASiB;AAEjB,MAAM,eAAe,GAAG,uBAAe,CAAC,EAAE,CAAC;AAE3C,SAAS,uBAAuB,CAC9B,iBAAoC,EACpC,IAAuB;IAEvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,IAAI,CACjD,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,WAAW,KAAK,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,CACnE,CAAC;QACF,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,wBAAwB,CACtC,GAAyC,EACzC,kBAA4C;IAE5C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,OAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3E,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,cAAc,GAAG,KAAK,CAAC;IAE3B,KAAK,MAAM,OAAO,IAAI,IAAA,mBAAW,EAAC,kBAAkB,CAAC,EAAE,CAAC;QACtD,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,iBAAiB,EAC7B,OAAO,EAAE,cAAc,GACxB,GAAG,OAAO,CAAC;QAEZ,iBAAiB;QACjB,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,UAAU,GAAG,IAAA,aAAK,EAAC,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;aAAM,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAClC,UAAU;gBACR,OAAO,KAAK,cAAc,IAAI,GAAG,OAAO,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,OAAO,KAAK,cAAc,CAAC;QAC1C,CAAC;QAED,+BAA+B;QAC/B,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,IAAI,UAAU,IAAI,iBAAiB,EAAE,CAAC;YACpC,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACxB,aAAa,GAAG,IAAA,aAAK,EAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5D,CAAC;iBAAM,CAAC;gBACN,aAAa,GAAG,UAAU,KAAK,iBAAiB,CAAC;YACnD,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,IAAI,UAAU,IAAI,aAAa,IAAI,cAAc,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YACtE,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBACxB,YAAY,GAAG,IAAA,aAAK,EAAC,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,6EAA6E;gBAC7E,YAAY,GAAG,gBAAgB,CAAC,OAAO,CACrC,GAAG,CAAC,YAAY,EAChB,cAAc,CACf,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,IAAI,aAAa,IAAI,YAAY,CAAC;QAC5D,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,WAAW,GAAG,IAAI,CAAC;YACnB,IAAI,OAAO,EAAE,CAAC;gBACZ,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,WAAW,GAAG,IAAI,CAAC;YACnB,IAAI,OAAO,EAAE,CAAC;gBACZ,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;QAC/B,oFAAoF;QACpF,OAAO,cAAc,IAAI,CAAC,cAAc,CAAC;IAC3C,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,8DAA8D;QAC9D,OAAO,cAAc,CAAC;IACxB,CAAC;SAAM,IAAI,WAAW,EAAE,CAAC;QACvB,yDAAyD;QACzD,OAAO,CAAC,cAAc,CAAC;IACzB,CAAC;IAED,kEAAkE;IAClE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAC5B,iBAAoC,EACpC,GAAyC;IAEzC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IAE1D,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,MAAM,CACjD,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,wBAAwB,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CACtE,CAAC;IAEF,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,MAAM,CACnD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,WAAW,CAC5C,CAAC;IAEF,MAAM,YAAY,GAAG,CACnB,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CACtE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAElC,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/C,YAAY,CAAC,IAAI,CAAC,sBAAa,CAAC,kBAAkB,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,MAAqB,EACrB,YAAsB,EACtB,aAAqD,EACrD,kBAA+C,EAC/C,iBAAoC;IAEpC,MAAM,WAAW,GAAqB,EAAE,CAAC;IACzC,MAAM,YAAY,GAAG,MAAM,IAAA,kBAAa,EAAC,YAAY,CAAC,CAAC;IAEvD,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,kBAAkB,CAAC,WAAW,CAAC,GAAG;YAChC,WAAW;YACX,UAAU,EAAE,eAAe;YAC3B,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,IAAI,CAAC;YACH,cAAc;YACd,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,CAAE,CAAC;YAC3C,MAAM,cAAc,GAAG,eAAK,CAAC,OAAO,CAAC,IAAA,sBAAc,EAAC,WAAW,CAAC,CAAC,CAAC;YAElE,IAAI,IAAA,mBAAW,EAAC,WAAW,CAAC,EAAE,CAAC;gBAC7B,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAA,mBAAU,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBACxD,IAAA,kBAAU,EAAC,WAAW,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;gBAC9C,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9B,CAAC;iBAAM,IAAI,IAAA,kBAAU,EAAC,WAAW,CAAC,EAAE,CAAC;gBACnC,MAAM,IAAI,GAAG,IAAA,sBAAY,EAAC,WAAW,EAAE,OAAO,CAAC,CAAC;gBAChD,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9B,CAAC;iBAAM,IACL,IAAA,2CAAc,EAAC,WAAW,CAAC;gBAC3B,IAAA,oCAAO,EAAC,WAAW,EAAE,YAAY,CAAC,EAClC,CAAC;gBACD,MAAM,IAAI,GAAG,IAAA,qCAAQ,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;gBACjD,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9B,CAAC;iBAAM,IAAI,IAAA,0BAAkB,EAAC,WAAW,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,IAAA,eAAO,EAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBAClD,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,IAAA,0BAAiB,EAClD,OAAO,EACP,IAAI,EACJ,WAAW,CACZ,CAAC;gBACF,IAAA,kBAAU,EAAC,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;gBACzC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9B,CAAC;iBAAM,IAAI,IAAA,0BAAkB,EAAC,WAAW,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,IAAA,eAAO,EAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBAClD,MAAM,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EAAE,UAAU,GACjB,GAAG,IAAA,oBAAW,EAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;gBAC1D,uBAAuB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;gBACjD,IAAA,kBAAU,EAAC,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;gBACpD,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,eAAM,CAAC,KAAK,CACV,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,EAC5B,+BAA+B,CAChC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,sBAAsB,CAC1C,MAAqB,EACrB,YAAsB;IAEtB,MAAM,kBAAkB,GAAgC,EAAE,CAAC;IAC3D,MAAM,iBAAiB,GAAsB,EAAE,CAAC;IAChD,MAAM,aAAa,GAA2C,EAAE,CAAC;IACjE,MAAM,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAAC,0BAAkB,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,IAAA,oBAAY,EAC9B,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAC3D,CAAC;IAEF,MAAM,iBAAiB,CACrB,MAAM,EACN,CAAC,GAAG,iBAAiB,EAAE,GAAG,iBAAiB,EAAE,GAAG,WAAW,CAAC,EAC5D,aAAa,EACb,kBAAkB,EAClB,iBAAiB,CAClB,CAAC;IAEF,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,GAAG,CAAC,mBAAmB,GAAG,GAAG,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC,QAAQ;QAEzE,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC;QACzC,uBAAuB;QACvB,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,OAAO,GAAgB,kBAAkB,CAAC,GAAG,CAAC,CAAC;YACnD,wFAAwF;YACxF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG;oBACR,WAAW,EAAE,GAAG;oBAChB,UAAU,EAAE,eAAe;oBAC3B,IAAI,EAAE,EAAE;iBACT,CAAC;YACJ,CAAC;YAED,GAAG,CAAC,UAAU,KAAK,eAAe,CAAC;YAEnC,IAAI,GAAG,CAAC,UAAU,KAAK,eAAe,EAAE,CAAC;gBACvC,GAAG,CAAC,YAAY,GAAG,qBAAqB,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;gBAEjE,GAAG,CAAC,OAAO;oBACT,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM;wBACrD,CAAC,CAAC,iBAAiB;wBACnB,CAAC,CAAC,cAAc,CAAC;YACvB,CAAC;YAED,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAC3C,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO;gBAC5B,IAAI,CAAC,WAAW,EAAE,mBAAmB;oBACnC,GAAG,CAAC,WAAW,EAAE,mBAAmB,CACzC,CAAC;YACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YAED,kBAAkB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,qCAAqC,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAC3C,CAAC","sourcesContent":["import upath from 'upath';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { getLocalFiles } from '../../../util/fs';\nimport { regEx } from '../../../util/regex';\nimport { MavenDatasource } from '../../datasource/maven';\nimport gradleVersioning from '../../versioning/gradle';\nimport type { ExtractConfig, PackageDependency, PackageFile } from '../types';\nimport { parseCatalog } from './extract/catalog';\nimport {\n isGcvPropsFile,\n parseGcv,\n usesGcv,\n} from './extract/consistent-versions-plugin';\nimport { parseGradle, parseKotlinSource, parseProps } from './parser';\nimport { REGISTRY_URLS } from './parser/common';\nimport type {\n ContentDescriptorSpec,\n GradleManagerData,\n PackageRegistry,\n VariableRegistry,\n} from './types';\nimport {\n getVars,\n isGradleScriptFile,\n isKotlinSourceFile,\n isPropsFile,\n isTOMLFile,\n reorderFiles,\n toAbsolutePath,\n updateVars,\n} from './utils';\n\nconst mavenDatasource = MavenDatasource.id;\n\nfunction updatePackageRegistries(\n packageRegistries: PackageRegistry[],\n urls: PackageRegistry[],\n): void {\n for (const url of urls) {\n const registryAlreadyKnown = packageRegistries.some(\n (item) =>\n item.registryUrl === url.registryUrl && item.scope === url.scope,\n );\n if (!registryAlreadyKnown) {\n packageRegistries.push(url);\n }\n }\n}\n\nexport function matchesContentDescriptor(\n dep: PackageDependency<GradleManagerData>,\n contentDescriptors?: ContentDescriptorSpec[],\n): boolean {\n const [groupId, artifactId] = (dep.packageName ?? dep.depName!).split(':');\n let hasIncludes = false;\n let hasExcludes = false;\n let matchesInclude = false;\n let matchesExclude = false;\n\n for (const content of coerceArray(contentDescriptors)) {\n const {\n mode,\n matcher,\n groupId: contentGroupId,\n artifactId: contentArtifactId,\n version: contentVersion,\n } = content;\n\n // group matching\n let groupMatch = false;\n if (matcher === 'regex') {\n groupMatch = regEx(contentGroupId).test(groupId);\n } else if (matcher === 'subgroup') {\n groupMatch =\n groupId === contentGroupId || `${groupId}.`.startsWith(contentGroupId);\n } else {\n groupMatch = groupId === contentGroupId;\n }\n\n // artifact matching (optional)\n let artifactMatch = true;\n if (groupMatch && contentArtifactId) {\n if (matcher === 'regex') {\n artifactMatch = regEx(contentArtifactId).test(artifactId);\n } else {\n artifactMatch = artifactId === contentArtifactId;\n }\n }\n\n // version matching (optional)\n let versionMatch = true;\n if (groupMatch && artifactMatch && contentVersion && dep.currentValue) {\n if (matcher === 'regex') {\n versionMatch = regEx(contentVersion).test(dep.currentValue);\n } else {\n // contentVersion can be an exact version or a gradle-supported version range\n versionMatch = gradleVersioning.matches(\n dep.currentValue,\n contentVersion,\n );\n }\n }\n\n const isMatch = groupMatch && artifactMatch && versionMatch;\n if (mode === 'include') {\n hasIncludes = true;\n if (isMatch) {\n matchesInclude = true;\n }\n } else if (mode === 'exclude') {\n hasExcludes = true;\n if (isMatch) {\n matchesExclude = true;\n }\n }\n }\n\n if (hasIncludes && hasExcludes) {\n // if both includes and excludes exist, dep must match include and not match exclude\n return matchesInclude && !matchesExclude;\n } else if (hasIncludes) {\n // if only includes exist, dep must match at least one include\n return matchesInclude;\n } else if (hasExcludes) {\n // if only excludes exist, dep must not match any exclude\n return !matchesExclude;\n }\n\n // by default, repositories include everything and exclude nothing\n return true;\n}\n\nfunction getRegistryUrlsForDep(\n packageRegistries: PackageRegistry[],\n dep: PackageDependency<GradleManagerData>,\n): string[] {\n const scope = dep.depType === 'plugin' ? 'plugin' : 'dep';\n\n const matchingRegistries = packageRegistries.filter(\n (item) =>\n item.scope === scope && matchesContentDescriptor(dep, item.content),\n );\n\n const exclusiveRegistries = matchingRegistries.filter(\n (item) => item.registryType === 'exclusive',\n );\n\n const registryUrls = (\n exclusiveRegistries.length ? exclusiveRegistries : matchingRegistries\n ).map((item) => item.registryUrl);\n\n if (!registryUrls.length && scope === 'plugin') {\n registryUrls.push(REGISTRY_URLS.gradlePluginPortal);\n }\n\n return [...new Set(registryUrls)];\n}\n\nasync function parsePackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n extractedDeps: PackageDependency<GradleManagerData>[],\n packageFilesByName: Record<string, PackageFile>,\n packageRegistries: PackageRegistry[],\n): Promise<PackageDependency<GradleManagerData>[]> {\n const varRegistry: VariableRegistry = {};\n const fileContents = await getLocalFiles(packageFiles);\n\n for (const packageFile of packageFiles) {\n packageFilesByName[packageFile] = {\n packageFile,\n datasource: mavenDatasource,\n deps: [],\n };\n\n try {\n // TODO #22198\n const content = fileContents[packageFile]!;\n const packageFileDir = upath.dirname(toAbsolutePath(packageFile));\n\n if (isPropsFile(packageFile)) {\n const { vars, deps } = parseProps(content, packageFile);\n updateVars(varRegistry, packageFileDir, vars);\n extractedDeps.push(...deps);\n } else if (isTOMLFile(packageFile)) {\n const deps = parseCatalog(packageFile, content);\n extractedDeps.push(...deps);\n } else if (\n isGcvPropsFile(packageFile) &&\n usesGcv(packageFile, fileContents)\n ) {\n const deps = parseGcv(packageFile, fileContents);\n extractedDeps.push(...deps);\n } else if (isKotlinSourceFile(packageFile)) {\n const vars = getVars(varRegistry, packageFileDir);\n const { vars: gradleVars, deps } = parseKotlinSource(\n content,\n vars,\n packageFile,\n );\n updateVars(varRegistry, '/', gradleVars);\n extractedDeps.push(...deps);\n } else if (isGradleScriptFile(packageFile)) {\n const vars = getVars(varRegistry, packageFileDir);\n const {\n deps,\n urls,\n vars: gradleVars,\n } = parseGradle(content, vars, packageFile, fileContents);\n updatePackageRegistries(packageRegistries, urls);\n updateVars(varRegistry, packageFileDir, gradleVars);\n extractedDeps.push(...deps);\n }\n } catch (err) {\n logger.debug(\n { err, config, packageFile },\n `Failed to process Gradle file`,\n );\n }\n }\n\n return extractedDeps;\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile[] | null> {\n const packageFilesByName: Record<string, PackageFile> = {};\n const packageRegistries: PackageRegistry[] = [];\n const extractedDeps: PackageDependency<GradleManagerData>[] = [];\n const kotlinSourceFiles = packageFiles.filter(isKotlinSourceFile);\n const gradleFiles = reorderFiles(\n packageFiles.filter((e) => !kotlinSourceFiles.includes(e)),\n );\n\n await parsePackageFiles(\n config,\n [...kotlinSourceFiles, ...kotlinSourceFiles, ...gradleFiles],\n extractedDeps,\n packageFilesByName,\n packageRegistries,\n );\n\n if (!extractedDeps.length) {\n return null;\n }\n\n for (const dep of extractedDeps) {\n dep.fileReplacePosition = dep?.managerData?.fileReplacePosition; // #8224\n\n const key = dep.managerData?.packageFile;\n // istanbul ignore else\n if (key) {\n let pkgFile: PackageFile = packageFilesByName[key];\n // istanbul ignore if: won't happen if \"apply from\" processes only initially known files\n if (!pkgFile) {\n pkgFile = {\n packageFile: key,\n datasource: mavenDatasource,\n deps: [],\n };\n }\n\n dep.datasource ??= mavenDatasource;\n\n if (dep.datasource === mavenDatasource) {\n dep.registryUrls = getRegistryUrlsForDep(packageRegistries, dep);\n\n dep.depType ??=\n key.startsWith('buildSrc') && !kotlinSourceFiles.length\n ? 'devDependencies'\n : 'dependencies';\n }\n\n const depAlreadyInPkgFile = pkgFile.deps.some(\n (item) =>\n item.depName === dep.depName &&\n item.managerData?.fileReplacePosition ===\n dep.managerData?.fileReplacePosition,\n );\n if (!depAlreadyInPkgFile) {\n pkgFile.deps.push(dep);\n }\n\n packageFilesByName[key] = pkgFile;\n } else {\n logger.debug({ dep }, `Failed to process Gradle dependency`);\n }\n }\n\n return Object.values(packageFilesByName);\n}\n"]}
|
@@ -292,6 +292,13 @@ function isPluginRegistry(ctx) {
|
|
292
292
|
}
|
293
293
|
return false;
|
294
294
|
}
|
295
|
+
function isExclusiveRegistry(ctx) {
|
296
|
+
if (ctx.tokenMap.registryType) {
|
297
|
+
const registryType = (0, common_1.loadFromTokenMap)(ctx, 'registryType')[0].value;
|
298
|
+
return registryType === 'exclusiveContent';
|
299
|
+
}
|
300
|
+
return false;
|
301
|
+
}
|
295
302
|
function handleRegistryUrl(ctx) {
|
296
303
|
let localVariables = ctx.globalVars;
|
297
304
|
if (ctx.tokenMap.name) {
|
@@ -314,6 +321,7 @@ function handleRegistryUrl(ctx) {
|
|
314
321
|
if (url?.host && url.protocol) {
|
315
322
|
ctx.registryUrls.push({
|
316
323
|
registryUrl,
|
324
|
+
registryType: isExclusiveRegistry(ctx) ? 'exclusive' : 'regular',
|
317
325
|
scope: isPluginRegistry(ctx) ? 'plugin' : 'dep',
|
318
326
|
content: ctx.tmpRegistryContent,
|
319
327
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/gradle/parser/handlers.ts"],"names":[],"mappings":"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","sourcesContent":["import upath from 'upath';\nimport { logger } from '../../../../logger';\nimport { getSiblingFileName } from '../../../../util/fs';\nimport { regEx } from '../../../../util/regex';\nimport { parseUrl } from '../../../../util/url';\nimport type { PackageDependency } from '../../types';\nimport type { parseGradle as parseGradleCallback } from '../parser';\nimport type {\n ContentDescriptorMatcher,\n ContentDescriptorSpec,\n Ctx,\n GradleManagerData,\n} from '../types';\nimport { isDependencyString, parseDependencyString } from '../utils';\nimport {\n GRADLE_PLUGINS,\n GRADLE_TEST_SUITES,\n findVariable,\n interpolateString,\n loadFromTokenMap,\n} from './common';\n\n// needed to break circular dependency\nlet parseGradle: typeof parseGradleCallback;\nexport function setParseGradleFunc(func: typeof parseGradleCallback): void {\n parseGradle = func;\n}\n\nexport function handleAssignment(ctx: Ctx): Ctx {\n const key = loadFromTokenMap(ctx, 'keyToken')[0].value;\n const valTokens = loadFromTokenMap(ctx, 'valToken');\n\n if (valTokens.length > 1) {\n // = template string with multiple variables\n ctx.tokenMap.templateStringTokens = valTokens;\n handleDepString(ctx);\n delete ctx.tokenMap.templateStringTokens;\n } else if (valTokens[0].type === 'symbol') {\n // foo = bar || foo = \"${bar}\"\n const varData = findVariable(valTokens[0].value, ctx);\n if (varData) {\n ctx.globalVars[key] = { ...varData };\n }\n } else {\n // = string value\n const dep = parseDependencyString(valTokens[0].value);\n if (dep) {\n dep.sharedVariableName = key;\n dep.managerData = {\n fileReplacePosition: valTokens[0].offset + dep.depName!.length + 1,\n packageFile: ctx.packageFile,\n };\n ctx.deps.push(dep);\n }\n\n ctx.globalVars[key] = {\n key,\n value: valTokens[0].value,\n fileReplacePosition: valTokens[0].offset,\n packageFile: ctx.packageFile,\n };\n }\n\n return ctx;\n}\n\nexport function handleDepString(ctx: Ctx): Ctx {\n const stringTokens = loadFromTokenMap(ctx, 'templateStringTokens');\n\n const templateString = interpolateString(stringTokens, ctx);\n if (!templateString) {\n return ctx;\n }\n\n const dep = parseDependencyString(templateString);\n if (!dep) {\n return ctx;\n }\n\n let packageFile: string | undefined;\n let fileReplacePosition: number | undefined;\n for (const token of stringTokens) {\n if (token.type === 'symbol') {\n const varData = findVariable(token.value, ctx);\n if (varData) {\n packageFile = varData.packageFile;\n fileReplacePosition = varData.fileReplacePosition;\n if (varData.value === dep.currentValue) {\n dep.managerData = { fileReplacePosition, packageFile };\n dep.sharedVariableName = varData.key;\n }\n }\n }\n }\n\n if (!dep.managerData) {\n const lastToken = stringTokens[stringTokens.length - 1];\n if (\n lastToken?.type === 'string-value' &&\n dep.currentValue &&\n lastToken.value.includes(dep.currentValue)\n ) {\n packageFile = ctx.packageFile;\n if (stringTokens.length === 1) {\n fileReplacePosition = lastToken.offset + dep.depName!.length + 1;\n } else {\n fileReplacePosition =\n lastToken.offset + lastToken.value.lastIndexOf(dep.currentValue);\n }\n delete dep.sharedVariableName;\n } else {\n dep.skipReason = 'contains-variable';\n }\n dep.managerData = { fileReplacePosition, packageFile };\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n\nexport function handleKotlinShortNotationDep(ctx: Ctx): Ctx {\n const moduleNameTokens = loadFromTokenMap(ctx, 'artifactId');\n const versionTokens = loadFromTokenMap(ctx, 'version');\n\n const moduleName = interpolateString(moduleNameTokens, ctx);\n const versionValue = interpolateString(versionTokens, ctx);\n if (!moduleName || !versionValue) {\n return ctx;\n }\n\n const groupIdArtifactId = `org.jetbrains.kotlin:kotlin-${moduleName}`;\n const dep = parseDependencyString(`${groupIdArtifactId}:${versionValue}`);\n if (!dep) {\n return ctx;\n }\n\n dep.depName = moduleName;\n dep.packageName = groupIdArtifactId;\n dep.managerData = {\n fileReplacePosition: versionTokens[0].offset,\n packageFile: ctx.packageFile,\n };\n\n if (versionTokens.length > 1) {\n // = template string with multiple variables\n dep.skipReason = 'unspecified-version';\n } else if (versionTokens[0].type === 'symbol') {\n const varData = findVariable(versionTokens[0].value, ctx);\n if (varData) {\n dep.sharedVariableName = varData.key;\n dep.currentValue = varData.value;\n dep.managerData = {\n fileReplacePosition: varData.fileReplacePosition,\n packageFile: varData.packageFile,\n };\n }\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n\nexport function handleLongFormDep(ctx: Ctx): Ctx {\n const groupIdTokens = loadFromTokenMap(ctx, 'groupId');\n const artifactIdTokens = loadFromTokenMap(ctx, 'artifactId');\n const versionTokens = loadFromTokenMap(ctx, 'version');\n\n const groupId = interpolateString(groupIdTokens, ctx);\n const artifactId = interpolateString(artifactIdTokens, ctx);\n const version = interpolateString(versionTokens, ctx);\n if (!groupId || !artifactId || !version) {\n return ctx;\n }\n\n // Special handling: 3 independent dependencies mismatched as groupId, artifactId, version\n if (\n isDependencyString(groupId) &&\n isDependencyString(artifactId) &&\n isDependencyString(version)\n ) {\n ctx.tokenMap.templateStringTokens = groupIdTokens;\n handleDepString(ctx);\n ctx.tokenMap.templateStringTokens = artifactIdTokens;\n handleDepString(ctx);\n ctx.tokenMap.templateStringTokens = versionTokens;\n handleDepString(ctx);\n\n return ctx;\n }\n\n const dep = parseDependencyString([groupId, artifactId, version].join(':'));\n if (!dep) {\n return ctx;\n }\n\n const methodName = ctx.tokenMap.methodName ?? null;\n if (versionTokens.length > 1) {\n // = template string with multiple variables\n dep.skipReason = 'unspecified-version';\n } else if (versionTokens[0].type === 'symbol') {\n const varData = findVariable(versionTokens[0].value, ctx);\n if (varData) {\n dep.sharedVariableName = varData.key;\n dep.managerData = {\n fileReplacePosition: varData.fileReplacePosition,\n packageFile: varData.packageFile,\n };\n }\n } else {\n // = string value\n if (methodName?.[0]?.value === 'dependencySet') {\n dep.sharedVariableName = `${groupId}:${version}`;\n }\n dep.managerData = {\n fileReplacePosition: versionTokens[0].offset,\n packageFile: ctx.packageFile,\n };\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n\nexport function handlePlugin(ctx: Ctx): Ctx {\n const methodName = loadFromTokenMap(ctx, 'methodName')[0];\n const pluginName = loadFromTokenMap(ctx, 'pluginName')[0];\n const pluginVersion = loadFromTokenMap(ctx, 'version');\n\n const plugin = pluginName.value;\n const depName =\n methodName.value === 'kotlin' ? `org.jetbrains.kotlin.${plugin}` : plugin;\n const packageName = `${depName}:${depName}.gradle.plugin`;\n\n const dep: PackageDependency<GradleManagerData> = {\n depType: 'plugin',\n depName,\n packageName,\n commitMessageTopic: `plugin ${depName}`,\n currentValue: pluginVersion[0].value,\n managerData: {\n fileReplacePosition: pluginVersion[0].offset,\n packageFile: ctx.packageFile,\n },\n };\n\n if (pluginVersion.length > 1) {\n // = template string with multiple variables\n dep.skipReason = 'unspecified-version';\n } else if (pluginVersion[0].type === 'symbol') {\n const varData = findVariable(pluginVersion[0].value, ctx);\n if (varData) {\n dep.sharedVariableName = varData.key;\n dep.currentValue = varData.value;\n dep.managerData = {\n fileReplacePosition: varData.fileReplacePosition,\n packageFile: varData.packageFile,\n };\n } else {\n dep.skipReason = 'unspecified-version';\n }\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n\nfunction isValidContentDescriptorRegex(\n fieldName: string,\n pattern: string,\n): boolean {\n try {\n regEx(pattern);\n } catch {\n logger.debug(\n `Skipping content descriptor with unsupported regExp pattern for ${fieldName}: ${pattern}`,\n );\n return false;\n }\n\n return true;\n}\n\nexport function handleRegistryContent(ctx: Ctx): Ctx {\n const methodName = loadFromTokenMap(ctx, 'methodName')[0].value;\n let groupId = loadFromTokenMap(ctx, 'groupId')[0].value;\n\n let matcher: ContentDescriptorMatcher = 'simple';\n if (methodName.includes('Regex')) {\n matcher = 'regex';\n groupId = `^${groupId}$`.replaceAll('\\\\\\\\', '\\\\');\n if (!isValidContentDescriptorRegex('group', groupId)) {\n return ctx;\n }\n } else if (methodName.includes('AndSubgroups')) {\n matcher = 'subgroup';\n }\n\n const mode = methodName.startsWith('include') ? 'include' : 'exclude';\n const spec: ContentDescriptorSpec = { mode, matcher, groupId };\n\n if (methodName.includes('Module') || methodName.includes('Version')) {\n spec.artifactId = loadFromTokenMap(ctx, 'artifactId')[0].value;\n if (matcher === 'regex') {\n spec.artifactId = `^${spec.artifactId}$`.replaceAll('\\\\\\\\', '\\\\');\n if (!isValidContentDescriptorRegex('module', spec.artifactId)) {\n return ctx;\n }\n }\n }\n\n if (methodName.includes('Version')) {\n spec.version = loadFromTokenMap(ctx, 'version')[0].value;\n if (matcher === 'regex') {\n spec.version = `^${spec.version}$`.replaceAll('\\\\\\\\', '\\\\');\n if (!isValidContentDescriptorRegex('version', spec.version)) {\n return ctx;\n }\n }\n }\n\n ctx.tmpRegistryContent.push(spec);\n\n return ctx;\n}\n\nfunction isPluginRegistry(ctx: Ctx): boolean {\n if (ctx.tokenMap.registryScope) {\n const registryScope = loadFromTokenMap(ctx, 'registryScope')[0].value;\n return registryScope === 'pluginManagement';\n }\n\n return false;\n}\n\nexport function handleRegistryUrl(ctx: Ctx): Ctx {\n let localVariables = ctx.globalVars;\n\n if (ctx.tokenMap.name) {\n const nameTokens = loadFromTokenMap(ctx, 'name');\n const nameValue = interpolateString(nameTokens, ctx, localVariables);\n if (nameValue) {\n localVariables = {\n ...localVariables,\n name: {\n key: 'name',\n value: nameValue,\n },\n };\n }\n }\n\n let registryUrl = interpolateString(\n loadFromTokenMap(ctx, 'registryUrl'),\n ctx,\n localVariables,\n );\n if (registryUrl) {\n registryUrl = registryUrl.replace(regEx(/\\\\/g), '');\n const url = parseUrl(registryUrl);\n if (url?.host && url.protocol) {\n ctx.registryUrls.push({\n registryUrl,\n scope: isPluginRegistry(ctx) ? 'plugin' : 'dep',\n content: ctx.tmpRegistryContent,\n });\n }\n }\n\n return ctx;\n}\n\nexport function handleLibraryDep(ctx: Ctx): Ctx {\n const groupIdTokens = loadFromTokenMap(ctx, 'groupId');\n const artifactIdTokens = loadFromTokenMap(ctx, 'artifactId');\n\n const groupId = interpolateString(groupIdTokens, ctx);\n const artifactId = interpolateString(artifactIdTokens, ctx);\n if (!groupId || !artifactId) {\n return ctx;\n }\n\n const aliasToken = loadFromTokenMap(ctx, 'alias')[0];\n const key = `libs.${aliasToken.value.replace(regEx(/[-_]/g), '.')}`;\n\n ctx.globalVars[key] = {\n key,\n value: `${groupId}:${artifactId}`,\n fileReplacePosition: aliasToken.offset,\n packageFile: ctx.packageFile,\n };\n\n if (ctx.tokenMap.version) {\n const version = interpolateString(loadFromTokenMap(ctx, 'version'), ctx);\n if (version) {\n handleLongFormDep(ctx);\n }\n }\n\n return ctx;\n}\n\nexport function handleApplyFrom(ctx: Ctx): Ctx {\n let scriptFile = interpolateString(loadFromTokenMap(ctx, 'scriptFile'), ctx);\n if (!scriptFile) {\n return ctx;\n }\n\n if (ctx.tokenMap.parentPath) {\n const parentPath = interpolateString(\n loadFromTokenMap(ctx, 'parentPath'),\n ctx,\n );\n if (parentPath && scriptFile) {\n scriptFile = upath.join(parentPath, scriptFile);\n }\n }\n\n if (ctx.recursionDepth > 2) {\n logger.debug(`Max recursion depth reached in script file: ${scriptFile}`);\n return ctx;\n }\n\n if (!regEx(/\\.gradle(\\.kts)?$/).test(scriptFile)) {\n logger.debug({ scriptFile }, `Only Gradle files can be included`);\n return ctx;\n }\n\n const scriptFilePath = getSiblingFileName(ctx.packageFile, scriptFile);\n if (!ctx.fileContents[scriptFilePath]) {\n logger.debug(`Failed to process included Gradle file ${scriptFilePath}`);\n return ctx;\n }\n\n const matchResult = parseGradle(\n // TODO #22198\n ctx.fileContents[scriptFilePath],\n ctx.globalVars,\n scriptFilePath,\n ctx.fileContents,\n ctx.recursionDepth + 1,\n );\n\n ctx.deps.push(...matchResult.deps);\n ctx.globalVars = { ...ctx.globalVars, ...matchResult.vars };\n ctx.registryUrls.push(...matchResult.urls);\n\n return ctx;\n}\n\nexport function handleImplicitDep(ctx: Ctx): Ctx {\n const implicitDepName = loadFromTokenMap(ctx, 'implicitDepName')[0].value;\n const versionTokens = loadFromTokenMap(ctx, 'version');\n const versionValue = interpolateString(versionTokens, ctx);\n if (!versionValue) {\n return ctx;\n }\n\n const isImplicitGradlePlugin = implicitDepName in GRADLE_PLUGINS;\n const groupIdArtifactId = isImplicitGradlePlugin\n ? GRADLE_PLUGINS[implicitDepName as keyof typeof GRADLE_PLUGINS][1]\n : GRADLE_TEST_SUITES[implicitDepName as keyof typeof GRADLE_TEST_SUITES];\n\n const dep = parseDependencyString(`${groupIdArtifactId}:${versionValue}`);\n if (!dep) {\n return ctx;\n }\n\n dep.depName = implicitDepName;\n dep.packageName = groupIdArtifactId;\n dep.managerData = {\n fileReplacePosition: versionTokens[0].offset,\n packageFile: ctx.packageFile,\n };\n\n if (versionTokens.length > 1) {\n // = template string with multiple variables\n dep.skipReason = 'unspecified-version';\n } else if (versionTokens[0].type === 'symbol') {\n const varData = findVariable(versionTokens[0].value, ctx);\n if (varData) {\n dep.sharedVariableName = varData.key;\n dep.currentValue = varData.value;\n dep.managerData = {\n fileReplacePosition: varData.fileReplacePosition,\n packageFile: varData.packageFile,\n };\n }\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n"]}
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/gradle/parser/handlers.ts"],"names":[],"mappings":"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","sourcesContent":["import upath from 'upath';\nimport { logger } from '../../../../logger';\nimport { getSiblingFileName } from '../../../../util/fs';\nimport { regEx } from '../../../../util/regex';\nimport { parseUrl } from '../../../../util/url';\nimport type { PackageDependency } from '../../types';\nimport type { parseGradle as parseGradleCallback } from '../parser';\nimport type {\n ContentDescriptorMatcher,\n ContentDescriptorSpec,\n Ctx,\n GradleManagerData,\n} from '../types';\nimport { isDependencyString, parseDependencyString } from '../utils';\nimport {\n GRADLE_PLUGINS,\n GRADLE_TEST_SUITES,\n findVariable,\n interpolateString,\n loadFromTokenMap,\n} from './common';\n\n// needed to break circular dependency\nlet parseGradle: typeof parseGradleCallback;\nexport function setParseGradleFunc(func: typeof parseGradleCallback): void {\n parseGradle = func;\n}\n\nexport function handleAssignment(ctx: Ctx): Ctx {\n const key = loadFromTokenMap(ctx, 'keyToken')[0].value;\n const valTokens = loadFromTokenMap(ctx, 'valToken');\n\n if (valTokens.length > 1) {\n // = template string with multiple variables\n ctx.tokenMap.templateStringTokens = valTokens;\n handleDepString(ctx);\n delete ctx.tokenMap.templateStringTokens;\n } else if (valTokens[0].type === 'symbol') {\n // foo = bar || foo = \"${bar}\"\n const varData = findVariable(valTokens[0].value, ctx);\n if (varData) {\n ctx.globalVars[key] = { ...varData };\n }\n } else {\n // = string value\n const dep = parseDependencyString(valTokens[0].value);\n if (dep) {\n dep.sharedVariableName = key;\n dep.managerData = {\n fileReplacePosition: valTokens[0].offset + dep.depName!.length + 1,\n packageFile: ctx.packageFile,\n };\n ctx.deps.push(dep);\n }\n\n ctx.globalVars[key] = {\n key,\n value: valTokens[0].value,\n fileReplacePosition: valTokens[0].offset,\n packageFile: ctx.packageFile,\n };\n }\n\n return ctx;\n}\n\nexport function handleDepString(ctx: Ctx): Ctx {\n const stringTokens = loadFromTokenMap(ctx, 'templateStringTokens');\n\n const templateString = interpolateString(stringTokens, ctx);\n if (!templateString) {\n return ctx;\n }\n\n const dep = parseDependencyString(templateString);\n if (!dep) {\n return ctx;\n }\n\n let packageFile: string | undefined;\n let fileReplacePosition: number | undefined;\n for (const token of stringTokens) {\n if (token.type === 'symbol') {\n const varData = findVariable(token.value, ctx);\n if (varData) {\n packageFile = varData.packageFile;\n fileReplacePosition = varData.fileReplacePosition;\n if (varData.value === dep.currentValue) {\n dep.managerData = { fileReplacePosition, packageFile };\n dep.sharedVariableName = varData.key;\n }\n }\n }\n }\n\n if (!dep.managerData) {\n const lastToken = stringTokens[stringTokens.length - 1];\n if (\n lastToken?.type === 'string-value' &&\n dep.currentValue &&\n lastToken.value.includes(dep.currentValue)\n ) {\n packageFile = ctx.packageFile;\n if (stringTokens.length === 1) {\n fileReplacePosition = lastToken.offset + dep.depName!.length + 1;\n } else {\n fileReplacePosition =\n lastToken.offset + lastToken.value.lastIndexOf(dep.currentValue);\n }\n delete dep.sharedVariableName;\n } else {\n dep.skipReason = 'contains-variable';\n }\n dep.managerData = { fileReplacePosition, packageFile };\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n\nexport function handleKotlinShortNotationDep(ctx: Ctx): Ctx {\n const moduleNameTokens = loadFromTokenMap(ctx, 'artifactId');\n const versionTokens = loadFromTokenMap(ctx, 'version');\n\n const moduleName = interpolateString(moduleNameTokens, ctx);\n const versionValue = interpolateString(versionTokens, ctx);\n if (!moduleName || !versionValue) {\n return ctx;\n }\n\n const groupIdArtifactId = `org.jetbrains.kotlin:kotlin-${moduleName}`;\n const dep = parseDependencyString(`${groupIdArtifactId}:${versionValue}`);\n if (!dep) {\n return ctx;\n }\n\n dep.depName = moduleName;\n dep.packageName = groupIdArtifactId;\n dep.managerData = {\n fileReplacePosition: versionTokens[0].offset,\n packageFile: ctx.packageFile,\n };\n\n if (versionTokens.length > 1) {\n // = template string with multiple variables\n dep.skipReason = 'unspecified-version';\n } else if (versionTokens[0].type === 'symbol') {\n const varData = findVariable(versionTokens[0].value, ctx);\n if (varData) {\n dep.sharedVariableName = varData.key;\n dep.currentValue = varData.value;\n dep.managerData = {\n fileReplacePosition: varData.fileReplacePosition,\n packageFile: varData.packageFile,\n };\n }\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n\nexport function handleLongFormDep(ctx: Ctx): Ctx {\n const groupIdTokens = loadFromTokenMap(ctx, 'groupId');\n const artifactIdTokens = loadFromTokenMap(ctx, 'artifactId');\n const versionTokens = loadFromTokenMap(ctx, 'version');\n\n const groupId = interpolateString(groupIdTokens, ctx);\n const artifactId = interpolateString(artifactIdTokens, ctx);\n const version = interpolateString(versionTokens, ctx);\n if (!groupId || !artifactId || !version) {\n return ctx;\n }\n\n // Special handling: 3 independent dependencies mismatched as groupId, artifactId, version\n if (\n isDependencyString(groupId) &&\n isDependencyString(artifactId) &&\n isDependencyString(version)\n ) {\n ctx.tokenMap.templateStringTokens = groupIdTokens;\n handleDepString(ctx);\n ctx.tokenMap.templateStringTokens = artifactIdTokens;\n handleDepString(ctx);\n ctx.tokenMap.templateStringTokens = versionTokens;\n handleDepString(ctx);\n\n return ctx;\n }\n\n const dep = parseDependencyString([groupId, artifactId, version].join(':'));\n if (!dep) {\n return ctx;\n }\n\n const methodName = ctx.tokenMap.methodName ?? null;\n if (versionTokens.length > 1) {\n // = template string with multiple variables\n dep.skipReason = 'unspecified-version';\n } else if (versionTokens[0].type === 'symbol') {\n const varData = findVariable(versionTokens[0].value, ctx);\n if (varData) {\n dep.sharedVariableName = varData.key;\n dep.managerData = {\n fileReplacePosition: varData.fileReplacePosition,\n packageFile: varData.packageFile,\n };\n }\n } else {\n // = string value\n if (methodName?.[0]?.value === 'dependencySet') {\n dep.sharedVariableName = `${groupId}:${version}`;\n }\n dep.managerData = {\n fileReplacePosition: versionTokens[0].offset,\n packageFile: ctx.packageFile,\n };\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n\nexport function handlePlugin(ctx: Ctx): Ctx {\n const methodName = loadFromTokenMap(ctx, 'methodName')[0];\n const pluginName = loadFromTokenMap(ctx, 'pluginName')[0];\n const pluginVersion = loadFromTokenMap(ctx, 'version');\n\n const plugin = pluginName.value;\n const depName =\n methodName.value === 'kotlin' ? `org.jetbrains.kotlin.${plugin}` : plugin;\n const packageName = `${depName}:${depName}.gradle.plugin`;\n\n const dep: PackageDependency<GradleManagerData> = {\n depType: 'plugin',\n depName,\n packageName,\n commitMessageTopic: `plugin ${depName}`,\n currentValue: pluginVersion[0].value,\n managerData: {\n fileReplacePosition: pluginVersion[0].offset,\n packageFile: ctx.packageFile,\n },\n };\n\n if (pluginVersion.length > 1) {\n // = template string with multiple variables\n dep.skipReason = 'unspecified-version';\n } else if (pluginVersion[0].type === 'symbol') {\n const varData = findVariable(pluginVersion[0].value, ctx);\n if (varData) {\n dep.sharedVariableName = varData.key;\n dep.currentValue = varData.value;\n dep.managerData = {\n fileReplacePosition: varData.fileReplacePosition,\n packageFile: varData.packageFile,\n };\n } else {\n dep.skipReason = 'unspecified-version';\n }\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n\nfunction isValidContentDescriptorRegex(\n fieldName: string,\n pattern: string,\n): boolean {\n try {\n regEx(pattern);\n } catch {\n logger.debug(\n `Skipping content descriptor with unsupported regExp pattern for ${fieldName}: ${pattern}`,\n );\n return false;\n }\n\n return true;\n}\n\nexport function handleRegistryContent(ctx: Ctx): Ctx {\n const methodName = loadFromTokenMap(ctx, 'methodName')[0].value;\n let groupId = loadFromTokenMap(ctx, 'groupId')[0].value;\n\n let matcher: ContentDescriptorMatcher = 'simple';\n if (methodName.includes('Regex')) {\n matcher = 'regex';\n groupId = `^${groupId}$`.replaceAll('\\\\\\\\', '\\\\');\n if (!isValidContentDescriptorRegex('group', groupId)) {\n return ctx;\n }\n } else if (methodName.includes('AndSubgroups')) {\n matcher = 'subgroup';\n }\n\n const mode = methodName.startsWith('include') ? 'include' : 'exclude';\n const spec: ContentDescriptorSpec = { mode, matcher, groupId };\n\n if (methodName.includes('Module') || methodName.includes('Version')) {\n spec.artifactId = loadFromTokenMap(ctx, 'artifactId')[0].value;\n if (matcher === 'regex') {\n spec.artifactId = `^${spec.artifactId}$`.replaceAll('\\\\\\\\', '\\\\');\n if (!isValidContentDescriptorRegex('module', spec.artifactId)) {\n return ctx;\n }\n }\n }\n\n if (methodName.includes('Version')) {\n spec.version = loadFromTokenMap(ctx, 'version')[0].value;\n if (matcher === 'regex') {\n spec.version = `^${spec.version}$`.replaceAll('\\\\\\\\', '\\\\');\n if (!isValidContentDescriptorRegex('version', spec.version)) {\n return ctx;\n }\n }\n }\n\n ctx.tmpRegistryContent.push(spec);\n\n return ctx;\n}\n\nfunction isPluginRegistry(ctx: Ctx): boolean {\n if (ctx.tokenMap.registryScope) {\n const registryScope = loadFromTokenMap(ctx, 'registryScope')[0].value;\n return registryScope === 'pluginManagement';\n }\n\n return false;\n}\n\nfunction isExclusiveRegistry(ctx: Ctx): boolean {\n if (ctx.tokenMap.registryType) {\n const registryType = loadFromTokenMap(ctx, 'registryType')[0].value;\n return registryType === 'exclusiveContent';\n }\n\n return false;\n}\n\nexport function handleRegistryUrl(ctx: Ctx): Ctx {\n let localVariables = ctx.globalVars;\n\n if (ctx.tokenMap.name) {\n const nameTokens = loadFromTokenMap(ctx, 'name');\n const nameValue = interpolateString(nameTokens, ctx, localVariables);\n if (nameValue) {\n localVariables = {\n ...localVariables,\n name: {\n key: 'name',\n value: nameValue,\n },\n };\n }\n }\n\n let registryUrl = interpolateString(\n loadFromTokenMap(ctx, 'registryUrl'),\n ctx,\n localVariables,\n );\n if (registryUrl) {\n registryUrl = registryUrl.replace(regEx(/\\\\/g), '');\n const url = parseUrl(registryUrl);\n if (url?.host && url.protocol) {\n ctx.registryUrls.push({\n registryUrl,\n registryType: isExclusiveRegistry(ctx) ? 'exclusive' : 'regular',\n scope: isPluginRegistry(ctx) ? 'plugin' : 'dep',\n content: ctx.tmpRegistryContent,\n });\n }\n }\n\n return ctx;\n}\n\nexport function handleLibraryDep(ctx: Ctx): Ctx {\n const groupIdTokens = loadFromTokenMap(ctx, 'groupId');\n const artifactIdTokens = loadFromTokenMap(ctx, 'artifactId');\n\n const groupId = interpolateString(groupIdTokens, ctx);\n const artifactId = interpolateString(artifactIdTokens, ctx);\n if (!groupId || !artifactId) {\n return ctx;\n }\n\n const aliasToken = loadFromTokenMap(ctx, 'alias')[0];\n const key = `libs.${aliasToken.value.replace(regEx(/[-_]/g), '.')}`;\n\n ctx.globalVars[key] = {\n key,\n value: `${groupId}:${artifactId}`,\n fileReplacePosition: aliasToken.offset,\n packageFile: ctx.packageFile,\n };\n\n if (ctx.tokenMap.version) {\n const version = interpolateString(loadFromTokenMap(ctx, 'version'), ctx);\n if (version) {\n handleLongFormDep(ctx);\n }\n }\n\n return ctx;\n}\n\nexport function handleApplyFrom(ctx: Ctx): Ctx {\n let scriptFile = interpolateString(loadFromTokenMap(ctx, 'scriptFile'), ctx);\n if (!scriptFile) {\n return ctx;\n }\n\n if (ctx.tokenMap.parentPath) {\n const parentPath = interpolateString(\n loadFromTokenMap(ctx, 'parentPath'),\n ctx,\n );\n if (parentPath && scriptFile) {\n scriptFile = upath.join(parentPath, scriptFile);\n }\n }\n\n if (ctx.recursionDepth > 2) {\n logger.debug(`Max recursion depth reached in script file: ${scriptFile}`);\n return ctx;\n }\n\n if (!regEx(/\\.gradle(\\.kts)?$/).test(scriptFile)) {\n logger.debug({ scriptFile }, `Only Gradle files can be included`);\n return ctx;\n }\n\n const scriptFilePath = getSiblingFileName(ctx.packageFile, scriptFile);\n if (!ctx.fileContents[scriptFilePath]) {\n logger.debug(`Failed to process included Gradle file ${scriptFilePath}`);\n return ctx;\n }\n\n const matchResult = parseGradle(\n // TODO #22198\n ctx.fileContents[scriptFilePath],\n ctx.globalVars,\n scriptFilePath,\n ctx.fileContents,\n ctx.recursionDepth + 1,\n );\n\n ctx.deps.push(...matchResult.deps);\n ctx.globalVars = { ...ctx.globalVars, ...matchResult.vars };\n ctx.registryUrls.push(...matchResult.urls);\n\n return ctx;\n}\n\nexport function handleImplicitDep(ctx: Ctx): Ctx {\n const implicitDepName = loadFromTokenMap(ctx, 'implicitDepName')[0].value;\n const versionTokens = loadFromTokenMap(ctx, 'version');\n const versionValue = interpolateString(versionTokens, ctx);\n if (!versionValue) {\n return ctx;\n }\n\n const isImplicitGradlePlugin = implicitDepName in GRADLE_PLUGINS;\n const groupIdArtifactId = isImplicitGradlePlugin\n ? GRADLE_PLUGINS[implicitDepName as keyof typeof GRADLE_PLUGINS][1]\n : GRADLE_TEST_SUITES[implicitDepName as keyof typeof GRADLE_TEST_SUITES];\n\n const dep = parseDependencyString(`${groupIdArtifactId}:${versionValue}`);\n if (!dep) {\n return ctx;\n }\n\n dep.depName = implicitDepName;\n dep.packageName = groupIdArtifactId;\n dep.managerData = {\n fileReplacePosition: versionTokens[0].offset,\n packageFile: ctx.packageFile,\n };\n\n if (versionTokens.length > 1) {\n // = template string with multiple variables\n dep.skipReason = 'unspecified-version';\n } else if (versionTokens[0].type === 'symbol') {\n const varData = findVariable(versionTokens[0].value, ctx);\n if (varData) {\n dep.sharedVariableName = varData.key;\n dep.currentValue = varData.value;\n dep.managerData = {\n fileReplacePosition: varData.fileReplacePosition,\n packageFile: varData.packageFile,\n };\n }\n }\n\n ctx.deps.push(dep);\n\n return ctx;\n}\n"]}
|
@@ -76,10 +76,7 @@ const qPredefinedRegistries = good_enough_parser_1.query
|
|
76
76
|
startsWith: '{',
|
77
77
|
endsWith: '}',
|
78
78
|
search: good_enough_parser_1.query.opt(qRegistryContent),
|
79
|
-
}))
|
80
|
-
.handler(handlers_1.handleRegistryUrl)
|
81
|
-
.handler(cleanupTmpContentSpec)
|
82
|
-
.handler(common_1.cleanupTempVars);
|
79
|
+
}));
|
83
80
|
// { url = "https://some.repo"; content { ... } }
|
84
81
|
const qMavenArtifactRegistry = good_enough_parser_1.query.tree({
|
85
82
|
type: 'wrapped-tree',
|
@@ -100,9 +97,7 @@ const qMavenArtifactRegistry = good_enough_parser_1.query.tree({
|
|
100
97
|
// maven(url = uri("https://foo.bar/baz"))
|
101
98
|
// maven("https://foo.bar/baz") { content { ... } }
|
102
99
|
// maven { name = some; url = "https://foo.bar/${name}" }
|
103
|
-
const qCustomRegistryUrl = good_enough_parser_1.query
|
104
|
-
.sym('maven')
|
105
|
-
.alt(good_enough_parser_1.query
|
100
|
+
const qCustomRegistryUrl = good_enough_parser_1.query.sym('maven').alt(good_enough_parser_1.query
|
106
101
|
.tree({
|
107
102
|
type: 'wrapped-tree',
|
108
103
|
maxDepth: 1,
|
@@ -110,7 +105,38 @@ const qCustomRegistryUrl = good_enough_parser_1.query
|
|
110
105
|
endsWith: ')',
|
111
106
|
search: good_enough_parser_1.query.begin().opt(good_enough_parser_1.query.sym('url').op('=')).join(qUri).end(),
|
112
107
|
})
|
113
|
-
.opt(qMavenArtifactRegistry), qMavenArtifactRegistry)
|
108
|
+
.opt(qMavenArtifactRegistry), qMavenArtifactRegistry);
|
109
|
+
// forRepository { maven { ... } }
|
110
|
+
const qForRepository = good_enough_parser_1.query.sym('forRepository').tree({
|
111
|
+
type: 'wrapped-tree',
|
112
|
+
maxDepth: 1,
|
113
|
+
maxMatches: 1,
|
114
|
+
startsWith: '{',
|
115
|
+
endsWith: '}',
|
116
|
+
search: good_enough_parser_1.query.alt(qPredefinedRegistries, qCustomRegistryUrl),
|
117
|
+
});
|
118
|
+
// filter { includeGroup(...); includeModule(...) }
|
119
|
+
const qFilter = good_enough_parser_1.query.sym('filter').tree({
|
120
|
+
type: 'wrapped-tree',
|
121
|
+
maxDepth: 1,
|
122
|
+
startsWith: '{',
|
123
|
+
endsWith: '}',
|
124
|
+
search: qContentDescriptor('include'),
|
125
|
+
});
|
126
|
+
// exclusiveContent { forRepository { ... }; filter { ... } }
|
127
|
+
const qExclusiveContent = good_enough_parser_1.query
|
128
|
+
.sym('exclusiveContent', common_1.storeVarToken)
|
129
|
+
.handler((ctx) => (0, common_1.storeInTokenMap)(ctx, 'registryType'))
|
130
|
+
.tree({
|
131
|
+
type: 'wrapped-tree',
|
132
|
+
maxDepth: 1,
|
133
|
+
maxMatches: 1,
|
134
|
+
startsWith: '{',
|
135
|
+
endsWith: '}',
|
136
|
+
search: good_enough_parser_1.query.alt(good_enough_parser_1.query.join(qForRepository, qFilter), good_enough_parser_1.query.join(qFilter, qForRepository)),
|
137
|
+
});
|
138
|
+
const qRegistries = good_enough_parser_1.query
|
139
|
+
.alt(qExclusiveContent, qPredefinedRegistries, qCustomRegistryUrl)
|
114
140
|
.handler(handlers_1.handleRegistryUrl)
|
115
141
|
.handler(cleanupTmpContentSpec)
|
116
142
|
.handler(common_1.cleanupTempVars);
|
@@ -130,11 +156,11 @@ const qPluginManagement = good_enough_parser_1.query.sym('pluginManagement', com
|
|
130
156
|
}
|
131
157
|
return ctx;
|
132
158
|
})
|
133
|
-
.alt(assignments_1.qAssignments, apply_from_1.qApplyFrom, plugins_1.qPlugins,
|
159
|
+
.alt(assignments_1.qAssignments, apply_from_1.qApplyFrom, plugins_1.qPlugins, qRegistries),
|
134
160
|
postHandler: (ctx) => {
|
135
161
|
delete ctx.tmpTokenStore.registryScope;
|
136
162
|
return ctx;
|
137
163
|
},
|
138
164
|
});
|
139
|
-
exports.qRegistryUrls = good_enough_parser_1.query.alt(good_enough_parser_1.query.sym('publishing').tree(), qPluginManagement,
|
165
|
+
exports.qRegistryUrls = good_enough_parser_1.query.alt(good_enough_parser_1.query.sym('publishing').tree(), qPluginManagement, qRegistries);
|
140
166
|
//# sourceMappingURL=registry-urls.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"registry-urls.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/gradle/parser/registry-urls.ts"],"names":[],"mappings":"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","sourcesContent":["import type { lexer, parser } from 'good-enough-parser';\nimport { query as q } from 'good-enough-parser';\nimport { regEx } from '../../../../util/regex';\nimport type { Ctx } from '../types';\nimport { qApplyFrom } from './apply-from';\nimport { qAssignments } from './assignments';\nimport {\n REGISTRY_URLS,\n cleanupTempVars,\n qArtifactId,\n qGroupId,\n qValueMatcher,\n qVersion,\n storeInTokenMap,\n storeVarToken,\n} from './common';\nimport { handleRegistryContent, handleRegistryUrl } from './handlers';\nimport { qPlugins } from './plugins';\n\nconst cleanupTmpContentSpec = (ctx: Ctx): Ctx => {\n ctx.tmpRegistryContent = [];\n return ctx;\n};\n\nconst qContentDescriptorSpec = (\n methodName: RegExp,\n matcher: q.QueryBuilder<Ctx, parser.Node>,\n): q.QueryBuilder<Ctx, parser.Node> => {\n return q\n .sym<Ctx>(methodName, storeVarToken)\n .handler((ctx) => storeInTokenMap(ctx, 'methodName'))\n .alt(\n // includeGroup \"foo.bar\"\n matcher,\n // includeGroup(\"foo.bar\")\n q.tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().join(matcher).end(),\n }),\n );\n};\n\n// includeModule('foo')\n// excludeModuleByRegex('bar')\nconst qContentDescriptor = (\n mode: 'include' | 'exclude',\n): q.QueryBuilder<Ctx, parser.Node> => {\n return q\n .alt<Ctx>(\n qContentDescriptorSpec(\n regEx(\n `^(?:${mode}Group|${mode}GroupByRegex|${mode}GroupAndSubgroups)$`,\n ),\n qGroupId,\n ),\n qContentDescriptorSpec(\n regEx(`^(?:${mode}Module|${mode}ModuleByRegex)$`),\n q.join(qGroupId, q.op(','), qArtifactId),\n ),\n qContentDescriptorSpec(\n regEx(`^(?:${mode}Version|${mode}VersionByRegex)$`),\n q.join(qGroupId, q.op(','), qArtifactId, q.op(','), qVersion),\n ),\n )\n .handler(handleRegistryContent);\n};\n\n// content { includeModule('foo'); excludeModule('bar') }\nconst qRegistryContent = q.sym<Ctx>('content').tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '{',\n endsWith: '}',\n search: q.alt(qContentDescriptor('include'), qContentDescriptor('exclude')),\n});\n\n// uri(\"https://foo.bar/baz\")\n// \"https://foo.bar/baz\"\nconst qUri = q\n .alt(\n q.sym<Ctx>('uri').tree({\n maxDepth: 1,\n search: qValueMatcher,\n }),\n qValueMatcher,\n )\n .handler((ctx) => storeInTokenMap(ctx, 'registryUrl'));\n\n// mavenCentral()\n// mavenCentral { ... }\nconst qPredefinedRegistries = q\n .sym(\n regEx(`^(?:${Object.keys(REGISTRY_URLS).join('|')})$`),\n (ctx: Ctx, node: lexer.Token) => {\n const nodeTransformed: lexer.Token = {\n ...node,\n type: 'string-value',\n value: REGISTRY_URLS[node.value as keyof typeof REGISTRY_URLS],\n };\n storeVarToken(ctx, nodeTransformed);\n return ctx;\n },\n )\n .handler((ctx) => storeInTokenMap(ctx, 'registryUrl'))\n .alt(\n q\n .tree({\n type: 'wrapped-tree',\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().end(),\n })\n .opt(q.op<Ctx>('.').join(qRegistryContent)),\n q.tree({\n type: 'wrapped-tree',\n startsWith: '{',\n endsWith: '}',\n search: q.opt(qRegistryContent),\n }),\n )\n .handler(handleRegistryUrl)\n .handler(cleanupTmpContentSpec)\n .handler(cleanupTempVars);\n\n// { url = \"https://some.repo\"; content { ... } }\nconst qMavenArtifactRegistry = q.tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '{',\n endsWith: '}',\n search: q.alt(\n q\n .sym<Ctx>('name')\n .opt(q.op('='))\n .join(qValueMatcher)\n .handler((ctx) => storeInTokenMap(ctx, 'name')),\n q.sym<Ctx>('url').opt(q.op('=')).join(qUri),\n q.sym<Ctx>('setUrl').tree({\n maxDepth: 1,\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().join(qUri).end(),\n }),\n qRegistryContent,\n ),\n});\n\n// maven(url = uri(\"https://foo.bar/baz\"))\n// maven(\"https://foo.bar/baz\") { content { ... } }\n// maven { name = some; url = \"https://foo.bar/${name}\" }\nconst qCustomRegistryUrl = q\n .sym<Ctx>('maven')\n .alt(\n q\n .tree<Ctx>({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().opt(q.sym<Ctx>('url').op('=')).join(qUri).end(),\n })\n .opt(qMavenArtifactRegistry),\n qMavenArtifactRegistry,\n )\n .handler(handleRegistryUrl)\n .handler(cleanupTmpContentSpec)\n .handler(cleanupTempVars);\n\nconst qPluginManagement = q.sym<Ctx>('pluginManagement', storeVarToken).tree({\n type: 'wrapped-tree',\n startsWith: '{',\n endsWith: '}',\n preHandler: (ctx) => {\n ctx.tmpTokenStore.registryScope = ctx.varTokens;\n ctx.varTokens = [];\n return ctx;\n },\n search: q\n .handler<Ctx>((ctx) => {\n if (ctx.tmpTokenStore.registryScope) {\n ctx.tokenMap.registryScope = ctx.tmpTokenStore.registryScope;\n }\n return ctx;\n })\n .alt(\n qAssignments,\n qApplyFrom,\n qPlugins,\n qPredefinedRegistries,\n qCustomRegistryUrl,\n ),\n postHandler: (ctx) => {\n delete ctx.tmpTokenStore.registryScope;\n return ctx;\n },\n});\n\nexport const qRegistryUrls = q.alt<Ctx>(\n q.sym<Ctx>('publishing').tree(),\n qPluginManagement,\n qPredefinedRegistries,\n qCustomRegistryUrl,\n);\n"]}
|
1
|
+
{"version":3,"file":"registry-urls.js","sourceRoot":"","sources":["../../../../../lib/modules/manager/gradle/parser/registry-urls.ts"],"names":[],"mappings":"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","sourcesContent":["import type { lexer, parser } from 'good-enough-parser';\nimport { query as q } from 'good-enough-parser';\nimport { regEx } from '../../../../util/regex';\nimport type { Ctx } from '../types';\nimport { qApplyFrom } from './apply-from';\nimport { qAssignments } from './assignments';\nimport {\n REGISTRY_URLS,\n cleanupTempVars,\n qArtifactId,\n qGroupId,\n qValueMatcher,\n qVersion,\n storeInTokenMap,\n storeVarToken,\n} from './common';\nimport { handleRegistryContent, handleRegistryUrl } from './handlers';\nimport { qPlugins } from './plugins';\n\nconst cleanupTmpContentSpec = (ctx: Ctx): Ctx => {\n ctx.tmpRegistryContent = [];\n return ctx;\n};\n\nconst qContentDescriptorSpec = (\n methodName: RegExp,\n matcher: q.QueryBuilder<Ctx, parser.Node>,\n): q.QueryBuilder<Ctx, parser.Node> => {\n return q\n .sym<Ctx>(methodName, storeVarToken)\n .handler((ctx) => storeInTokenMap(ctx, 'methodName'))\n .alt(\n // includeGroup \"foo.bar\"\n matcher,\n // includeGroup(\"foo.bar\")\n q.tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().join(matcher).end(),\n }),\n );\n};\n\n// includeModule('foo')\n// excludeModuleByRegex('bar')\nconst qContentDescriptor = (\n mode: 'include' | 'exclude',\n): q.QueryBuilder<Ctx, parser.Node> => {\n return q\n .alt<Ctx>(\n qContentDescriptorSpec(\n regEx(\n `^(?:${mode}Group|${mode}GroupByRegex|${mode}GroupAndSubgroups)$`,\n ),\n qGroupId,\n ),\n qContentDescriptorSpec(\n regEx(`^(?:${mode}Module|${mode}ModuleByRegex)$`),\n q.join(qGroupId, q.op(','), qArtifactId),\n ),\n qContentDescriptorSpec(\n regEx(`^(?:${mode}Version|${mode}VersionByRegex)$`),\n q.join(qGroupId, q.op(','), qArtifactId, q.op(','), qVersion),\n ),\n )\n .handler(handleRegistryContent);\n};\n\n// content { includeModule('foo'); excludeModule('bar') }\nconst qRegistryContent = q.sym<Ctx>('content').tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '{',\n endsWith: '}',\n search: q.alt(qContentDescriptor('include'), qContentDescriptor('exclude')),\n});\n\n// uri(\"https://foo.bar/baz\")\n// \"https://foo.bar/baz\"\nconst qUri = q\n .alt(\n q.sym<Ctx>('uri').tree({\n maxDepth: 1,\n search: qValueMatcher,\n }),\n qValueMatcher,\n )\n .handler((ctx) => storeInTokenMap(ctx, 'registryUrl'));\n\n// mavenCentral()\n// mavenCentral { ... }\nconst qPredefinedRegistries = q\n .sym(\n regEx(`^(?:${Object.keys(REGISTRY_URLS).join('|')})$`),\n (ctx: Ctx, node: lexer.Token) => {\n const nodeTransformed: lexer.Token = {\n ...node,\n type: 'string-value',\n value: REGISTRY_URLS[node.value as keyof typeof REGISTRY_URLS],\n };\n storeVarToken(ctx, nodeTransformed);\n return ctx;\n },\n )\n .handler((ctx) => storeInTokenMap(ctx, 'registryUrl'))\n .alt(\n q\n .tree({\n type: 'wrapped-tree',\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().end(),\n })\n .opt(q.op<Ctx>('.').join(qRegistryContent)),\n q.tree({\n type: 'wrapped-tree',\n startsWith: '{',\n endsWith: '}',\n search: q.opt(qRegistryContent),\n }),\n );\n\n// { url = \"https://some.repo\"; content { ... } }\nconst qMavenArtifactRegistry = q.tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '{',\n endsWith: '}',\n search: q.alt(\n q\n .sym<Ctx>('name')\n .opt(q.op('='))\n .join(qValueMatcher)\n .handler((ctx) => storeInTokenMap(ctx, 'name')),\n q.sym<Ctx>('url').opt(q.op('=')).join(qUri),\n q.sym<Ctx>('setUrl').tree({\n maxDepth: 1,\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().join(qUri).end(),\n }),\n qRegistryContent,\n ),\n});\n\n// maven(url = uri(\"https://foo.bar/baz\"))\n// maven(\"https://foo.bar/baz\") { content { ... } }\n// maven { name = some; url = \"https://foo.bar/${name}\" }\nconst qCustomRegistryUrl = q.sym<Ctx>('maven').alt(\n q\n .tree<Ctx>({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '(',\n endsWith: ')',\n search: q.begin<Ctx>().opt(q.sym<Ctx>('url').op('=')).join(qUri).end(),\n })\n .opt(qMavenArtifactRegistry),\n qMavenArtifactRegistry,\n);\n\n// forRepository { maven { ... } }\nconst qForRepository = q.sym<Ctx>('forRepository').tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n maxMatches: 1,\n startsWith: '{',\n endsWith: '}',\n search: q.alt<Ctx>(qPredefinedRegistries, qCustomRegistryUrl),\n});\n\n// filter { includeGroup(...); includeModule(...) }\nconst qFilter = q.sym<Ctx>('filter').tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n startsWith: '{',\n endsWith: '}',\n search: qContentDescriptor('include'),\n});\n\n// exclusiveContent { forRepository { ... }; filter { ... } }\nconst qExclusiveContent = q\n .sym<Ctx>('exclusiveContent', storeVarToken)\n .handler((ctx) => storeInTokenMap(ctx, 'registryType'))\n .tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n maxMatches: 1,\n startsWith: '{',\n endsWith: '}',\n search: q.alt<Ctx>(\n q.join<Ctx>(qForRepository, qFilter),\n q.join<Ctx>(qFilter, qForRepository),\n ),\n });\n\nconst qRegistries = q\n .alt(qExclusiveContent, qPredefinedRegistries, qCustomRegistryUrl)\n .handler(handleRegistryUrl)\n .handler(cleanupTmpContentSpec)\n .handler(cleanupTempVars);\n\nconst qPluginManagement = q.sym<Ctx>('pluginManagement', storeVarToken).tree({\n type: 'wrapped-tree',\n startsWith: '{',\n endsWith: '}',\n preHandler: (ctx) => {\n ctx.tmpTokenStore.registryScope = ctx.varTokens;\n ctx.varTokens = [];\n return ctx;\n },\n search: q\n .handler<Ctx>((ctx) => {\n if (ctx.tmpTokenStore.registryScope) {\n ctx.tokenMap.registryScope = ctx.tmpTokenStore.registryScope;\n }\n return ctx;\n })\n .alt(qAssignments, qApplyFrom, qPlugins, qRegistries),\n postHandler: (ctx) => {\n delete ctx.tmpTokenStore.registryScope;\n return ctx;\n },\n});\n\nexport const qRegistryUrls = q.alt<Ctx>(\n q.sym<Ctx>('publishing').tree(),\n qPluginManagement,\n qRegistries,\n);\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gradle/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { lexer } from 'good-enough-parser';\nimport type { PackageDependency } from '../types';\n\nexport interface GradleManagerData {\n fileReplacePosition?: number;\n packageFile?: string;\n}\n\nexport interface VariableData extends GradleManagerData {\n key: string;\n value: string;\n}\n\nexport type PackageVariables = Record<string, VariableData>;\nexport type VariableRegistry = Record<string, PackageVariables>;\n\nexport interface ParseGradleResult {\n deps: PackageDependency<GradleManagerData>[];\n urls: PackageRegistry[];\n vars: PackageVariables;\n javaLanguageVersion?: string;\n}\n\nexport interface GradleCatalog {\n versions?: Record<string, GradleVersionPointerTarget>;\n libraries?: Record<\n string,\n GradleCatalogModuleDescriptor | GradleCatalogArtifactDescriptor | string\n >;\n plugins?: Record<string, GradleCatalogPluginDescriptor | string>;\n}\n\nexport interface GradleCatalogModuleDescriptor {\n module: string;\n version?: GradleVersionCatalogVersion;\n}\n\nexport interface GradleCatalogArtifactDescriptor {\n name: string;\n group: string;\n version?: GradleVersionCatalogVersion;\n}\n\nexport interface GradleCatalogPluginDescriptor {\n id: string;\n version: GradleVersionCatalogVersion;\n}\n\nexport interface VersionPointer {\n ref: string;\n}\n\n/**\n * Rich version declarations in Gradle version catalogs\n *\n * @see https://docs.gradle.org/current/userguide/rich_versions.html\n * @see https://docs.gradle.org/current/userguide/platforms.html#sub::toml-dependencies-format\n */\nexport interface RichVersion {\n require?: string;\n strictly?: string;\n prefer?: string;\n reject?: string[];\n rejectAll?: boolean;\n}\n\n// references cannot themselves be references\nexport type GradleVersionPointerTarget = string | RichVersion;\nexport type GradleVersionCatalogVersion = string | VersionPointer | RichVersion;\n\nexport type ContentDescriptorMatcher = 'simple' | 'regex' | 'subgroup';\n\nexport interface ContentDescriptorSpec {\n mode: 'include' | 'exclude';\n matcher: ContentDescriptorMatcher;\n groupId: string;\n artifactId?: string;\n version?: string;\n}\n\nexport interface PackageRegistry {\n registryUrl: string;\n scope: 'dep' | 'plugin';\n content?: ContentDescriptorSpec[];\n}\n\nexport interface Ctx {\n readonly packageFile: string;\n readonly fileContents: Record<string, string | null>;\n recursionDepth: number;\n\n globalVars: PackageVariables;\n deps: PackageDependency<GradleManagerData>[];\n registryUrls: PackageRegistry[];\n javaLanguageVersion?: string;\n\n varTokens: lexer.Token[];\n tmpKotlinImportStore: lexer.Token[][];\n tmpNestingDepth: lexer.Token[];\n tmpRegistryContent: ContentDescriptorSpec[];\n tmpTokenStore: Record<string, lexer.Token[]>;\n tokenMap: Record<string, lexer.Token[]>;\n}\n\nexport type NonEmptyArray<T> = T[] & { 0: T };\n"]}
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gradle/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { lexer } from 'good-enough-parser';\nimport type { PackageDependency } from '../types';\n\nexport interface GradleManagerData {\n fileReplacePosition?: number;\n packageFile?: string;\n}\n\nexport interface VariableData extends GradleManagerData {\n key: string;\n value: string;\n}\n\nexport type PackageVariables = Record<string, VariableData>;\nexport type VariableRegistry = Record<string, PackageVariables>;\n\nexport interface ParseGradleResult {\n deps: PackageDependency<GradleManagerData>[];\n urls: PackageRegistry[];\n vars: PackageVariables;\n javaLanguageVersion?: string;\n}\n\nexport interface GradleCatalog {\n versions?: Record<string, GradleVersionPointerTarget>;\n libraries?: Record<\n string,\n GradleCatalogModuleDescriptor | GradleCatalogArtifactDescriptor | string\n >;\n plugins?: Record<string, GradleCatalogPluginDescriptor | string>;\n}\n\nexport interface GradleCatalogModuleDescriptor {\n module: string;\n version?: GradleVersionCatalogVersion;\n}\n\nexport interface GradleCatalogArtifactDescriptor {\n name: string;\n group: string;\n version?: GradleVersionCatalogVersion;\n}\n\nexport interface GradleCatalogPluginDescriptor {\n id: string;\n version: GradleVersionCatalogVersion;\n}\n\nexport interface VersionPointer {\n ref: string;\n}\n\n/**\n * Rich version declarations in Gradle version catalogs\n *\n * @see https://docs.gradle.org/current/userguide/rich_versions.html\n * @see https://docs.gradle.org/current/userguide/platforms.html#sub::toml-dependencies-format\n */\nexport interface RichVersion {\n require?: string;\n strictly?: string;\n prefer?: string;\n reject?: string[];\n rejectAll?: boolean;\n}\n\n// references cannot themselves be references\nexport type GradleVersionPointerTarget = string | RichVersion;\nexport type GradleVersionCatalogVersion = string | VersionPointer | RichVersion;\n\nexport type ContentDescriptorMatcher = 'simple' | 'regex' | 'subgroup';\n\nexport interface ContentDescriptorSpec {\n mode: 'include' | 'exclude';\n matcher: ContentDescriptorMatcher;\n groupId: string;\n artifactId?: string;\n version?: string;\n}\n\nexport interface PackageRegistry {\n registryUrl: string;\n registryType: 'regular' | 'exclusive';\n scope: 'dep' | 'plugin';\n content?: ContentDescriptorSpec[];\n}\n\nexport interface Ctx {\n readonly packageFile: string;\n readonly fileContents: Record<string, string | null>;\n recursionDepth: number;\n\n globalVars: PackageVariables;\n deps: PackageDependency<GradleManagerData>[];\n registryUrls: PackageRegistry[];\n javaLanguageVersion?: string;\n\n varTokens: lexer.Token[];\n tmpKotlinImportStore: lexer.Token[][];\n tmpNestingDepth: lexer.Token[];\n tmpRegistryContent: ContentDescriptorSpec[];\n tmpTokenStore: Record<string, lexer.Token[]>;\n tokenMap: Record<string, lexer.Token[]>;\n}\n\nexport type NonEmptyArray<T> = T[] & { 0: T };\n"]}
|
@@ -18,9 +18,6 @@ declare class GerritClient {
|
|
18
18
|
addReviewers(changeNumber: number, reviewers: string[]): Promise<void>;
|
19
19
|
addAssignee(changeNumber: number, assignee: string): Promise<void>;
|
20
20
|
getFile(repo: string, branch: string, fileName: string): Promise<string>;
|
21
|
-
approveChange(changeId: number): Promise<void>;
|
22
|
-
checkIfApproved(changeId: number): Promise<boolean>;
|
23
|
-
wasApprovedBy(change: GerritChange, username: string): boolean | undefined;
|
24
21
|
normalizeMessage(message: string): string;
|
25
22
|
private static buildSearchFilters;
|
26
23
|
}
|
@@ -6,6 +6,7 @@ const logger_1 = require("../../../logger");
|
|
6
6
|
const memory_http_cache_provider_1 = require("../../../util/http/cache/memory-http-cache-provider");
|
7
7
|
const gerrit_1 = require("../../../util/http/gerrit");
|
8
8
|
const regex_1 = require("../../../util/regex");
|
9
|
+
const url_1 = require("../../../util/url");
|
9
10
|
const utils_1 = require("./utils");
|
10
11
|
const QUOTES_REGEX = (0, regex_1.regEx)('"', 'g');
|
11
12
|
class GerritClient {
|
@@ -47,15 +48,16 @@ class GerritClient {
|
|
47
48
|
}
|
48
49
|
/* v8 ignore stop */
|
49
50
|
const filters = GerritClient.buildSearchFilters(repository, findPRConfig);
|
50
|
-
const
|
51
|
-
|
52
|
-
|
51
|
+
const queryString = (0, url_1.getQueryString)({
|
52
|
+
o: this.requestDetails,
|
53
|
+
});
|
54
|
+
const changes = await this.gerritHttp.getJsonUnchecked(`a/changes/?q=${filters.join('+')}&${queryString}`, opts);
|
53
55
|
logger_1.logger.trace(`findChanges(${filters.join(', ')}) => ${changes.body.length}`);
|
54
56
|
return changes.body;
|
55
57
|
}
|
56
58
|
async getChange(changeNumber) {
|
57
|
-
const
|
58
|
-
|
59
|
+
const queryString = (0, url_1.getQueryString)({ o: this.requestDetails });
|
60
|
+
const changes = await this.gerritHttp.getJsonUnchecked(`a/changes/${changeNumber}?${queryString}`);
|
59
61
|
return changes.body;
|
60
62
|
}
|
61
63
|
async getMergeableInfo(change) {
|
@@ -110,21 +112,6 @@ class GerritClient {
|
|
110
112
|
const base64Content = await this.gerritHttp.getText(`a/projects/${encodeURIComponent(repo)}/branches/${encodeURIComponent(branch)}/files/${encodeURIComponent(fileName)}/content`);
|
111
113
|
return Buffer.from(base64Content.body, 'base64').toString();
|
112
114
|
}
|
113
|
-
async approveChange(changeId) {
|
114
|
-
const isApproved = await this.checkIfApproved(changeId);
|
115
|
-
if (!isApproved) {
|
116
|
-
await this.setLabel(changeId, 'Code-Review', +2);
|
117
|
-
}
|
118
|
-
}
|
119
|
-
async checkIfApproved(changeId) {
|
120
|
-
const change = await exports.client.getChange(changeId);
|
121
|
-
const reviewLabels = change?.labels?.['Code-Review'];
|
122
|
-
return reviewLabels === undefined || reviewLabels.approved !== undefined;
|
123
|
-
}
|
124
|
-
wasApprovedBy(change, username) {
|
125
|
-
return (change.labels?.['Code-Review'].approved &&
|
126
|
-
change.labels['Code-Review'].approved.username === username);
|
127
|
-
}
|
128
115
|
normalizeMessage(message) {
|
129
116
|
//the last \n was removed from gerrit after the comment was added...
|
130
117
|
return message.substring(0, 0x4000).trim();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../lib/modules/platform/gerrit/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { REPOSITORY_ARCHIVED } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { memCacheProvider } from '../../../util/http/cache/memory-http-cache-provider';\nimport { GerritHttp } from '../../../util/http/gerrit';\nimport type { HttpOptions } from '../../../util/http/types';\nimport { regEx } from '../../../util/regex';\nimport type {\n GerritAccountInfo,\n GerritBranchInfo,\n GerritChange,\n GerritChangeMessageInfo,\n GerritFindPRConfig,\n GerritMergeableInfo,\n GerritProjectInfo,\n} from './types';\nimport { mapPrStateToGerritFilter } from './utils';\n\nconst QUOTES_REGEX = regEx('\"', 'g');\n\nclass GerritClient {\n private requestDetails = [\n 'SUBMITTABLE', //include the submittable field in ChangeInfo, which can be used to tell if the change is reviewed and ready for submit.\n 'CHECK', // include potential consistency problems with the change (not related to labels)\n 'MESSAGES',\n 'DETAILED_ACCOUNTS',\n 'LABELS',\n 'CURRENT_ACTIONS', //to check if current_revision can be \"rebased\"\n 'CURRENT_REVISION', //get RevisionInfo::ref to fetch\n 'CURRENT_COMMIT', // to get the commit message\n ] as const;\n\n private gerritHttp = new GerritHttp();\n\n async getRepos(): Promise<string[]> {\n const res = await this.gerritHttp.getJsonUnchecked<string[]>(\n 'a/projects/?type=CODE&state=ACTIVE',\n {},\n );\n return Object.keys(res.body);\n }\n\n async getProjectInfo(repository: string): Promise<GerritProjectInfo> {\n const projectInfo =\n await this.gerritHttp.getJsonUnchecked<GerritProjectInfo>(\n `a/projects/${encodeURIComponent(repository)}`,\n );\n if (projectInfo.body.state !== 'ACTIVE') {\n throw new Error(REPOSITORY_ARCHIVED);\n }\n return projectInfo.body;\n }\n\n async getBranchInfo(repository: string): Promise<GerritBranchInfo> {\n const branchInfo = await this.gerritHttp.getJsonUnchecked<GerritBranchInfo>(\n `a/projects/${encodeURIComponent(repository)}/branches/HEAD`,\n );\n return branchInfo.body;\n }\n\n async findChanges(\n repository: string,\n findPRConfig: GerritFindPRConfig,\n refreshCache?: boolean,\n ): Promise<GerritChange[]> {\n const opts: HttpOptions = {};\n /* v8 ignore start: temporary code */\n // TODO: should refresh the cache rather than just ignore it\n if (refreshCache) {\n opts.memCache = false;\n } else {\n opts.cacheProvider = memCacheProvider;\n }\n /* v8 ignore stop */\n\n const filters = GerritClient.buildSearchFilters(repository, findPRConfig);\n const changes = await this.gerritHttp.getJsonUnchecked<GerritChange[]>(\n `a/changes/?q=` +\n filters.join('+') +\n this.requestDetails.map((det) => `&o=${det}`).join(''),\n opts,\n );\n logger.trace(\n `findChanges(${filters.join(', ')}) => ${changes.body.length}`,\n );\n return changes.body;\n }\n\n async getChange(changeNumber: number): Promise<GerritChange> {\n const changes = await this.gerritHttp.getJsonUnchecked<GerritChange>(\n `a/changes/${changeNumber}?` +\n this.requestDetails.map((det) => `o=${det}`).join('&'),\n );\n return changes.body;\n }\n\n async getMergeableInfo(change: GerritChange): Promise<GerritMergeableInfo> {\n const mergeable =\n await this.gerritHttp.getJsonUnchecked<GerritMergeableInfo>(\n `a/changes/${change._number}/revisions/current/mergeable`,\n );\n return mergeable.body;\n }\n\n async abandonChange(changeNumber: number): Promise<void> {\n await this.gerritHttp.postJson(`a/changes/${changeNumber}/abandon`);\n }\n\n async submitChange(changeNumber: number): Promise<GerritChange> {\n const change = await this.gerritHttp.postJson<GerritChange>(\n `a/changes/${changeNumber}/submit`,\n );\n return change.body;\n }\n\n async getMessages(changeNumber: number): Promise<GerritChangeMessageInfo[]> {\n const messages = await this.gerritHttp.getJsonUnchecked<\n GerritChangeMessageInfo[]\n >(`a/changes/${changeNumber}/messages`, { memCache: false });\n return messages.body;\n }\n\n async addMessage(\n changeNumber: number,\n fullMessage: string,\n tag?: string,\n ): Promise<void> {\n const message = this.normalizeMessage(fullMessage);\n await this.gerritHttp.postJson(\n `a/changes/${changeNumber}/revisions/current/review`,\n { body: { message, tag, notify: 'NONE' } },\n );\n }\n\n async checkForExistingMessage(\n changeNumber: number,\n newMessage: string,\n msgType?: string,\n ): Promise<boolean> {\n const messages = await this.getMessages(changeNumber);\n return messages.some(\n (existingMsg) =>\n (msgType === undefined || msgType === existingMsg.tag) &&\n existingMsg.message.includes(newMessage),\n );\n }\n\n async addMessageIfNotAlreadyExists(\n changeNumber: number,\n message: string,\n tag?: string,\n ): Promise<void> {\n const newMsg = this.normalizeMessage(message);\n if (!(await this.checkForExistingMessage(changeNumber, newMsg, tag))) {\n await this.addMessage(changeNumber, newMsg, tag);\n }\n }\n\n async setLabel(\n changeNumber: number,\n label: string,\n value: number,\n ): Promise<void> {\n await this.gerritHttp.postJson(\n `a/changes/${changeNumber}/revisions/current/review`,\n { body: { labels: { [label]: value }, notify: 'NONE' } },\n );\n }\n\n async addReviewers(changeNumber: number, reviewers: string[]): Promise<void> {\n await this.gerritHttp.postJson(\n `a/changes/${changeNumber}/revisions/current/review`,\n {\n body: {\n reviewers: reviewers.map((r) => ({ reviewer: r })),\n notify: 'OWNER_REVIEWERS', // Avoids notifying cc's\n },\n },\n );\n }\n\n async addAssignee(changeNumber: number, assignee: string): Promise<void> {\n await this.gerritHttp.putJson<GerritAccountInfo>(\n // TODO: refactor this as this API removed in Gerrit 3.8\n `a/changes/${changeNumber}/assignee`,\n {\n body: { assignee },\n },\n );\n }\n\n async getFile(\n repo: string,\n branch: string,\n fileName: string,\n ): Promise<string> {\n const base64Content = await this.gerritHttp.getText(\n `a/projects/${encodeURIComponent(\n repo,\n )}/branches/${encodeURIComponent(branch)}/files/${encodeURIComponent(fileName)}/content`,\n );\n return Buffer.from(base64Content.body, 'base64').toString();\n }\n\n async approveChange(changeId: number): Promise<void> {\n const isApproved = await this.checkIfApproved(changeId);\n if (!isApproved) {\n await this.setLabel(changeId, 'Code-Review', +2);\n }\n }\n\n async checkIfApproved(changeId: number): Promise<boolean> {\n const change = await client.getChange(changeId);\n const reviewLabels = change?.labels?.['Code-Review'];\n return reviewLabels === undefined || reviewLabels.approved !== undefined;\n }\n\n wasApprovedBy(change: GerritChange, username: string): boolean | undefined {\n return (\n change.labels?.['Code-Review'].approved &&\n change.labels['Code-Review'].approved.username === username\n );\n }\n\n normalizeMessage(message: string): string {\n //the last \\n was removed from gerrit after the comment was added...\n return message.substring(0, 0x4000).trim();\n }\n\n private static buildSearchFilters(\n repository: string,\n searchConfig: GerritFindPRConfig,\n ): string[] {\n const filterState = mapPrStateToGerritFilter(searchConfig.state);\n const filters = ['owner:self', 'project:' + repository, filterState];\n if (searchConfig.branchName) {\n filters.push(`footer:Renovate-Branch=${searchConfig.branchName}`);\n }\n if (searchConfig.targetBranch) {\n filters.push(`branch:${searchConfig.targetBranch}`);\n }\n if (searchConfig.label) {\n filters.push(`label:Code-Review=${searchConfig.label}`);\n }\n if (searchConfig.prTitle) {\n // escaping support in Gerrit is not great, so we need to remove quotes\n // special characters are ignored anyway in the search so it does not create any issues\n filters.push(\n `message:${encodeURIComponent('\"' + searchConfig.prTitle.replace(QUOTES_REGEX, '') + '\"')}`,\n );\n }\n return filters;\n }\n}\n\nexport const client = new GerritClient();\n"]}
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../lib/modules/platform/gerrit/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { REPOSITORY_ARCHIVED } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { memCacheProvider } from '../../../util/http/cache/memory-http-cache-provider';\nimport { GerritHttp } from '../../../util/http/gerrit';\nimport type { HttpOptions } from '../../../util/http/types';\nimport { regEx } from '../../../util/regex';\nimport { getQueryString } from '../../../util/url';\nimport type {\n GerritAccountInfo,\n GerritBranchInfo,\n GerritChange,\n GerritChangeMessageInfo,\n GerritFindPRConfig,\n GerritMergeableInfo,\n GerritProjectInfo,\n} from './types';\nimport { mapPrStateToGerritFilter } from './utils';\n\nconst QUOTES_REGEX = regEx('\"', 'g');\n\nclass GerritClient {\n private requestDetails = [\n 'SUBMITTABLE', //include the submittable field in ChangeInfo, which can be used to tell if the change is reviewed and ready for submit.\n 'CHECK', // include potential consistency problems with the change (not related to labels)\n 'MESSAGES',\n 'DETAILED_ACCOUNTS',\n 'LABELS',\n 'CURRENT_ACTIONS', //to check if current_revision can be \"rebased\"\n 'CURRENT_REVISION', //get RevisionInfo::ref to fetch\n 'CURRENT_COMMIT', // to get the commit message\n ] as const;\n\n private gerritHttp = new GerritHttp();\n\n async getRepos(): Promise<string[]> {\n const res = await this.gerritHttp.getJsonUnchecked<string[]>(\n 'a/projects/?type=CODE&state=ACTIVE',\n {},\n );\n return Object.keys(res.body);\n }\n\n async getProjectInfo(repository: string): Promise<GerritProjectInfo> {\n const projectInfo =\n await this.gerritHttp.getJsonUnchecked<GerritProjectInfo>(\n `a/projects/${encodeURIComponent(repository)}`,\n );\n if (projectInfo.body.state !== 'ACTIVE') {\n throw new Error(REPOSITORY_ARCHIVED);\n }\n return projectInfo.body;\n }\n\n async getBranchInfo(repository: string): Promise<GerritBranchInfo> {\n const branchInfo = await this.gerritHttp.getJsonUnchecked<GerritBranchInfo>(\n `a/projects/${encodeURIComponent(repository)}/branches/HEAD`,\n );\n return branchInfo.body;\n }\n\n async findChanges(\n repository: string,\n findPRConfig: GerritFindPRConfig,\n refreshCache?: boolean,\n ): Promise<GerritChange[]> {\n const opts: HttpOptions = {};\n /* v8 ignore start: temporary code */\n // TODO: should refresh the cache rather than just ignore it\n if (refreshCache) {\n opts.memCache = false;\n } else {\n opts.cacheProvider = memCacheProvider;\n }\n /* v8 ignore stop */\n\n const filters = GerritClient.buildSearchFilters(repository, findPRConfig);\n const queryString = getQueryString({\n o: this.requestDetails,\n });\n const changes = await this.gerritHttp.getJsonUnchecked<GerritChange[]>(\n `a/changes/?q=${filters.join('+')}&${queryString}`,\n opts,\n );\n logger.trace(\n `findChanges(${filters.join(', ')}) => ${changes.body.length}`,\n );\n return changes.body;\n }\n\n async getChange(changeNumber: number): Promise<GerritChange> {\n const queryString = getQueryString({ o: this.requestDetails });\n const changes = await this.gerritHttp.getJsonUnchecked<GerritChange>(\n `a/changes/${changeNumber}?${queryString}`,\n );\n return changes.body;\n }\n\n async getMergeableInfo(change: GerritChange): Promise<GerritMergeableInfo> {\n const mergeable =\n await this.gerritHttp.getJsonUnchecked<GerritMergeableInfo>(\n `a/changes/${change._number}/revisions/current/mergeable`,\n );\n return mergeable.body;\n }\n\n async abandonChange(changeNumber: number): Promise<void> {\n await this.gerritHttp.postJson(`a/changes/${changeNumber}/abandon`);\n }\n\n async submitChange(changeNumber: number): Promise<GerritChange> {\n const change = await this.gerritHttp.postJson<GerritChange>(\n `a/changes/${changeNumber}/submit`,\n );\n return change.body;\n }\n\n async getMessages(changeNumber: number): Promise<GerritChangeMessageInfo[]> {\n const messages = await this.gerritHttp.getJsonUnchecked<\n GerritChangeMessageInfo[]\n >(`a/changes/${changeNumber}/messages`, { memCache: false });\n return messages.body;\n }\n\n async addMessage(\n changeNumber: number,\n fullMessage: string,\n tag?: string,\n ): Promise<void> {\n const message = this.normalizeMessage(fullMessage);\n await this.gerritHttp.postJson(\n `a/changes/${changeNumber}/revisions/current/review`,\n { body: { message, tag, notify: 'NONE' } },\n );\n }\n\n async checkForExistingMessage(\n changeNumber: number,\n newMessage: string,\n msgType?: string,\n ): Promise<boolean> {\n const messages = await this.getMessages(changeNumber);\n return messages.some(\n (existingMsg) =>\n (msgType === undefined || msgType === existingMsg.tag) &&\n existingMsg.message.includes(newMessage),\n );\n }\n\n async addMessageIfNotAlreadyExists(\n changeNumber: number,\n message: string,\n tag?: string,\n ): Promise<void> {\n const newMsg = this.normalizeMessage(message);\n if (!(await this.checkForExistingMessage(changeNumber, newMsg, tag))) {\n await this.addMessage(changeNumber, newMsg, tag);\n }\n }\n\n async setLabel(\n changeNumber: number,\n label: string,\n value: number,\n ): Promise<void> {\n await this.gerritHttp.postJson(\n `a/changes/${changeNumber}/revisions/current/review`,\n { body: { labels: { [label]: value }, notify: 'NONE' } },\n );\n }\n\n async addReviewers(changeNumber: number, reviewers: string[]): Promise<void> {\n await this.gerritHttp.postJson(\n `a/changes/${changeNumber}/revisions/current/review`,\n {\n body: {\n reviewers: reviewers.map((r) => ({ reviewer: r })),\n notify: 'OWNER_REVIEWERS', // Avoids notifying cc's\n },\n },\n );\n }\n\n async addAssignee(changeNumber: number, assignee: string): Promise<void> {\n await this.gerritHttp.putJson<GerritAccountInfo>(\n // TODO: refactor this as this API removed in Gerrit 3.8\n `a/changes/${changeNumber}/assignee`,\n {\n body: { assignee },\n },\n );\n }\n\n async getFile(\n repo: string,\n branch: string,\n fileName: string,\n ): Promise<string> {\n const base64Content = await this.gerritHttp.getText(\n `a/projects/${encodeURIComponent(\n repo,\n )}/branches/${encodeURIComponent(branch)}/files/${encodeURIComponent(fileName)}/content`,\n );\n return Buffer.from(base64Content.body, 'base64').toString();\n }\n\n normalizeMessage(message: string): string {\n //the last \\n was removed from gerrit after the comment was added...\n return message.substring(0, 0x4000).trim();\n }\n\n private static buildSearchFilters(\n repository: string,\n searchConfig: GerritFindPRConfig,\n ): string[] {\n const filterState = mapPrStateToGerritFilter(searchConfig.state);\n const filters = ['owner:self', 'project:' + repository, filterState];\n if (searchConfig.branchName) {\n filters.push(`footer:Renovate-Branch=${searchConfig.branchName}`);\n }\n if (searchConfig.targetBranch) {\n filters.push(`branch:${searchConfig.targetBranch}`);\n }\n if (searchConfig.label) {\n filters.push(`label:Code-Review=${searchConfig.label}`);\n }\n if (searchConfig.prTitle) {\n // escaping support in Gerrit is not great, so we need to remove quotes\n // special characters are ignored anyway in the search so it does not create any issues\n filters.push(\n `message:${encodeURIComponent('\"' + searchConfig.prTitle.replace(QUOTES_REGEX, '') + '\"')}`,\n );\n }\n return filters;\n }\n}\n\nexport const client = new GerritClient();\n"]}
|
@@ -128,9 +128,6 @@ async function updatePr(prConfig) {
|
|
128
128
|
if (prConfig.prBody) {
|
129
129
|
await client_1.client.addMessageIfNotAlreadyExists(prConfig.number, prConfig.prBody, utils_1.TAG_PULL_REQUEST_BODY);
|
130
130
|
}
|
131
|
-
if (prConfig.platformPrOptions?.autoApprove) {
|
132
|
-
await client_1.client.approveChange(prConfig.number);
|
133
|
-
}
|
134
131
|
if (prConfig.state && prConfig.state === 'closed') {
|
135
132
|
await client_1.client.abandonChange(prConfig.number);
|
136
133
|
}
|
@@ -146,9 +143,6 @@ async function createPr(prConfig) {
|
|
146
143
|
throw new Error(`the change should be created automatically from previous push to refs/for/${prConfig.sourceBranch}`);
|
147
144
|
}
|
148
145
|
await client_1.client.addMessageIfNotAlreadyExists(pr._number, prConfig.prBody, utils_1.TAG_PULL_REQUEST_BODY);
|
149
|
-
if (prConfig.platformPrOptions?.autoApprove) {
|
150
|
-
await client_1.client.approveChange(pr._number);
|
151
|
-
}
|
152
146
|
return getPr(pr._number);
|
153
147
|
}
|
154
148
|
async function getBranchPr(branchName) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/platform/gerrit/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport type { BranchStatus } from '../../../types';\nimport { parseJson } from '../../../util/common';\nimport * as git from '../../../util/git';\nimport { setBaseUrl } from '../../../util/http/gerrit';\nimport { regEx } from '../../../util/regex';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport type {\n BranchStatusConfig,\n CreatePRConfig,\n EnsureCommentConfig,\n EnsureCommentRemovalConfigByContent,\n EnsureCommentRemovalConfigByTopic,\n EnsureIssueConfig,\n EnsureIssueResult,\n FindPRConfig,\n Issue,\n MergePRConfig,\n PlatformParams,\n PlatformResult,\n Pr,\n RepoParams,\n RepoResult,\n UpdatePrConfig,\n} from '../types';\nimport { repoFingerprint } from '../util';\n\nimport { smartTruncate } from '../utils/pr-body';\nimport { readOnlyIssueBody } from '../utils/read-only-issue-body';\nimport { client } from './client';\nimport { configureScm } from './scm';\nimport type { GerritLabelTypeInfo, GerritProjectInfo } from './types';\nimport {\n TAG_PULL_REQUEST_BODY,\n getGerritRepoUrl,\n mapBranchStatusToLabel,\n mapGerritChangeToPr,\n} from './utils';\n\nexport const id = 'gerrit';\n\nconst defaults: {\n endpoint?: string;\n} = {};\n\nlet config: {\n repository?: string;\n head?: string;\n config?: GerritProjectInfo;\n labels: Record<string, GerritLabelTypeInfo>;\n gerritUsername?: string;\n} = {\n labels: {},\n};\n\nexport function writeToConfig(newConfig: typeof config): void {\n config = { ...config, ...newConfig };\n}\n\nexport function initPlatform({\n endpoint,\n username,\n password,\n}: PlatformParams): Promise<PlatformResult> {\n logger.debug(`initPlatform(${endpoint!}, ${username!})`);\n if (!endpoint) {\n throw new Error('Init: You must configure a Gerrit Server endpoint');\n }\n if (!(username && password)) {\n throw new Error(\n 'Init: You must configure a Gerrit Server username/password',\n );\n }\n config.gerritUsername = username;\n defaults.endpoint = ensureTrailingSlash(endpoint);\n setBaseUrl(defaults.endpoint);\n const platformConfig: PlatformResult = {\n endpoint: defaults.endpoint,\n };\n return Promise.resolve(platformConfig);\n}\n\n/**\n * Get all state=\"ACTIVE\" and type=\"CODE\" repositories from gerrit\n */\nexport async function getRepos(): Promise<string[]> {\n logger.debug(`getRepos()`);\n return await client.getRepos();\n}\n\n/**\n * Clone repository to local directory\n * @param config\n */\nexport async function initRepo({\n repository,\n gitUrl,\n}: RepoParams): Promise<RepoResult> {\n logger.debug(`initRepo(${repository}, ${gitUrl})`);\n const projectInfo = await client.getProjectInfo(repository);\n const branchInfo = await client.getBranchInfo(repository);\n\n config = {\n ...config,\n repository,\n head: branchInfo.revision,\n config: projectInfo,\n labels: projectInfo.labels ?? {},\n };\n const baseUrl = defaults.endpoint!;\n const url = getGerritRepoUrl(repository, baseUrl);\n configureScm(repository, config.gerritUsername!);\n await git.initRepo({ url });\n\n //abandon \"open\" and \"rejected\" changes at startup\n const rejectedChanges = await client.findChanges(config.repository!, {\n branchName: '',\n state: 'open',\n label: '-2',\n });\n for (const change of rejectedChanges) {\n await client.abandonChange(change._number);\n }\n const repoConfig: RepoResult = {\n defaultBranch: config.head!,\n isFork: false,\n repoFingerprint: repoFingerprint(repository, baseUrl),\n };\n return repoConfig;\n}\n\nexport async function findPr(\n findPRConfig: FindPRConfig,\n refreshCache?: boolean,\n): Promise<Pr | null> {\n const change = (\n await client.findChanges(config.repository!, findPRConfig, refreshCache)\n ).pop();\n return change ? mapGerritChangeToPr(change) : null;\n}\n\nexport async function getPr(number: number): Promise<Pr | null> {\n try {\n const change = await client.getChange(number);\n return mapGerritChangeToPr(change);\n } catch (err) {\n if (err.statusCode === 404) {\n return null;\n }\n throw err;\n }\n}\n\nexport async function updatePr(prConfig: UpdatePrConfig): Promise<void> {\n logger.debug(`updatePr(${prConfig.number}, ${prConfig.prTitle})`);\n if (prConfig.prBody) {\n await client.addMessageIfNotAlreadyExists(\n prConfig.number,\n prConfig.prBody,\n TAG_PULL_REQUEST_BODY,\n );\n }\n if (prConfig.platformPrOptions?.autoApprove) {\n await client.approveChange(prConfig.number);\n }\n if (prConfig.state && prConfig.state === 'closed') {\n await client.abandonChange(prConfig.number);\n }\n}\n\nexport async function createPr(prConfig: CreatePRConfig): Promise<Pr | null> {\n logger.debug(\n `createPr(${prConfig.sourceBranch}, ${prConfig.prTitle}, ${\n prConfig.labels?.toString() ?? ''\n })`,\n );\n const pr = (\n await client.findChanges(\n config.repository!,\n {\n branchName: prConfig.sourceBranch,\n targetBranch: prConfig.targetBranch,\n state: 'open',\n },\n true,\n )\n ).pop();\n if (pr === undefined) {\n throw new Error(\n `the change should be created automatically from previous push to refs/for/${prConfig.sourceBranch}`,\n );\n }\n await client.addMessageIfNotAlreadyExists(\n pr._number,\n prConfig.prBody,\n TAG_PULL_REQUEST_BODY,\n );\n if (prConfig.platformPrOptions?.autoApprove) {\n await client.approveChange(pr._number);\n }\n return getPr(pr._number);\n}\n\nexport async function getBranchPr(branchName: string): Promise<Pr | null> {\n const change = (\n await client.findChanges(config.repository!, { branchName, state: 'open' })\n ).pop();\n return change ? mapGerritChangeToPr(change) : null;\n}\n\nexport function getPrList(): Promise<Pr[]> {\n return client\n .findChanges(config.repository!, { branchName: '' })\n .then((res) => res.map((change) => mapGerritChangeToPr(change)));\n}\n\nexport async function mergePr(config: MergePRConfig): Promise<boolean> {\n logger.debug(\n `mergePr(${config.id}, ${config.branchName!}, ${config.strategy!})`,\n );\n try {\n const change = await client.submitChange(config.id);\n return change.status === 'MERGED';\n } catch (err) {\n if (err.statusCode === 409) {\n logger.warn(\n { err },\n \"Can't submit the change, because the submit rule doesn't allow it.\",\n );\n return false;\n }\n throw err;\n }\n}\n\n/**\n * BranchStatus for Gerrit assumes that the branchName refers to a change.\n * @param branchName\n */\nexport async function getBranchStatus(\n branchName: string,\n): Promise<BranchStatus> {\n logger.debug(`getBranchStatus(${branchName})`);\n const changes = await client.findChanges(\n config.repository!,\n { state: 'open', branchName },\n true,\n );\n if (changes.length > 0) {\n const allSubmittable =\n changes.filter((change) => change.submittable === true).length ===\n changes.length;\n if (allSubmittable) {\n return 'green';\n }\n const hasProblems =\n changes.filter((change) => change.problems.length > 0).length > 0;\n if (hasProblems) {\n return 'red';\n }\n const hasBlockingLabels =\n changes.filter((change) =>\n Object.values(change.labels ?? {}).some((label) => label.blocking),\n ).length > 0;\n if (hasBlockingLabels) {\n return 'red';\n }\n }\n return 'yellow';\n}\n\n/**\n * check the gerrit-change for the presence of the corresponding \"$context\" Gerrit label if configured,\n * return 'yellow' if not configured or not set\n * @param branchName\n * @param context renovate/stability-days || ...\n */\nexport async function getBranchStatusCheck(\n branchName: string,\n context: string,\n): Promise<BranchStatus | null> {\n const label = config.labels[context];\n if (label) {\n const change = (\n await client.findChanges(\n config.repository!,\n { branchName, state: 'open' },\n true,\n )\n ).pop();\n if (change) {\n const labelRes = change.labels?.[context];\n if (labelRes) {\n // Check for rejected first, as a label could have both rejected and approved\n if (labelRes.rejected) {\n return 'red';\n }\n if (labelRes.approved) {\n return 'green';\n }\n }\n }\n }\n return 'yellow';\n}\n\n/**\n * Apply the branch state $context to the corresponding gerrit label (if available)\n * context === \"renovate/stability-days\" / \"renovate/merge-confidence\" and state === \"green\"/...\n * @param branchStatusConfig\n */\nexport async function setBranchStatus(\n branchStatusConfig: BranchStatusConfig,\n): Promise<void> {\n const label = config.labels[branchStatusConfig.context];\n const labelValue =\n label && mapBranchStatusToLabel(branchStatusConfig.state, label);\n if (branchStatusConfig.context && labelValue) {\n const pr = await getBranchPr(branchStatusConfig.branchName);\n if (pr === null) {\n return;\n }\n await client.setLabel(pr.number, branchStatusConfig.context, labelValue);\n }\n}\n\nexport function getRawFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<string | null> {\n const repo = repoName ?? config.repository ?? 'All-Projects';\n const branch =\n branchOrTag ?? (repo === config.repository ? config.head! : 'HEAD');\n return client.getFile(repo, branch, fileName);\n}\n\nexport async function getJsonFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<any> {\n const raw = await getRawFile(fileName, repoName, branchOrTag);\n return parseJson(raw, fileName);\n}\n\nexport async function addReviewers(\n number: number,\n reviewers: string[],\n): Promise<void> {\n await client.addReviewers(number, reviewers);\n}\n\n/**\n * add \"CC\" (only one possible)\n */\nexport async function addAssignees(\n number: number,\n assignees: string[],\n): Promise<void> {\n if (assignees.length) {\n if (assignees.length > 1) {\n logger.debug(\n `addAssignees(${number}, ${assignees.toString()}) called with more then one assignee! Gerrit only supports one assignee! Using the first from list.`,\n );\n }\n await client.addAssignee(number, assignees[0]);\n }\n}\n\nexport async function ensureComment(\n ensureComment: EnsureCommentConfig,\n): Promise<boolean> {\n logger.debug(\n `ensureComment(${ensureComment.number}, ${ensureComment.topic!}, ${\n ensureComment.content\n })`,\n );\n await client.addMessageIfNotAlreadyExists(\n ensureComment.number,\n ensureComment.content,\n ensureComment.topic ?? undefined,\n );\n return true;\n}\n\nexport function massageMarkdown(prBody: string): string {\n //TODO: do more Gerrit specific replacements?\n return smartTruncate(readOnlyIssueBody(prBody), maxBodyLength())\n .replace(regEx(/Pull Request(s)?/g), 'Change-Request$1')\n .replace(regEx(/\\bPR(s)?\\b/g), 'Change-Request$1')\n .replace(regEx(/<\\/?summary>/g), '**')\n .replace(regEx(/<\\/?details>/g), '')\n .replace(regEx(/​/g), '') //remove zero-width-space not supported in gerrit-markdown\n .replace(\n 'close this Change-Request unmerged.',\n 'abandon or down vote this Change-Request with -2.',\n )\n .replace('Branch creation', 'Change creation')\n .replace(\n 'Close this Change-Request',\n 'Down-vote this Change-Request with -2',\n )\n .replace(\n 'you tick the rebase/retry checkbox',\n 'add \"rebase!\" at the beginning of the commit message.',\n )\n .replace(regEx(`\\n---\\n\\n.*?<!-- rebase-check -->.*?\\n`), '')\n .replace(regEx(/<!--renovate-(?:debug|config-hash):.*?-->/g), '');\n}\n\nexport function maxBodyLength(): number {\n return 16384; //TODO: check the real gerrit limit (max. chars)\n}\n\nexport function deleteLabel(number: number, label: string): Promise<void> {\n return Promise.resolve();\n}\n\nexport function ensureCommentRemoval(\n ensureCommentRemoval:\n | EnsureCommentRemovalConfigByTopic\n | EnsureCommentRemovalConfigByContent,\n): Promise<void> {\n return Promise.resolve();\n}\n\nexport function ensureIssueClosing(title: string): Promise<void> {\n return Promise.resolve();\n}\n\nexport function ensureIssue(\n issueConfig: EnsureIssueConfig,\n): Promise<EnsureIssueResult | null> {\n return Promise.resolve(null);\n}\n\nexport function findIssue(title: string): Promise<Issue | null> {\n return Promise.resolve(null);\n}\n\nexport function getIssueList(): Promise<Issue[]> {\n return Promise.resolve([]);\n}\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/platform/gerrit/index.ts"],"names":[],"mappings":";;;AAuDA,sCAEC;AAED,oCAqBC;AAKD,4BAGC;AAMD,4BAmCC;AAED,wBAQC;AAED,sBAUC;AAED,4BAYC;AAED,4BA4BC;AAED,kCAKC;AAED,8BAIC;AAED,0BAiBC;AAMD,0CA8BC;AAQD,oDA2BC;AAOD,0CAaC;AAED,gCASC;AAED,kCAOC;AAED,oCAKC;AAKD,oCAYC;AAED,sCAcC;AAED,0CAuBC;AAED,sCAEC;AAED,kCAEC;AAED,oDAMC;AAED,gDAEC;AAED,kCAIC;AAED,8BAEC;AAED,oCAEC;;AArbD,4CAAyC;AAEzC,iDAAiD;AACjD,+DAAyC;AACzC,sDAAuD;AACvD,+CAA4C;AAC5C,2CAAwD;AAmBxD,kCAA0C;AAE1C,8CAAiD;AACjD,wEAAkE;AAClE,qCAAkC;AAClC,+BAAqC;AAErC,mCAKiB;AAEJ,QAAA,EAAE,GAAG,QAAQ,CAAC;AAE3B,MAAM,QAAQ,GAEV,EAAE,CAAC;AAEP,IAAI,MAAM,GAMN;IACF,MAAM,EAAE,EAAE;CACX,CAAC;AAEF,SAAgB,aAAa,CAAC,SAAwB;IACpD,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;AACvC,CAAC;AAED,SAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,QAAQ,EACR,QAAQ,GACO;IACf,eAAM,CAAC,KAAK,CAAC,gBAAgB,QAAS,KAAK,QAAS,GAAG,CAAC,CAAC;IACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IACD,MAAM,CAAC,cAAc,GAAG,QAAQ,CAAC;IACjC,QAAQ,CAAC,QAAQ,GAAG,IAAA,yBAAmB,EAAC,QAAQ,CAAC,CAAC;IAClD,IAAA,mBAAU,EAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9B,MAAM,cAAc,GAAmB;QACrC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC5B,CAAC;IACF,OAAO,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,QAAQ;IAC5B,eAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC3B,OAAO,MAAM,eAAM,CAAC,QAAQ,EAAE,CAAC;AACjC,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,QAAQ,CAAC,EAC7B,UAAU,EACV,MAAM,GACK;IACX,eAAM,CAAC,KAAK,CAAC,YAAY,UAAU,KAAK,MAAM,GAAG,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,MAAM,eAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,MAAM,eAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAE1D,MAAM,GAAG;QACP,GAAG,MAAM;QACT,UAAU;QACV,IAAI,EAAE,UAAU,CAAC,QAAQ;QACzB,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,WAAW,CAAC,MAAM,IAAI,EAAE;KACjC,CAAC;IACF,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAS,CAAC;IACnC,MAAM,GAAG,GAAG,IAAA,wBAAgB,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAClD,IAAA,kBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,cAAe,CAAC,CAAC;IACjD,MAAM,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IAE5B,kDAAkD;IAClD,MAAM,eAAe,GAAG,MAAM,eAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAW,EAAE;QACnE,UAAU,EAAE,EAAE;QACd,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IACH,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,eAAM,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,UAAU,GAAe;QAC7B,aAAa,EAAE,MAAM,CAAC,IAAK;QAC3B,MAAM,EAAE,KAAK;QACb,eAAe,EAAE,IAAA,sBAAe,EAAC,UAAU,EAAE,OAAO,CAAC;KACtD,CAAC;IACF,OAAO,UAAU,CAAC;AACpB,CAAC;AAEM,KAAK,UAAU,MAAM,CAC1B,YAA0B,EAC1B,YAAsB;IAEtB,MAAM,MAAM,GAAG,CACb,MAAM,eAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAW,EAAE,YAAY,EAAE,YAAY,CAAC,CACzE,CAAC,GAAG,EAAE,CAAC;IACR,OAAO,MAAM,CAAC,CAAC,CAAC,IAAA,2BAAmB,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAEM,KAAK,UAAU,KAAK,CAAC,MAAc;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,eAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC9C,OAAO,IAAA,2BAAmB,EAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,QAAwB;IACrD,eAAM,CAAC,KAAK,CAAC,YAAY,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;IAClE,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,eAAM,CAAC,4BAA4B,CACvC,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,MAAM,EACf,6BAAqB,CACtB,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,eAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,QAAwB;IACrD,eAAM,CAAC,KAAK,CACV,YAAY,QAAQ,CAAC,YAAY,KAAK,QAAQ,CAAC,OAAO,KACpD,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EACjC,GAAG,CACJ,CAAC;IACF,MAAM,EAAE,GAAG,CACT,MAAM,eAAM,CAAC,WAAW,CACtB,MAAM,CAAC,UAAW,EAClB;QACE,UAAU,EAAE,QAAQ,CAAC,YAAY;QACjC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,KAAK,EAAE,MAAM;KACd,EACD,IAAI,CACL,CACF,CAAC,GAAG,EAAE,CAAC;IACR,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CACb,6EAA6E,QAAQ,CAAC,YAAY,EAAE,CACrG,CAAC;IACJ,CAAC;IACD,MAAM,eAAM,CAAC,4BAA4B,CACvC,EAAE,CAAC,OAAO,EACV,QAAQ,CAAC,MAAM,EACf,6BAAqB,CACtB,CAAC;IACF,OAAO,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,UAAkB;IAClD,MAAM,MAAM,GAAG,CACb,MAAM,eAAM,CAAC,WAAW,CAAC,MAAM,CAAC,UAAW,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAC5E,CAAC,GAAG,EAAE,CAAC;IACR,OAAO,MAAM,CAAC,CAAC,CAAC,IAAA,2BAAmB,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrD,CAAC;AAED,SAAgB,SAAS;IACvB,OAAO,eAAM;SACV,WAAW,CAAC,MAAM,CAAC,UAAW,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;SACnD,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,2BAAmB,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,MAAqB;IACjD,eAAM,CAAC,KAAK,CACV,WAAW,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,UAAW,KAAK,MAAM,CAAC,QAAS,GAAG,CACpE,CAAC;IACF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,eAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;YAC3B,eAAM,CAAC,IAAI,CACT,EAAE,GAAG,EAAE,EACP,oEAAoE,CACrE,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,eAAe,CACnC,UAAkB;IAElB,eAAM,CAAC,KAAK,CAAC,mBAAmB,UAAU,GAAG,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,eAAM,CAAC,WAAW,CACtC,MAAM,CAAC,UAAW,EAClB,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAC7B,IAAI,CACL,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,cAAc,GAClB,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,MAAM;YAC9D,OAAO,CAAC,MAAM,CAAC;QACjB,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,WAAW,GACf,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACpE,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,iBAAiB,GACrB,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACxB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CACnE,CAAC,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,iBAAiB,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,oBAAoB,CACxC,UAAkB,EAClB,OAAe;IAEf,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,MAAM,GAAG,CACb,MAAM,eAAM,CAAC,WAAW,CACtB,MAAM,CAAC,UAAW,EAClB,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAC7B,IAAI,CACL,CACF,CAAC,GAAG,EAAE,CAAC;QACR,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,QAAQ,EAAE,CAAC;gBACb,6EAA6E;gBAC7E,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBACtB,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBACtB,OAAO,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,eAAe,CACnC,kBAAsC;IAEtC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACxD,MAAM,UAAU,GACd,KAAK,IAAI,IAAA,8BAAsB,EAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnE,IAAI,kBAAkB,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;QAC7C,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,MAAM,eAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,SAAgB,UAAU,CACxB,QAAgB,EAChB,QAAiB,EACjB,WAAoB;IAEpB,MAAM,IAAI,GAAG,QAAQ,IAAI,MAAM,CAAC,UAAU,IAAI,cAAc,CAAC;IAC7D,MAAM,MAAM,GACV,WAAW,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACtE,OAAO,eAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAChD,CAAC;AAEM,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,QAAiB,EACjB,WAAoB;IAEpB,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC9D,OAAO,IAAA,kBAAS,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,SAAmB;IAEnB,MAAM,eAAM,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,SAAmB;IAEnB,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,eAAM,CAAC,KAAK,CACV,gBAAgB,MAAM,KAAK,SAAS,CAAC,QAAQ,EAAE,qGAAqG,CACrJ,CAAC;QACJ,CAAC;QACD,MAAM,eAAM,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,aAAkC;IAElC,eAAM,CAAC,KAAK,CACV,iBAAiB,aAAa,CAAC,MAAM,KAAK,aAAa,CAAC,KAAM,KAC5D,aAAa,CAAC,OAChB,GAAG,CACJ,CAAC;IACF,MAAM,eAAM,CAAC,4BAA4B,CACvC,aAAa,CAAC,MAAM,EACpB,aAAa,CAAC,OAAO,EACrB,aAAa,CAAC,KAAK,IAAI,SAAS,CACjC,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,eAAe,CAAC,MAAc;IAC5C,6CAA6C;IAC7C,OAAO,IAAA,uBAAa,EAAC,IAAA,wCAAiB,EAAC,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;SAC7D,OAAO,CAAC,IAAA,aAAK,EAAC,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;SACvD,OAAO,CAAC,IAAA,aAAK,EAAC,aAAa,CAAC,EAAE,kBAAkB,CAAC;SACjD,OAAO,CAAC,IAAA,aAAK,EAAC,eAAe,CAAC,EAAE,IAAI,CAAC;SACrC,OAAO,CAAC,IAAA,aAAK,EAAC,eAAe,CAAC,EAAE,EAAE,CAAC;SACnC,OAAO,CAAC,IAAA,aAAK,EAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,0DAA0D;SACzF,OAAO,CACN,qCAAqC,EACrC,mDAAmD,CACpD;SACA,OAAO,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;SAC7C,OAAO,CACN,2BAA2B,EAC3B,uCAAuC,CACxC;SACA,OAAO,CACN,oCAAoC,EACpC,uDAAuD,CACxD;SACA,OAAO,CAAC,IAAA,aAAK,EAAC,wCAAwC,CAAC,EAAE,EAAE,CAAC;SAC5D,OAAO,CAAC,IAAA,aAAK,EAAC,4CAA4C,CAAC,EAAE,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,SAAgB,aAAa;IAC3B,OAAO,KAAK,CAAC,CAAC,gDAAgD;AAChE,CAAC;AAED,SAAgB,WAAW,CAAC,MAAc,EAAE,KAAa;IACvD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AAC3B,CAAC;AAED,SAAgB,oBAAoB,CAClC,oBAEuC;IAEvC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AAC3B,CAAC;AAED,SAAgB,kBAAkB,CAAC,KAAa;IAC9C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;AAC3B,CAAC;AAED,SAAgB,WAAW,CACzB,WAA8B;IAE9B,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,SAAgB,SAAS,CAAC,KAAa;IACrC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,SAAgB,YAAY;IAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC","sourcesContent":["import { logger } from '../../../logger';\nimport type { BranchStatus } from '../../../types';\nimport { parseJson } from '../../../util/common';\nimport * as git from '../../../util/git';\nimport { setBaseUrl } from '../../../util/http/gerrit';\nimport { regEx } from '../../../util/regex';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport type {\n BranchStatusConfig,\n CreatePRConfig,\n EnsureCommentConfig,\n EnsureCommentRemovalConfigByContent,\n EnsureCommentRemovalConfigByTopic,\n EnsureIssueConfig,\n EnsureIssueResult,\n FindPRConfig,\n Issue,\n MergePRConfig,\n PlatformParams,\n PlatformResult,\n Pr,\n RepoParams,\n RepoResult,\n UpdatePrConfig,\n} from '../types';\nimport { repoFingerprint } from '../util';\n\nimport { smartTruncate } from '../utils/pr-body';\nimport { readOnlyIssueBody } from '../utils/read-only-issue-body';\nimport { client } from './client';\nimport { configureScm } from './scm';\nimport type { GerritLabelTypeInfo, GerritProjectInfo } from './types';\nimport {\n TAG_PULL_REQUEST_BODY,\n getGerritRepoUrl,\n mapBranchStatusToLabel,\n mapGerritChangeToPr,\n} from './utils';\n\nexport const id = 'gerrit';\n\nconst defaults: {\n endpoint?: string;\n} = {};\n\nlet config: {\n repository?: string;\n head?: string;\n config?: GerritProjectInfo;\n labels: Record<string, GerritLabelTypeInfo>;\n gerritUsername?: string;\n} = {\n labels: {},\n};\n\nexport function writeToConfig(newConfig: typeof config): void {\n config = { ...config, ...newConfig };\n}\n\nexport function initPlatform({\n endpoint,\n username,\n password,\n}: PlatformParams): Promise<PlatformResult> {\n logger.debug(`initPlatform(${endpoint!}, ${username!})`);\n if (!endpoint) {\n throw new Error('Init: You must configure a Gerrit Server endpoint');\n }\n if (!(username && password)) {\n throw new Error(\n 'Init: You must configure a Gerrit Server username/password',\n );\n }\n config.gerritUsername = username;\n defaults.endpoint = ensureTrailingSlash(endpoint);\n setBaseUrl(defaults.endpoint);\n const platformConfig: PlatformResult = {\n endpoint: defaults.endpoint,\n };\n return Promise.resolve(platformConfig);\n}\n\n/**\n * Get all state=\"ACTIVE\" and type=\"CODE\" repositories from gerrit\n */\nexport async function getRepos(): Promise<string[]> {\n logger.debug(`getRepos()`);\n return await client.getRepos();\n}\n\n/**\n * Clone repository to local directory\n * @param config\n */\nexport async function initRepo({\n repository,\n gitUrl,\n}: RepoParams): Promise<RepoResult> {\n logger.debug(`initRepo(${repository}, ${gitUrl})`);\n const projectInfo = await client.getProjectInfo(repository);\n const branchInfo = await client.getBranchInfo(repository);\n\n config = {\n ...config,\n repository,\n head: branchInfo.revision,\n config: projectInfo,\n labels: projectInfo.labels ?? {},\n };\n const baseUrl = defaults.endpoint!;\n const url = getGerritRepoUrl(repository, baseUrl);\n configureScm(repository, config.gerritUsername!);\n await git.initRepo({ url });\n\n //abandon \"open\" and \"rejected\" changes at startup\n const rejectedChanges = await client.findChanges(config.repository!, {\n branchName: '',\n state: 'open',\n label: '-2',\n });\n for (const change of rejectedChanges) {\n await client.abandonChange(change._number);\n }\n const repoConfig: RepoResult = {\n defaultBranch: config.head!,\n isFork: false,\n repoFingerprint: repoFingerprint(repository, baseUrl),\n };\n return repoConfig;\n}\n\nexport async function findPr(\n findPRConfig: FindPRConfig,\n refreshCache?: boolean,\n): Promise<Pr | null> {\n const change = (\n await client.findChanges(config.repository!, findPRConfig, refreshCache)\n ).pop();\n return change ? mapGerritChangeToPr(change) : null;\n}\n\nexport async function getPr(number: number): Promise<Pr | null> {\n try {\n const change = await client.getChange(number);\n return mapGerritChangeToPr(change);\n } catch (err) {\n if (err.statusCode === 404) {\n return null;\n }\n throw err;\n }\n}\n\nexport async function updatePr(prConfig: UpdatePrConfig): Promise<void> {\n logger.debug(`updatePr(${prConfig.number}, ${prConfig.prTitle})`);\n if (prConfig.prBody) {\n await client.addMessageIfNotAlreadyExists(\n prConfig.number,\n prConfig.prBody,\n TAG_PULL_REQUEST_BODY,\n );\n }\n if (prConfig.state && prConfig.state === 'closed') {\n await client.abandonChange(prConfig.number);\n }\n}\n\nexport async function createPr(prConfig: CreatePRConfig): Promise<Pr | null> {\n logger.debug(\n `createPr(${prConfig.sourceBranch}, ${prConfig.prTitle}, ${\n prConfig.labels?.toString() ?? ''\n })`,\n );\n const pr = (\n await client.findChanges(\n config.repository!,\n {\n branchName: prConfig.sourceBranch,\n targetBranch: prConfig.targetBranch,\n state: 'open',\n },\n true,\n )\n ).pop();\n if (pr === undefined) {\n throw new Error(\n `the change should be created automatically from previous push to refs/for/${prConfig.sourceBranch}`,\n );\n }\n await client.addMessageIfNotAlreadyExists(\n pr._number,\n prConfig.prBody,\n TAG_PULL_REQUEST_BODY,\n );\n return getPr(pr._number);\n}\n\nexport async function getBranchPr(branchName: string): Promise<Pr | null> {\n const change = (\n await client.findChanges(config.repository!, { branchName, state: 'open' })\n ).pop();\n return change ? mapGerritChangeToPr(change) : null;\n}\n\nexport function getPrList(): Promise<Pr[]> {\n return client\n .findChanges(config.repository!, { branchName: '' })\n .then((res) => res.map((change) => mapGerritChangeToPr(change)));\n}\n\nexport async function mergePr(config: MergePRConfig): Promise<boolean> {\n logger.debug(\n `mergePr(${config.id}, ${config.branchName!}, ${config.strategy!})`,\n );\n try {\n const change = await client.submitChange(config.id);\n return change.status === 'MERGED';\n } catch (err) {\n if (err.statusCode === 409) {\n logger.warn(\n { err },\n \"Can't submit the change, because the submit rule doesn't allow it.\",\n );\n return false;\n }\n throw err;\n }\n}\n\n/**\n * BranchStatus for Gerrit assumes that the branchName refers to a change.\n * @param branchName\n */\nexport async function getBranchStatus(\n branchName: string,\n): Promise<BranchStatus> {\n logger.debug(`getBranchStatus(${branchName})`);\n const changes = await client.findChanges(\n config.repository!,\n { state: 'open', branchName },\n true,\n );\n if (changes.length > 0) {\n const allSubmittable =\n changes.filter((change) => change.submittable === true).length ===\n changes.length;\n if (allSubmittable) {\n return 'green';\n }\n const hasProblems =\n changes.filter((change) => change.problems.length > 0).length > 0;\n if (hasProblems) {\n return 'red';\n }\n const hasBlockingLabels =\n changes.filter((change) =>\n Object.values(change.labels ?? {}).some((label) => label.blocking),\n ).length > 0;\n if (hasBlockingLabels) {\n return 'red';\n }\n }\n return 'yellow';\n}\n\n/**\n * check the gerrit-change for the presence of the corresponding \"$context\" Gerrit label if configured,\n * return 'yellow' if not configured or not set\n * @param branchName\n * @param context renovate/stability-days || ...\n */\nexport async function getBranchStatusCheck(\n branchName: string,\n context: string,\n): Promise<BranchStatus | null> {\n const label = config.labels[context];\n if (label) {\n const change = (\n await client.findChanges(\n config.repository!,\n { branchName, state: 'open' },\n true,\n )\n ).pop();\n if (change) {\n const labelRes = change.labels?.[context];\n if (labelRes) {\n // Check for rejected first, as a label could have both rejected and approved\n if (labelRes.rejected) {\n return 'red';\n }\n if (labelRes.approved) {\n return 'green';\n }\n }\n }\n }\n return 'yellow';\n}\n\n/**\n * Apply the branch state $context to the corresponding gerrit label (if available)\n * context === \"renovate/stability-days\" / \"renovate/merge-confidence\" and state === \"green\"/...\n * @param branchStatusConfig\n */\nexport async function setBranchStatus(\n branchStatusConfig: BranchStatusConfig,\n): Promise<void> {\n const label = config.labels[branchStatusConfig.context];\n const labelValue =\n label && mapBranchStatusToLabel(branchStatusConfig.state, label);\n if (branchStatusConfig.context && labelValue) {\n const pr = await getBranchPr(branchStatusConfig.branchName);\n if (pr === null) {\n return;\n }\n await client.setLabel(pr.number, branchStatusConfig.context, labelValue);\n }\n}\n\nexport function getRawFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<string | null> {\n const repo = repoName ?? config.repository ?? 'All-Projects';\n const branch =\n branchOrTag ?? (repo === config.repository ? config.head! : 'HEAD');\n return client.getFile(repo, branch, fileName);\n}\n\nexport async function getJsonFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<any> {\n const raw = await getRawFile(fileName, repoName, branchOrTag);\n return parseJson(raw, fileName);\n}\n\nexport async function addReviewers(\n number: number,\n reviewers: string[],\n): Promise<void> {\n await client.addReviewers(number, reviewers);\n}\n\n/**\n * add \"CC\" (only one possible)\n */\nexport async function addAssignees(\n number: number,\n assignees: string[],\n): Promise<void> {\n if (assignees.length) {\n if (assignees.length > 1) {\n logger.debug(\n `addAssignees(${number}, ${assignees.toString()}) called with more then one assignee! Gerrit only supports one assignee! Using the first from list.`,\n );\n }\n await client.addAssignee(number, assignees[0]);\n }\n}\n\nexport async function ensureComment(\n ensureComment: EnsureCommentConfig,\n): Promise<boolean> {\n logger.debug(\n `ensureComment(${ensureComment.number}, ${ensureComment.topic!}, ${\n ensureComment.content\n })`,\n );\n await client.addMessageIfNotAlreadyExists(\n ensureComment.number,\n ensureComment.content,\n ensureComment.topic ?? undefined,\n );\n return true;\n}\n\nexport function massageMarkdown(prBody: string): string {\n //TODO: do more Gerrit specific replacements?\n return smartTruncate(readOnlyIssueBody(prBody), maxBodyLength())\n .replace(regEx(/Pull Request(s)?/g), 'Change-Request$1')\n .replace(regEx(/\\bPR(s)?\\b/g), 'Change-Request$1')\n .replace(regEx(/<\\/?summary>/g), '**')\n .replace(regEx(/<\\/?details>/g), '')\n .replace(regEx(/​/g), '') //remove zero-width-space not supported in gerrit-markdown\n .replace(\n 'close this Change-Request unmerged.',\n 'abandon or down vote this Change-Request with -2.',\n )\n .replace('Branch creation', 'Change creation')\n .replace(\n 'Close this Change-Request',\n 'Down-vote this Change-Request with -2',\n )\n .replace(\n 'you tick the rebase/retry checkbox',\n 'add \"rebase!\" at the beginning of the commit message.',\n )\n .replace(regEx(`\\n---\\n\\n.*?<!-- rebase-check -->.*?\\n`), '')\n .replace(regEx(/<!--renovate-(?:debug|config-hash):.*?-->/g), '');\n}\n\nexport function maxBodyLength(): number {\n return 16384; //TODO: check the real gerrit limit (max. chars)\n}\n\nexport function deleteLabel(number: number, label: string): Promise<void> {\n return Promise.resolve();\n}\n\nexport function ensureCommentRemoval(\n ensureCommentRemoval:\n | EnsureCommentRemovalConfigByTopic\n | EnsureCommentRemovalConfigByContent,\n): Promise<void> {\n return Promise.resolve();\n}\n\nexport function ensureIssueClosing(title: string): Promise<void> {\n return Promise.resolve();\n}\n\nexport function ensureIssue(\n issueConfig: EnsureIssueConfig,\n): Promise<EnsureIssueResult | null> {\n return Promise.resolve(null);\n}\n\nexport function findIssue(title: string): Promise<Issue | null> {\n return Promise.resolve(null);\n}\n\nexport function getIssueList(): Promise<Issue[]> {\n return Promise.resolve([]);\n}\n"]}
|
@@ -109,17 +109,16 @@ class GerritScm extends default_scm_1.DefaultGitScm {
|
|
109
109
|
hasChanges = await git.hasDiff('HEAD', 'FETCH_HEAD'); //avoid empty patchsets
|
110
110
|
}
|
111
111
|
if (hasChanges || commit.force) {
|
112
|
+
const pushOptions = ['notify=NONE'];
|
113
|
+
if (commit.autoApprove) {
|
114
|
+
pushOptions.push('label=Code-Review+2');
|
115
|
+
}
|
112
116
|
const pushResult = await git.pushCommit({
|
113
117
|
sourceRef: commit.branchName,
|
114
|
-
targetRef: `refs/for/${commit.baseBranch}
|
118
|
+
targetRef: `refs/for/${commit.baseBranch}%${pushOptions.join(',')}`,
|
115
119
|
files: commit.files,
|
116
120
|
});
|
117
121
|
if (pushResult) {
|
118
|
-
//existingChange was the old change before commit/push. we need to approve again, if it was previously approved from renovate
|
119
|
-
if (existingChange &&
|
120
|
-
client_1.client.wasApprovedBy(existingChange, username)) {
|
121
|
-
await client_1.client.approveChange(existingChange._number);
|
122
|
-
}
|
123
122
|
return commitSha;
|
124
123
|
}
|
125
124
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scm.js","sourceRoot":"","sources":["../../../../lib/modules/platform/gerrit/scm.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from 'crypto';\nimport { logger } from '../../../logger';\nimport * as git from '../../../util/git';\nimport type { CommitFilesConfig, LongCommitSha } from '../../../util/git/types';\nimport { hash } from '../../../util/hash';\nimport { DefaultGitScm } from '../default-scm';\nimport { client } from './client';\nimport type { GerritFindPRConfig } from './types';\n\nlet repository: string;\nlet username: string;\nexport function configureScm(repo: string, login: string): void {\n repository = repo;\n username = login;\n}\n\nexport class GerritScm extends DefaultGitScm {\n override async branchExists(branchName: string): Promise<boolean> {\n const searchConfig: GerritFindPRConfig = { state: 'open', branchName };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n return true;\n }\n return git.branchExists(branchName);\n }\n\n override async getBranchCommit(\n branchName: string,\n ): Promise<LongCommitSha | null> {\n const searchConfig: GerritFindPRConfig = { state: 'open', branchName };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n return change.current_revision as LongCommitSha;\n }\n return git.getBranchCommit(branchName);\n }\n\n override async isBranchBehindBase(\n branchName: string,\n baseBranch: string,\n ): Promise<boolean> {\n const searchConfig: GerritFindPRConfig = {\n state: 'open',\n branchName,\n targetBranch: baseBranch,\n };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n const currentGerritPatchset = change.revisions[change.current_revision];\n return currentGerritPatchset.actions?.rebase.enabled === true;\n }\n return true;\n }\n\n override async isBranchConflicted(\n baseBranch: string,\n branch: string,\n ): Promise<boolean> {\n const searchConfig: GerritFindPRConfig = {\n state: 'open',\n branchName: branch,\n targetBranch: baseBranch,\n };\n const change = (await client.findChanges(repository, searchConfig)).pop();\n if (change) {\n const mergeInfo = await client.getMergeableInfo(change);\n return !mergeInfo.mergeable;\n } else {\n logger.warn(\n { branch, baseBranch },\n 'There is no open change with this branch',\n );\n return true;\n }\n }\n\n override async isBranchModified(branchName: string): Promise<boolean> {\n const searchConfig: GerritFindPRConfig = { state: 'open', branchName };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n const currentGerritPatchset = change.revisions[change.current_revision];\n return currentGerritPatchset.uploader.username !== username;\n }\n return false;\n }\n\n override async commitAndPush(\n commit: CommitFilesConfig,\n ): Promise<LongCommitSha | null> {\n logger.debug(`commitAndPush(${commit.branchName})`);\n const searchConfig: GerritFindPRConfig = {\n state: 'open',\n branchName: commit.branchName,\n targetBranch: commit.baseBranch,\n };\n const existingChange = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n\n let hasChanges = true;\n const message =\n typeof commit.message === 'string' ? [commit.message] : commit.message;\n\n // In Gerrit, the change subject/title is the first line of the commit message\n if (commit.prTitle) {\n const firstMessageLines = message[0].split('\\n');\n firstMessageLines[0] = commit.prTitle;\n message[0] = firstMessageLines.join('\\n');\n }\n\n commit.message = [\n ...message,\n `Renovate-Branch: ${commit.branchName}\\nChange-Id: ${existingChange?.change_id ?? generateChangeId()}`,\n ];\n const commitResult = await git.prepareCommit({ ...commit, force: true });\n if (commitResult) {\n const { commitSha } = commitResult;\n if (existingChange?.revisions && existingChange.current_revision) {\n const fetchRefSpec =\n existingChange.revisions[existingChange.current_revision].ref;\n await git.fetchRevSpec(fetchRefSpec); //fetch current ChangeSet for git diff\n hasChanges = await git.hasDiff('HEAD', 'FETCH_HEAD'); //avoid empty patchsets\n }\n if (hasChanges || commit.force) {\n const pushResult = await git.pushCommit({\n sourceRef: commit.branchName,\n targetRef: `refs/for/${commit.baseBranch!}%notify=NONE`,\n files: commit.files,\n });\n if (pushResult) {\n //existingChange was the old change before commit/push. we need to approve again, if it was previously approved from renovate\n if (\n existingChange &&\n client.wasApprovedBy(existingChange, username)\n ) {\n await client.approveChange(existingChange._number);\n }\n return commitSha;\n }\n }\n }\n return null; //empty commit, no changes in this Gerrit-Change\n }\n\n override deleteBranch(branchName: string): Promise<void> {\n return Promise.resolve();\n }\n\n override async mergeToLocal(branchName: string): Promise<void> {\n const searchConfig: GerritFindPRConfig = { state: 'open', branchName };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n return super.mergeToLocal(change.revisions[change.current_revision].ref);\n }\n return super.mergeToLocal(branchName);\n }\n}\n\n/**\n * This function should generate a Gerrit Change-ID analogous to the commit hook. We avoid the commit hook cause of security concerns.\n * random=$( (whoami ; hostname ; date; cat $1 ; echo $RANDOM) | git hash-object --stdin) prefixed with an 'I'.\n * TODO: Gerrit don't accept longer Change-IDs (sha256), but what happens with this https://git-scm.com/docs/hash-function-transition/ ?\n */\nfunction generateChangeId(): string {\n return 'I' + hash(randomUUID(), 'sha1');\n}\n"]}
|
1
|
+
{"version":3,"file":"scm.js","sourceRoot":"","sources":["../../../../lib/modules/platform/gerrit/scm.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from 'crypto';\nimport { logger } from '../../../logger';\nimport * as git from '../../../util/git';\nimport type { CommitFilesConfig, LongCommitSha } from '../../../util/git/types';\nimport { hash } from '../../../util/hash';\nimport { DefaultGitScm } from '../default-scm';\nimport { client } from './client';\nimport type { GerritFindPRConfig } from './types';\n\nlet repository: string;\nlet username: string;\nexport function configureScm(repo: string, login: string): void {\n repository = repo;\n username = login;\n}\n\nexport class GerritScm extends DefaultGitScm {\n override async branchExists(branchName: string): Promise<boolean> {\n const searchConfig: GerritFindPRConfig = { state: 'open', branchName };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n return true;\n }\n return git.branchExists(branchName);\n }\n\n override async getBranchCommit(\n branchName: string,\n ): Promise<LongCommitSha | null> {\n const searchConfig: GerritFindPRConfig = { state: 'open', branchName };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n return change.current_revision as LongCommitSha;\n }\n return git.getBranchCommit(branchName);\n }\n\n override async isBranchBehindBase(\n branchName: string,\n baseBranch: string,\n ): Promise<boolean> {\n const searchConfig: GerritFindPRConfig = {\n state: 'open',\n branchName,\n targetBranch: baseBranch,\n };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n const currentGerritPatchset = change.revisions[change.current_revision];\n return currentGerritPatchset.actions?.rebase.enabled === true;\n }\n return true;\n }\n\n override async isBranchConflicted(\n baseBranch: string,\n branch: string,\n ): Promise<boolean> {\n const searchConfig: GerritFindPRConfig = {\n state: 'open',\n branchName: branch,\n targetBranch: baseBranch,\n };\n const change = (await client.findChanges(repository, searchConfig)).pop();\n if (change) {\n const mergeInfo = await client.getMergeableInfo(change);\n return !mergeInfo.mergeable;\n } else {\n logger.warn(\n { branch, baseBranch },\n 'There is no open change with this branch',\n );\n return true;\n }\n }\n\n override async isBranchModified(branchName: string): Promise<boolean> {\n const searchConfig: GerritFindPRConfig = { state: 'open', branchName };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n const currentGerritPatchset = change.revisions[change.current_revision];\n return currentGerritPatchset.uploader.username !== username;\n }\n return false;\n }\n\n override async commitAndPush(\n commit: CommitFilesConfig,\n ): Promise<LongCommitSha | null> {\n logger.debug(`commitAndPush(${commit.branchName})`);\n const searchConfig: GerritFindPRConfig = {\n state: 'open',\n branchName: commit.branchName,\n targetBranch: commit.baseBranch,\n };\n const existingChange = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n\n let hasChanges = true;\n const message =\n typeof commit.message === 'string' ? [commit.message] : commit.message;\n\n // In Gerrit, the change subject/title is the first line of the commit message\n if (commit.prTitle) {\n const firstMessageLines = message[0].split('\\n');\n firstMessageLines[0] = commit.prTitle;\n message[0] = firstMessageLines.join('\\n');\n }\n\n commit.message = [\n ...message,\n `Renovate-Branch: ${commit.branchName}\\nChange-Id: ${existingChange?.change_id ?? generateChangeId()}`,\n ];\n const commitResult = await git.prepareCommit({ ...commit, force: true });\n if (commitResult) {\n const { commitSha } = commitResult;\n if (existingChange?.revisions && existingChange.current_revision) {\n const fetchRefSpec =\n existingChange.revisions[existingChange.current_revision].ref;\n await git.fetchRevSpec(fetchRefSpec); //fetch current ChangeSet for git diff\n hasChanges = await git.hasDiff('HEAD', 'FETCH_HEAD'); //avoid empty patchsets\n }\n if (hasChanges || commit.force) {\n const pushOptions = ['notify=NONE'];\n if (commit.autoApprove) {\n pushOptions.push('label=Code-Review+2');\n }\n const pushResult = await git.pushCommit({\n sourceRef: commit.branchName,\n targetRef: `refs/for/${commit.baseBranch!}%${pushOptions.join(',')}`,\n files: commit.files,\n });\n if (pushResult) {\n return commitSha;\n }\n }\n }\n return null; //empty commit, no changes in this Gerrit-Change\n }\n\n override deleteBranch(branchName: string): Promise<void> {\n return Promise.resolve();\n }\n\n override async mergeToLocal(branchName: string): Promise<void> {\n const searchConfig: GerritFindPRConfig = { state: 'open', branchName };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n return super.mergeToLocal(change.revisions[change.current_revision].ref);\n }\n return super.mergeToLocal(branchName);\n }\n}\n\n/**\n * This function should generate a Gerrit Change-ID analogous to the commit hook. We avoid the commit hook cause of security concerns.\n * random=$( (whoami ; hostname ; date; cat $1 ; echo $RANDOM) | git hash-object --stdin) prefixed with an 'I'.\n * TODO: Gerrit don't accept longer Change-IDs (sha256), but what happens with this https://git-scm.com/docs/hash-function-transition/ ?\n */\nfunction generateChangeId(): string {\n return 'I' + hash(randomUUID(), 'sha1');\n}\n"]}
|
package/dist/util/git/types.d.ts
CHANGED
@@ -72,6 +72,8 @@ export interface CommitFilesConfig {
|
|
72
72
|
platformCommit?: PlatformCommitOptions;
|
73
73
|
/** Only needed by Gerrit platform */
|
74
74
|
prTitle?: string;
|
75
|
+
/** Only needed by Gerrit platform */
|
76
|
+
autoApprove?: boolean;
|
75
77
|
}
|
76
78
|
export interface PushFilesConfig {
|
77
79
|
sourceRef: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/util/git/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { PlatformCommitOptions } from '../../config/types';\nimport type { GitOptions } from '../../types/git';\n\nexport type { DiffResult, StatusResult } from 'simple-git';\n\nexport interface GitAuthor {\n name?: string | null;\n address?: string;\n}\n\nexport type GitNoVerifyOption = 'commit' | 'push';\n\n/**\n * We want to make sure this is a long sha of 40 characters and not just any string\n */\nexport type LongCommitSha = string & { __longCommitSha: never };\n\nexport interface StorageConfig {\n currentBranch?: string;\n defaultBranch?: string;\n url: string;\n extraCloneOpts?: GitOptions;\n cloneSubmodules?: boolean;\n cloneSubmodulesFilter?: string[];\n fullClone?: boolean;\n}\n\nexport interface LocalConfig extends StorageConfig {\n additionalBranches: string[];\n currentBranch: string;\n currentBranchSha: LongCommitSha;\n branchCommits: Record<string, LongCommitSha>;\n branchIsModified: Record<string, boolean>;\n commitBranches: Record<string, string[]>;\n ignoredAuthors: string[];\n gitAuthorName?: string | null;\n gitAuthorEmail?: string;\n\n writeGitDone?: boolean;\n}\n\nexport interface FileAddition {\n /**\n * Addition creates new file or modifies existing one\n */\n type: 'addition';\n\n /**\n * Relative file path\n */\n path: string;\n\n /**\n * File contents\n */\n contents: string | Buffer | null;\n\n /**\n * The executable bit\n */\n isExecutable?: boolean;\n\n isSymlink?: boolean;\n}\n\nexport interface FileDeletion {\n /**\n * Deletion removes the file\n */\n type: 'deletion';\n\n /**\n * Relative file path\n */\n path: string;\n}\n\nexport type FileChange = FileAddition | FileDeletion;\n\nexport interface CommitFilesConfig {\n baseBranch?: string;\n branchName: string;\n files: FileChange[];\n message: string | string[];\n force?: boolean;\n platformCommit?: PlatformCommitOptions;\n /** Only needed by Gerrit platform */\n prTitle?: string;\n}\n\nexport interface PushFilesConfig {\n sourceRef: string;\n targetRef?: string;\n files: FileChange[];\n}\n\nexport type BranchName = string;\n\nexport interface CommitResult {\n parentCommitSha: LongCommitSha;\n commitSha: LongCommitSha;\n files: FileChange[];\n}\n\nexport interface TreeItem {\n path: string;\n mode: string;\n type: string;\n sha: LongCommitSha;\n}\n\n/**\n * Represents a git authentication rule in the form of e.g.:\n * git config --global url.\"https://api@github.com/\".insteadOf \"https://github.com/\"\n */\nexport interface AuthenticationRule {\n url: string;\n insteadOf: string;\n}\n"]}
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/util/git/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { PlatformCommitOptions } from '../../config/types';\nimport type { GitOptions } from '../../types/git';\n\nexport type { DiffResult, StatusResult } from 'simple-git';\n\nexport interface GitAuthor {\n name?: string | null;\n address?: string;\n}\n\nexport type GitNoVerifyOption = 'commit' | 'push';\n\n/**\n * We want to make sure this is a long sha of 40 characters and not just any string\n */\nexport type LongCommitSha = string & { __longCommitSha: never };\n\nexport interface StorageConfig {\n currentBranch?: string;\n defaultBranch?: string;\n url: string;\n extraCloneOpts?: GitOptions;\n cloneSubmodules?: boolean;\n cloneSubmodulesFilter?: string[];\n fullClone?: boolean;\n}\n\nexport interface LocalConfig extends StorageConfig {\n additionalBranches: string[];\n currentBranch: string;\n currentBranchSha: LongCommitSha;\n branchCommits: Record<string, LongCommitSha>;\n branchIsModified: Record<string, boolean>;\n commitBranches: Record<string, string[]>;\n ignoredAuthors: string[];\n gitAuthorName?: string | null;\n gitAuthorEmail?: string;\n\n writeGitDone?: boolean;\n}\n\nexport interface FileAddition {\n /**\n * Addition creates new file or modifies existing one\n */\n type: 'addition';\n\n /**\n * Relative file path\n */\n path: string;\n\n /**\n * File contents\n */\n contents: string | Buffer | null;\n\n /**\n * The executable bit\n */\n isExecutable?: boolean;\n\n isSymlink?: boolean;\n}\n\nexport interface FileDeletion {\n /**\n * Deletion removes the file\n */\n type: 'deletion';\n\n /**\n * Relative file path\n */\n path: string;\n}\n\nexport type FileChange = FileAddition | FileDeletion;\n\nexport interface CommitFilesConfig {\n baseBranch?: string;\n branchName: string;\n files: FileChange[];\n message: string | string[];\n force?: boolean;\n platformCommit?: PlatformCommitOptions;\n /** Only needed by Gerrit platform */\n prTitle?: string;\n /** Only needed by Gerrit platform */\n autoApprove?: boolean;\n}\n\nexport interface PushFilesConfig {\n sourceRef: string;\n targetRef?: string;\n files: FileChange[];\n}\n\nexport type BranchName = string;\n\nexport interface CommitResult {\n parentCommitSha: LongCommitSha;\n commitSha: LongCommitSha;\n files: FileChange[];\n}\n\nexport interface TreeItem {\n path: string;\n mode: string;\n type: string;\n sha: LongCommitSha;\n}\n\n/**\n * Represents a git authentication rule in the form of e.g.:\n * git config --global url.\"https://api@github.com/\".insteadOf \"https://github.com/\"\n */\nexport interface AuthenticationRule {\n url: string;\n insteadOf: string;\n}\n"]}
|
@@ -50,6 +50,8 @@ function commitFilesToBranch(config) {
|
|
50
50
|
platformCommit: config.platformCommit,
|
51
51
|
// Only needed by Gerrit platform
|
52
52
|
prTitle: config.prTitle,
|
53
|
+
// Only needed by Gerrit platform
|
54
|
+
autoApprove: config.autoApprove,
|
53
55
|
});
|
54
56
|
}
|
55
57
|
//# sourceMappingURL=commit.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/update/branch/commit.ts"],"names":[],"mappings":";;AAWA,
|
1
|
+
{"version":3,"file":"commit.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/update/branch/commit.ts"],"names":[],"mappings":";;AAWA,kDAwDC;;AAnED,cAAc;AACd,kEAAkC;AAClC,sDAAyD;AACzD,yEAA8E;AAC9E,+CAA4C;AAC5C,0DAAuD;AAEvD,0DAAuD;AACvD,wDAAqD;AAGrD,SAAgB,mBAAmB,CACjC,MAAoB;IAEpB,IAAI,YAAY,GAAG,MAAM,CAAC,mBAAoB,CAAC,MAAM,CACnD,MAAM,CAAC,gBAAiB,CACzB,CAAC;IACF,qBAAqB;IACrB,IAAI,YAAE,CAAC,aAAa,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAChD,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;YACxD,MAAM,mBAAmB,GAAG,MAAM,CAAC,kBAAmB,CAAC,IAAI,CACzD,CAAC,YAAY,EAAE,EAAE,CACf,IAAA,qBAAS,EAAC,YAAY,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CACzD,CAAC;YACF,IAAI,mBAAmB,EAAE,CAAC;gBACxB,eAAM,CAAC,KAAK,CAAC,aAAa,QAAQ,cAAc,CAAC,CAAC;gBAClD,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,YAAE,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,eAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC9E,eAAM,CAAC,KAAK,CAAC,GAAG,UAAU,oBAAoB,CAAC,CAAC;IAChD,qBAAqB;IACrB,IAAI,qBAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,eAAM,CAAC,IAAI,CAAC,wCAAwC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1E,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,qBAAqB;IACrB,IACE,MAAM,CAAC,UAAU,KAAK,IAAA,mBAAQ,EAAC,MAAM,CAAC,UAAU,CAAC;QACjD,MAAM,CAAC,aAAa,KAAK,IAAA,mBAAQ,EAAC,MAAM,CAAC,aAAa,CAAC,EACvD,CAAC;QACD,eAAM,CAAC,KAAK,CACV,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,EACjC,gDAAgD,CACjD,CAAC;QACF,MAAM,IAAI,KAAK,CAAC,uCAAsB,CAAC,CAAC;IAC1C,CAAC;IAED,oDAAoD;IACpD,OAAO,SAAG,CAAC,aAAa,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,KAAK,EAAE,YAAY;QACnB,OAAO,EAAE,MAAM,CAAC,aAAc;QAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW;QAC3B,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,iCAAiC;QACjC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,iCAAiC;QACjC,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;AACL,CAAC","sourcesContent":["// TODO #22198\nimport is from '@sindresorhus/is';\nimport { GlobalConfig } from '../../../../config/global';\nimport { CONFIG_SECRETS_EXPOSED } from '../../../../constants/error-messages';\nimport { logger } from '../../../../logger';\nimport { scm } from '../../../../modules/platform/scm';\nimport type { LongCommitSha } from '../../../../util/git/types';\nimport { minimatch } from '../../../../util/minimatch';\nimport { sanitize } from '../../../../util/sanitize';\nimport type { BranchConfig } from '../../../types';\n\nexport function commitFilesToBranch(\n config: BranchConfig,\n): Promise<LongCommitSha | null> {\n let updatedFiles = config.updatedPackageFiles!.concat(\n config.updatedArtifacts!,\n );\n // istanbul ignore if\n if (is.nonEmptyArray(config.excludeCommitPaths)) {\n updatedFiles = updatedFiles.filter(({ path: filePath }) => {\n const matchesExcludePaths = config.excludeCommitPaths!.some(\n (excludedPath) =>\n minimatch(excludedPath, { dot: true }).match(filePath),\n );\n if (matchesExcludePaths) {\n logger.debug(`Excluding ${filePath} from commit`);\n return false;\n }\n return true;\n });\n }\n if (!is.nonEmptyArray(updatedFiles)) {\n logger.debug(`No files to commit`);\n return Promise.resolve(null);\n }\n const fileLength = [...new Set(updatedFiles.map((file) => file.path))].length;\n logger.debug(`${fileLength} file(s) to commit`);\n // istanbul ignore if\n if (GlobalConfig.get('dryRun')) {\n logger.info('DRY-RUN: Would commit files to branch ' + config.branchName);\n return Promise.resolve(null);\n }\n // istanbul ignore if\n if (\n config.branchName !== sanitize(config.branchName) ||\n config.commitMessage !== sanitize(config.commitMessage)\n ) {\n logger.debug(\n { branchName: config.branchName },\n 'Secrets exposed in branchName or commitMessage',\n );\n throw new Error(CONFIG_SECRETS_EXPOSED);\n }\n\n // API will know whether to create new branch or not\n return scm.commitAndPush({\n baseBranch: config.baseBranch,\n branchName: config.branchName,\n files: updatedFiles,\n message: config.commitMessage!,\n force: !!config.forceCommit,\n platformCommit: config.platformCommit,\n // Only needed by Gerrit platform\n prTitle: config.prTitle,\n // Only needed by Gerrit platform\n autoApprove: config.autoApprove,\n });\n}\n"]}
|