renovate 40.0.0-next.25 → 40.0.0-next.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
package/dist/util/stats.d.ts
CHANGED
@@ -103,4 +103,14 @@ export declare class HttpCacheStats {
|
|
103
103
|
static incRemoteMisses(url: string): void;
|
104
104
|
static report(): void;
|
105
105
|
}
|
106
|
+
type ObsoleteCacheStats = Record<string, {
|
107
|
+
callsite?: string;
|
108
|
+
count: number;
|
109
|
+
}>;
|
110
|
+
export declare class ObsoleteCacheHitLogger {
|
111
|
+
static getData(): ObsoleteCacheStats;
|
112
|
+
private static getCallsite;
|
113
|
+
static write(url: string): void;
|
114
|
+
static report(): void;
|
115
|
+
}
|
106
116
|
export {};
|
package/dist/util/stats.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.HttpCacheStats = exports.HttpStats = exports.DatasourceCacheStats = exports.PackageCacheStats = exports.LookupStats = void 0;
|
3
|
+
exports.ObsoleteCacheHitLogger = exports.HttpCacheStats = exports.HttpStats = exports.DatasourceCacheStats = exports.PackageCacheStats = exports.LookupStats = void 0;
|
4
4
|
exports.makeTimingReport = makeTimingReport;
|
5
5
|
const tslib_1 = require("tslib");
|
6
6
|
const logger_1 = require("../logger");
|
@@ -324,4 +324,48 @@ class HttpCacheStats {
|
|
324
324
|
}
|
325
325
|
}
|
326
326
|
exports.HttpCacheStats = HttpCacheStats;
|
327
|
+
/* v8 ignore start: temporary code */
|
328
|
+
class ObsoleteCacheHitLogger {
|
329
|
+
static getData() {
|
330
|
+
return memCache.get('obsolete-cache-stats') ?? {};
|
331
|
+
}
|
332
|
+
static getCallsite() {
|
333
|
+
const _prepareStackTrace = Error.prepareStackTrace;
|
334
|
+
try {
|
335
|
+
let result;
|
336
|
+
Error.prepareStackTrace = (_, stack) => {
|
337
|
+
result = stack
|
338
|
+
.find((frame) => {
|
339
|
+
const callsite = frame.toString();
|
340
|
+
return (!callsite.includes('lib/util/http') &&
|
341
|
+
!callsite.includes('lib/util/stats') &&
|
342
|
+
!callsite.includes('(node:'));
|
343
|
+
})
|
344
|
+
?.toString()
|
345
|
+
?.replace(/:\d+(?::\d+)?\)$/, ')');
|
346
|
+
};
|
347
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
|
348
|
+
new Error().stack;
|
349
|
+
return result;
|
350
|
+
}
|
351
|
+
finally {
|
352
|
+
Error.prepareStackTrace = _prepareStackTrace;
|
353
|
+
}
|
354
|
+
}
|
355
|
+
static write(url) {
|
356
|
+
const data = this.getData();
|
357
|
+
if (!data[url]) {
|
358
|
+
const callsite = this.getCallsite();
|
359
|
+
data[url] = { callsite, count: 0 };
|
360
|
+
}
|
361
|
+
data[url].count++;
|
362
|
+
memCache.set('obsolete-cache-stats', data);
|
363
|
+
}
|
364
|
+
static report() {
|
365
|
+
const hits = this.getData();
|
366
|
+
logger_1.logger.debug({ count: Object.keys(hits).length, hits }, 'Cache fallback URLs');
|
367
|
+
}
|
368
|
+
}
|
369
|
+
exports.ObsoleteCacheHitLogger = ObsoleteCacheHitLogger;
|
370
|
+
/* v8 ignore stop: temporary code */
|
327
371
|
//# sourceMappingURL=stats.js.map
|
package/dist/util/stats.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../lib/util/stats.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../logger';\nimport * as memCache from './cache/memory';\nimport { parseUrl } from './url';\n\ntype LookupStatsData = Record<string, number[]>;\n\ninterface TimingStatsReport {\n count: number;\n avgMs: number;\n medianMs: number;\n maxMs: number;\n totalMs: number;\n}\n\nexport function makeTimingReport(data: number[]): TimingStatsReport {\n const count = data.length;\n const totalMs = data.reduce((a, c) => a + c, 0);\n const avgMs = count ? Math.round(totalMs / count) : 0;\n const maxMs = Math.max(0, ...data);\n const sorted = data.sort((a, b) => a - b);\n const medianMs = count ? sorted[Math.floor(count / 2)] : 0;\n return { count, avgMs, medianMs, maxMs, totalMs };\n}\n\nexport class LookupStats {\n static write(datasource: string, duration: number): void {\n const data = memCache.get<LookupStatsData>('lookup-stats') ?? {};\n data[datasource] ??= [];\n data[datasource].push(duration);\n memCache.set('lookup-stats', data);\n }\n\n static async wrap<T>(\n datasource: string,\n callback: () => Promise<T>,\n ): Promise<T> {\n const start = Date.now();\n const result = await callback();\n const duration = Date.now() - start;\n LookupStats.write(datasource, duration);\n return result;\n }\n\n static getReport(): Record<string, TimingStatsReport> {\n const report: Record<string, TimingStatsReport> = {};\n const data = memCache.get<LookupStatsData>('lookup-stats') ?? {};\n for (const [datasource, durations] of Object.entries(data)) {\n report[datasource] = makeTimingReport(durations);\n }\n return report;\n }\n\n static report(): void {\n const report = LookupStats.getReport();\n logger.debug(report, 'Lookup statistics');\n }\n}\n\ntype PackageCacheData = number[];\n\nexport class PackageCacheStats {\n static writeSet(duration: number): void {\n const data = memCache.get<PackageCacheData>('package-cache-sets') ?? [];\n data.push(duration);\n memCache.set('package-cache-sets', data);\n }\n\n static async wrapSet<T>(callback: () => Promise<T>): Promise<T> {\n const start = Date.now();\n const result = await callback();\n const duration = Date.now() - start;\n PackageCacheStats.writeSet(duration);\n return result;\n }\n\n static writeGet(duration: number): void {\n const data = memCache.get<PackageCacheData>('package-cache-gets') ?? [];\n data.push(duration);\n memCache.set('package-cache-gets', data);\n }\n\n static async wrapGet<T>(callback: () => Promise<T>): Promise<T> {\n const start = Date.now();\n const result = await callback();\n const duration = Date.now() - start;\n PackageCacheStats.writeGet(duration);\n return result;\n }\n\n static getReport(): { get: TimingStatsReport; set: TimingStatsReport } {\n const packageCacheGets =\n memCache.get<PackageCacheData>('package-cache-gets') ?? [];\n const get = makeTimingReport(packageCacheGets);\n\n const packageCacheSets =\n memCache.get<PackageCacheData>('package-cache-sets') ?? [];\n const set = makeTimingReport(packageCacheSets);\n\n return { get, set };\n }\n\n static report(): void {\n const report = PackageCacheStats.getReport();\n logger.debug(report, 'Package cache statistics');\n }\n}\n\ninterface DatasourceCacheDataPoint {\n datasource: string;\n registryUrl: string;\n packageName: string;\n action: 'hit' | 'miss' | 'set' | 'skip';\n}\n\n/* eslint-disable @typescript-eslint/consistent-indexed-object-style */\nexport interface DatasourceCacheReport {\n long: {\n [datasource in string]: {\n [registryUrl in string]: {\n [packageName in string]: {\n read?: 'hit' | 'miss';\n write?: 'set' | 'skip';\n };\n };\n };\n };\n short: {\n [datasource in string]: {\n [registryUrl in string]: {\n hit: number;\n miss: number;\n set: number;\n skip: number;\n };\n };\n };\n}\n/* eslint-enable @typescript-eslint/consistent-indexed-object-style */\n\nexport class DatasourceCacheStats {\n private static getData(): DatasourceCacheDataPoint[] {\n return (\n memCache.get<DatasourceCacheDataPoint[]>('datasource-cache-stats') ?? []\n );\n }\n\n private static setData(data: DatasourceCacheDataPoint[]): void {\n memCache.set('datasource-cache-stats', data);\n }\n\n static hit(\n datasource: string,\n registryUrl: string,\n packageName: string,\n ): void {\n const data = this.getData();\n data.push({ datasource, registryUrl, packageName, action: 'hit' });\n this.setData(data);\n }\n\n static miss(\n datasource: string,\n registryUrl: string,\n packageName: string,\n ): void {\n const data = this.getData();\n data.push({ datasource, registryUrl, packageName, action: 'miss' });\n this.setData(data);\n }\n\n static set(\n datasource: string,\n registryUrl: string,\n packageName: string,\n ): void {\n const data = this.getData();\n data.push({ datasource, registryUrl, packageName, action: 'set' });\n this.setData(data);\n }\n\n static skip(\n datasource: string,\n registryUrl: string,\n packageName: string,\n ): void {\n const data = this.getData();\n data.push({ datasource, registryUrl, packageName, action: 'skip' });\n this.setData(data);\n }\n\n static getReport(): DatasourceCacheReport {\n const data = this.getData();\n const result: DatasourceCacheReport = { long: {}, short: {} };\n for (const { datasource, registryUrl, packageName, action } of data) {\n result.long[datasource] ??= {};\n result.long[datasource][registryUrl] ??= {};\n result.long[datasource][registryUrl] ??= {};\n result.long[datasource][registryUrl][packageName] ??= {};\n\n result.short[datasource] ??= {};\n result.short[datasource][registryUrl] ??= {\n hit: 0,\n miss: 0,\n set: 0,\n skip: 0,\n };\n\n if (action === 'hit') {\n result.long[datasource][registryUrl][packageName].read = 'hit';\n result.short[datasource][registryUrl].hit += 1;\n continue;\n }\n\n if (action === 'miss') {\n result.long[datasource][registryUrl][packageName].read = 'miss';\n result.short[datasource][registryUrl].miss += 1;\n continue;\n }\n\n if (action === 'set') {\n result.long[datasource][registryUrl][packageName].write = 'set';\n result.short[datasource][registryUrl].set += 1;\n continue;\n }\n\n if (action === 'skip') {\n result.long[datasource][registryUrl][packageName].write = 'skip';\n result.short[datasource][registryUrl].skip += 1;\n continue;\n }\n }\n\n return result;\n }\n\n static report(): void {\n const { long, short } = this.getReport();\n\n if (Object.keys(short).length > 0) {\n logger.debug(short, 'Datasource cache statistics');\n }\n\n if (Object.keys(long).length > 0) {\n logger.trace(long, 'Datasource cache detailed statistics');\n }\n }\n}\n\nexport interface HttpRequestStatsDataPoint {\n method: string;\n url: string;\n reqMs: number;\n queueMs: number;\n status: number;\n}\n\ninterface HostStatsData {\n count: number;\n reqAvgMs: number;\n reqMedianMs: number;\n reqMaxMs: number;\n queueAvgMs: number;\n queueMedianMs: number;\n queueMaxMs: number;\n}\n\n// url -> method -> status -> count\ntype UrlHttpStat = Record<string, Record<string, Record<string, number>>>;\n\ninterface HttpStatsCollection {\n // debug data\n urls: UrlHttpStat;\n hosts: Record<string, HostStatsData>;\n requests: number;\n\n // trace data\n rawRequests: string[];\n hostRequests: Record<string, HttpRequestStatsDataPoint[]>;\n}\n\nexport class HttpStats {\n static write(data: HttpRequestStatsDataPoint): void {\n const httpRequests =\n memCache.get<HttpRequestStatsDataPoint[]>('http-requests') ?? [];\n httpRequests.push(data);\n memCache.set('http-requests', httpRequests);\n }\n\n static getDataPoints(): HttpRequestStatsDataPoint[] {\n const httpRequests =\n memCache.get<HttpRequestStatsDataPoint[]>('http-requests') ?? [];\n\n // istanbul ignore next: sorting is hard and not worth testing\n httpRequests.sort((a, b) => {\n if (a.url < b.url) {\n return -1;\n }\n\n if (a.url > b.url) {\n return 1;\n }\n\n return 0;\n });\n\n return httpRequests;\n }\n\n static getReport(): HttpStatsCollection {\n const dataPoints = HttpStats.getDataPoints();\n\n const requests = dataPoints.length;\n\n const urls: UrlHttpStat = {};\n const rawRequests: string[] = [];\n const hostRequests: Record<string, HttpRequestStatsDataPoint[]> = {};\n\n for (const dataPoint of dataPoints) {\n const { url, reqMs, queueMs, status } = dataPoint;\n const method = dataPoint.method.toUpperCase();\n\n const parsedUrl = parseUrl(url);\n if (!parsedUrl) {\n logger.debug({ url }, 'Failed to parse URL during stats reporting');\n continue;\n }\n const { hostname, origin, pathname } = parsedUrl;\n const baseUrl = `${origin}${pathname}`;\n\n urls[baseUrl] ??= {};\n urls[baseUrl][method] ??= {};\n urls[baseUrl][method][status] ??= 0;\n urls[baseUrl][method][status] += 1;\n\n rawRequests.push(`${method} ${url} ${status} ${reqMs} ${queueMs}`);\n\n hostRequests[hostname] ??= [];\n hostRequests[hostname].push(dataPoint);\n }\n\n const hosts: Record<string, HostStatsData> = {};\n\n for (const [hostname, dataPoints] of Object.entries(hostRequests)) {\n const count = dataPoints.length;\n\n const reqTimes = dataPoints.map((r) => r.reqMs);\n const queueTimes = dataPoints.map((r) => r.queueMs);\n\n const reqReport = makeTimingReport(reqTimes);\n const queueReport = makeTimingReport(queueTimes);\n\n hosts[hostname] = {\n count,\n reqAvgMs: reqReport.avgMs,\n reqMedianMs: reqReport.medianMs,\n reqMaxMs: reqReport.maxMs,\n queueAvgMs: queueReport.avgMs,\n queueMedianMs: queueReport.medianMs,\n queueMaxMs: queueReport.maxMs,\n };\n }\n\n return {\n urls,\n rawRequests,\n hostRequests,\n hosts,\n requests,\n };\n }\n\n static report(): void {\n const { urls, rawRequests, hostRequests, hosts, requests } =\n HttpStats.getReport();\n logger.trace({ rawRequests, hostRequests }, 'HTTP full statistics');\n logger.debug({ hosts, requests }, 'HTTP statistics');\n logger.trace({ urls }, 'HTTP URL statistics');\n }\n}\n\ninterface HttpCacheHostStatsData {\n hit: number;\n miss: number;\n localHit?: number;\n localMiss?: number;\n}\n\ntype HttpCacheStatsData = Record<string, HttpCacheHostStatsData>;\n\nfunction sortObject<T>(obj: Record<string, T>): Record<string, T> {\n const result: Record<string, T> = {};\n for (const key of Object.keys(obj).sort()) {\n result[key] = obj[key];\n }\n return result;\n}\n\nexport class HttpCacheStats {\n static getData(): HttpCacheStatsData {\n return memCache.get<HttpCacheStatsData>('http-cache-stats') ?? {};\n }\n\n static read(key: string): HttpCacheHostStatsData {\n return (\n this.getData()?.[key] ?? {\n hit: 0,\n miss: 0,\n }\n );\n }\n\n static write(key: string, data: HttpCacheHostStatsData): void {\n const stats = memCache.get<HttpCacheStatsData>('http-cache-stats') ?? {};\n stats[key] = data;\n memCache.set('http-cache-stats', stats);\n }\n\n static getBaseUrl(url: string): string | null {\n const parsedUrl = parseUrl(url);\n if (!parsedUrl) {\n logger.debug({ url }, 'Failed to parse URL during cache stats');\n return null;\n }\n const { origin, pathname } = parsedUrl;\n const baseUrl = `${origin}${pathname}`;\n return baseUrl;\n }\n\n static incLocalHits(url: string): void {\n const baseUrl = HttpCacheStats.getBaseUrl(url);\n if (baseUrl) {\n const host = baseUrl;\n const stats = HttpCacheStats.read(host);\n stats.localHit ??= 0;\n stats.localHit += 1;\n HttpCacheStats.write(host, stats);\n }\n }\n\n static incLocalMisses(url: string): void {\n const baseUrl = HttpCacheStats.getBaseUrl(url);\n if (baseUrl) {\n const host = baseUrl;\n const stats = HttpCacheStats.read(host);\n stats.localMiss ??= 0;\n stats.localMiss += 1;\n HttpCacheStats.write(host, stats);\n }\n }\n\n static incRemoteHits(url: string): void {\n const baseUrl = HttpCacheStats.getBaseUrl(url);\n if (baseUrl) {\n const host = baseUrl;\n const stats = HttpCacheStats.read(host);\n stats.hit += 1;\n HttpCacheStats.write(host, stats);\n }\n }\n\n static incRemoteMisses(url: string): void {\n const baseUrl = HttpCacheStats.getBaseUrl(url);\n if (baseUrl) {\n const host = baseUrl;\n const stats = HttpCacheStats.read(host);\n stats.miss += 1;\n HttpCacheStats.write(host, stats);\n }\n }\n\n static report(): void {\n const data = HttpCacheStats.getData();\n let report: Record<string, Record<string, HttpCacheHostStatsData>> = {};\n for (const [url, stats] of Object.entries(data)) {\n const parsedUrl = parseUrl(url);\n if (parsedUrl) {\n const { origin, pathname } = parsedUrl;\n report[origin] ??= {};\n report[origin][pathname] = stats;\n }\n }\n\n for (const [host, hostStats] of Object.entries(report)) {\n report[host] = sortObject(hostStats);\n }\n report = sortObject(report);\n\n logger.debug(report, 'HTTP cache statistics');\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../lib/util/stats.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../logger';\nimport * as memCache from './cache/memory';\nimport { parseUrl } from './url';\n\ntype LookupStatsData = Record<string, number[]>;\n\ninterface TimingStatsReport {\n count: number;\n avgMs: number;\n medianMs: number;\n maxMs: number;\n totalMs: number;\n}\n\nexport function makeTimingReport(data: number[]): TimingStatsReport {\n const count = data.length;\n const totalMs = data.reduce((a, c) => a + c, 0);\n const avgMs = count ? Math.round(totalMs / count) : 0;\n const maxMs = Math.max(0, ...data);\n const sorted = data.sort((a, b) => a - b);\n const medianMs = count ? sorted[Math.floor(count / 2)] : 0;\n return { count, avgMs, medianMs, maxMs, totalMs };\n}\n\nexport class LookupStats {\n static write(datasource: string, duration: number): void {\n const data = memCache.get<LookupStatsData>('lookup-stats') ?? {};\n data[datasource] ??= [];\n data[datasource].push(duration);\n memCache.set('lookup-stats', data);\n }\n\n static async wrap<T>(\n datasource: string,\n callback: () => Promise<T>,\n ): Promise<T> {\n const start = Date.now();\n const result = await callback();\n const duration = Date.now() - start;\n LookupStats.write(datasource, duration);\n return result;\n }\n\n static getReport(): Record<string, TimingStatsReport> {\n const report: Record<string, TimingStatsReport> = {};\n const data = memCache.get<LookupStatsData>('lookup-stats') ?? {};\n for (const [datasource, durations] of Object.entries(data)) {\n report[datasource] = makeTimingReport(durations);\n }\n return report;\n }\n\n static report(): void {\n const report = LookupStats.getReport();\n logger.debug(report, 'Lookup statistics');\n }\n}\n\ntype PackageCacheData = number[];\n\nexport class PackageCacheStats {\n static writeSet(duration: number): void {\n const data = memCache.get<PackageCacheData>('package-cache-sets') ?? [];\n data.push(duration);\n memCache.set('package-cache-sets', data);\n }\n\n static async wrapSet<T>(callback: () => Promise<T>): Promise<T> {\n const start = Date.now();\n const result = await callback();\n const duration = Date.now() - start;\n PackageCacheStats.writeSet(duration);\n return result;\n }\n\n static writeGet(duration: number): void {\n const data = memCache.get<PackageCacheData>('package-cache-gets') ?? [];\n data.push(duration);\n memCache.set('package-cache-gets', data);\n }\n\n static async wrapGet<T>(callback: () => Promise<T>): Promise<T> {\n const start = Date.now();\n const result = await callback();\n const duration = Date.now() - start;\n PackageCacheStats.writeGet(duration);\n return result;\n }\n\n static getReport(): { get: TimingStatsReport; set: TimingStatsReport } {\n const packageCacheGets =\n memCache.get<PackageCacheData>('package-cache-gets') ?? [];\n const get = makeTimingReport(packageCacheGets);\n\n const packageCacheSets =\n memCache.get<PackageCacheData>('package-cache-sets') ?? [];\n const set = makeTimingReport(packageCacheSets);\n\n return { get, set };\n }\n\n static report(): void {\n const report = PackageCacheStats.getReport();\n logger.debug(report, 'Package cache statistics');\n }\n}\n\ninterface DatasourceCacheDataPoint {\n datasource: string;\n registryUrl: string;\n packageName: string;\n action: 'hit' | 'miss' | 'set' | 'skip';\n}\n\n/* eslint-disable @typescript-eslint/consistent-indexed-object-style */\nexport interface DatasourceCacheReport {\n long: {\n [datasource in string]: {\n [registryUrl in string]: {\n [packageName in string]: {\n read?: 'hit' | 'miss';\n write?: 'set' | 'skip';\n };\n };\n };\n };\n short: {\n [datasource in string]: {\n [registryUrl in string]: {\n hit: number;\n miss: number;\n set: number;\n skip: number;\n };\n };\n };\n}\n/* eslint-enable @typescript-eslint/consistent-indexed-object-style */\n\nexport class DatasourceCacheStats {\n private static getData(): DatasourceCacheDataPoint[] {\n return (\n memCache.get<DatasourceCacheDataPoint[]>('datasource-cache-stats') ?? []\n );\n }\n\n private static setData(data: DatasourceCacheDataPoint[]): void {\n memCache.set('datasource-cache-stats', data);\n }\n\n static hit(\n datasource: string,\n registryUrl: string,\n packageName: string,\n ): void {\n const data = this.getData();\n data.push({ datasource, registryUrl, packageName, action: 'hit' });\n this.setData(data);\n }\n\n static miss(\n datasource: string,\n registryUrl: string,\n packageName: string,\n ): void {\n const data = this.getData();\n data.push({ datasource, registryUrl, packageName, action: 'miss' });\n this.setData(data);\n }\n\n static set(\n datasource: string,\n registryUrl: string,\n packageName: string,\n ): void {\n const data = this.getData();\n data.push({ datasource, registryUrl, packageName, action: 'set' });\n this.setData(data);\n }\n\n static skip(\n datasource: string,\n registryUrl: string,\n packageName: string,\n ): void {\n const data = this.getData();\n data.push({ datasource, registryUrl, packageName, action: 'skip' });\n this.setData(data);\n }\n\n static getReport(): DatasourceCacheReport {\n const data = this.getData();\n const result: DatasourceCacheReport = { long: {}, short: {} };\n for (const { datasource, registryUrl, packageName, action } of data) {\n result.long[datasource] ??= {};\n result.long[datasource][registryUrl] ??= {};\n result.long[datasource][registryUrl] ??= {};\n result.long[datasource][registryUrl][packageName] ??= {};\n\n result.short[datasource] ??= {};\n result.short[datasource][registryUrl] ??= {\n hit: 0,\n miss: 0,\n set: 0,\n skip: 0,\n };\n\n if (action === 'hit') {\n result.long[datasource][registryUrl][packageName].read = 'hit';\n result.short[datasource][registryUrl].hit += 1;\n continue;\n }\n\n if (action === 'miss') {\n result.long[datasource][registryUrl][packageName].read = 'miss';\n result.short[datasource][registryUrl].miss += 1;\n continue;\n }\n\n if (action === 'set') {\n result.long[datasource][registryUrl][packageName].write = 'set';\n result.short[datasource][registryUrl].set += 1;\n continue;\n }\n\n if (action === 'skip') {\n result.long[datasource][registryUrl][packageName].write = 'skip';\n result.short[datasource][registryUrl].skip += 1;\n continue;\n }\n }\n\n return result;\n }\n\n static report(): void {\n const { long, short } = this.getReport();\n\n if (Object.keys(short).length > 0) {\n logger.debug(short, 'Datasource cache statistics');\n }\n\n if (Object.keys(long).length > 0) {\n logger.trace(long, 'Datasource cache detailed statistics');\n }\n }\n}\n\nexport interface HttpRequestStatsDataPoint {\n method: string;\n url: string;\n reqMs: number;\n queueMs: number;\n status: number;\n}\n\ninterface HostStatsData {\n count: number;\n reqAvgMs: number;\n reqMedianMs: number;\n reqMaxMs: number;\n queueAvgMs: number;\n queueMedianMs: number;\n queueMaxMs: number;\n}\n\n// url -> method -> status -> count\ntype UrlHttpStat = Record<string, Record<string, Record<string, number>>>;\n\ninterface HttpStatsCollection {\n // debug data\n urls: UrlHttpStat;\n hosts: Record<string, HostStatsData>;\n requests: number;\n\n // trace data\n rawRequests: string[];\n hostRequests: Record<string, HttpRequestStatsDataPoint[]>;\n}\n\nexport class HttpStats {\n static write(data: HttpRequestStatsDataPoint): void {\n const httpRequests =\n memCache.get<HttpRequestStatsDataPoint[]>('http-requests') ?? [];\n httpRequests.push(data);\n memCache.set('http-requests', httpRequests);\n }\n\n static getDataPoints(): HttpRequestStatsDataPoint[] {\n const httpRequests =\n memCache.get<HttpRequestStatsDataPoint[]>('http-requests') ?? [];\n\n // istanbul ignore next: sorting is hard and not worth testing\n httpRequests.sort((a, b) => {\n if (a.url < b.url) {\n return -1;\n }\n\n if (a.url > b.url) {\n return 1;\n }\n\n return 0;\n });\n\n return httpRequests;\n }\n\n static getReport(): HttpStatsCollection {\n const dataPoints = HttpStats.getDataPoints();\n\n const requests = dataPoints.length;\n\n const urls: UrlHttpStat = {};\n const rawRequests: string[] = [];\n const hostRequests: Record<string, HttpRequestStatsDataPoint[]> = {};\n\n for (const dataPoint of dataPoints) {\n const { url, reqMs, queueMs, status } = dataPoint;\n const method = dataPoint.method.toUpperCase();\n\n const parsedUrl = parseUrl(url);\n if (!parsedUrl) {\n logger.debug({ url }, 'Failed to parse URL during stats reporting');\n continue;\n }\n const { hostname, origin, pathname } = parsedUrl;\n const baseUrl = `${origin}${pathname}`;\n\n urls[baseUrl] ??= {};\n urls[baseUrl][method] ??= {};\n urls[baseUrl][method][status] ??= 0;\n urls[baseUrl][method][status] += 1;\n\n rawRequests.push(`${method} ${url} ${status} ${reqMs} ${queueMs}`);\n\n hostRequests[hostname] ??= [];\n hostRequests[hostname].push(dataPoint);\n }\n\n const hosts: Record<string, HostStatsData> = {};\n\n for (const [hostname, dataPoints] of Object.entries(hostRequests)) {\n const count = dataPoints.length;\n\n const reqTimes = dataPoints.map((r) => r.reqMs);\n const queueTimes = dataPoints.map((r) => r.queueMs);\n\n const reqReport = makeTimingReport(reqTimes);\n const queueReport = makeTimingReport(queueTimes);\n\n hosts[hostname] = {\n count,\n reqAvgMs: reqReport.avgMs,\n reqMedianMs: reqReport.medianMs,\n reqMaxMs: reqReport.maxMs,\n queueAvgMs: queueReport.avgMs,\n queueMedianMs: queueReport.medianMs,\n queueMaxMs: queueReport.maxMs,\n };\n }\n\n return {\n urls,\n rawRequests,\n hostRequests,\n hosts,\n requests,\n };\n }\n\n static report(): void {\n const { urls, rawRequests, hostRequests, hosts, requests } =\n HttpStats.getReport();\n logger.trace({ rawRequests, hostRequests }, 'HTTP full statistics');\n logger.debug({ hosts, requests }, 'HTTP statistics');\n logger.trace({ urls }, 'HTTP URL statistics');\n }\n}\n\ninterface HttpCacheHostStatsData {\n hit: number;\n miss: number;\n localHit?: number;\n localMiss?: number;\n}\n\ntype HttpCacheStatsData = Record<string, HttpCacheHostStatsData>;\n\nfunction sortObject<T>(obj: Record<string, T>): Record<string, T> {\n const result: Record<string, T> = {};\n for (const key of Object.keys(obj).sort()) {\n result[key] = obj[key];\n }\n return result;\n}\n\nexport class HttpCacheStats {\n static getData(): HttpCacheStatsData {\n return memCache.get<HttpCacheStatsData>('http-cache-stats') ?? {};\n }\n\n static read(key: string): HttpCacheHostStatsData {\n return (\n this.getData()?.[key] ?? {\n hit: 0,\n miss: 0,\n }\n );\n }\n\n static write(key: string, data: HttpCacheHostStatsData): void {\n const stats = memCache.get<HttpCacheStatsData>('http-cache-stats') ?? {};\n stats[key] = data;\n memCache.set('http-cache-stats', stats);\n }\n\n static getBaseUrl(url: string): string | null {\n const parsedUrl = parseUrl(url);\n if (!parsedUrl) {\n logger.debug({ url }, 'Failed to parse URL during cache stats');\n return null;\n }\n const { origin, pathname } = parsedUrl;\n const baseUrl = `${origin}${pathname}`;\n return baseUrl;\n }\n\n static incLocalHits(url: string): void {\n const baseUrl = HttpCacheStats.getBaseUrl(url);\n if (baseUrl) {\n const host = baseUrl;\n const stats = HttpCacheStats.read(host);\n stats.localHit ??= 0;\n stats.localHit += 1;\n HttpCacheStats.write(host, stats);\n }\n }\n\n static incLocalMisses(url: string): void {\n const baseUrl = HttpCacheStats.getBaseUrl(url);\n if (baseUrl) {\n const host = baseUrl;\n const stats = HttpCacheStats.read(host);\n stats.localMiss ??= 0;\n stats.localMiss += 1;\n HttpCacheStats.write(host, stats);\n }\n }\n\n static incRemoteHits(url: string): void {\n const baseUrl = HttpCacheStats.getBaseUrl(url);\n if (baseUrl) {\n const host = baseUrl;\n const stats = HttpCacheStats.read(host);\n stats.hit += 1;\n HttpCacheStats.write(host, stats);\n }\n }\n\n static incRemoteMisses(url: string): void {\n const baseUrl = HttpCacheStats.getBaseUrl(url);\n if (baseUrl) {\n const host = baseUrl;\n const stats = HttpCacheStats.read(host);\n stats.miss += 1;\n HttpCacheStats.write(host, stats);\n }\n }\n\n static report(): void {\n const data = HttpCacheStats.getData();\n let report: Record<string, Record<string, HttpCacheHostStatsData>> = {};\n for (const [url, stats] of Object.entries(data)) {\n const parsedUrl = parseUrl(url);\n if (parsedUrl) {\n const { origin, pathname } = parsedUrl;\n report[origin] ??= {};\n report[origin][pathname] = stats;\n }\n }\n\n for (const [host, hostStats] of Object.entries(report)) {\n report[host] = sortObject(hostStats);\n }\n report = sortObject(report);\n\n logger.debug(report, 'HTTP cache statistics');\n }\n}\n\ntype ObsoleteCacheStats = Record<\n string,\n {\n callsite?: string;\n count: number;\n }\n>;\n\n/* v8 ignore start: temporary code */\nexport class ObsoleteCacheHitLogger {\n static getData(): ObsoleteCacheStats {\n return memCache.get<ObsoleteCacheStats>('obsolete-cache-stats') ?? {};\n }\n\n private static getCallsite(): string | undefined {\n const _prepareStackTrace = Error.prepareStackTrace;\n try {\n let result: string | undefined;\n Error.prepareStackTrace = (_, stack) => {\n result = stack\n .find((frame) => {\n const callsite = frame.toString();\n return (\n !callsite.includes('lib/util/http') &&\n !callsite.includes('lib/util/stats') &&\n !callsite.includes('(node:')\n );\n })\n ?.toString()\n ?.replace(/:\\d+(?::\\d+)?\\)$/, ')');\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n new Error().stack;\n\n return result;\n } finally {\n Error.prepareStackTrace = _prepareStackTrace;\n }\n }\n\n static write(url: string): void {\n const data = this.getData();\n if (!data[url]) {\n const callsite = this.getCallsite();\n data[url] = { callsite, count: 0 };\n }\n data[url].count++;\n memCache.set('obsolete-cache-stats', data);\n }\n\n static report(): void {\n const hits = this.getData();\n logger.debug(\n { count: Object.keys(hits).length, hits },\n 'Cache fallback URLs',\n );\n }\n}\n/* v8 ignore stop: temporary code */\n"]}
|
@@ -34,8 +34,8 @@ async function getParsedContent(file) {
|
|
34
34
|
// use file url paths to avoid issues with windows paths
|
35
35
|
// typescript does not support file URL for import
|
36
36
|
const tmpConfig = await import((0, url_1.pathToFileURL)(absoluteFilePath).href);
|
37
|
-
/* v8 ignore next
|
38
|
-
let config = tmpConfig.default
|
37
|
+
/* v8 ignore next -- not testable */
|
38
|
+
let config = tmpConfig.default ?? tmpConfig;
|
39
39
|
// Allow the config to be a function
|
40
40
|
if (is_1.default.function(config)) {
|
41
41
|
config = config();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../../lib/workers/global/config/parse/file.ts"],"names":[],"mappings":";;AAYA,4CAkCC;AAED,8BA6DC;AAED,wDAwBC;;AAvID,6BAAoC;AACpC,kEAAkC;AAClC,gEAA0B;AAC1B,0DAA0B;AAC1B,0DAA0B;AAE1B,+CAA4C;AAC5C,oDAAoD;AACpD,4CAAqD;AACrD,gDAAwD;AACxD,iCAAkD;AAE3C,KAAK,UAAU,gBAAgB,CAAC,IAAY;IACjD,IAAI,eAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,aAAa,EAAE,CAAC;QAC3C,OAAO,eAAK,CAAC,KAAK,CAAC,MAAM,IAAA,mBAAc,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,QAAQ,eAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,KAAK,OAAO,CAAC;QACb,KAAK,MAAM;YACT,OAAO,IAAA,sBAAe,EAAC,MAAM,IAAA,mBAAc,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7D,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO;YACV,OAAO,IAAA,kBAAS,EACd,MAAM,IAAA,mBAAc,EAAC,IAAI,EAAE,MAAM,CAAC,EAClC,IAAI,CACa,CAAC;QACtB,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,MAAM,gBAAgB,GAAG,eAAK,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC7C,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC;YAC/B,wDAAwD;YACxD,kDAAkD;YAClD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,IAAA,mBAAa,EAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC;YACrE,
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../../../../lib/workers/global/config/parse/file.ts"],"names":[],"mappings":"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","sourcesContent":["import { pathToFileURL } from 'url';\nimport is from '@sindresorhus/is';\nimport fs from 'fs-extra';\nimport JSON5 from 'json5';\nimport upath from 'upath';\nimport type { AllConfig, RenovateConfig } from '../../../../config/types';\nimport { logger } from '../../../../logger';\nimport { parseJson } from '../../../../util/common';\nimport { readSystemFile } from '../../../../util/fs';\nimport { parseSingleYaml } from '../../../../util/yaml';\nimport { migrateAndValidateConfig } from './util';\n\nexport async function getParsedContent(file: string): Promise<RenovateConfig> {\n if (upath.basename(file) === '.renovaterc') {\n return JSON5.parse(await readSystemFile(file, 'utf8'));\n }\n switch (upath.extname(file)) {\n case '.yaml':\n case '.yml':\n return parseSingleYaml(await readSystemFile(file, 'utf8'));\n case '.json5':\n case '.json':\n return parseJson(\n await readSystemFile(file, 'utf8'),\n file,\n ) as RenovateConfig;\n case '.cjs':\n case '.mjs':\n case '.js': {\n const absoluteFilePath = upath.isAbsolute(file)\n ? file\n : `${process.cwd()}/${file}`;\n // use file url paths to avoid issues with windows paths\n // typescript does not support file URL for import\n const tmpConfig = await import(pathToFileURL(absoluteFilePath).href);\n /* v8 ignore next -- not testable */\n let config = tmpConfig.default ?? tmpConfig;\n // Allow the config to be a function\n if (is.function(config)) {\n config = config();\n }\n return config;\n }\n default:\n throw new Error('Unsupported file type');\n }\n}\n\nexport async function getConfig(env: NodeJS.ProcessEnv): Promise<AllConfig> {\n const configFile = env.RENOVATE_CONFIG_FILE ?? 'config.js';\n\n const configFileExists = await fs.pathExists(configFile);\n if (env.RENOVATE_CONFIG_FILE && !configFileExists) {\n logger.fatal(\n { configFile },\n `Custom config file specified in RENOVATE_CONFIG_FILE must exist`,\n );\n process.exit(1);\n }\n\n let config: AllConfig = {};\n\n if (!configFileExists) {\n logger.debug('No config file found on disk - skipping');\n return config;\n }\n\n logger.debug('Checking for config file in ' + configFile);\n try {\n config = await getParsedContent(configFile);\n } catch (err) {\n if (err instanceof SyntaxError || err instanceof TypeError) {\n logger.fatal({ error: err.stack }, 'Could not parse config file');\n process.exit(1);\n } else if (err instanceof ReferenceError) {\n logger.fatal(\n `Error parsing config file due to unresolved variable(s): ${err.message}`,\n );\n process.exit(1);\n } else if (err.message === 'Unsupported file type') {\n logger.fatal(err.message);\n process.exit(1);\n } else if (env.RENOVATE_CONFIG_FILE) {\n logger.debug({ err }, 'Parse error');\n logger.fatal('Error parsing config file');\n process.exit(1);\n }\n logger.debug('Error reading or parsing file - skipping');\n }\n\n if (is.nonEmptyObject(config.processEnv)) {\n const exportedKeys = [];\n for (const [key, value] of Object.entries(config.processEnv)) {\n if (!is.nonEmptyString(value)) {\n logger.error({ key }, 'processEnv value is not a string.');\n continue;\n }\n\n exportedKeys.push(key);\n process.env[key] = value;\n }\n logger.debug(\n { keys: exportedKeys },\n 'processEnv keys were exported to env',\n );\n delete config.processEnv;\n }\n\n return migrateAndValidateConfig(config, configFile);\n}\n\nexport async function deleteNonDefaultConfig(\n env: NodeJS.ProcessEnv,\n deleteConfigFile: boolean,\n): Promise<void> {\n const configFile = env.RENOVATE_CONFIG_FILE;\n\n if (is.undefined(configFile) || is.emptyStringOrWhitespace(configFile)) {\n return;\n }\n\n if (!deleteConfigFile) {\n return;\n }\n\n if (!(await fs.pathExists(configFile))) {\n return;\n }\n\n try {\n await fs.remove(configFile);\n logger.trace({ path: configFile }, 'config file successfully deleted');\n } catch (err) {\n logger.warn({ err }, 'error deleting config file');\n }\n}\n"]}
|
@@ -2,11 +2,13 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.parseConfigs = parseConfigs;
|
4
4
|
const tslib_1 = require("tslib");
|
5
|
+
const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
|
5
6
|
const defaultsParser = tslib_1.__importStar(require("../../../../config/defaults"));
|
6
7
|
const utils_1 = require("../../../../config/utils");
|
7
8
|
const logger_1 = require("../../../../logger");
|
8
9
|
const manager_1 = require("../../../../modules/manager");
|
9
10
|
const array_1 = require("../../../../util/array");
|
11
|
+
const env_1 = require("../../../../util/env");
|
10
12
|
const fs_1 = require("../../../../util/fs");
|
11
13
|
const sanitize_1 = require("../../../../util/sanitize");
|
12
14
|
const url_1 = require("../../../../util/url");
|
@@ -86,6 +88,9 @@ async function parseConfigs(env, argv) {
|
|
86
88
|
logger_1.logger.debug('Enabling onboardingNoDeps while in non-autodiscover mode');
|
87
89
|
config.onboardingNoDeps = 'enabled';
|
88
90
|
}
|
91
|
+
if (is_1.default.nonEmptyObject(config.customEnvVariables)) {
|
92
|
+
(0, env_1.setCustomEnv)(config.customEnvVariables);
|
93
|
+
}
|
89
94
|
return config;
|
90
95
|
}
|
91
96
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/workers/global/config/parse/index.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/workers/global/config/parse/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport * as defaultsParser from '../../../../config/defaults';\nimport type { AllConfig } from '../../../../config/types';\nimport { mergeChildConfig } from '../../../../config/utils';\nimport { logger, setContext } from '../../../../logger';\nimport { detectAllGlobalConfig } from '../../../../modules/manager';\nimport { coerceArray } from '../../../../util/array';\nimport { setCustomEnv } from '../../../../util/env';\nimport { readSystemFile } from '../../../../util/fs';\nimport { addSecretForSanitizing } from '../../../../util/sanitize';\nimport { ensureTrailingSlash } from '../../../../util/url';\nimport * as cliParser from './cli';\nimport * as codespaces from './codespaces';\nimport * as envParser from './env';\nimport * as fileParser from './file';\nimport { hostRulesFromEnv } from './host-rules-from-env';\n\nexport async function parseConfigs(\n env: NodeJS.ProcessEnv,\n argv: string[],\n): Promise<AllConfig> {\n logger.debug('Parsing configs');\n\n // Get configs\n const defaultConfig = defaultsParser.getConfig();\n const fileConfig = await fileParser.getConfig(env);\n const cliConfig = cliParser.getConfig(argv);\n const envConfig = await envParser.getConfig(env);\n\n let config: AllConfig = mergeChildConfig(fileConfig, envConfig);\n config = mergeChildConfig(config, cliConfig);\n\n config = await codespaces.setConfig(config);\n\n const combinedConfig = config;\n\n config = mergeChildConfig(defaultConfig, config);\n\n if (config.forceCli) {\n const forcedCli = { ...cliConfig };\n delete forcedCli.token;\n delete forcedCli.hostRules;\n if (config.force) {\n config.force = { ...config.force, ...forcedCli };\n } else {\n config.force = forcedCli;\n }\n }\n\n if (!config.privateKey && config.privateKeyPath) {\n config.privateKey = await readSystemFile(config.privateKeyPath, 'utf8');\n delete config.privateKeyPath;\n }\n\n if (!config.privateKeyOld && config.privateKeyPathOld) {\n config.privateKeyOld = await readSystemFile(\n config.privateKeyPathOld,\n 'utf8',\n );\n delete config.privateKeyPathOld;\n }\n\n addSecretForSanitizing(config.privateKey, 'global');\n addSecretForSanitizing(config.privateKeyOld, 'global');\n\n if (config.logContext) {\n // This only has an effect if logContext was defined via file or CLI, otherwise it would already have been detected in env\n setContext(config.logContext);\n }\n\n logger.trace({ config: defaultConfig }, 'Default config');\n logger.debug({ config: fileConfig }, 'File config');\n logger.debug({ config: cliConfig }, 'CLI config');\n logger.debug({ config: envConfig }, 'Env config');\n logger.debug({ config: combinedConfig }, 'Combined config');\n\n if (config.detectGlobalManagerConfig) {\n logger.debug('Detecting global manager config');\n const globalManagerConfig = await detectAllGlobalConfig();\n logger.debug({ config: globalManagerConfig }, 'Global manager config');\n config = mergeChildConfig(config, globalManagerConfig);\n }\n\n if (config.detectHostRulesFromEnv) {\n const hostRules = hostRulesFromEnv(env);\n config.hostRules = [...coerceArray(config.hostRules), ...hostRules];\n }\n // Get global config\n logger.trace({ config }, 'Full config');\n\n // Massage endpoint to have a trailing slash\n if (config.endpoint) {\n logger.debug('Adding trailing slash to endpoint');\n config.endpoint = ensureTrailingSlash(config.endpoint);\n }\n\n // Massage forkProcessing\n if (!config.autodiscover && config.forkProcessing !== 'disabled') {\n logger.debug('Enabling forkProcessing while in non-autodiscover mode');\n config.forkProcessing = 'enabled';\n }\n\n // Only try deletion if RENOVATE_CONFIG_FILE is set\n await fileParser.deleteNonDefaultConfig(env, !!config.deleteConfigFile);\n\n // Massage onboardingNoDeps\n if (!config.autodiscover && config.onboardingNoDeps !== 'disabled') {\n logger.debug('Enabling onboardingNoDeps while in non-autodiscover mode');\n config.onboardingNoDeps = 'enabled';\n }\n\n if (is.nonEmptyObject(config.customEnvVariables)) {\n setCustomEnv(config.customEnvVariables);\n }\n\n return config;\n}\n"]}
|
@@ -86,7 +86,7 @@ async function generateBranchCache(branch) {
|
|
86
86
|
};
|
87
87
|
}
|
88
88
|
catch (error) {
|
89
|
-
const err = error.err
|
89
|
+
const err = error.err ?? error; // external host error nests err
|
90
90
|
const errCodes = [401, 404];
|
91
91
|
// istanbul ignore if
|
92
92
|
if (errCodes.includes(err.response?.statusCode)) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../lib/workers/repository/cache.ts"],"names":[],"mappings":"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","sourcesContent":["import { REPOSITORY_CHANGED } from '../../constants/error-messages';\nimport { logger } from '../../logger';\nimport { platform } from '../../modules/platform';\nimport { scm } from '../../modules/platform/scm';\nimport { getCache } from '../../util/cache/repository';\nimport type {\n BranchCache,\n BranchUpgradeCache,\n} from '../../util/cache/repository/types';\nimport { getCachedBehindBaseResult } from '../../util/git/behind-base-branch-cache';\nimport { getCachedConflictResult } from '../../util/git/conflicts-cache';\nimport { getCachedModifiedResult } from '../../util/git/modified-cache';\nimport { getCachedPristineResult } from '../../util/git/pristine';\nimport type { BranchConfig, BranchUpgradeConfig } from '../types';\nimport { getPrCache } from './update/pr/pr-cache';\n\nfunction generateBranchUpgradeCache(\n upgrade: BranchUpgradeConfig,\n): BranchUpgradeCache {\n const {\n datasource,\n depName,\n depType,\n displayPending,\n packageName,\n fixedVersion,\n currentVersion,\n newVersion,\n currentValue,\n newValue,\n currentDigest,\n newDigest,\n packageFile,\n sourceUrl,\n remediationNotPossible,\n updateType,\n } = upgrade;\n const result: BranchUpgradeCache = {\n datasource,\n depName,\n depType,\n displayPending,\n fixedVersion,\n currentVersion,\n currentValue,\n newValue,\n newVersion,\n currentDigest,\n newDigest,\n packageFile,\n sourceUrl,\n remediationNotPossible,\n updateType,\n };\n if (packageName) {\n result.packageName = packageName;\n }\n return result;\n}\n\nasync function generateBranchCache(\n branch: BranchConfig,\n): Promise<BranchCache | null> {\n const { baseBranch, branchName, prBlockedBy, prTitle, result } = branch;\n try {\n const branchSha = await scm.getBranchCommit(branchName);\n const baseBranchSha = await scm.getBranchCommit(baseBranch);\n const pristine = getCachedPristineResult(branchName);\n let prNo = null;\n let isModified: boolean | undefined;\n let isBehindBase: boolean | undefined;\n let isConflicted: boolean | undefined;\n if (baseBranchSha && branchSha) {\n const branchPr = await platform.getBranchPr(branchName, baseBranch);\n if (branchPr) {\n prNo = branchPr.number;\n }\n isModified = getCachedModifiedResult(branchName, branchSha) ?? undefined;\n isBehindBase =\n getCachedBehindBaseResult(\n branchName,\n branchSha,\n baseBranch,\n baseBranchSha,\n ) ?? undefined;\n isConflicted =\n getCachedConflictResult(\n branchName,\n branchSha,\n baseBranch,\n baseBranchSha,\n ) ?? undefined;\n } else if (baseBranchSha && !branchSha && branch.prNo) {\n // if branch was deleted/ PR exists and ignored\n prNo = branch.prNo;\n }\n\n const automerge = !!branch.automerge;\n const upgrades: BranchUpgradeCache[] = branch.upgrades\n ? branch.upgrades.map(generateBranchUpgradeCache)\n : [];\n const commitFingerprint = branch.commitFingerprint;\n const prCache = getPrCache(branchName);\n\n return {\n automerge,\n baseBranchSha,\n baseBranch,\n commitFingerprint,\n branchName,\n isBehindBase,\n isConflicted,\n isModified,\n prBlockedBy,\n pristine,\n prCache,\n prNo,\n prTitle,\n result,\n sha: branchSha,\n upgrades,\n };\n } catch (error) {\n const err = error.err
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../lib/workers/repository/cache.ts"],"names":[],"mappings":"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","sourcesContent":["import { REPOSITORY_CHANGED } from '../../constants/error-messages';\nimport { logger } from '../../logger';\nimport { platform } from '../../modules/platform';\nimport { scm } from '../../modules/platform/scm';\nimport { getCache } from '../../util/cache/repository';\nimport type {\n BranchCache,\n BranchUpgradeCache,\n} from '../../util/cache/repository/types';\nimport { getCachedBehindBaseResult } from '../../util/git/behind-base-branch-cache';\nimport { getCachedConflictResult } from '../../util/git/conflicts-cache';\nimport { getCachedModifiedResult } from '../../util/git/modified-cache';\nimport { getCachedPristineResult } from '../../util/git/pristine';\nimport type { BranchConfig, BranchUpgradeConfig } from '../types';\nimport { getPrCache } from './update/pr/pr-cache';\n\nfunction generateBranchUpgradeCache(\n upgrade: BranchUpgradeConfig,\n): BranchUpgradeCache {\n const {\n datasource,\n depName,\n depType,\n displayPending,\n packageName,\n fixedVersion,\n currentVersion,\n newVersion,\n currentValue,\n newValue,\n currentDigest,\n newDigest,\n packageFile,\n sourceUrl,\n remediationNotPossible,\n updateType,\n } = upgrade;\n const result: BranchUpgradeCache = {\n datasource,\n depName,\n depType,\n displayPending,\n fixedVersion,\n currentVersion,\n currentValue,\n newValue,\n newVersion,\n currentDigest,\n newDigest,\n packageFile,\n sourceUrl,\n remediationNotPossible,\n updateType,\n };\n if (packageName) {\n result.packageName = packageName;\n }\n return result;\n}\n\nasync function generateBranchCache(\n branch: BranchConfig,\n): Promise<BranchCache | null> {\n const { baseBranch, branchName, prBlockedBy, prTitle, result } = branch;\n try {\n const branchSha = await scm.getBranchCommit(branchName);\n const baseBranchSha = await scm.getBranchCommit(baseBranch);\n const pristine = getCachedPristineResult(branchName);\n let prNo = null;\n let isModified: boolean | undefined;\n let isBehindBase: boolean | undefined;\n let isConflicted: boolean | undefined;\n if (baseBranchSha && branchSha) {\n const branchPr = await platform.getBranchPr(branchName, baseBranch);\n if (branchPr) {\n prNo = branchPr.number;\n }\n isModified = getCachedModifiedResult(branchName, branchSha) ?? undefined;\n isBehindBase =\n getCachedBehindBaseResult(\n branchName,\n branchSha,\n baseBranch,\n baseBranchSha,\n ) ?? undefined;\n isConflicted =\n getCachedConflictResult(\n branchName,\n branchSha,\n baseBranch,\n baseBranchSha,\n ) ?? undefined;\n } else if (baseBranchSha && !branchSha && branch.prNo) {\n // if branch was deleted/ PR exists and ignored\n prNo = branch.prNo;\n }\n\n const automerge = !!branch.automerge;\n const upgrades: BranchUpgradeCache[] = branch.upgrades\n ? branch.upgrades.map(generateBranchUpgradeCache)\n : [];\n const commitFingerprint = branch.commitFingerprint;\n const prCache = getPrCache(branchName);\n\n return {\n automerge,\n baseBranchSha,\n baseBranch,\n commitFingerprint,\n branchName,\n isBehindBase,\n isConflicted,\n isModified,\n prBlockedBy,\n pristine,\n prCache,\n prNo,\n prTitle,\n result,\n sha: branchSha,\n upgrades,\n };\n } catch (error) {\n const err = error.err ?? error; // external host error nests err\n const errCodes = [401, 404];\n // istanbul ignore if\n if (errCodes.includes(err.response?.statusCode)) {\n logger.warn({ err, branchName }, 'HTTP error generating branch cache');\n return null;\n }\n if (err.message === REPOSITORY_CHANGED) {\n throw err;\n }\n logger.error({ err, branchName }, 'Error generating branch cache');\n return null;\n }\n}\n\nexport async function setBranchCache(branches: BranchConfig[]): Promise<void> {\n const branchCaches: BranchCache[] = [];\n for (const branch of branches) {\n const branchCache = await generateBranchCache(branch);\n if (branchCache) {\n branchCaches.push(branchCache);\n }\n }\n getCache().branches = branchCaches;\n}\n"]}
|
@@ -23,8 +23,10 @@ const prettierConfigFilenames = new Set([
|
|
23
23
|
'.prettierrc.json5',
|
24
24
|
'.prettierrc.js',
|
25
25
|
'.prettierrc.cjs',
|
26
|
+
'.prettierrc.mjs',
|
26
27
|
'prettier.config.js',
|
27
28
|
'prettier.config.cjs',
|
29
|
+
'prettier.config.mjs',
|
28
30
|
'.prettierrc.toml',
|
29
31
|
]);
|
30
32
|
async function applyPrettierFormatting(filename, content, parser, indent) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"migrated-data.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/config-migration/branch/migrated-data.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"migrated-data.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/config-migration/branch/migrated-data.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport detectIndent from 'detect-indent';\nimport JSON5 from 'json5';\nimport type { BuiltInParserName, Options } from 'prettier';\nimport upath from 'upath';\nimport { migrateConfig } from '../../../../config/migration';\nimport { prettier } from '../../../../expose.cjs';\nimport { logger } from '../../../../logger';\nimport { platform } from '../../../../modules/platform';\nimport { scm } from '../../../../modules/platform/scm';\nimport { readLocalFile } from '../../../../util/fs';\nimport { EditorConfig } from '../../../../util/json-writer';\nimport { detectRepoFileConfig } from '../../init/merge';\n\nexport interface MigratedData {\n content: string;\n filename: string;\n indent: Indent;\n}\n\ninterface Indent {\n amount: number;\n indent: string;\n type?: string;\n}\n\nconst prettierConfigFilenames = new Set([\n '.prettierrc',\n '.prettierrc.json',\n '.prettierrc.yml',\n '.prettierrc.yaml',\n '.prettierrc.json5',\n '.prettierrc.js',\n '.prettierrc.cjs',\n '.prettierrc.mjs',\n 'prettier.config.js',\n 'prettier.config.cjs',\n 'prettier.config.mjs',\n '.prettierrc.toml',\n]);\n\nexport type PrettierParser = BuiltInParserName;\n\nexport async function applyPrettierFormatting(\n filename: string,\n content: string,\n parser: PrettierParser,\n indent?: Indent,\n): Promise<string> {\n try {\n logger.trace('applyPrettierFormatting - START');\n const fileList = await scm.getFileList();\n let prettierExists = fileList.some((file) =>\n prettierConfigFilenames.has(file),\n );\n\n const editorconfigExists = fileList.some(\n (file) => file === '.editorconfig',\n );\n\n if (!prettierExists) {\n try {\n const packageJsonContent = await readLocalFile('package.json', 'utf8');\n prettierExists =\n packageJsonContent && JSON.parse(packageJsonContent).prettier;\n } catch {\n logger.warn(\n 'applyPrettierFormatting - Error processing package.json file',\n );\n }\n }\n\n if (!prettierExists) {\n return content;\n }\n\n const options: Options = {\n parser,\n tabWidth: indent?.amount === 0 ? 2 : indent?.amount,\n useTabs: indent?.type === 'tab',\n };\n\n if (editorconfigExists) {\n const editorconf = await EditorConfig.getCodeFormat(filename);\n\n // https://github.com/prettier/prettier/blob/bab892242a1f9d8fcae50514b9304bf03f2e25ab/src/config/editorconfig/editorconfig-to-prettier.js#L47\n if (editorconf.maxLineLength) {\n options.printWidth = is.number(editorconf.maxLineLength)\n ? editorconf.maxLineLength\n : Number.POSITIVE_INFINITY;\n }\n\n // TODO: support editor config `indent_style` and `indent_size`\n }\n\n return prettier().format(content, options);\n } finally {\n logger.trace('applyPrettierFormatting - END');\n }\n}\n\nexport class MigratedDataFactory {\n // singleton\n private static data: MigratedData | null;\n\n static async getAsync(): Promise<MigratedData | null> {\n if (this.data) {\n return this.data;\n }\n const migrated = await this.build();\n\n if (!migrated) {\n return null;\n }\n\n this.data = migrated;\n return this.data;\n }\n\n static reset(): void {\n this.data = null;\n }\n\n static applyPrettierFormatting({\n content,\n filename,\n indent,\n }: MigratedData): Promise<string> {\n const parser = upath.extname(filename).replace('.', '') as PrettierParser;\n return applyPrettierFormatting(filename, content, parser, indent);\n }\n\n private static async build(): Promise<MigratedData | null> {\n let res: MigratedData | null = null;\n try {\n const { configFileName, configFileParsed = {} } =\n await detectRepoFileConfig();\n\n // get migrated config\n const { isMigrated, migratedConfig } = migrateConfig(configFileParsed);\n if (!isMigrated) {\n return null;\n }\n\n delete migratedConfig.errors;\n delete migratedConfig.warnings;\n\n // TODO #22198\n const raw = await platform.getRawFile(configFileName!);\n const indent = detectIndent(raw ?? '');\n // indent defaults to 2 spaces\n const indentSpace = indent.indent ?? ' ';\n const filename = configFileName!;\n let content: string;\n\n if (filename.endsWith('.json5')) {\n content = JSON5.stringify(migratedConfig, undefined, indentSpace);\n } else {\n content = JSON.stringify(migratedConfig, undefined, indentSpace);\n }\n\n if (!content.endsWith('\\n')) {\n content += '\\n';\n }\n\n res = { content, filename, indent };\n } catch (err) {\n logger.debug(\n { err },\n 'MigratedDataFactory.getAsync() Error initializing renovate MigratedData',\n );\n }\n return res;\n }\n}\n"]}
|
@@ -122,6 +122,7 @@ async function renovateRepository(repoConfig, canRetry = true) {
|
|
122
122
|
stats_1.HttpStats.report();
|
123
123
|
stats_1.HttpCacheStats.report();
|
124
124
|
stats_1.LookupStats.report();
|
125
|
+
stats_1.ObsoleteCacheHitLogger.report();
|
125
126
|
const cloned = (0, git_1.isCloned)();
|
126
127
|
logger_1.logger.info({ cloned, durationMs: splits.total }, 'Repository finished');
|
127
128
|
(0, remap_1.resetRepositoryLogLevelRemaps)();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/workers/repository/index.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'fs-extra';\nimport { GlobalConfig } from '../../config/global';\nimport { applySecretsToConfig } from '../../config/secrets';\nimport type { RenovateConfig } from '../../config/types';\nimport {\n REPOSITORY_DISABLED_BY_CONFIG,\n REPOSITORY_FORKED,\n REPOSITORY_NO_CONFIG,\n} from '../../constants/error-messages';\nimport { pkg } from '../../expose.cjs';\nimport { instrument } from '../../instrumentation';\nimport { addExtractionStats } from '../../instrumentation/reporting';\nimport { logger, setMeta } from '../../logger';\nimport { resetRepositoryLogLevelRemaps } from '../../logger/remap';\nimport { removeDanglingContainers } from '../../util/exec/docker';\nimport { deleteLocalFile, privateCacheDir } from '../../util/fs';\nimport { isCloned } from '../../util/git';\nimport { detectSemanticCommits } from '../../util/git/semantic';\nimport * as queue from '../../util/http/queue';\nimport * as throttle from '../../util/http/throttle';\nimport { addSplit, getSplits, splitInit } from '../../util/split';\nimport {\n DatasourceCacheStats,\n HttpCacheStats,\n HttpStats,\n LookupStats,\n PackageCacheStats,\n} from '../../util/stats';\nimport { setBranchCache } from './cache';\nimport { extractRepoProblems } from './common';\nimport { configMigration } from './config-migration';\nimport { ensureDependencyDashboard } from './dependency-dashboard';\nimport handleError from './error';\nimport { finalizeRepo } from './finalize';\nimport { pruneStaleBranches } from './finalize/prune';\nimport { initRepo } from './init';\nimport { OnboardingState } from './onboarding/common';\nimport { ensureOnboardingPr } from './onboarding/pr';\nimport { extractDependencies, updateRepo } from './process';\nimport type { ExtractResult } from './process/extract-update';\nimport type { ProcessResult } from './result';\nimport { processResult } from './result';\n\n// istanbul ignore next\nexport async function renovateRepository(\n repoConfig: RenovateConfig,\n canRetry = true,\n): Promise<ProcessResult | undefined> {\n splitInit();\n let config = GlobalConfig.set(\n applySecretsToConfig(repoConfig, undefined, false),\n );\n await removeDanglingContainers();\n setMeta({ repository: config.repository });\n logger.info({ renovateVersion: pkg.version }, 'Repository started');\n logger.trace({ config });\n let repoResult: ProcessResult | undefined;\n queue.clear();\n throttle.clear();\n const localDir = GlobalConfig.get('localDir')!;\n try {\n await fs.ensureDir(localDir);\n logger.debug('Using localDir: ' + localDir);\n config = await initRepo(config);\n addSplit('init');\n const performExtract =\n config.repoIsOnboarded! ||\n !OnboardingState.onboardingCacheValid ||\n OnboardingState.prUpdateRequested;\n const extractResult = performExtract\n ? await instrument('extract', () => extractDependencies(config))\n : emptyExtract(config);\n addExtractionStats(config, extractResult);\n\n const { branches, branchList, packageFiles } = extractResult;\n\n if (config.semanticCommits === 'auto') {\n config.semanticCommits = await detectSemanticCommits();\n }\n\n if (\n GlobalConfig.get('dryRun') !== 'lookup' &&\n GlobalConfig.get('dryRun') !== 'extract'\n ) {\n await instrument('onboarding', () =>\n ensureOnboardingPr(config, packageFiles, branches),\n );\n addSplit('onboarding');\n const res = await instrument('update', () =>\n updateRepo(config, branches),\n );\n setMeta({ repository: config.repository });\n addSplit('update');\n if (performExtract) {\n await setBranchCache(branches); // update branch cache if performed extraction\n }\n if (res === 'automerged') {\n if (canRetry) {\n logger.info('Restarting repository job after automerge result');\n const recursiveRes = await renovateRepository(repoConfig, false);\n return recursiveRes;\n }\n logger.debug(`Automerged but already retried once`);\n } else {\n const configMigrationRes = await configMigration(config, branchList);\n await ensureDependencyDashboard(\n config,\n branches,\n packageFiles,\n configMigrationRes,\n );\n }\n await finalizeRepo(config, branchList);\n // TODO #22198\n repoResult = processResult(config, res!);\n }\n printRepositoryProblems(config.repository);\n } catch (err) /* istanbul ignore next */ {\n setMeta({ repository: config.repository });\n const errorRes = await handleError(config, err);\n const pruneWhenErrors = [\n REPOSITORY_DISABLED_BY_CONFIG,\n REPOSITORY_FORKED,\n REPOSITORY_NO_CONFIG,\n ];\n if (pruneWhenErrors.includes(errorRes)) {\n await pruneStaleBranches(config, []);\n }\n repoResult = processResult(config, errorRes);\n }\n if (localDir && !repoConfig.persistRepoData) {\n try {\n await deleteLocalFile('.');\n } catch (err) /* istanbul ignore if */ {\n logger.warn({ err }, 'localDir deletion error');\n }\n }\n try {\n await fs.remove(privateCacheDir());\n } catch (err) /* istanbul ignore if */ {\n logger.warn({ err }, 'privateCacheDir deletion error');\n }\n const splits = getSplits();\n logger.debug(splits, 'Repository timing splits (milliseconds)');\n PackageCacheStats.report();\n DatasourceCacheStats.report();\n HttpStats.report();\n HttpCacheStats.report();\n LookupStats.report();\n const cloned = isCloned();\n logger.info({ cloned, durationMs: splits.total }, 'Repository finished');\n resetRepositoryLogLevelRemaps();\n return repoResult;\n}\n\n// istanbul ignore next: renovateRepository is ignored\nfunction emptyExtract(config: RenovateConfig): ExtractResult {\n return {\n branches: [],\n branchList: [config.onboardingBranch!], // to prevent auto closing\n packageFiles: {},\n };\n}\n\nexport function printRepositoryProblems(repository: string | undefined): void {\n const repoProblems = extractRepoProblems(repository);\n if (repoProblems.size) {\n logger.debug(\n { repoProblems: Array.from(repoProblems) },\n 'repository problems',\n );\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/workers/repository/index.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'fs-extra';\nimport { GlobalConfig } from '../../config/global';\nimport { applySecretsToConfig } from '../../config/secrets';\nimport type { RenovateConfig } from '../../config/types';\nimport {\n REPOSITORY_DISABLED_BY_CONFIG,\n REPOSITORY_FORKED,\n REPOSITORY_NO_CONFIG,\n} from '../../constants/error-messages';\nimport { pkg } from '../../expose.cjs';\nimport { instrument } from '../../instrumentation';\nimport { addExtractionStats } from '../../instrumentation/reporting';\nimport { logger, setMeta } from '../../logger';\nimport { resetRepositoryLogLevelRemaps } from '../../logger/remap';\nimport { removeDanglingContainers } from '../../util/exec/docker';\nimport { deleteLocalFile, privateCacheDir } from '../../util/fs';\nimport { isCloned } from '../../util/git';\nimport { detectSemanticCommits } from '../../util/git/semantic';\nimport * as queue from '../../util/http/queue';\nimport * as throttle from '../../util/http/throttle';\nimport { addSplit, getSplits, splitInit } from '../../util/split';\nimport {\n DatasourceCacheStats,\n HttpCacheStats,\n HttpStats,\n LookupStats,\n ObsoleteCacheHitLogger,\n PackageCacheStats,\n} from '../../util/stats';\nimport { setBranchCache } from './cache';\nimport { extractRepoProblems } from './common';\nimport { configMigration } from './config-migration';\nimport { ensureDependencyDashboard } from './dependency-dashboard';\nimport handleError from './error';\nimport { finalizeRepo } from './finalize';\nimport { pruneStaleBranches } from './finalize/prune';\nimport { initRepo } from './init';\nimport { OnboardingState } from './onboarding/common';\nimport { ensureOnboardingPr } from './onboarding/pr';\nimport { extractDependencies, updateRepo } from './process';\nimport type { ExtractResult } from './process/extract-update';\nimport type { ProcessResult } from './result';\nimport { processResult } from './result';\n\n// istanbul ignore next\nexport async function renovateRepository(\n repoConfig: RenovateConfig,\n canRetry = true,\n): Promise<ProcessResult | undefined> {\n splitInit();\n let config = GlobalConfig.set(\n applySecretsToConfig(repoConfig, undefined, false),\n );\n await removeDanglingContainers();\n setMeta({ repository: config.repository });\n logger.info({ renovateVersion: pkg.version }, 'Repository started');\n logger.trace({ config });\n let repoResult: ProcessResult | undefined;\n queue.clear();\n throttle.clear();\n const localDir = GlobalConfig.get('localDir')!;\n try {\n await fs.ensureDir(localDir);\n logger.debug('Using localDir: ' + localDir);\n config = await initRepo(config);\n addSplit('init');\n const performExtract =\n config.repoIsOnboarded! ||\n !OnboardingState.onboardingCacheValid ||\n OnboardingState.prUpdateRequested;\n const extractResult = performExtract\n ? await instrument('extract', () => extractDependencies(config))\n : emptyExtract(config);\n addExtractionStats(config, extractResult);\n\n const { branches, branchList, packageFiles } = extractResult;\n\n if (config.semanticCommits === 'auto') {\n config.semanticCommits = await detectSemanticCommits();\n }\n\n if (\n GlobalConfig.get('dryRun') !== 'lookup' &&\n GlobalConfig.get('dryRun') !== 'extract'\n ) {\n await instrument('onboarding', () =>\n ensureOnboardingPr(config, packageFiles, branches),\n );\n addSplit('onboarding');\n const res = await instrument('update', () =>\n updateRepo(config, branches),\n );\n setMeta({ repository: config.repository });\n addSplit('update');\n if (performExtract) {\n await setBranchCache(branches); // update branch cache if performed extraction\n }\n if (res === 'automerged') {\n if (canRetry) {\n logger.info('Restarting repository job after automerge result');\n const recursiveRes = await renovateRepository(repoConfig, false);\n return recursiveRes;\n }\n logger.debug(`Automerged but already retried once`);\n } else {\n const configMigrationRes = await configMigration(config, branchList);\n await ensureDependencyDashboard(\n config,\n branches,\n packageFiles,\n configMigrationRes,\n );\n }\n await finalizeRepo(config, branchList);\n // TODO #22198\n repoResult = processResult(config, res!);\n }\n printRepositoryProblems(config.repository);\n } catch (err) /* istanbul ignore next */ {\n setMeta({ repository: config.repository });\n const errorRes = await handleError(config, err);\n const pruneWhenErrors = [\n REPOSITORY_DISABLED_BY_CONFIG,\n REPOSITORY_FORKED,\n REPOSITORY_NO_CONFIG,\n ];\n if (pruneWhenErrors.includes(errorRes)) {\n await pruneStaleBranches(config, []);\n }\n repoResult = processResult(config, errorRes);\n }\n if (localDir && !repoConfig.persistRepoData) {\n try {\n await deleteLocalFile('.');\n } catch (err) /* istanbul ignore if */ {\n logger.warn({ err }, 'localDir deletion error');\n }\n }\n try {\n await fs.remove(privateCacheDir());\n } catch (err) /* istanbul ignore if */ {\n logger.warn({ err }, 'privateCacheDir deletion error');\n }\n const splits = getSplits();\n logger.debug(splits, 'Repository timing splits (milliseconds)');\n PackageCacheStats.report();\n DatasourceCacheStats.report();\n HttpStats.report();\n HttpCacheStats.report();\n LookupStats.report();\n ObsoleteCacheHitLogger.report();\n const cloned = isCloned();\n logger.info({ cloned, durationMs: splits.total }, 'Repository finished');\n resetRepositoryLogLevelRemaps();\n return repoResult;\n}\n\n// istanbul ignore next: renovateRepository is ignored\nfunction emptyExtract(config: RenovateConfig): ExtractResult {\n return {\n branches: [],\n branchList: [config.onboardingBranch!], // to prevent auto closing\n packageFiles: {},\n };\n}\n\nexport function printRepositoryProblems(repository: string | undefined): void {\n const repoProblems = extractRepoProblems(repository);\n if (repoProblems.size) {\n logger.debug(\n { repoProblems: Array.from(repoProblems) },\n 'repository problems',\n );\n }\n}\n"]}
|
@@ -24,13 +24,14 @@ const scm_1 = require("../../../modules/platform/scm");
|
|
24
24
|
const external_host_error_1 = require("../../../types/errors/external-host-error");
|
25
25
|
const repository_1 = require("../../../util/cache/repository");
|
26
26
|
const common_1 = require("../../../util/common");
|
27
|
+
const env_1 = require("../../../util/env");
|
27
28
|
const fs_1 = require("../../../util/fs");
|
28
29
|
const hostRules = tslib_1.__importStar(require("../../../util/host-rules"));
|
29
30
|
const queue = tslib_1.__importStar(require("../../../util/http/queue"));
|
30
31
|
const throttle = tslib_1.__importStar(require("../../../util/http/throttle"));
|
31
32
|
const mask_1 = require("../../../util/mask");
|
32
33
|
const regex_1 = require("../../../util/regex");
|
33
|
-
const
|
34
|
+
const env_2 = require("../../global/config/parse/env");
|
34
35
|
const config_2 = require("../onboarding/branch/config");
|
35
36
|
const create_1 = require("../onboarding/branch/create");
|
36
37
|
const onboarding_branch_cache_1 = require("../onboarding/branch/onboarding-branch-cache");
|
@@ -170,7 +171,7 @@ async function mergeRenovateConfig(config) {
|
|
170
171
|
configFileParsed: await (0, config_2.getOnboardingConfig)(config),
|
171
172
|
};
|
172
173
|
}
|
173
|
-
const configFileParsed = repoConfig?.configFileParsed
|
174
|
+
const configFileParsed = repoConfig?.configFileParsed ?? {};
|
174
175
|
const configFileAndEnv = await mergeStaticRepoEnvConfig(configFileParsed, process.env);
|
175
176
|
if (is_1.default.nonEmptyArray(returnConfig.extends)) {
|
176
177
|
configFileAndEnv.extends = [
|
@@ -248,6 +249,8 @@ async function mergeRenovateConfig(config) {
|
|
248
249
|
if (returnConfig.ignorePaths?.length) {
|
249
250
|
logger_1.logger.debug({ ignorePaths: returnConfig.ignorePaths }, `Found repo ignorePaths`);
|
250
251
|
}
|
252
|
+
(0, env_1.setUserEnv)(returnConfig.env);
|
253
|
+
delete returnConfig.env;
|
251
254
|
return returnConfig;
|
252
255
|
}
|
253
256
|
/** needed when using portal secrets for npmToken */
|
@@ -274,7 +277,7 @@ function setNpmTokenInNpmrc(config) {
|
|
274
277
|
delete config.npmToken;
|
275
278
|
}
|
276
279
|
async function mergeStaticRepoEnvConfig(config, env) {
|
277
|
-
const repoEnvConfig = await (0,
|
280
|
+
const repoEnvConfig = await (0, env_2.parseAndValidateOrExit)(env, 'RENOVATE_STATIC_REPO_CONFIG');
|
278
281
|
if (!is_1.default.nonEmptyObject(repoEnvConfig)) {
|
279
282
|
return config;
|
280
283
|
}
|