renovate 40.0.0-next.26 → 40.0.0-next.28
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/config/decrypt.js +1 -1
- package/dist/config/decrypt.js.map +1 -1
- package/dist/config/migrate-validate.js +2 -2
- package/dist/config/migrate-validate.js.map +1 -1
- package/dist/config/migration.js +1 -1
- package/dist/config/migration.js.map +1 -1
- package/dist/config/options/index.js +2 -1
- package/dist/config/options/index.js.map +1 -1
- package/dist/config/presets/internal/group.js +30 -1
- package/dist/config/presets/internal/group.js.map +1 -1
- package/dist/config/presets/internal/workarounds.js +1 -0
- package/dist/config/presets/internal/workarounds.js.map +1 -1
- package/dist/config/presets/parse.js +2 -1
- package/dist/config/presets/parse.js.map +1 -1
- package/dist/config/types.d.ts +4 -1
- package/dist/config/types.js.map +1 -1
- package/dist/config/validation.js +2 -2
- package/dist/config/validation.js.map +1 -1
- package/dist/data/monorepo.json +3 -0
- package/dist/data/source-urls.json +1 -0
- package/dist/instrumentation/index.js +14 -12
- package/dist/instrumentation/index.js.map +1 -1
- package/dist/logger/index.js +1 -1
- package/dist/logger/index.js.map +1 -1
- package/dist/logger/once.js +2 -2
- package/dist/logger/once.js.map +1 -1
- package/dist/logger/renovate-logger.js +1 -1
- package/dist/logger/renovate-logger.js.map +1 -1
- package/dist/logger/utils.js +1 -1
- package/dist/logger/utils.js.map +1 -1
- package/dist/modules/datasource/api.js +2 -0
- package/dist/modules/datasource/api.js.map +1 -1
- package/dist/modules/datasource/artifactory/index.js +0 -1
- package/dist/modules/datasource/artifactory/index.js.map +1 -1
- package/dist/modules/datasource/aws-eks-addon/index.d.ts +11 -0
- package/dist/modules/datasource/aws-eks-addon/index.js +75 -0
- package/dist/modules/datasource/aws-eks-addon/index.js.map +1 -0
- package/dist/modules/datasource/aws-eks-addon/schema.d.ts +40 -0
- package/dist/modules/datasource/aws-eks-addon/schema.js +31 -0
- package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -0
- package/dist/modules/datasource/aws-machine-image/index.js +6 -5
- package/dist/modules/datasource/aws-machine-image/index.js.map +1 -1
- package/dist/modules/datasource/bazel/index.js +0 -1
- package/dist/modules/datasource/bazel/index.js.map +1 -1
- package/dist/modules/datasource/bitrise/index.js +1 -1
- package/dist/modules/datasource/bitrise/index.js.map +1 -1
- package/dist/modules/datasource/cdnjs/schema.d.ts +2 -2
- package/dist/modules/datasource/conda/index.js +18 -1
- package/dist/modules/datasource/conda/index.js.map +1 -1
- package/dist/modules/datasource/conda/prefix-dev.d.ts +3 -0
- package/dist/modules/datasource/conda/prefix-dev.js +83 -0
- package/dist/modules/datasource/conda/prefix-dev.js.map +1 -0
- package/dist/modules/datasource/conda/schema/prefix-dev.d.ts +189 -0
- package/dist/modules/datasource/conda/schema/prefix-dev.js +31 -0
- package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -0
- package/dist/modules/datasource/conda/types.d.ts +1 -20
- package/dist/modules/datasource/conda/types.js.map +1 -1
- package/dist/modules/datasource/cpan/index.js +1 -1
- package/dist/modules/datasource/cpan/index.js.map +1 -1
- package/dist/modules/datasource/crate/index.js +2 -2
- package/dist/modules/datasource/crate/index.js.map +1 -1
- package/dist/modules/datasource/custom/index.js +4 -2
- package/dist/modules/datasource/custom/index.js.map +1 -1
- package/dist/modules/datasource/custom/schema.d.ts +27 -27
- package/dist/modules/datasource/custom/utils.js +1 -0
- package/dist/modules/datasource/custom/utils.js.map +1 -1
- package/dist/modules/datasource/dart/index.js +1 -1
- package/dist/modules/datasource/dart/index.js.map +1 -1
- package/dist/modules/datasource/dart-version/index.js +1 -1
- package/dist/modules/datasource/dart-version/index.js.map +1 -1
- package/dist/modules/datasource/datasource.js +0 -1
- package/dist/modules/datasource/datasource.js.map +1 -1
- package/dist/modules/datasource/deb/index.js +1 -1
- package/dist/modules/datasource/deb/index.js.map +1 -1
- package/dist/modules/datasource/deno/index.js +1 -1
- package/dist/modules/datasource/deno/index.js.map +1 -1
- package/dist/modules/datasource/deno/schema.d.ts +7 -7
- package/dist/modules/datasource/devbox/index.js +0 -1
- package/dist/modules/datasource/devbox/index.js.map +1 -1
- package/dist/modules/datasource/docker/common.js +4 -1
- package/dist/modules/datasource/docker/common.js.map +1 -1
- package/dist/modules/datasource/docker/index.js +5 -5
- package/dist/modules/datasource/docker/index.js.map +1 -1
- package/dist/modules/datasource/docker/schema.d.ts +27 -27
- package/dist/modules/datasource/docker/schema.js +2 -1
- package/dist/modules/datasource/docker/schema.js.map +1 -1
- package/dist/modules/datasource/flutter-version/index.js +1 -1
- package/dist/modules/datasource/flutter-version/index.js.map +1 -1
- package/dist/modules/datasource/galaxy-collection/schema.d.ts +5 -5
- package/dist/modules/datasource/git-refs/index.js +1 -1
- package/dist/modules/datasource/git-refs/index.js.map +1 -1
- package/dist/modules/datasource/gitea-releases/schema.d.ts +6 -6
- package/dist/modules/datasource/gitlab-packages/index.js +1 -1
- package/dist/modules/datasource/gitlab-packages/index.js.map +1 -1
- package/dist/modules/datasource/gitlab-releases/index.js +1 -3
- package/dist/modules/datasource/gitlab-releases/index.js.map +1 -1
- package/dist/modules/datasource/go/index.js +1 -1
- package/dist/modules/datasource/go/index.js.map +1 -1
- package/dist/modules/datasource/go/releases-direct.js +7 -4
- package/dist/modules/datasource/go/releases-direct.js.map +1 -1
- package/dist/modules/datasource/golang-version/index.js +1 -1
- package/dist/modules/datasource/golang-version/index.js.map +1 -1
- package/dist/modules/datasource/gradle-version/index.js +1 -1
- package/dist/modules/datasource/gradle-version/index.js.map +1 -1
- package/dist/modules/datasource/helm/index.js +1 -1
- package/dist/modules/datasource/helm/index.js.map +1 -1
- package/dist/modules/datasource/hex/index.js +1 -1
- package/dist/modules/datasource/hex/index.js.map +1 -1
- package/dist/modules/datasource/index.js +2 -2
- package/dist/modules/datasource/index.js.map +1 -1
- package/dist/modules/datasource/java-version/index.js +0 -1
- package/dist/modules/datasource/java-version/index.js.map +1 -1
- package/dist/modules/datasource/jenkins-plugins/index.js +1 -1
- package/dist/modules/datasource/jenkins-plugins/index.js.map +1 -1
- package/dist/modules/datasource/maven/index.js +35 -27
- package/dist/modules/datasource/maven/index.js.map +1 -1
- package/dist/modules/datasource/maven/types.d.ts +3 -6
- package/dist/modules/datasource/maven/types.js.map +1 -1
- package/dist/modules/datasource/maven/util.d.ts +4 -5
- package/dist/modules/datasource/maven/util.js +93 -156
- package/dist/modules/datasource/maven/util.js.map +1 -1
- package/dist/modules/datasource/node-version/index.js +1 -1
- package/dist/modules/datasource/node-version/index.js.map +1 -1
- package/dist/modules/datasource/npm/index.js +1 -1
- package/dist/modules/datasource/npm/index.js.map +1 -1
- package/dist/modules/datasource/npm/npmrc.js +1 -1
- package/dist/modules/datasource/npm/npmrc.js.map +1 -1
- package/dist/modules/datasource/nuget/index.js +1 -1
- package/dist/modules/datasource/nuget/index.js.map +1 -1
- package/dist/modules/datasource/nuget/v3.js +5 -5
- package/dist/modules/datasource/nuget/v3.js.map +1 -1
- package/dist/modules/datasource/orb/index.js +1 -1
- package/dist/modules/datasource/orb/index.js.map +1 -1
- package/dist/modules/datasource/packagist/index.js +2 -2
- package/dist/modules/datasource/packagist/index.js.map +1 -1
- package/dist/modules/datasource/packagist/schema.d.ts +18 -18
- package/dist/modules/datasource/pod/index.js +1 -1
- package/dist/modules/datasource/pod/index.js.map +1 -1
- package/dist/modules/datasource/postprocess-release.js +1 -1
- package/dist/modules/datasource/postprocess-release.js.map +1 -1
- package/dist/modules/datasource/python-version/index.js +1 -1
- package/dist/modules/datasource/python-version/index.js.map +1 -1
- package/dist/modules/datasource/repology/index.js +1 -1
- package/dist/modules/datasource/repology/index.js.map +1 -1
- package/dist/modules/datasource/rubygems/index.js +1 -1
- package/dist/modules/datasource/rubygems/index.js.map +1 -1
- package/dist/modules/datasource/sbt-package/index.js +1 -1
- package/dist/modules/datasource/sbt-package/index.js.map +1 -1
- package/dist/modules/datasource/sbt-plugin/index.js +1 -1
- package/dist/modules/datasource/sbt-plugin/index.js.map +1 -1
- package/dist/modules/datasource/schema.d.ts +4 -4
- package/dist/modules/datasource/terraform-module/index.js +1 -1
- package/dist/modules/datasource/terraform-module/index.js.map +1 -1
- package/dist/modules/datasource/terraform-provider/index.js +1 -2
- package/dist/modules/datasource/terraform-provider/index.js.map +1 -1
- package/dist/modules/datasource/types.d.ts +1 -0
- package/dist/modules/datasource/types.js.map +1 -1
- package/dist/modules/manager/api.js +2 -0
- package/dist/modules/manager/api.js.map +1 -1
- package/dist/modules/manager/argocd/extract.js +1 -1
- package/dist/modules/manager/argocd/extract.js.map +1 -1
- package/dist/modules/manager/asdf/upgradeable-tooling.js +94 -0
- package/dist/modules/manager/asdf/upgradeable-tooling.js.map +1 -1
- package/dist/modules/manager/azure-pipelines/schema.d.ts +24 -24
- package/dist/modules/manager/batect/schema.d.ts +2 -2
- package/dist/modules/manager/bazel/rules/docker.d.ts +3 -3
- package/dist/modules/manager/bazel/rules/git.js +2 -1
- package/dist/modules/manager/bazel/rules/git.js.map +1 -1
- package/dist/modules/manager/bazel/rules/maven.d.ts +7 -7
- package/dist/modules/manager/bazel/rules/oci.d.ts +3 -3
- package/dist/modules/manager/bazel-module/parser/maven.d.ts +13 -13
- package/dist/modules/manager/bun/artifacts.js +0 -1
- package/dist/modules/manager/bun/artifacts.js.map +1 -1
- package/dist/modules/manager/bundler/artifacts.js +0 -1
- package/dist/modules/manager/bundler/artifacts.js.map +1 -1
- package/dist/modules/manager/bundler/extract.js +2 -1
- package/dist/modules/manager/bundler/extract.js.map +1 -1
- package/dist/modules/manager/cake/index.js +4 -2
- package/dist/modules/manager/cake/index.js.map +1 -1
- package/dist/modules/manager/cargo/artifacts.js +5 -7
- package/dist/modules/manager/cargo/artifacts.js.map +1 -1
- package/dist/modules/manager/cargo/schema.d.ts +164 -164
- package/dist/modules/manager/circleci/schema.d.ts +6 -6
- package/dist/modules/manager/cocoapods/artifacts.js +1 -2
- package/dist/modules/manager/cocoapods/artifacts.js.map +1 -1
- package/dist/modules/manager/composer/artifacts.js +1 -2
- package/dist/modules/manager/composer/artifacts.js.map +1 -1
- package/dist/modules/manager/composer/schema.d.ts +36 -36
- package/dist/modules/manager/composer/schema.js +1 -1
- package/dist/modules/manager/composer/schema.js.map +1 -1
- package/dist/modules/manager/composer/utils.d.ts +1 -0
- package/dist/modules/manager/composer/utils.js +9 -0
- package/dist/modules/manager/composer/utils.js.map +1 -1
- package/dist/modules/manager/copier/artifacts.js +0 -1
- package/dist/modules/manager/copier/artifacts.js.map +1 -1
- package/dist/modules/manager/custom/jsonata/schema.d.ts +28 -28
- package/dist/modules/manager/custom/regex/index.js +2 -0
- package/dist/modules/manager/custom/regex/index.js.map +1 -1
- package/dist/modules/manager/deps-edn/extract.js +2 -1
- package/dist/modules/manager/deps-edn/extract.js.map +1 -1
- package/dist/modules/manager/devbox/artifacts.d.ts +1 -1
- package/dist/modules/manager/devbox/artifacts.js +1 -2
- package/dist/modules/manager/devbox/artifacts.js.map +1 -1
- package/dist/modules/manager/devbox/schema.js +1 -1
- package/dist/modules/manager/devbox/schema.js.map +1 -1
- package/dist/modules/manager/devcontainer/extract.js +43 -1
- package/dist/modules/manager/devcontainer/extract.js.map +1 -1
- package/dist/modules/manager/devcontainer/index.js +11 -1
- package/dist/modules/manager/devcontainer/index.js.map +1 -1
- package/dist/modules/manager/devcontainer/schema.d.ts +7 -3
- package/dist/modules/manager/devcontainer/schema.js +3 -1
- package/dist/modules/manager/devcontainer/schema.js.map +1 -1
- package/dist/modules/manager/docker-compose/schema.d.ts +6 -6
- package/dist/modules/manager/fingerprint.generated.js +83 -82
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/fleet/schema.d.ts +12 -12
- package/dist/modules/manager/flux/artifacts.js +0 -1
- package/dist/modules/manager/flux/artifacts.js.map +1 -1
- package/dist/modules/manager/flux/extract.js +27 -24
- package/dist/modules/manager/flux/extract.js.map +1 -1
- package/dist/modules/manager/flux/schema.d.ts +44 -44
- package/dist/modules/manager/github-actions/extract.js +60 -39
- package/dist/modules/manager/github-actions/extract.js.map +1 -1
- package/dist/modules/manager/github-actions/schema.d.ts +66 -0
- package/dist/modules/manager/github-actions/schema.js +38 -0
- package/dist/modules/manager/github-actions/schema.js.map +1 -0
- package/dist/modules/manager/gitlabci/extract.d.ts +1 -5
- package/dist/modules/manager/gitlabci/extract.js +27 -126
- package/dist/modules/manager/gitlabci/extract.js.map +1 -1
- package/dist/modules/manager/gitlabci/schema.d.ts +55 -0
- package/dist/modules/manager/gitlabci/schema.js +63 -0
- package/dist/modules/manager/gitlabci/schema.js.map +1 -0
- package/dist/modules/manager/gitlabci-include/extract.js +6 -54
- package/dist/modules/manager/gitlabci-include/extract.js.map +1 -1
- package/dist/modules/manager/gitlabci-include/schema.d.ts +13 -0
- package/dist/modules/manager/gitlabci-include/schema.js +46 -0
- package/dist/modules/manager/gitlabci-include/schema.js.map +1 -0
- package/dist/modules/manager/gomod/artifacts.js +24 -10
- package/dist/modules/manager/gomod/artifacts.js.map +1 -1
- package/dist/modules/manager/gomod/extract.js +23 -0
- package/dist/modules/manager/gomod/extract.js.map +1 -1
- package/dist/modules/manager/gomod/line-parser.js +16 -0
- package/dist/modules/manager/gomod/line-parser.js.map +1 -1
- package/dist/modules/manager/gomod/update.js +2 -2
- package/dist/modules/manager/gomod/update.js.map +1 -1
- package/dist/modules/manager/gradle/artifacts.js +0 -1
- package/dist/modules/manager/gradle/artifacts.js.map +1 -1
- package/dist/modules/manager/gradle/extract/catalog.js +1 -1
- package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
- package/dist/modules/manager/gradle/parser/assignments.js +2 -2
- package/dist/modules/manager/gradle/parser/assignments.js.map +1 -1
- package/dist/modules/manager/gradle/parser/handlers.d.ts +1 -2
- package/dist/modules/manager/gradle/parser/handlers.js +10 -25
- package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
- package/dist/modules/manager/gradle/parser/registry-urls.js +11 -3
- package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
- package/dist/modules/manager/gradle-wrapper/artifacts.js +0 -1
- package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
- package/dist/modules/manager/helmfile/artifacts.js +0 -1
- package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
- package/dist/modules/manager/helmfile/extract.js +4 -0
- package/dist/modules/manager/helmfile/extract.js.map +1 -1
- package/dist/modules/manager/helmfile/schema.d.ts +9 -9
- package/dist/modules/manager/helmv3/artifacts.js +0 -1
- package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
- package/dist/modules/manager/helmv3/utils.js +3 -1
- package/dist/modules/manager/helmv3/utils.js.map +1 -1
- package/dist/modules/manager/hermit/artifacts.js +0 -1
- package/dist/modules/manager/hermit/artifacts.js.map +1 -1
- package/dist/modules/manager/homebrew/extract.js +0 -1
- package/dist/modules/manager/homebrew/extract.js.map +1 -1
- package/dist/modules/manager/jsonnet-bundler/artifacts.js +0 -1
- package/dist/modules/manager/jsonnet-bundler/artifacts.js.map +1 -1
- package/dist/modules/manager/kustomize/artifacts.d.ts +2 -0
- package/dist/modules/manager/kustomize/artifacts.js +154 -0
- package/dist/modules/manager/kustomize/artifacts.js.map +1 -0
- package/dist/modules/manager/kustomize/common.d.ts +3 -0
- package/dist/modules/manager/kustomize/common.js +22 -0
- package/dist/modules/manager/kustomize/common.js.map +1 -0
- package/dist/modules/manager/kustomize/index.d.ts +1 -0
- package/dist/modules/manager/kustomize/index.js +3 -1
- package/dist/modules/manager/kustomize/index.js.map +1 -1
- package/dist/modules/manager/kustomize/types.d.ts +4 -0
- package/dist/modules/manager/kustomize/types.js.map +1 -1
- package/dist/modules/manager/maven-wrapper/artifacts.js +0 -1
- package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
- package/dist/modules/manager/mix/artifacts.js +64 -14
- package/dist/modules/manager/mix/artifacts.js.map +1 -1
- package/dist/modules/manager/mix/index.d.ts +1 -0
- package/dist/modules/manager/mix/index.js +2 -1
- package/dist/modules/manager/mix/index.js.map +1 -1
- package/dist/modules/manager/nix/artifacts.js +0 -1
- package/dist/modules/manager/nix/artifacts.js.map +1 -1
- package/dist/modules/manager/nix/extract.js +1 -1
- package/dist/modules/manager/nix/extract.js.map +1 -1
- package/dist/modules/manager/nix/schema.d.ts +6 -6
- package/dist/modules/manager/npm/artifacts.js +0 -1
- package/dist/modules/manager/npm/artifacts.js.map +1 -1
- package/dist/modules/manager/npm/extract/yarn.js +2 -2
- package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
- package/dist/modules/manager/npm/post-update/npm.js +0 -1
- package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/pnpm.js +13 -2
- package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/rules.js +11 -1
- package/dist/modules/manager/npm/post-update/rules.js.map +1 -1
- package/dist/modules/manager/npm/post-update/yarn.js +0 -1
- package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
- package/dist/modules/manager/npm/update/dependency/index.js +1 -1
- package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
- package/dist/modules/manager/nuget/artifacts.js +1 -2
- package/dist/modules/manager/nuget/artifacts.js.map +1 -1
- package/dist/modules/manager/nuget/package-tree.js +4 -0
- package/dist/modules/manager/nuget/package-tree.js.map +1 -1
- package/dist/modules/manager/nuget/util.js +4 -1
- package/dist/modules/manager/nuget/util.js.map +1 -1
- package/dist/modules/manager/pep621/processors/pdm.js +0 -1
- package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
- package/dist/modules/manager/pep621/processors/uv.js +0 -1
- package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
- package/dist/modules/manager/pep621/schema.d.ts +35 -30
- package/dist/modules/manager/pep621/schema.js +2 -0
- package/dist/modules/manager/pep621/schema.js.map +1 -1
- package/dist/modules/manager/pip-compile/common.js +0 -1
- package/dist/modules/manager/pip-compile/common.js.map +1 -1
- package/dist/modules/manager/pip_requirements/artifacts.js +0 -1
- package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
- package/dist/modules/manager/pipenv/artifacts.js +0 -1
- package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
- package/dist/modules/manager/pixi/artifacts.d.ts +3 -0
- package/dist/modules/manager/pixi/artifacts.js +84 -0
- package/dist/modules/manager/pixi/artifacts.js.map +1 -0
- package/dist/modules/manager/pixi/extract.d.ts +2 -0
- package/dist/modules/manager/pixi/extract.js +53 -0
- package/dist/modules/manager/pixi/extract.js.map +1 -0
- package/dist/modules/manager/pixi/index.d.ts +11 -0
- package/dist/modules/manager/pixi/index.js +22 -0
- package/dist/modules/manager/pixi/index.js.map +1 -0
- package/dist/modules/manager/pixi/lockfile.d.ts +6 -0
- package/dist/modules/manager/pixi/lockfile.js +25 -0
- package/dist/modules/manager/pixi/lockfile.js.map +1 -0
- package/dist/modules/manager/pixi/schema.d.ts +14 -0
- package/dist/modules/manager/pixi/schema.js +14 -0
- package/dist/modules/manager/pixi/schema.js.map +1 -0
- package/dist/modules/manager/poetry/artifacts.js +0 -1
- package/dist/modules/manager/poetry/artifacts.js.map +1 -1
- package/dist/modules/manager/poetry/schema.d.ts +31 -31
- package/dist/modules/manager/pub/artifacts.js +0 -1
- package/dist/modules/manager/pub/artifacts.js.map +1 -1
- package/dist/modules/manager/pub/schema.d.ts +8 -8
- package/dist/modules/manager/scalafmt/extract.js +1 -1
- package/dist/modules/manager/scalafmt/extract.js.map +1 -1
- package/dist/modules/manager/types.d.ts +6 -2
- package/dist/modules/manager/types.js.map +1 -1
- package/dist/modules/manager/vendir/schema.d.ts +23 -23
- package/dist/modules/platform/azure/azure-helper.js +2 -2
- package/dist/modules/platform/azure/azure-helper.js.map +1 -1
- package/dist/modules/platform/azure/index.js +14 -14
- package/dist/modules/platform/azure/index.js.map +1 -1
- package/dist/modules/platform/bitbucket/comments.js +4 -4
- package/dist/modules/platform/bitbucket/comments.js.map +1 -1
- package/dist/modules/platform/bitbucket/index.js +48 -43
- package/dist/modules/platform/bitbucket/index.js.map +1 -1
- package/dist/modules/platform/bitbucket/schema.d.ts +13 -13
- package/dist/modules/platform/bitbucket/utils.js +3 -3
- package/dist/modules/platform/bitbucket/utils.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/index.d.ts +2 -2
- package/dist/modules/platform/bitbucket-server/index.js +70 -72
- package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/pr-cache.d.ts +23 -0
- package/dist/modules/platform/bitbucket-server/pr-cache.js +125 -0
- package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -0
- package/dist/modules/platform/bitbucket-server/types.d.ts +6 -1
- package/dist/modules/platform/bitbucket-server/types.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/utils.js +5 -1
- package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
- package/dist/modules/platform/codecommit/codecommit-client.js +6 -6
- package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
- package/dist/modules/platform/codecommit/index.js +24 -24
- package/dist/modules/platform/codecommit/index.js.map +1 -1
- package/dist/modules/platform/gerrit/client.js +12 -1
- package/dist/modules/platform/gerrit/client.js.map +1 -1
- package/dist/modules/platform/gerrit/utils.js +1 -1
- package/dist/modules/platform/gerrit/utils.js.map +1 -1
- package/dist/modules/platform/gitea/gitea-helper.d.ts +1 -0
- package/dist/modules/platform/gitea/gitea-helper.js +16 -0
- package/dist/modules/platform/gitea/gitea-helper.js.map +1 -1
- package/dist/modules/platform/gitea/index.js +15 -7
- package/dist/modules/platform/gitea/index.js.map +1 -1
- package/dist/modules/platform/gitea/schema.d.ts +4 -4
- package/dist/modules/platform/gitea/types.d.ts +1 -1
- package/dist/modules/platform/gitea/types.js.map +1 -1
- package/dist/modules/platform/github/index.js +81 -78
- package/dist/modules/platform/github/index.js.map +1 -1
- package/dist/modules/platform/github/issue.d.ts +3 -3
- package/dist/modules/platform/github/massage-markdown-links.js +2 -2
- package/dist/modules/platform/github/massage-markdown-links.js.map +1 -1
- package/dist/modules/platform/github/pr.js +3 -3
- package/dist/modules/platform/github/pr.js.map +1 -1
- package/dist/modules/platform/github/schema.d.ts +11 -11
- package/dist/modules/platform/github/schema.js +3 -1
- package/dist/modules/platform/github/schema.js.map +1 -1
- package/dist/modules/platform/gitlab/index.js +61 -43
- package/dist/modules/platform/gitlab/index.js.map +1 -1
- package/dist/modules/platform/index.js +0 -1
- package/dist/modules/platform/index.js.map +1 -1
- package/dist/modules/versioning/api.js +2 -0
- package/dist/modules/versioning/api.js.map +1 -1
- package/dist/modules/versioning/conda/index.d.ts +41 -0
- package/dist/modules/versioning/conda/index.js +178 -0
- package/dist/modules/versioning/conda/index.js.map +1 -0
- package/dist/modules/versioning/hashicorp/convertor.d.ts +2 -1
- package/dist/modules/versioning/hashicorp/convertor.js +13 -8
- package/dist/modules/versioning/hashicorp/convertor.js.map +1 -1
- package/dist/modules/versioning/hex/index.js +3 -3
- package/dist/modules/versioning/hex/index.js.map +1 -1
- package/dist/proxy.js +1 -1
- package/dist/proxy.js.map +1 -1
- package/dist/renovate.js +2 -2
- package/dist/renovate.js.map +1 -1
- package/dist/util/cache/package/types.d.ts +1 -1
- package/dist/util/cache/package/types.js.map +1 -1
- package/dist/util/cache/repository/schema.d.ts +4 -4
- package/dist/util/cache/repository/types.d.ts +3 -0
- package/dist/util/cache/repository/types.js.map +1 -1
- package/dist/util/env.d.ts +4 -0
- package/dist/util/env.js +22 -0
- package/dist/util/env.js.map +1 -0
- package/dist/util/exec/containerbase.js +6 -0
- package/dist/util/exec/containerbase.js.map +1 -1
- package/dist/util/exec/index.js +5 -2
- package/dist/util/exec/index.js.map +1 -1
- package/dist/util/exec/types.d.ts +0 -2
- package/dist/util/exec/types.js.map +1 -1
- package/dist/util/exec/utils.d.ts +1 -1
- package/dist/util/exec/utils.js +6 -5
- package/dist/util/exec/utils.js.map +1 -1
- package/dist/util/git/author.js +1 -1
- package/dist/util/git/author.js.map +1 -1
- package/dist/util/git/config.js +0 -1
- package/dist/util/git/config.js.map +1 -1
- package/dist/util/git/error.js +4 -2
- package/dist/util/git/error.js.map +1 -1
- package/dist/util/git/index.js +73 -46
- package/dist/util/git/index.js.map +1 -1
- package/dist/util/git/private-key.js +1 -1
- package/dist/util/git/private-key.js.map +1 -1
- package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +5 -5
- package/dist/util/github/graphql/query-adapters/tags-query-adapter.d.ts +2 -2
- package/dist/util/http/bitbucket-server.js +4 -0
- package/dist/util/http/bitbucket-server.js.map +1 -1
- package/dist/util/http/bitbucket.js +5 -1
- package/dist/util/http/bitbucket.js.map +1 -1
- package/dist/util/http/cache/abstract-http-cache-provider.js +2 -2
- package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
- package/dist/util/http/cache/memory-http-cache-provider.d.ts +10 -0
- package/dist/util/http/cache/memory-http-cache-provider.js +29 -0
- package/dist/util/http/cache/memory-http-cache-provider.js.map +1 -0
- package/dist/util/http/gitea.js +2 -0
- package/dist/util/http/gitea.js.map +1 -1
- package/dist/util/http/github.js +1 -0
- package/dist/util/http/github.js.map +1 -1
- package/dist/util/http/gitlab.js +2 -0
- package/dist/util/http/gitlab.js.map +1 -1
- package/dist/util/http/host-rules.js +5 -4
- package/dist/util/http/host-rules.js.map +1 -1
- package/dist/util/http/http.js +12 -5
- package/dist/util/http/http.js.map +1 -1
- package/dist/util/stats.d.ts +10 -0
- package/dist/util/stats.js +45 -1
- package/dist/util/stats.js.map +1 -1
- package/dist/workers/global/config/parse/file.js +2 -2
- package/dist/workers/global/config/parse/file.js.map +1 -1
- package/dist/workers/global/config/parse/index.js +5 -0
- package/dist/workers/global/config/parse/index.js.map +1 -1
- package/dist/workers/repository/cache.js +1 -1
- package/dist/workers/repository/cache.js.map +1 -1
- package/dist/workers/repository/config-migration/branch/migrated-data.js +2 -0
- package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
- package/dist/workers/repository/index.js +1 -0
- package/dist/workers/repository/index.js.map +1 -1
- package/dist/workers/repository/init/merge.js +6 -3
- package/dist/workers/repository/init/merge.js.map +1 -1
- package/dist/workers/repository/process/extract-update.js +0 -1
- package/dist/workers/repository/process/extract-update.js.map +1 -1
- package/dist/workers/repository/process/fingerprint-fields.js +0 -1
- package/dist/workers/repository/process/fingerprint-fields.js.map +1 -1
- package/dist/workers/repository/process/libyear.js +2 -2
- package/dist/workers/repository/process/libyear.js.map +1 -1
- package/dist/workers/repository/process/lookup/index.js +13 -4
- package/dist/workers/repository/process/lookup/index.js.map +1 -1
- package/dist/workers/repository/process/vulnerabilities.js +1 -1
- package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
- package/dist/workers/repository/process/write.js +1 -8
- package/dist/workers/repository/process/write.js.map +1 -1
- package/dist/workers/repository/reconfigure/validate.js +1 -0
- package/dist/workers/repository/reconfigure/validate.js.map +1 -1
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +10 -1
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/github/index.js +6 -3
- package/dist/workers/repository/update/pr/changelog/github/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/source.js +1 -0
- package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
- package/dist/workers/repository/updates/flatten.js +8 -4
- package/dist/workers/repository/updates/flatten.js.map +1 -1
- package/dist/workers/repository/updates/generate.js +1 -2
- package/dist/workers/repository/updates/generate.js.map +1 -1
- package/dist/workers/types.d.ts +1 -4
- package/dist/workers/types.js.map +1 -1
- package/package.json +45 -43
- package/renovate-schema.json +14 -1
- package/dist/modules/manager/github-actions/types.d.ts +0 -30
- package/dist/modules/manager/github-actions/types.js +0 -3
- package/dist/modules/manager/github-actions/types.js.map +0 -1
- package/dist/modules/manager/gitlabci/common.d.ts +0 -6
- package/dist/modules/manager/gitlabci/common.js +0 -30
- package/dist/modules/manager/gitlabci/common.js.map +0 -1
- package/dist/modules/manager/gitlabci/types.d.ts +0 -35
- package/dist/modules/manager/gitlabci/types.js +0 -3
- package/dist/modules/manager/gitlabci/types.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gradle-wrapper/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { lang, query as q } from 'good-enough-parser';\nimport { quote } from 'shlex';\nimport { dirname, join } from 'upath';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport {\n localPathExists,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport type { StatusResult } from '../../../util/git/types';\nimport { Http } from '../../../util/http';\nimport { newlineRegex } from '../../../util/regex';\nimport { replaceAt } from '../../../util/string';\nimport { updateArtifacts as gradleUpdateArtifacts } from '../gradle';\nimport type {\n UpdateArtifact,\n UpdateArtifactsConfig,\n UpdateArtifactsResult,\n} from '../types';\nimport {\n extraEnv,\n getJavaConstraint,\n gradleWrapperFileName,\n prepareGradleCommand,\n} from './utils';\n\nconst http = new Http('gradle-wrapper');\nconst groovy = lang.createLang('groovy');\n\ntype Ctx = string[];\n\nasync function addIfUpdated(\n status: StatusResult,\n fileProjectPath: string,\n): Promise<UpdateArtifactsResult | null> {\n if (status.modified.includes(fileProjectPath)) {\n return {\n file: {\n type: 'addition',\n path: fileProjectPath,\n contents: await readLocalFile(fileProjectPath),\n },\n };\n }\n return null;\n}\n\nfunction getDistributionUrl(newPackageFileContent: string): string | null {\n const distributionUrlLine = newPackageFileContent\n .split(newlineRegex)\n .find((line) => line.startsWith('distributionUrl='));\n if (distributionUrlLine) {\n return distributionUrlLine\n .replace('distributionUrl=', '')\n .replace('https\\\\:', 'https:');\n }\n return null;\n}\n\nasync function getDistributionChecksum(url: string): Promise<string> {\n const { body } = await http.getText(`${url}.sha256`);\n return body;\n}\n\nexport async function updateBuildFile(\n localGradleDir: string,\n wrapperProperties: Record<string, string | undefined | null>,\n): Promise<string> {\n let buildFileName = join(localGradleDir, 'build.gradle');\n if (!(await localPathExists(buildFileName))) {\n buildFileName = join(localGradleDir, 'build.gradle.kts');\n }\n\n const buildFileContent = await readLocalFile(buildFileName, 'utf8');\n if (!buildFileContent) {\n logger.debug('build.gradle or build.gradle.kts not found');\n return buildFileName;\n }\n\n let buildFileUpdated = buildFileContent;\n for (const [propertyName, newValue] of Object.entries(wrapperProperties)) {\n if (!newValue) {\n continue;\n }\n\n const query = q.tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n search: q\n .sym<Ctx>(propertyName)\n .op('=')\n .str((ctx, { value, offset }) => {\n buildFileUpdated = replaceAt(\n buildFileUpdated,\n offset,\n value,\n newValue,\n );\n return ctx;\n }),\n });\n groovy.query(buildFileUpdated, query, []);\n }\n\n await writeLocalFile(buildFileName, buildFileUpdated);\n\n return buildFileName;\n}\n\nexport async function updateLockFiles(\n buildFileName: string,\n config: UpdateArtifactsConfig,\n): Promise<UpdateArtifactsResult[] | null> {\n const buildFileContent = await readLocalFile(buildFileName, 'utf8');\n if (!buildFileContent) {\n logger.debug('build.gradle or build.gradle.kts not found');\n return null;\n }\n\n return await gradleUpdateArtifacts({\n packageFileName: buildFileName,\n updatedDeps: [],\n newPackageFileContent: buildFileContent,\n config,\n });\n}\n\nexport async function updateArtifacts({\n packageFileName,\n newPackageFileContent,\n updatedDeps,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n try {\n logger.debug({ updatedDeps }, 'gradle-wrapper.updateArtifacts()');\n const localGradleDir = join(dirname(packageFileName), '../../');\n const gradlewFile = join(localGradleDir, gradleWrapperFileName());\n\n let cmd = await prepareGradleCommand(gradlewFile);\n if (!cmd) {\n logger.info('No gradlew found - skipping Artifacts update');\n return null;\n }\n cmd += ' :wrapper';\n\n let checksum: string | null = null;\n const distributionUrl = getDistributionUrl(newPackageFileContent);\n if (distributionUrl) {\n cmd += ` --gradle-distribution-url ${distributionUrl}`;\n if (newPackageFileContent.includes('distributionSha256Sum=')) {\n //update checksum in case of distributionSha256Sum in properties then run wrapper\n checksum = await getDistributionChecksum(distributionUrl);\n await writeLocalFile(\n packageFileName,\n newPackageFileContent.replace(\n /distributionSha256Sum=.*/,\n `distributionSha256Sum=${checksum}`,\n ),\n );\n cmd += ` --gradle-distribution-sha256-sum ${quote(checksum)}`;\n }\n } else {\n cmd += ` --gradle-version ${quote(config.newValue!)}`;\n }\n logger.debug(`Updating gradle wrapper: \"${cmd}\"`);\n const execOptions: ExecOptions = {\n cwdFile: gradlewFile,\n docker: {},\n userConfiguredEnv: config.env,\n extraEnv,\n toolConstraints: [\n {\n toolName: 'java',\n constraint:\n config.constraints?.java ??\n (await getJavaConstraint(config.currentValue, gradlewFile)),\n },\n ],\n };\n try {\n await exec(cmd, execOptions);\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.warn(\n { err },\n 'Error executing gradle wrapper update command. It can be not a critical one though.',\n );\n }\n\n const buildFileName = await updateBuildFile(localGradleDir, {\n gradleVersion: config.newValue,\n distributionSha256Sum: checksum,\n distributionUrl,\n });\n const lockFiles = await updateLockFiles(buildFileName, config);\n\n const status = await getRepoStatus();\n const artifactFileNames = [\n packageFileName,\n buildFileName,\n ...['gradle/wrapper/gradle-wrapper.jar', 'gradlew', 'gradlew.bat'].map(\n (filename) => join(localGradleDir, filename),\n ),\n ];\n const updateArtifactsResult = (\n await Promise.all(\n artifactFileNames.map((fileProjectPath) =>\n addIfUpdated(status, fileProjectPath),\n ),\n )\n ).filter(is.truthy);\n if (lockFiles) {\n updateArtifactsResult.push(...lockFiles);\n }\n\n logger.debug(\n { files: updateArtifactsResult.map((r) => r.file?.path) },\n `Returning updated gradle-wrapper files`,\n );\n return updateArtifactsResult;\n } catch (err) {\n logger.debug({ err }, 'Error setting new Gradle Wrapper release value');\n return [\n {\n artifactError: {\n lockFile: packageFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gradle-wrapper/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { lang, query as q } from 'good-enough-parser';\nimport { quote } from 'shlex';\nimport { dirname, join } from 'upath';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport {\n localPathExists,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport type { StatusResult } from '../../../util/git/types';\nimport { Http } from '../../../util/http';\nimport { newlineRegex } from '../../../util/regex';\nimport { replaceAt } from '../../../util/string';\nimport { updateArtifacts as gradleUpdateArtifacts } from '../gradle';\nimport type {\n UpdateArtifact,\n UpdateArtifactsConfig,\n UpdateArtifactsResult,\n} from '../types';\nimport {\n extraEnv,\n getJavaConstraint,\n gradleWrapperFileName,\n prepareGradleCommand,\n} from './utils';\n\nconst http = new Http('gradle-wrapper');\nconst groovy = lang.createLang('groovy');\n\ntype Ctx = string[];\n\nasync function addIfUpdated(\n status: StatusResult,\n fileProjectPath: string,\n): Promise<UpdateArtifactsResult | null> {\n if (status.modified.includes(fileProjectPath)) {\n return {\n file: {\n type: 'addition',\n path: fileProjectPath,\n contents: await readLocalFile(fileProjectPath),\n },\n };\n }\n return null;\n}\n\nfunction getDistributionUrl(newPackageFileContent: string): string | null {\n const distributionUrlLine = newPackageFileContent\n .split(newlineRegex)\n .find((line) => line.startsWith('distributionUrl='));\n if (distributionUrlLine) {\n return distributionUrlLine\n .replace('distributionUrl=', '')\n .replace('https\\\\:', 'https:');\n }\n return null;\n}\n\nasync function getDistributionChecksum(url: string): Promise<string> {\n const { body } = await http.getText(`${url}.sha256`);\n return body;\n}\n\nexport async function updateBuildFile(\n localGradleDir: string,\n wrapperProperties: Record<string, string | undefined | null>,\n): Promise<string> {\n let buildFileName = join(localGradleDir, 'build.gradle');\n if (!(await localPathExists(buildFileName))) {\n buildFileName = join(localGradleDir, 'build.gradle.kts');\n }\n\n const buildFileContent = await readLocalFile(buildFileName, 'utf8');\n if (!buildFileContent) {\n logger.debug('build.gradle or build.gradle.kts not found');\n return buildFileName;\n }\n\n let buildFileUpdated = buildFileContent;\n for (const [propertyName, newValue] of Object.entries(wrapperProperties)) {\n if (!newValue) {\n continue;\n }\n\n const query = q.tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n search: q\n .sym<Ctx>(propertyName)\n .op('=')\n .str((ctx, { value, offset }) => {\n buildFileUpdated = replaceAt(\n buildFileUpdated,\n offset,\n value,\n newValue,\n );\n return ctx;\n }),\n });\n groovy.query(buildFileUpdated, query, []);\n }\n\n await writeLocalFile(buildFileName, buildFileUpdated);\n\n return buildFileName;\n}\n\nexport async function updateLockFiles(\n buildFileName: string,\n config: UpdateArtifactsConfig,\n): Promise<UpdateArtifactsResult[] | null> {\n const buildFileContent = await readLocalFile(buildFileName, 'utf8');\n if (!buildFileContent) {\n logger.debug('build.gradle or build.gradle.kts not found');\n return null;\n }\n\n return await gradleUpdateArtifacts({\n packageFileName: buildFileName,\n updatedDeps: [],\n newPackageFileContent: buildFileContent,\n config,\n });\n}\n\nexport async function updateArtifacts({\n packageFileName,\n newPackageFileContent,\n updatedDeps,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n try {\n logger.debug({ updatedDeps }, 'gradle-wrapper.updateArtifacts()');\n const localGradleDir = join(dirname(packageFileName), '../../');\n const gradlewFile = join(localGradleDir, gradleWrapperFileName());\n\n let cmd = await prepareGradleCommand(gradlewFile);\n if (!cmd) {\n logger.info('No gradlew found - skipping Artifacts update');\n return null;\n }\n cmd += ' :wrapper';\n\n let checksum: string | null = null;\n const distributionUrl = getDistributionUrl(newPackageFileContent);\n if (distributionUrl) {\n cmd += ` --gradle-distribution-url ${distributionUrl}`;\n if (newPackageFileContent.includes('distributionSha256Sum=')) {\n //update checksum in case of distributionSha256Sum in properties then run wrapper\n checksum = await getDistributionChecksum(distributionUrl);\n await writeLocalFile(\n packageFileName,\n newPackageFileContent.replace(\n /distributionSha256Sum=.*/,\n `distributionSha256Sum=${checksum}`,\n ),\n );\n cmd += ` --gradle-distribution-sha256-sum ${quote(checksum)}`;\n }\n } else {\n cmd += ` --gradle-version ${quote(config.newValue!)}`;\n }\n logger.debug(`Updating gradle wrapper: \"${cmd}\"`);\n const execOptions: ExecOptions = {\n cwdFile: gradlewFile,\n docker: {},\n extraEnv,\n toolConstraints: [\n {\n toolName: 'java',\n constraint:\n config.constraints?.java ??\n (await getJavaConstraint(config.currentValue, gradlewFile)),\n },\n ],\n };\n try {\n await exec(cmd, execOptions);\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.warn(\n { err },\n 'Error executing gradle wrapper update command. It can be not a critical one though.',\n );\n }\n\n const buildFileName = await updateBuildFile(localGradleDir, {\n gradleVersion: config.newValue,\n distributionSha256Sum: checksum,\n distributionUrl,\n });\n const lockFiles = await updateLockFiles(buildFileName, config);\n\n const status = await getRepoStatus();\n const artifactFileNames = [\n packageFileName,\n buildFileName,\n ...['gradle/wrapper/gradle-wrapper.jar', 'gradlew', 'gradlew.bat'].map(\n (filename) => join(localGradleDir, filename),\n ),\n ];\n const updateArtifactsResult = (\n await Promise.all(\n artifactFileNames.map((fileProjectPath) =>\n addIfUpdated(status, fileProjectPath),\n ),\n )\n ).filter(is.truthy);\n if (lockFiles) {\n updateArtifactsResult.push(...lockFiles);\n }\n\n logger.debug(\n { files: updateArtifactsResult.map((r) => r.file?.path) },\n `Returning updated gradle-wrapper files`,\n );\n return updateArtifactsResult;\n } catch (err) {\n logger.debug({ err }, 'Error setting new Gradle Wrapper release value');\n return [\n {\n artifactError: {\n lockFile: packageFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"]}
|
@@ -69,7 +69,6 @@ async function updateArtifacts({ packageFileName, updatedDeps, newPackageFileCon
|
|
69
69
|
cmd.push(`helmfile deps -f ${(0, shlex_1.quote)(packageFileName)}`);
|
70
70
|
await (0, exec_1.exec)(cmd, {
|
71
71
|
docker: {},
|
72
|
-
userConfiguredEnv: config.env,
|
73
72
|
extraEnv: (0, common_1.generateHelmEnvs)(),
|
74
73
|
toolConstraints,
|
75
74
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmfile/artifacts.ts"],"names":[],"mappings":";;AAqBA,
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmfile/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { exec } from '../../../util/exec';\nimport type { ToolConstraint } from '../../../util/exec/types';\nimport {\n getSiblingFileName,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getFile } from '../../../util/git';\nimport { regEx } from '../../../util/regex';\nimport { Result } from '../../../util/result';\nimport { parseYaml } from '../../../util/yaml';\nimport { generateHelmEnvs } from '../helmv3/common';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport { Doc, LockVersion } from './schema';\nimport { generateRegistryLoginCmd, isOCIRegistry } from './utils';\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n newPackageFileContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.trace(`helmfile.updateArtifacts(${packageFileName})`);\n\n const { isLockFileMaintenance } = config;\n if (\n !isLockFileMaintenance &&\n (updatedDeps === undefined || updatedDeps.length < 1)\n ) {\n logger.debug('No updated helmfile deps - returning null');\n return null;\n }\n\n const lockFileName = getSiblingFileName(packageFileName, 'helmfile.lock');\n const existingLockFileContent = await getFile(lockFileName);\n\n if (is.falsy(existingLockFileContent)) {\n logger.debug('No helmfile.lock found');\n return null;\n }\n\n try {\n await writeLocalFile(packageFileName, newPackageFileContent);\n\n const toolConstraints: ToolConstraint[] = [\n {\n toolName: 'helm',\n constraint: config.constraints?.helm,\n },\n {\n toolName: 'helmfile',\n constraint:\n config.constraints?.helmfile ??\n Result.parse(existingLockFileContent, LockVersion).unwrapOrNull(),\n },\n ];\n const needKustomize = updatedDeps.some(\n (dep) => dep.managerData?.needKustomize,\n );\n if (needKustomize) {\n toolConstraints.push({\n toolName: 'kustomize',\n constraint: config.constraints?.kustomize,\n });\n }\n\n const cmd: string[] = [];\n const docs = parseYaml(newPackageFileContent, {\n removeTemplates: true,\n customSchema: Doc,\n failureBehaviour: 'filter',\n });\n\n for (const doc of docs) {\n for (const value of coerceArray(doc.repositories).filter(isOCIRegistry)) {\n const loginCmd = await generateRegistryLoginCmd(\n value.name,\n `https://${value.url}`,\n // this extracts the hostname from url like format ghcr.ip/helm-charts\n value.url.replace(regEx(/\\/.*/), ''),\n );\n\n if (loginCmd) {\n cmd.push(loginCmd);\n }\n }\n }\n\n cmd.push(`helmfile deps -f ${quote(packageFileName)}`);\n await exec(cmd, {\n docker: {},\n extraEnv: generateHelmEnvs(),\n toolConstraints,\n });\n\n const newHelmLockContent = await readLocalFile(lockFileName, 'utf8');\n if (existingLockFileContent === newHelmLockContent) {\n logger.debug('helmfile.lock is unchanged');\n return null;\n }\n\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newHelmLockContent,\n },\n },\n ];\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to update Helmfile lock file');\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"]}
|
@@ -38,6 +38,10 @@ async function extractPackageFile(content, packageFile, config) {
|
|
38
38
|
if (doc.repositories) {
|
39
39
|
registryData = {};
|
40
40
|
for (const repo of doc.repositories) {
|
41
|
+
if (repo.url?.startsWith('git+')) {
|
42
|
+
logger_1.logger.debug({ repo, packageFile }, `Skipping unsupported helm-git repository.`);
|
43
|
+
continue;
|
44
|
+
}
|
41
45
|
registryData[repo.name] = repo;
|
42
46
|
}
|
43
47
|
logger_1.logger.debug({ registryAliases: registryData, packageFile }, `repositories discovered.`);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmfile/extract.ts"],"names":[],"mappings":";;AAkCA,
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmfile/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { regEx } from '../../../util/regex';\nimport { parseYaml } from '../../../util/yaml';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { HelmDatasource } from '../../datasource/helm';\nimport { isOCIRegistry } from '../helmv3/oci';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport type { Doc, HelmRepository } from './schema';\nimport { Doc as documentSchema } from './schema';\nimport {\n kustomizationsKeysUsed,\n localChartHasKustomizationsYaml,\n} from './utils';\n\nfunction isValidChartName(name: string | undefined, oci: boolean): boolean {\n if (oci) {\n return !!name && !regEx(/[!@#$%^&*(),.?\":{}|<>A-Z]/).test(name);\n } else {\n return !!name && !regEx(/[!@#$%^&*(),.?\":{}/|<>A-Z]/).test(name);\n }\n}\n\nfunction isLocalPath(possiblePath: string): boolean {\n return ['./', '../', '/'].some((localPrefix) =>\n possiblePath.startsWith(localPrefix),\n );\n}\n\nexport async function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): Promise<PackageFileContent | null> {\n const deps: PackageDependency[] = [];\n let registryData: Record<string, HelmRepository> = {};\n // Record kustomization usage for all deps, since updating artifacts is run on the helmfile.yaml as a whole.\n let needKustomize = false;\n const docs: Doc[] = parseYaml(content, {\n customSchema: documentSchema,\n failureBehaviour: 'filter',\n removeTemplates: true,\n });\n\n for (const doc of docs) {\n // Always check for repositories in the current document and override the existing ones if any (as YAML does)\n if (doc.repositories) {\n registryData = {};\n for (const repo of doc.repositories) {\n if (repo.url?.startsWith('git+')) {\n logger.debug(\n { repo, packageFile },\n `Skipping unsupported helm-git repository.`,\n );\n continue;\n }\n registryData[repo.name] = repo;\n }\n logger.debug(\n { registryAliases: registryData, packageFile },\n `repositories discovered.`,\n );\n }\n\n for (const dep of coerceArray(doc.releases)) {\n let depName = dep.chart;\n let repoName: string | null = null;\n\n // If it starts with ./ ../ or / then it's a local path\n if (isLocalPath(dep.chart)) {\n if (\n kustomizationsKeysUsed(dep) ||\n (await localChartHasKustomizationsYaml(dep, packageFile))\n ) {\n needKustomize = true;\n }\n deps.push({\n depName: dep.name,\n skipReason: 'local-chart',\n });\n continue;\n }\n\n if (isOCIRegistry(dep.chart)) {\n const v = dep.chart.substring(6).split('/');\n depName = v.pop()!;\n repoName = v.join('/');\n } else if (dep.chart.includes('/')) {\n const v = dep.chart.split('/');\n repoName = v.shift()!;\n depName = v.join('/');\n } else {\n repoName = dep.chart;\n }\n\n if (!is.string(dep.version)) {\n deps.push({\n depName,\n skipReason: 'invalid-version',\n });\n continue;\n }\n\n const res: PackageDependency = {\n depName,\n currentValue: dep.version,\n registryUrls: [registryData[repoName]?.url]\n .concat([config.registryAliases?.[repoName]] as string[])\n .filter(is.string),\n };\n if (kustomizationsKeysUsed(dep)) {\n needKustomize = true;\n }\n\n if (isOCIRegistry(dep.chart)) {\n res.datasource = DockerDatasource.id;\n res.packageName = `${repoName}/${depName}`;\n } else if (registryData[repoName]?.oci) {\n res.datasource = DockerDatasource.id;\n const alias = registryData[repoName]?.url;\n if (alias) {\n res.packageName = `${alias}/${depName}`;\n }\n }\n\n // By definition on helm the chart name should be lowercase letter + number + -\n // However helmfile support templating of that field\n if (\n !isValidChartName(\n res.depName,\n isOCIRegistry(dep.chart) || (registryData[repoName]?.oci ?? false),\n )\n ) {\n res.skipReason = 'unsupported-chart-type';\n }\n\n // Skip in case we cannot locate the registry\n if (\n res.datasource !== DockerDatasource.id &&\n is.emptyArray(res.registryUrls)\n ) {\n res.skipReason = 'unknown-registry';\n }\n\n deps.push(res);\n }\n }\n\n return deps.length\n ? {\n deps,\n datasource: HelmDatasource.id,\n ...(needKustomize && { managerData: { needKustomize } }),\n }\n : null;\n}\n"]}
|
@@ -4,12 +4,12 @@ export declare const HelmRepository: z.ZodObject<{
|
|
4
4
|
url: z.ZodString;
|
5
5
|
oci: z.ZodOptional<z.ZodBoolean>;
|
6
6
|
}, "strip", z.ZodTypeAny, {
|
7
|
-
name: string;
|
8
7
|
url: string;
|
8
|
+
name: string;
|
9
9
|
oci?: boolean | undefined;
|
10
10
|
}, {
|
11
|
-
name: string;
|
12
11
|
url: string;
|
12
|
+
name: string;
|
13
13
|
oci?: boolean | undefined;
|
14
14
|
}>;
|
15
15
|
export type HelmRepository = z.infer<typeof HelmRepository>;
|
@@ -46,16 +46,11 @@ export declare const Doc: z.ZodObject<{
|
|
46
46
|
transformers?: unknown;
|
47
47
|
}[], any[]>>;
|
48
48
|
repositories: z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodAny, "many">, {
|
49
|
-
name: string;
|
50
49
|
url: string;
|
50
|
+
name: string;
|
51
51
|
oci?: boolean | undefined;
|
52
52
|
}[], any[]>>;
|
53
53
|
}, "strip", z.ZodTypeAny, {
|
54
|
-
repositories?: {
|
55
|
-
name: string;
|
56
|
-
url: string;
|
57
|
-
oci?: boolean | undefined;
|
58
|
-
}[] | undefined;
|
59
54
|
releases?: {
|
60
55
|
name: string;
|
61
56
|
version: string | null;
|
@@ -64,9 +59,14 @@ export declare const Doc: z.ZodObject<{
|
|
64
59
|
jsonPatches?: unknown;
|
65
60
|
transformers?: unknown;
|
66
61
|
}[] | undefined;
|
62
|
+
repositories?: {
|
63
|
+
url: string;
|
64
|
+
name: string;
|
65
|
+
oci?: boolean | undefined;
|
66
|
+
}[] | undefined;
|
67
67
|
}, {
|
68
|
-
repositories?: any[] | undefined;
|
69
68
|
releases?: any[] | undefined;
|
69
|
+
repositories?: any[] | undefined;
|
70
70
|
}>;
|
71
71
|
export type Doc = z.infer<typeof Doc>;
|
72
72
|
export declare const LockVersion: z.ZodPipeline<z.ZodEffects<z.ZodString, string | number | boolean | import("type-fest").JsonObject | import("type-fest").JsonValue[] | readonly import("type-fest").JsonValue[] | null, string>, z.ZodEffects<z.ZodObject<{
|
@@ -104,7 +104,6 @@ async function updateArtifacts({ packageFileName, updatedDeps, newPackageFileCon
|
|
104
104
|
};
|
105
105
|
const execOptions = {
|
106
106
|
docker: {},
|
107
|
-
userConfiguredEnv: config.env,
|
108
107
|
extraEnv: (0, common_1.generateHelmEnvs)(),
|
109
108
|
toolConstraints: [helmToolConstraint],
|
110
109
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmv3/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport pMap from 'p-map';\nimport { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions, ToolConstraint } from '../../../util/exec/types';\nimport {\n getParentDir,\n getSiblingFileName,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport * as hostRules from '../../../util/host-rules';\nimport * as yaml from '../../../util/yaml';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { HelmDatasource } from '../../datasource/helm';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport { generateHelmEnvs, generateLoginCmd } from './common';\nimport { isOCIRegistry, removeOCIPrefix } from './oci';\nimport type { ChartDefinition, Repository, RepositoryRule } from './types';\nimport {\n aliasRecordToRepositories,\n getRepositories,\n isFileInDir,\n} from './utils';\n\nasync function helmCommands(\n execOptions: ExecOptions,\n manifestPath: string,\n repositories: Repository[],\n): Promise<void> {\n const cmd: string[] = [];\n // get OCI registries and detect host rules\n const registries: RepositoryRule[] = repositories\n .filter(isOCIRegistry)\n .map((value) => {\n return {\n ...value,\n repository: removeOCIPrefix(value.repository),\n hostRule: hostRules.find({\n url: value.repository.replace('oci://', 'https://'), //TODO we need to replace this, as oci:// will not be accepted as protocol\n hostType: DockerDatasource.id,\n }),\n };\n });\n\n // if credentials for the registry have been found, log into it\n await pMap(registries, async (value) => {\n const loginCmd = await generateLoginCmd(value, 'helm registry login');\n if (loginCmd) {\n cmd.push(loginCmd);\n }\n });\n\n // find classic Chart repositories and fitting host rules\n const classicRepositories: RepositoryRule[] = repositories\n .filter((repository) => !isOCIRegistry(repository))\n .map((value) => {\n return {\n ...value,\n hostRule: hostRules.find({\n url: value.repository,\n hostType: HelmDatasource.id,\n }),\n };\n });\n\n // add helm repos if an alias or credentials for the url are defined\n classicRepositories.forEach((value) => {\n const { username, password } = value.hostRule;\n const parameters = [`${quote(value.repository)}`, `--force-update`];\n const isPrivateRepo = username && password;\n if (isPrivateRepo) {\n parameters.push(`--username ${quote(username)}`);\n parameters.push(`--password ${quote(password)}`);\n }\n\n cmd.push(`helm repo add ${quote(value.name)} ${parameters.join(' ')}`);\n });\n\n cmd.push(`helm dependency update ${quote(getParentDir(manifestPath))}`);\n\n await exec(cmd, execOptions);\n}\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n newPackageFileContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`helmv3.updateArtifacts(${packageFileName})`);\n\n const { isLockFileMaintenance } = config;\n const isUpdateOptionAddChartArchives = config.postUpdateOptions?.includes(\n 'helmUpdateSubChartArchives',\n );\n\n if (\n !isLockFileMaintenance &&\n (updatedDeps === undefined || updatedDeps.length < 1)\n ) {\n logger.debug('No updated helmv3 deps - returning null');\n return null;\n }\n\n const lockFileName = getSiblingFileName(packageFileName, 'Chart.lock');\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent && !isUpdateOptionAddChartArchives) {\n logger.debug('No Chart.lock found');\n return null;\n }\n try {\n // get repositories and registries defined in the package file\n // TODO: use schema (#9610)\n const packages = yaml.parseSingleYaml<ChartDefinition>(\n newPackageFileContent,\n );\n const locks = existingLockFileContent\n ? yaml.parseSingleYaml<ChartDefinition>(existingLockFileContent)\n : { dependencies: [] };\n\n const chartDefinitions: ChartDefinition[] = [];\n // prioritize registryAlias naming for Helm repositories\n if (config.registryAliases) {\n chartDefinitions.push({\n dependencies: aliasRecordToRepositories(config.registryAliases),\n });\n }\n chartDefinitions.push(packages, locks);\n\n const repositories = getRepositories(chartDefinitions);\n\n await writeLocalFile(packageFileName, newPackageFileContent);\n logger.debug('Updating Helm artifacts');\n const helmToolConstraint: ToolConstraint = {\n toolName: 'helm',\n constraint: config.constraints?.helm,\n };\n\n const execOptions: ExecOptions = {\n docker: {},\n userConfiguredEnv: config.env,\n extraEnv: generateHelmEnvs(),\n toolConstraints: [helmToolConstraint],\n };\n await helmCommands(execOptions, packageFileName, repositories);\n logger.debug('Returning updated Helm artifacts');\n\n const fileChanges: UpdateArtifactsResult[] = [];\n\n if (is.truthy(existingLockFileContent)) {\n const newHelmLockContent = await readLocalFile(lockFileName, 'utf8');\n const isLockFileChanged = existingLockFileContent !== newHelmLockContent;\n if (isLockFileChanged) {\n fileChanges.push({\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newHelmLockContent,\n },\n });\n } else {\n logger.debug('Chart.lock is unchanged');\n }\n }\n\n // add modified helm chart archives to artifacts\n if (is.truthy(isUpdateOptionAddChartArchives)) {\n const chartsPath = getSiblingFileName(packageFileName, 'charts');\n const status = await getRepoStatus();\n const chartsAddition = status.not_added ?? [];\n const chartsDeletion = status.deleted ?? [];\n\n for (const file of chartsAddition) {\n // only add artifacts in the chart sub path\n if (!isFileInDir(chartsPath, file)) {\n continue;\n }\n fileChanges.push({\n file: {\n type: 'addition',\n path: file,\n contents: await readLocalFile(file),\n },\n });\n }\n\n for (const file of chartsDeletion) {\n // only add artifacts in the chart sub path\n if (!isFileInDir(chartsPath, file)) {\n continue;\n }\n fileChanges.push({\n file: {\n type: 'deletion',\n path: file,\n },\n });\n }\n }\n\n return fileChanges.length > 0 ? fileChanges : null;\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to update Helm lock file');\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmv3/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport pMap from 'p-map';\nimport { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions, ToolConstraint } from '../../../util/exec/types';\nimport {\n getParentDir,\n getSiblingFileName,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport * as hostRules from '../../../util/host-rules';\nimport * as yaml from '../../../util/yaml';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { HelmDatasource } from '../../datasource/helm';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport { generateHelmEnvs, generateLoginCmd } from './common';\nimport { isOCIRegistry, removeOCIPrefix } from './oci';\nimport type { ChartDefinition, Repository, RepositoryRule } from './types';\nimport {\n aliasRecordToRepositories,\n getRepositories,\n isFileInDir,\n} from './utils';\n\nasync function helmCommands(\n execOptions: ExecOptions,\n manifestPath: string,\n repositories: Repository[],\n): Promise<void> {\n const cmd: string[] = [];\n // get OCI registries and detect host rules\n const registries: RepositoryRule[] = repositories\n .filter(isOCIRegistry)\n .map((value) => {\n return {\n ...value,\n repository: removeOCIPrefix(value.repository),\n hostRule: hostRules.find({\n url: value.repository.replace('oci://', 'https://'), //TODO we need to replace this, as oci:// will not be accepted as protocol\n hostType: DockerDatasource.id,\n }),\n };\n });\n\n // if credentials for the registry have been found, log into it\n await pMap(registries, async (value) => {\n const loginCmd = await generateLoginCmd(value, 'helm registry login');\n if (loginCmd) {\n cmd.push(loginCmd);\n }\n });\n\n // find classic Chart repositories and fitting host rules\n const classicRepositories: RepositoryRule[] = repositories\n .filter((repository) => !isOCIRegistry(repository))\n .map((value) => {\n return {\n ...value,\n hostRule: hostRules.find({\n url: value.repository,\n hostType: HelmDatasource.id,\n }),\n };\n });\n\n // add helm repos if an alias or credentials for the url are defined\n classicRepositories.forEach((value) => {\n const { username, password } = value.hostRule;\n const parameters = [`${quote(value.repository)}`, `--force-update`];\n const isPrivateRepo = username && password;\n if (isPrivateRepo) {\n parameters.push(`--username ${quote(username)}`);\n parameters.push(`--password ${quote(password)}`);\n }\n\n cmd.push(`helm repo add ${quote(value.name)} ${parameters.join(' ')}`);\n });\n\n cmd.push(`helm dependency update ${quote(getParentDir(manifestPath))}`);\n\n await exec(cmd, execOptions);\n}\n\nexport async function updateArtifacts({\n packageFileName,\n updatedDeps,\n newPackageFileContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`helmv3.updateArtifacts(${packageFileName})`);\n\n const { isLockFileMaintenance } = config;\n const isUpdateOptionAddChartArchives = config.postUpdateOptions?.includes(\n 'helmUpdateSubChartArchives',\n );\n\n if (\n !isLockFileMaintenance &&\n (updatedDeps === undefined || updatedDeps.length < 1)\n ) {\n logger.debug('No updated helmv3 deps - returning null');\n return null;\n }\n\n const lockFileName = getSiblingFileName(packageFileName, 'Chart.lock');\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!existingLockFileContent && !isUpdateOptionAddChartArchives) {\n logger.debug('No Chart.lock found');\n return null;\n }\n try {\n // get repositories and registries defined in the package file\n // TODO: use schema (#9610)\n const packages = yaml.parseSingleYaml<ChartDefinition>(\n newPackageFileContent,\n );\n const locks = existingLockFileContent\n ? yaml.parseSingleYaml<ChartDefinition>(existingLockFileContent)\n : { dependencies: [] };\n\n const chartDefinitions: ChartDefinition[] = [];\n // prioritize registryAlias naming for Helm repositories\n if (config.registryAliases) {\n chartDefinitions.push({\n dependencies: aliasRecordToRepositories(config.registryAliases),\n });\n }\n chartDefinitions.push(packages, locks);\n\n const repositories = getRepositories(chartDefinitions);\n\n await writeLocalFile(packageFileName, newPackageFileContent);\n logger.debug('Updating Helm artifacts');\n const helmToolConstraint: ToolConstraint = {\n toolName: 'helm',\n constraint: config.constraints?.helm,\n };\n\n const execOptions: ExecOptions = {\n docker: {},\n extraEnv: generateHelmEnvs(),\n toolConstraints: [helmToolConstraint],\n };\n await helmCommands(execOptions, packageFileName, repositories);\n logger.debug('Returning updated Helm artifacts');\n\n const fileChanges: UpdateArtifactsResult[] = [];\n\n if (is.truthy(existingLockFileContent)) {\n const newHelmLockContent = await readLocalFile(lockFileName, 'utf8');\n const isLockFileChanged = existingLockFileContent !== newHelmLockContent;\n if (isLockFileChanged) {\n fileChanges.push({\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newHelmLockContent,\n },\n });\n } else {\n logger.debug('Chart.lock is unchanged');\n }\n }\n\n // add modified helm chart archives to artifacts\n if (is.truthy(isUpdateOptionAddChartArchives)) {\n const chartsPath = getSiblingFileName(packageFileName, 'charts');\n const status = await getRepoStatus();\n const chartsAddition = status.not_added ?? [];\n const chartsDeletion = status.deleted ?? [];\n\n for (const file of chartsAddition) {\n // only add artifacts in the chart sub path\n if (!isFileInDir(chartsPath, file)) {\n continue;\n }\n fileChanges.push({\n file: {\n type: 'addition',\n path: file,\n contents: await readLocalFile(file),\n },\n });\n }\n\n for (const file of chartsDeletion) {\n // only add artifacts in the chart sub path\n if (!isFileInDir(chartsPath, file)) {\n continue;\n }\n fileChanges.push({\n file: {\n type: 'deletion',\n path: file,\n },\n });\n }\n }\n\n return fileChanges.length > 0 ? fileChanges : null;\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to update Helm lock file');\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"]}
|
@@ -82,7 +82,9 @@ function isAlias(repository) {
|
|
82
82
|
return repository.startsWith('@') || repository.startsWith('alias:');
|
83
83
|
}
|
84
84
|
function aliasRecordToRepositories(registryAliases) {
|
85
|
-
return Object.entries(registryAliases)
|
85
|
+
return Object.entries(registryAliases)
|
86
|
+
.filter(([, url]) => /^(https?|oci):\/\/.+/.exec(url))
|
87
|
+
.map(([alias, url]) => {
|
86
88
|
return {
|
87
89
|
name: alias,
|
88
90
|
repository: url,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmv3/utils.ts"],"names":[],"mappings":";;AAOA,0CA2BC;AAUD,oCAgBC;AAED,0CAmBC;AAED,0BAKC;AAED,
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/modules/manager/helmv3/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import upath from 'upath';\nimport { logger } from '../../../logger';\nimport { DockerDatasource } from '../../datasource/docker';\nimport type { PackageDependency } from '../types';\nimport { removeOCIPrefix } from './oci';\nimport type { ChartDefinition, Repository } from './types';\n\nexport function parseRepository(\n depName: string,\n repositoryURL: string,\n): PackageDependency {\n const res: PackageDependency = {};\n\n try {\n const url = new URL(repositoryURL);\n switch (url.protocol) {\n case 'oci:':\n res.datasource = DockerDatasource.id;\n res.packageName = `${removeOCIPrefix(repositoryURL)}/${depName}`;\n // https://github.com/helm/helm/issues/10312\n // https://github.com/helm/helm/issues/10678\n res.pinDigests = false;\n break;\n case 'file:':\n res.skipReason = 'local-dependency';\n break;\n default:\n res.registryUrls = [repositoryURL];\n }\n } catch (err) {\n logger.debug({ err }, 'Error parsing url');\n res.skipReason = 'invalid-url';\n }\n return res;\n}\n\n/**\n * Resolves alias in repository string.\n *\n * @param repository to be resolved string\n * @param registryAliases Records containing registryAliases as key and to be resolved URLs as values\n *\n * @returns resolved alias. If repository does not contain an alias the repository string will be returned. Should it contain an alias which can not be resolved using `registryAliases`, null will be returned\n */\nexport function resolveAlias(\n repository: string,\n registryAliases: Record<string, string>,\n): string | null {\n if (!isAlias(repository)) {\n return repository;\n }\n\n const repoWithPrefixRemoved = repository.slice(\n repository.startsWith('@') ? 1 : 6,\n );\n const alias = registryAliases[repoWithPrefixRemoved];\n if (alias) {\n return alias;\n }\n return null;\n}\n\nexport function getRepositories(definitions: ChartDefinition[]): Repository[] {\n const repositoryList = definitions\n .flatMap((value) => value.dependencies)\n .filter((dependency) => dependency.repository) // only keep non-local references --> if no repository is defined the chart will be searched in charts/<name>\n .filter((dependency) => !isAlias(dependency.repository)) // do not add registryAliases\n .filter((dependency) => !dependency.repository.startsWith('file:')) // skip repositories which are locally referenced\n .map((dependency) => {\n // remove additional keys to prevent interference at deduplication\n return {\n name: dependency.name,\n repository: dependency.repository,\n };\n });\n const dedup = new Set();\n return repositoryList.filter((el) => {\n const duplicate = dedup.has(el.repository);\n dedup.add(el.repository);\n return !duplicate;\n });\n}\n\nexport function isAlias(repository: string): boolean {\n if (!repository) {\n return false;\n }\n return repository.startsWith('@') || repository.startsWith('alias:');\n}\n\nexport function aliasRecordToRepositories(\n registryAliases: Record<string, string>,\n): Repository[] {\n return Object.entries(registryAliases)\n .filter(([, url]) => /^(https?|oci):\\/\\/.+/.exec(url))\n .map(([alias, url]) => {\n return {\n name: alias,\n repository: url,\n };\n });\n}\n\nexport function isFileInDir(dir: string, file: string): boolean {\n return upath.dirname(file) === dir;\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/hermit/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import { quote } from 'shlex';\nimport upath from 'upath';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport { localPathIsSymbolicLink, readLocalSymlink } from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport * as p from '../../../util/promises';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport type { ReadContentResult } from './types';\n\n/**\n * updateArtifacts runs hermit install for each updated dependencies\n */\nexport async function updateArtifacts(\n update: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n const { packageFileName } = update;\n try {\n await updateHermitPackage(update);\n } catch (err) {\n const execErr: UpdateHermitError = err;\n logger.debug({ err }, `error updating hermit packages.`);\n return [\n {\n artifactError: {\n lockFile: `from: ${execErr.from}, to: ${execErr.to}`,\n stderr: execErr.stderr,\n },\n },\n ];\n }\n\n logger.debug(`scanning the changes after update`);\n\n let updateResult: UpdateArtifactsResult[] | null = null;\n\n try {\n updateResult = await getUpdateResult(packageFileName);\n logger.debug({ updateResult }, `update result for hermit`);\n } catch (err) {\n logger.debug({ err }, 'Error getting hermet update results');\n return [\n {\n artifactError: {\n stderr: err.message,\n },\n },\n ];\n }\n\n return updateResult;\n}\n\n/**\n * getContent returns the content of either link or a normal file\n */\nasync function getContent(file: string): Promise<ReadContentResult> {\n let contents: string | null = '';\n const isSymlink = await localPathIsSymbolicLink(file);\n\n if (isSymlink) {\n contents = await readLocalSymlink(file);\n }\n\n if (contents === null) {\n throw new Error(`error getting content for ${file}`);\n }\n\n return {\n isSymlink,\n contents,\n };\n}\n\n/**\n * getAddResult returns the UpdateArtifactsResult for the added files\n */\nfunction getAddResult(\n path: string,\n contentRes: ReadContentResult,\n): UpdateArtifactsResult {\n return {\n file: {\n type: 'addition',\n path,\n contents: contentRes.contents,\n isSymlink: contentRes.isSymlink,\n isExecutable: contentRes.isExecutable,\n },\n };\n}\n\n/**\n * getDeleteResult returns the UpdateArtifactsResult for deleted files\n */\nfunction getDeleteResult(path: string): UpdateArtifactsResult {\n return {\n file: {\n type: 'deletion',\n path,\n },\n };\n}\n\n/**\n * getUpdateResult will return the update result after `hermit install`\n * has been performed for all packages\n */\nasync function getUpdateResult(\n packageFileName: string,\n): Promise<UpdateArtifactsResult[]> {\n const hermitFolder = `${upath.dirname(packageFileName)}/`;\n const hermitChanges = await getRepoStatus(hermitFolder);\n logger.debug(\n { hermitChanges, hermitFolder },\n `hermit changes after package update`,\n );\n\n // handle added files\n const added = await p.map(\n [...hermitChanges.created, ...hermitChanges.not_added],\n async (path: string): Promise<UpdateArtifactsResult> => {\n const contents = await getContent(path);\n\n return getAddResult(path, contents);\n },\n );\n\n const deleted = hermitChanges.deleted.map(getDeleteResult);\n\n const modified = await p.map(\n hermitChanges.modified,\n async (path: string): Promise<UpdateArtifactsResult[]> => {\n const contents = await getContent(path);\n return [\n getDeleteResult(path), // delete existing link\n getAddResult(path, contents), // add a new link\n ];\n },\n );\n\n const renamed = await p.map(\n hermitChanges.renamed,\n async (renamed): Promise<UpdateArtifactsResult[]> => {\n const from = renamed.from;\n const to = renamed.to;\n const toContents = await getContent(to);\n\n return [getDeleteResult(from), getAddResult(to, toContents)];\n },\n );\n\n return [\n // rename will need to go first, because\n // it needs to create the new link for the new version\n // for the modified links to use\n ...renamed.flat(),\n ...modified.flat(),\n ...added,\n ...deleted,\n ];\n}\n\n/**\n * getHermitPackage returns the hermit package for running the hermit install\n */\nfunction getHermitPackage(name: string, version: string): string {\n return `${name}-${version}`;\n}\n\n/**\n * updateHermitPackage runs hermit install for the given package\n */\nasync function updateHermitPackage(update: UpdateArtifact): Promise<void> {\n logger.trace({ update }, `hermit.updateHermitPackage()`);\n\n const toInstall = [];\n const from = [];\n // storing the old package for replacement\n const toUninstall = [];\n\n for (const pkg of update.updatedDeps) {\n if (!pkg.depName || !pkg.currentVersion || !pkg.newValue) {\n logger.debug(\n {\n depName: pkg.depName,\n currentVersion: pkg.currentVersion,\n newValue: pkg.newValue,\n },\n 'missing package update information',\n );\n\n throw new UpdateHermitError(\n getHermitPackage(pkg.depName ?? '', pkg.currentVersion ?? ''),\n getHermitPackage(pkg.depName ?? '', pkg.newValue ?? ''),\n 'invalid package to update',\n );\n }\n\n const depName = pkg.depName;\n const newName = pkg.newName;\n const currentVersion = pkg.currentVersion;\n const newValue = pkg.newValue;\n const fromPackage = getHermitPackage(depName, currentVersion);\n // newName will be available for replacement\n const toPackage = getHermitPackage(newName ?? depName, newValue);\n toInstall.push(toPackage);\n from.push(fromPackage);\n // skips uninstall for version only replacement\n if (pkg.updateType === 'replacement' && newName !== depName) {\n toUninstall.push(depName);\n }\n }\n\n const execOptions: ExecOptions = {\n docker: {},\n userConfiguredEnv: update?.config?.env,\n cwdFile: update.packageFileName,\n };\n\n const fromPackages = from.map(quote).join(' ');\n\n // when a name replacement happens, need to uninstall the old package\n if (toUninstall.length > 0) {\n const packagesToUninstall = toUninstall.join(' ');\n const uninstallCommands = `./hermit uninstall ${packagesToUninstall}`;\n\n try {\n const result = await exec(uninstallCommands, execOptions);\n logger.trace(\n { stdout: result.stdout },\n `hermit uninstall command stdout`,\n );\n } catch (e) {\n logger.warn({ err: e }, `error uninstall hermit package for replacement`);\n throw new UpdateHermitError(\n fromPackages,\n packagesToUninstall,\n e.stderr,\n e.stdout,\n );\n }\n }\n\n const packagesToInstall = toInstall.join(' ');\n\n const execCommands = `./hermit install ${packagesToInstall}`;\n logger.debug(\n {\n packageFile: update.packageFileName,\n packagesToInstall,\n },\n `performing updates`,\n );\n\n try {\n const result = await exec(execCommands, execOptions);\n logger.trace({ stdout: result.stdout }, `hermit command stdout`);\n } catch (e) {\n logger.warn({ err: e }, `error updating hermit package`);\n throw new UpdateHermitError(\n fromPackages,\n packagesToInstall,\n e.stderr,\n e.stdout,\n );\n }\n}\n\nexport class UpdateHermitError extends Error {\n stdout: string;\n stderr: string;\n from: string;\n to: string;\n\n constructor(from: string, to: string, stderr: string, stdout = '') {\n super();\n this.stdout = stdout;\n this.stderr = stderr;\n this.from = from;\n this.to = to;\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/hermit/artifacts.ts"],"names":[],"mappings":";;;AAcA,0CAsCC;;AApDD,iCAA8B;AAC9B,0DAA0B;AAC1B,4CAAyC;AACzC,6CAA0C;AAE1C,yCAA6E;AAC7E,2CAAkD;AAClD,kEAA4C;AAI5C;;GAEG;AACI,KAAK,UAAU,eAAe,CACnC,MAAsB;IAEtB,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAsB,GAAG,CAAC;QACvC,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,iCAAiC,CAAC,CAAC;QACzD,OAAO;YACL;gBACE,aAAa,EAAE;oBACb,QAAQ,EAAE,SAAS,OAAO,CAAC,IAAI,SAAS,OAAO,CAAC,EAAE,EAAE;oBACpD,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB;aACF;SACF,CAAC;IACJ,CAAC;IAED,eAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAElD,IAAI,YAAY,GAAmC,IAAI,CAAC;IAExD,IAAI,CAAC;QACH,YAAY,GAAG,MAAM,eAAe,CAAC,eAAe,CAAC,CAAC;QACtD,eAAM,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,EAAE,0BAA0B,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,qCAAqC,CAAC,CAAC;QAC7D,OAAO;YACL;gBACE,aAAa,EAAE;oBACb,MAAM,EAAE,GAAG,CAAC,OAAO;iBACpB;aACF;SACF,CAAC;IACJ,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,IAAI,QAAQ,GAAkB,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,MAAM,IAAA,4BAAuB,EAAC,IAAI,CAAC,CAAC;IAEtD,IAAI,SAAS,EAAE,CAAC;QACd,QAAQ,GAAG,MAAM,IAAA,qBAAgB,EAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,OAAO;QACL,SAAS;QACT,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CACnB,IAAY,EACZ,UAA6B;IAE7B,OAAO;QACL,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU;YAChB,IAAI;YACJ,QAAQ,EAAE,UAAU,CAAC,QAAQ;YAC7B,SAAS,EAAE,UAAU,CAAC,SAAS;YAC/B,YAAY,EAAE,UAAU,CAAC,YAAY;SACtC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO;QACL,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU;YAChB,IAAI;SACL;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,eAAe,CAC5B,eAAuB;IAEvB,MAAM,YAAY,GAAG,GAAG,eAAK,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC;IAC1D,MAAM,aAAa,GAAG,MAAM,IAAA,mBAAa,EAAC,YAAY,CAAC,CAAC;IACxD,eAAM,CAAC,KAAK,CACV,EAAE,aAAa,EAAE,YAAY,EAAE,EAC/B,qCAAqC,CACtC,CAAC;IAEF,qBAAqB;IACrB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CACvB,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,SAAS,CAAC,EACtD,KAAK,EAAE,IAAY,EAAkC,EAAE;QACrD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QAExC,OAAO,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC,CACF,CAAC;IAEF,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,GAAG,CAC1B,aAAa,CAAC,QAAQ,EACtB,KAAK,EAAE,IAAY,EAAoC,EAAE;QACvD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO;YACL,eAAe,CAAC,IAAI,CAAC,EAAE,uBAAuB;YAC9C,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,iBAAiB;SAChD,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG,CACzB,aAAa,CAAC,OAAO,EACrB,KAAK,EAAE,OAAO,EAAoC,EAAE;QAClD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;QAExC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IAC/D,CAAC,CACF,CAAC;IAEF,OAAO;QACL,wCAAwC;QACxC,sDAAsD;QACtD,gCAAgC;QAChC,GAAG,OAAO,CAAC,IAAI,EAAE;QACjB,GAAG,QAAQ,CAAC,IAAI,EAAE;QAClB,GAAG,KAAK;QACR,GAAG,OAAO;KACX,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,IAAY,EAAE,OAAe;IACrD,OAAO,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAAC,MAAsB;IACvD,eAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,8BAA8B,CAAC,CAAC;IAEzD,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,0CAA0C;IAC1C,MAAM,WAAW,GAAG,EAAE,CAAC;IAEvB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACzD,eAAM,CAAC,KAAK,CACV;gBACE,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,cAAc,EAAE,GAAG,CAAC,cAAc;gBAClC,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACvB,EACD,oCAAoC,CACrC,CAAC;YAEF,MAAM,IAAI,iBAAiB,CACzB,gBAAgB,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,EAC7D,gBAAgB,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,EACvD,2BAA2B,CAC5B,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC5B,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC;QAC1C,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC9B,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC9D,4CAA4C;QAC5C,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,IAAI,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvB,+CAA+C;QAC/C,IAAI,GAAG,CAAC,UAAU,KAAK,aAAa,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YAC5D,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAgB;QAC/B,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,MAAM,CAAC,eAAe;KAChC,CAAC;IAEF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,aAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE/C,qEAAqE;IACrE,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,mBAAmB,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,iBAAiB,GAAG,sBAAsB,mBAAmB,EAAE,CAAC;QAEtE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,WAAI,EAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;YAC1D,eAAM,CAAC,KAAK,CACV,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EACzB,iCAAiC,CAClC,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,gDAAgD,CAAC,CAAC;YAC1E,MAAM,IAAI,iBAAiB,CACzB,YAAY,EACZ,mBAAmB,EACnB,CAAC,CAAC,MAAM,EACR,CAAC,CAAC,MAAM,CACT,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE9C,MAAM,YAAY,GAAG,oBAAoB,iBAAiB,EAAE,CAAC;IAC7D,eAAM,CAAC,KAAK,CACV;QACE,WAAW,EAAE,MAAM,CAAC,eAAe;QACnC,iBAAiB;KAClB,EACD,oBAAoB,CACrB,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAA,WAAI,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACrD,eAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC;IACnE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,+BAA+B,CAAC,CAAC;QACzD,MAAM,IAAI,iBAAiB,CACzB,YAAY,EACZ,iBAAiB,EACjB,CAAC,CAAC,MAAM,EACR,CAAC,CAAC,MAAM,CACT,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAa,iBAAkB,SAAQ,KAAK;IAC1C,MAAM,CAAS;IACf,MAAM,CAAS;IACf,IAAI,CAAS;IACb,EAAE,CAAS;IAEX,YAAY,IAAY,EAAE,EAAU,EAAE,MAAc,EAAE,MAAM,GAAG,EAAE;QAC/D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;CACF;AAbD,8CAaC","sourcesContent":["import { quote } from 'shlex';\nimport upath from 'upath';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport { localPathIsSymbolicLink, readLocalSymlink } from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport * as p from '../../../util/promises';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\nimport type { ReadContentResult } from './types';\n\n/**\n * updateArtifacts runs hermit install for each updated dependencies\n */\nexport async function updateArtifacts(\n update: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n const { packageFileName } = update;\n try {\n await updateHermitPackage(update);\n } catch (err) {\n const execErr: UpdateHermitError = err;\n logger.debug({ err }, `error updating hermit packages.`);\n return [\n {\n artifactError: {\n lockFile: `from: ${execErr.from}, to: ${execErr.to}`,\n stderr: execErr.stderr,\n },\n },\n ];\n }\n\n logger.debug(`scanning the changes after update`);\n\n let updateResult: UpdateArtifactsResult[] | null = null;\n\n try {\n updateResult = await getUpdateResult(packageFileName);\n logger.debug({ updateResult }, `update result for hermit`);\n } catch (err) {\n logger.debug({ err }, 'Error getting hermet update results');\n return [\n {\n artifactError: {\n stderr: err.message,\n },\n },\n ];\n }\n\n return updateResult;\n}\n\n/**\n * getContent returns the content of either link or a normal file\n */\nasync function getContent(file: string): Promise<ReadContentResult> {\n let contents: string | null = '';\n const isSymlink = await localPathIsSymbolicLink(file);\n\n if (isSymlink) {\n contents = await readLocalSymlink(file);\n }\n\n if (contents === null) {\n throw new Error(`error getting content for ${file}`);\n }\n\n return {\n isSymlink,\n contents,\n };\n}\n\n/**\n * getAddResult returns the UpdateArtifactsResult for the added files\n */\nfunction getAddResult(\n path: string,\n contentRes: ReadContentResult,\n): UpdateArtifactsResult {\n return {\n file: {\n type: 'addition',\n path,\n contents: contentRes.contents,\n isSymlink: contentRes.isSymlink,\n isExecutable: contentRes.isExecutable,\n },\n };\n}\n\n/**\n * getDeleteResult returns the UpdateArtifactsResult for deleted files\n */\nfunction getDeleteResult(path: string): UpdateArtifactsResult {\n return {\n file: {\n type: 'deletion',\n path,\n },\n };\n}\n\n/**\n * getUpdateResult will return the update result after `hermit install`\n * has been performed for all packages\n */\nasync function getUpdateResult(\n packageFileName: string,\n): Promise<UpdateArtifactsResult[]> {\n const hermitFolder = `${upath.dirname(packageFileName)}/`;\n const hermitChanges = await getRepoStatus(hermitFolder);\n logger.debug(\n { hermitChanges, hermitFolder },\n `hermit changes after package update`,\n );\n\n // handle added files\n const added = await p.map(\n [...hermitChanges.created, ...hermitChanges.not_added],\n async (path: string): Promise<UpdateArtifactsResult> => {\n const contents = await getContent(path);\n\n return getAddResult(path, contents);\n },\n );\n\n const deleted = hermitChanges.deleted.map(getDeleteResult);\n\n const modified = await p.map(\n hermitChanges.modified,\n async (path: string): Promise<UpdateArtifactsResult[]> => {\n const contents = await getContent(path);\n return [\n getDeleteResult(path), // delete existing link\n getAddResult(path, contents), // add a new link\n ];\n },\n );\n\n const renamed = await p.map(\n hermitChanges.renamed,\n async (renamed): Promise<UpdateArtifactsResult[]> => {\n const from = renamed.from;\n const to = renamed.to;\n const toContents = await getContent(to);\n\n return [getDeleteResult(from), getAddResult(to, toContents)];\n },\n );\n\n return [\n // rename will need to go first, because\n // it needs to create the new link for the new version\n // for the modified links to use\n ...renamed.flat(),\n ...modified.flat(),\n ...added,\n ...deleted,\n ];\n}\n\n/**\n * getHermitPackage returns the hermit package for running the hermit install\n */\nfunction getHermitPackage(name: string, version: string): string {\n return `${name}-${version}`;\n}\n\n/**\n * updateHermitPackage runs hermit install for the given package\n */\nasync function updateHermitPackage(update: UpdateArtifact): Promise<void> {\n logger.trace({ update }, `hermit.updateHermitPackage()`);\n\n const toInstall = [];\n const from = [];\n // storing the old package for replacement\n const toUninstall = [];\n\n for (const pkg of update.updatedDeps) {\n if (!pkg.depName || !pkg.currentVersion || !pkg.newValue) {\n logger.debug(\n {\n depName: pkg.depName,\n currentVersion: pkg.currentVersion,\n newValue: pkg.newValue,\n },\n 'missing package update information',\n );\n\n throw new UpdateHermitError(\n getHermitPackage(pkg.depName ?? '', pkg.currentVersion ?? ''),\n getHermitPackage(pkg.depName ?? '', pkg.newValue ?? ''),\n 'invalid package to update',\n );\n }\n\n const depName = pkg.depName;\n const newName = pkg.newName;\n const currentVersion = pkg.currentVersion;\n const newValue = pkg.newValue;\n const fromPackage = getHermitPackage(depName, currentVersion);\n // newName will be available for replacement\n const toPackage = getHermitPackage(newName ?? depName, newValue);\n toInstall.push(toPackage);\n from.push(fromPackage);\n // skips uninstall for version only replacement\n if (pkg.updateType === 'replacement' && newName !== depName) {\n toUninstall.push(depName);\n }\n }\n\n const execOptions: ExecOptions = {\n docker: {},\n cwdFile: update.packageFileName,\n };\n\n const fromPackages = from.map(quote).join(' ');\n\n // when a name replacement happens, need to uninstall the old package\n if (toUninstall.length > 0) {\n const packagesToUninstall = toUninstall.join(' ');\n const uninstallCommands = `./hermit uninstall ${packagesToUninstall}`;\n\n try {\n const result = await exec(uninstallCommands, execOptions);\n logger.trace(\n { stdout: result.stdout },\n `hermit uninstall command stdout`,\n );\n } catch (e) {\n logger.warn({ err: e }, `error uninstall hermit package for replacement`);\n throw new UpdateHermitError(\n fromPackages,\n packagesToUninstall,\n e.stderr,\n e.stdout,\n );\n }\n }\n\n const packagesToInstall = toInstall.join(' ');\n\n const execCommands = `./hermit install ${packagesToInstall}`;\n logger.debug(\n {\n packageFile: update.packageFileName,\n packagesToInstall,\n },\n `performing updates`,\n );\n\n try {\n const result = await exec(execCommands, execOptions);\n logger.trace({ stdout: result.stdout }, `hermit command stdout`);\n } catch (e) {\n logger.warn({ err: e }, `error updating hermit package`);\n throw new UpdateHermitError(\n fromPackages,\n packagesToInstall,\n e.stderr,\n e.stdout,\n );\n }\n}\n\nexport class UpdateHermitError extends Error {\n stdout: string;\n stderr: string;\n from: string;\n to: string;\n\n constructor(from: string, to: string, stderr: string, stdout = '') {\n super();\n this.stdout = stdout;\n this.stderr = stderr;\n this.from = from;\n this.to = to;\n }\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/homebrew/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport type { SkipReason } from '../../../types';\nimport { regEx } from '../../../util/regex';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport type { PackageDependency, PackageFileContent } from '../types';\nimport type { UrlPathParsedResult } from './types';\nimport { isSpace, removeComments, skip } from './util';\n\nfunction parseSha256(idx: number, content: string): string | null {\n let i = idx;\n i += 'sha256'.length;\n i = skip(i, content, (c) => isSpace(c));\n if (content[i] !== '\"' && content[i] !== \"'\") {\n return null;\n }\n i += 1;\n const j = skip(i, content, (c) => c !== '\"' && c !== \"'\");\n const sha256 = content.slice(i, j);\n return sha256;\n}\n\nfunction extractSha256(content: string): string | null {\n const sha256RegExp = regEx(/(^|\\s)sha256(\\s)/);\n let i = content.search(sha256RegExp);\n if (isSpace(content[i])) {\n i += 1;\n }\n return parseSha256(i, content);\n}\n\nfunction parseUrl(idx: number, content: string): string | null {\n let i = idx;\n i += 'url'.length;\n i = skip(i, content, (c) => isSpace(c));\n const chr = content[i];\n if (chr !== '\"' && chr !== \"'\") {\n return null;\n }\n i += 1;\n const j = skip(i, content, (c) => c !== '\"' && c !== \"'\" && !isSpace(c));\n const url = content.slice(i, j);\n return url;\n}\n\nfunction extractUrl(content: string): string | null {\n const urlRegExp = regEx(/(^|\\s)url(\\s)/);\n let i = content.search(urlRegExp);\n // content.search() returns -1 if not found\n if (i === -1) {\n return null;\n }\n /* istanbul ignore else */\n if (isSpace(content[i])) {\n i += 1;\n }\n return parseUrl(i, content);\n}\n\nexport function parseUrlPath(\n urlStr: string | null | undefined,\n): UrlPathParsedResult | null {\n if (!urlStr) {\n return null;\n }\n try {\n const url = new URL(urlStr);\n if (url.hostname !== 'github.com') {\n return null;\n }\n let s = url.pathname.split('/');\n s = s.filter((val) => val);\n const ownerName = s[0];\n const repoName = s[1];\n let currentValue: string | undefined;\n if (s[2] === 'archive') {\n // old archive url in form: [...]/archive/<tag>.tar.gz\n currentValue = s[3];\n if (currentValue === 'refs') {\n // new archive url in form: [...]/archive/refs/tags/<tag>.tar.gz\n currentValue = s[5];\n }\n const targz = currentValue.slice(\n currentValue.length - 7,\n currentValue.length,\n );\n if (targz === '.tar.gz') {\n currentValue = currentValue.substring(0, currentValue.length - 7);\n }\n } else if (s[2] === 'releases' && s[3] === 'download') {\n currentValue = s[4];\n }\n if (!currentValue) {\n return null;\n }\n return { currentValue, ownerName, repoName };\n } catch {\n return null;\n }\n}\n\n/* This function parses the \"class className < Formula\" header\n and returns the className and index of the character just after the header */\nfunction parseClassHeader(idx: number, content: string): string | null {\n let i = idx;\n i += 'class'.length;\n i = skip(i, content, (c) => isSpace(c));\n // Skip all non space and non '<' characters\n let j = skip(i, content, (c) => !isSpace(c) && c !== '<');\n const className = content.slice(i, j);\n i = j;\n // Skip spaces\n i = skip(i, content, (c) => isSpace(c));\n if (content[i] === '<') {\n i += 1;\n } else {\n return null;\n } // Skip spaces\n i = skip(i, content, (c) => isSpace(c));\n // Skip non-spaces\n j = skip(i, content, (c) => !isSpace(c));\n if (content.slice(i, j) !== 'Formula') {\n return null;\n }\n return className;\n}\n\nfunction extractClassName(content: string): string | null {\n const classRegExp = regEx(/(^|\\s)class\\s/);\n let i = content.search(classRegExp);\n if (isSpace(content[i])) {\n i += 1;\n }\n return parseClassHeader(i, content);\n}\n\n// TODO: Maybe check if quotes/double-quotes are balanced (#9591)\nexport function extractPackageFile(content: string): PackageFileContent | null {\n logger.trace('extractPackageFile()');\n /*\n 1. match \"class className < Formula\"\n 2. extract className\n 3. extract url field (get depName from url)\n 4. extract sha256 field\n */\n const cleanContent = removeComments(content);\n const className = extractClassName(cleanContent);\n if (!className) {\n logger.debug('Invalid class definition');\n return null;\n }\n const url = extractUrl(cleanContent);\n if (!url) {\n logger.debug('Invalid URL field');\n }\n const urlPathResult = parseUrlPath(url);\n let skipReason: SkipReason | undefined;\n let currentValue: string | null = null;\n let ownerName: string | null = null;\n let repoName: string | null = null;\n if (urlPathResult) {\n currentValue = urlPathResult.currentValue;\n ownerName = urlPathResult.ownerName;\n repoName = urlPathResult.repoName;\n } else {\n logger.debug('Error: Unsupported URL field');\n skipReason = 'unsupported-url';\n }\n const sha256 = extractSha256(cleanContent);\n if (!sha256 || sha256.length !== 64) {\n logger.debug('Error: Invalid sha256 field');\n skipReason = 'invalid-sha256';\n }\n const dep: PackageDependency = {\n // TODO: types (#22198)\n depName: `${ownerName}/${repoName}`,\n managerData: { ownerName, repoName, sha256, url },\n currentValue,\n datasource: GithubTagsDatasource.id,\n };\n if (skipReason) {\n dep.skipReason = skipReason;\n if (skipReason === 'unsupported-url') {\n dep.depName = className;\n dep.datasource = undefined;\n }\n }\n const deps = [dep];\n return { deps };\n}\n"]}
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/homebrew/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport type { SkipReason } from '../../../types';\nimport { regEx } from '../../../util/regex';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport type { PackageDependency, PackageFileContent } from '../types';\nimport type { UrlPathParsedResult } from './types';\nimport { isSpace, removeComments, skip } from './util';\n\nfunction parseSha256(idx: number, content: string): string | null {\n let i = idx;\n i += 'sha256'.length;\n i = skip(i, content, (c) => isSpace(c));\n if (content[i] !== '\"' && content[i] !== \"'\") {\n return null;\n }\n i += 1;\n const j = skip(i, content, (c) => c !== '\"' && c !== \"'\");\n const sha256 = content.slice(i, j);\n return sha256;\n}\n\nfunction extractSha256(content: string): string | null {\n const sha256RegExp = regEx(/(^|\\s)sha256(\\s)/);\n let i = content.search(sha256RegExp);\n if (isSpace(content[i])) {\n i += 1;\n }\n return parseSha256(i, content);\n}\n\nfunction parseUrl(idx: number, content: string): string | null {\n let i = idx;\n i += 'url'.length;\n i = skip(i, content, (c) => isSpace(c));\n const chr = content[i];\n if (chr !== '\"' && chr !== \"'\") {\n return null;\n }\n i += 1;\n const j = skip(i, content, (c) => c !== '\"' && c !== \"'\" && !isSpace(c));\n const url = content.slice(i, j);\n return url;\n}\n\nfunction extractUrl(content: string): string | null {\n const urlRegExp = regEx(/(^|\\s)url(\\s)/);\n let i = content.search(urlRegExp);\n // content.search() returns -1 if not found\n if (i === -1) {\n return null;\n }\n if (isSpace(content[i])) {\n i += 1;\n }\n return parseUrl(i, content);\n}\n\nexport function parseUrlPath(\n urlStr: string | null | undefined,\n): UrlPathParsedResult | null {\n if (!urlStr) {\n return null;\n }\n try {\n const url = new URL(urlStr);\n if (url.hostname !== 'github.com') {\n return null;\n }\n let s = url.pathname.split('/');\n s = s.filter((val) => val);\n const ownerName = s[0];\n const repoName = s[1];\n let currentValue: string | undefined;\n if (s[2] === 'archive') {\n // old archive url in form: [...]/archive/<tag>.tar.gz\n currentValue = s[3];\n if (currentValue === 'refs') {\n // new archive url in form: [...]/archive/refs/tags/<tag>.tar.gz\n currentValue = s[5];\n }\n const targz = currentValue.slice(\n currentValue.length - 7,\n currentValue.length,\n );\n if (targz === '.tar.gz') {\n currentValue = currentValue.substring(0, currentValue.length - 7);\n }\n } else if (s[2] === 'releases' && s[3] === 'download') {\n currentValue = s[4];\n }\n if (!currentValue) {\n return null;\n }\n return { currentValue, ownerName, repoName };\n } catch {\n return null;\n }\n}\n\n/* This function parses the \"class className < Formula\" header\n and returns the className and index of the character just after the header */\nfunction parseClassHeader(idx: number, content: string): string | null {\n let i = idx;\n i += 'class'.length;\n i = skip(i, content, (c) => isSpace(c));\n // Skip all non space and non '<' characters\n let j = skip(i, content, (c) => !isSpace(c) && c !== '<');\n const className = content.slice(i, j);\n i = j;\n // Skip spaces\n i = skip(i, content, (c) => isSpace(c));\n if (content[i] === '<') {\n i += 1;\n } else {\n return null;\n } // Skip spaces\n i = skip(i, content, (c) => isSpace(c));\n // Skip non-spaces\n j = skip(i, content, (c) => !isSpace(c));\n if (content.slice(i, j) !== 'Formula') {\n return null;\n }\n return className;\n}\n\nfunction extractClassName(content: string): string | null {\n const classRegExp = regEx(/(^|\\s)class\\s/);\n let i = content.search(classRegExp);\n if (isSpace(content[i])) {\n i += 1;\n }\n return parseClassHeader(i, content);\n}\n\n// TODO: Maybe check if quotes/double-quotes are balanced (#9591)\nexport function extractPackageFile(content: string): PackageFileContent | null {\n logger.trace('extractPackageFile()');\n /*\n 1. match \"class className < Formula\"\n 2. extract className\n 3. extract url field (get depName from url)\n 4. extract sha256 field\n */\n const cleanContent = removeComments(content);\n const className = extractClassName(cleanContent);\n if (!className) {\n logger.debug('Invalid class definition');\n return null;\n }\n const url = extractUrl(cleanContent);\n if (!url) {\n logger.debug('Invalid URL field');\n }\n const urlPathResult = parseUrlPath(url);\n let skipReason: SkipReason | undefined;\n let currentValue: string | null = null;\n let ownerName: string | null = null;\n let repoName: string | null = null;\n if (urlPathResult) {\n currentValue = urlPathResult.currentValue;\n ownerName = urlPathResult.ownerName;\n repoName = urlPathResult.repoName;\n } else {\n logger.debug('Error: Unsupported URL field');\n skipReason = 'unsupported-url';\n }\n const sha256 = extractSha256(cleanContent);\n if (!sha256 || sha256.length !== 64) {\n logger.debug('Error: Invalid sha256 field');\n skipReason = 'invalid-sha256';\n }\n const dep: PackageDependency = {\n // TODO: types (#22198)\n depName: `${ownerName}/${repoName}`,\n managerData: { ownerName, repoName, sha256, url },\n currentValue,\n datasource: GithubTagsDatasource.id,\n };\n if (skipReason) {\n dep.skipReason = skipReason;\n if (skipReason === 'unsupported-url') {\n dep.depName = className;\n dep.datasource = undefined;\n }\n }\n const deps = [dep];\n return { deps };\n}\n"]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/jsonnet-bundler/artifacts.ts"],"names":[],"mappings":";;AAuBA,
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/jsonnet-bundler/artifacts.ts"],"names":[],"mappings":";;AAuBA,0CAuFC;AA9GD,iCAA8B;AAC9B,sEAAoE;AACpE,4CAAyC;AACzC,+CAAkD;AAClD,6CAA0C;AAE1C,yCAAiD;AACjD,2CAAkD;AAClD,+CAA4C;AAO5C,SAAS,aAAa,CAAC,GAAsB;IAC3C,MAAM,GAAG,GAAG,GAAG,CAAC,WAAY,CAAC;IAC7B,IAAI,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,cAA8B;IAE9B,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC;IAChE,eAAM,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,EAAE,mCAAmC,CAAC,CAAC;IAEvE,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC;IAC7E,MAAM,uBAAuB,GAAG,MAAM,IAAA,kBAAa,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAE1E,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,eAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,4BAA4B,GAAmB;QACnD,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE;KACnC,CAAC;IAEF,MAAM,WAAW,GAAgB;QAC/B,OAAO,EAAE,eAAe;QACxB,MAAM,EAAE,EAAE;QACV,eAAe,EAAE,CAAC,4BAA4B,CAAC;KAChD,CAAC;IAEF,IAAI,CAAC;QACH,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACjC,MAAM,IAAA,WAAI,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACtD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAA,WAAI,EACR,aAAa,cAAc,CAAC,GAAG,CAAC,aAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAClD,WAAW,CACZ,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAa,GAAE,CAAC;QAErC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAA4B,EAAE,CAAC;QAExC,KAAK,MAAM,CAAC,IAAI,IAAA,mBAAW,EAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE;oBACJ,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,CAAC;oBACP,QAAQ,EAAE,MAAM,IAAA,kBAAa,EAAC,CAAC,CAAC;iBACjC;aACF,CAAC,CAAC;QACL,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAA,mBAAW,EAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9C,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE;oBACJ,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,CAAC;oBACP,QAAQ,EAAE,MAAM,IAAA,kBAAa,EAAC,CAAC,CAAC;iBACjC;aACF,CAAC,CAAC;QACL,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAA,mBAAW,EAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE;oBACJ,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,CAAC;iBACR;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,0BAA0B,CAAC,CAAC;QACxC,IAAI,GAAG,CAAC,OAAO,KAAK,gCAAe,EAAE,CAAC;YACpC,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,OAAO;YACL;gBACE,aAAa,EAAE;oBACb,QAAQ,EAAE,YAAY;oBACtB,MAAM,EAAE,GAAG,CAAC,MAAM;iBACnB;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions, ToolConstraint } from '../../../util/exec/types';\nimport { readLocalFile } from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport { regEx } from '../../../util/regex';\nimport type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsResult,\n} from '../types';\n\nfunction dependencyUrl(dep: PackageDependency): string {\n const url = dep.packageName!;\n if (dep.managerData?.subdir) {\n return url.concat('/', dep.managerData.subdir);\n }\n return url;\n}\n\nexport async function updateArtifacts(\n updateArtifact: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n const { packageFileName, updatedDeps, config } = updateArtifact;\n logger.trace({ packageFileName }, 'jsonnet-bundler.updateArtifacts()');\n\n const lockFileName = packageFileName.replace(regEx(/\\.json$/), '.lock.json');\n const existingLockFileContent = await readLocalFile(lockFileName, 'utf8');\n\n if (!existingLockFileContent) {\n logger.debug('No jsonnetfile.lock.json found');\n return null;\n }\n\n const jsonnetBundlerToolConstraint: ToolConstraint = {\n toolName: 'jb',\n constraint: config.constraints?.jb,\n };\n\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n docker: {},\n toolConstraints: [jsonnetBundlerToolConstraint],\n };\n\n try {\n if (config.isLockFileMaintenance) {\n await exec('jb update', execOptions);\n } else {\n const dependencyUrls = updatedDeps.map(dependencyUrl);\n if (dependencyUrls.length > 0) {\n await exec(\n `jb update ${dependencyUrls.map(quote).join(' ')}`,\n execOptions,\n );\n }\n }\n\n const status = await getRepoStatus();\n\n if (status.isClean()) {\n return null;\n }\n\n const res: UpdateArtifactsResult[] = [];\n\n for (const f of coerceArray(status.modified)) {\n res.push({\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n },\n });\n }\n for (const f of coerceArray(status.not_added)) {\n res.push({\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n },\n });\n }\n for (const f of coerceArray(status.deleted)) {\n res.push({\n file: {\n type: 'deletion',\n path: f,\n },\n });\n }\n\n return res;\n } catch (err) /* istanbul ignore next */ {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.stderr,\n },\n },\n ];\n }\n}\n"]}
|