renovate 40.0.0-next.9 → 40.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/decrypt/legacy.js +0 -1
- package/dist/config/decrypt/legacy.js.map +1 -1
- package/dist/config/decrypt.d.ts +3 -1
- package/dist/config/decrypt.js +56 -13
- package/dist/config/decrypt.js.map +1 -1
- package/dist/config/global.js +0 -1
- package/dist/config/global.js.map +1 -1
- package/dist/config/migrate-validate.js +3 -2
- package/dist/config/migrate-validate.js.map +1 -1
- package/dist/config/migration.js +2 -1
- package/dist/config/migration.js.map +1 -1
- package/dist/config/migrations/custom/rebase-stale-prs-migration.js +1 -1
- package/dist/config/migrations/custom/rebase-stale-prs-migration.js.map +1 -1
- package/dist/config/migrations/migrations-service.js +3 -2
- package/dist/config/migrations/migrations-service.js.map +1 -1
- package/dist/config/options/index.js +18 -11
- package/dist/config/options/index.js.map +1 -1
- package/dist/config/parse.js +2 -2
- package/dist/config/parse.js.map +1 -1
- package/dist/config/presets/common.js +1 -0
- package/dist/config/presets/common.js.map +1 -1
- package/dist/config/presets/gitea/index.js +0 -1
- package/dist/config/presets/gitea/index.js.map +1 -1
- package/dist/config/presets/github/index.js +4 -2
- package/dist/config/presets/github/index.js.map +1 -1
- package/dist/config/presets/gitlab/index.js +1 -1
- package/dist/config/presets/gitlab/index.js.map +1 -1
- package/dist/config/presets/http/index.js +2 -2
- package/dist/config/presets/http/index.js.map +1 -1
- package/dist/config/presets/index.js +0 -7
- package/dist/config/presets/index.js.map +1 -1
- package/dist/config/presets/internal/custom-managers.js +18 -4
- package/dist/config/presets/internal/custom-managers.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/index.js +1 -3
- package/dist/config/presets/internal/index.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/npm/index.js +4 -1
- package/dist/config/presets/npm/index.js.map +1 -1
- package/dist/config/presets/parse.js +2 -1
- package/dist/config/presets/parse.js.map +1 -1
- package/dist/config/schema.d.ts +2 -2
- package/dist/config/types.d.ts +4 -2
- package/dist/config/types.js.map +1 -1
- package/dist/config/validation.js +3 -5
- package/dist/config/validation.js.map +1 -1
- package/dist/config-validator.js +0 -1
- package/dist/config-validator.js.map +1 -1
- package/dist/constants/category.js +0 -1
- package/dist/constants/category.js.map +1 -1
- package/dist/constants/platforms.js +5 -1
- package/dist/constants/platforms.js.map +1 -1
- package/dist/data/monorepo.json +9 -2
- package/dist/data/replacements.json +13 -0
- package/dist/data/source-urls.json +1 -0
- package/dist/data-files.generated.js +2 -2
- package/dist/data-files.generated.js.map +1 -1
- package/dist/instrumentation/index.js +39 -15
- package/dist/instrumentation/index.js.map +1 -1
- package/dist/instrumentation/utils.js +1 -1
- package/dist/instrumentation/utils.js.map +1 -1
- package/dist/logger/cmd-serializer.js +0 -1
- package/dist/logger/cmd-serializer.js.map +1 -1
- package/dist/logger/config-serializer.js +0 -1
- package/dist/logger/config-serializer.js.map +1 -1
- package/dist/logger/index.js +1 -4
- package/dist/logger/index.js.map +1 -1
- package/dist/logger/once.js +4 -2
- package/dist/logger/once.js.map +1 -1
- package/dist/logger/pretty-stdout.js +0 -1
- package/dist/logger/pretty-stdout.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 +5 -10
- package/dist/logger/utils.js.map +1 -1
- package/dist/modules/datasource/api.js +4 -0
- package/dist/modules/datasource/api.js.map +1 -1
- package/dist/modules/datasource/artifactory/index.js +1 -2
- 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/azure-pipelines-tasks/index.js +15 -1
- package/dist/modules/datasource/azure-pipelines-tasks/index.js.map +1 -1
- package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +24 -0
- package/dist/modules/datasource/azure-pipelines-tasks/schema.js +3 -0
- package/dist/modules/datasource/azure-pipelines-tasks/schema.js.map +1 -1
- package/dist/modules/datasource/bazel/index.js +18 -2
- package/dist/modules/datasource/bazel/index.js.map +1 -1
- package/dist/modules/datasource/bazel/schema.d.ts +1 -0
- package/dist/modules/datasource/bazel/schema.js.map +1 -1
- package/dist/modules/datasource/bitbucket-server-tags/index.d.ts +19 -0
- package/dist/modules/datasource/bitbucket-server-tags/index.js +133 -0
- package/dist/modules/datasource/bitbucket-server-tags/index.js.map +1 -0
- package/dist/modules/datasource/bitbucket-server-tags/schema.d.ts +28 -0
- package/dist/modules/datasource/bitbucket-server-tags/schema.js +13 -0
- package/dist/modules/datasource/bitbucket-server-tags/schema.js.map +1 -0
- 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 +81 -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 +2 -4
- package/dist/modules/datasource/cpan/index.js.map +1 -1
- package/dist/modules/datasource/crate/index.js +3 -3
- package/dist/modules/datasource/crate/index.js.map +1 -1
- package/dist/modules/datasource/custom/formats/html.js +1 -1
- package/dist/modules/datasource/custom/formats/html.js.map +1 -1
- package/dist/modules/datasource/custom/formats/yaml.js +1 -1
- package/dist/modules/datasource/custom/formats/yaml.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 +22 -22
- 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.d.ts +4 -5
- package/dist/modules/datasource/deb/index.js +10 -11
- package/dist/modules/datasource/deb/index.js.map +1 -1
- package/dist/modules/datasource/deb/url.d.ts +3 -3
- package/dist/modules/datasource/deb/url.js +17 -13
- package/dist/modules/datasource/deb/url.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 +1 -1
- 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 +5 -2
- package/dist/modules/datasource/docker/common.js.map +1 -1
- package/dist/modules/datasource/docker/index.js +8 -6
- package/dist/modules/datasource/docker/index.js.map +1 -1
- package/dist/modules/datasource/docker/schema.d.ts +77 -101
- 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/schema.d.ts +1 -1
- package/dist/modules/datasource/galaxy-collection/schema.d.ts +8 -8
- 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/gitea-tags/schema.d.ts +4 -4
- package/dist/modules/datasource/github-release-attachments/index.js +2 -2
- package/dist/modules/datasource/github-release-attachments/index.js.map +1 -1
- package/dist/modules/datasource/github-runners/index.js +2 -2
- package/dist/modules/datasource/github-runners/index.js.map +1 -1
- package/dist/modules/datasource/github-tags/index.js +4 -1
- package/dist/modules/datasource/github-tags/index.js.map +1 -1
- 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/base.js +1 -1
- package/dist/modules/datasource/go/base.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/go/releases-goproxy.js +1 -1
- package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
- package/dist/modules/datasource/golang-version/index.js +2 -2
- 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/hex/schema.d.ts +11 -11
- package/dist/modules/datasource/hexpm-bob/index.js +1 -1
- package/dist/modules/datasource/hexpm-bob/index.js.map +1 -1
- package/dist/modules/datasource/index.js +46 -5
- 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.d.ts +2 -2
- package/dist/modules/datasource/maven/index.js +56 -33
- package/dist/modules/datasource/maven/index.js.map +1 -1
- package/dist/modules/datasource/maven/types.d.ts +7 -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 +94 -157
- package/dist/modules/datasource/maven/util.js.map +1 -1
- package/dist/modules/datasource/metadata.js +9 -1
- package/dist/modules/datasource/metadata.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/get.d.ts +0 -1
- package/dist/modules/datasource/npm/get.js +14 -68
- package/dist/modules/datasource/npm/get.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/npm/types.d.ts +0 -8
- package/dist/modules/datasource/npm/types.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/v2.js +1 -1
- package/dist/modules/datasource/nuget/v2.js.map +1 -1
- package/dist/modules/datasource/nuget/v3.js +8 -6
- 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 +32 -32
- package/dist/modules/datasource/pod/index.js +2 -2
- 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/pypi/index.js +1 -1
- package/dist/modules/datasource/pypi/index.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/ruby-version/index.js +1 -1
- package/dist/modules/datasource/ruby-version/index.js.map +1 -1
- package/dist/modules/datasource/rubygems/index.js +2 -2
- package/dist/modules/datasource/rubygems/index.js.map +1 -1
- package/dist/modules/datasource/rubygems/versions-endpoint-cache.js +2 -2
- package/dist/modules/datasource/rubygems/versions-endpoint-cache.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 +2 -3
- package/dist/modules/datasource/terraform-provider/index.js.map +1 -1
- package/dist/modules/datasource/types.d.ts +2 -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/argocd/schema.d.ts +22 -22
- 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 +32 -32
- package/dist/modules/manager/batect/schema.d.ts +4 -4
- package/dist/modules/manager/batect-wrapper/artifacts.js +1 -1
- package/dist/modules/manager/batect-wrapper/artifacts.js.map +1 -1
- package/dist/modules/manager/bazel/rules/docker.d.ts +6 -6
- package/dist/modules/manager/bazel/rules/git.d.ts +10 -10
- package/dist/modules/manager/bazel/rules/git.js +9 -2
- package/dist/modules/manager/bazel/rules/git.js.map +1 -1
- package/dist/modules/manager/bazel/rules/go.d.ts +5 -5
- package/dist/modules/manager/bazel/rules/maven.d.ts +7 -7
- package/dist/modules/manager/bazel/rules/oci.d.ts +6 -6
- package/dist/modules/manager/bazel-module/parser/fragments.d.ts +40 -40
- package/dist/modules/manager/bazel-module/parser/maven.d.ts +44 -90
- package/dist/modules/manager/bazel-module/parser/oci.d.ts +19 -42
- package/dist/modules/manager/bazel-module/rules.d.ts +50 -160
- package/dist/modules/manager/buildpacks/extract.d.ts +6 -1
- package/dist/modules/manager/buildpacks/extract.js +24 -14
- package/dist/modules/manager/buildpacks/extract.js.map +1 -1
- package/dist/modules/manager/bun/artifacts.js +0 -1
- package/dist/modules/manager/bun/artifacts.js.map +1 -1
- package/dist/modules/manager/bun/extract.d.ts +1 -0
- package/dist/modules/manager/bun/extract.js +53 -27
- package/dist/modules/manager/bun/extract.js.map +1 -1
- package/dist/modules/manager/bun/index.js +1 -1
- package/dist/modules/manager/bun/index.js.map +1 -1
- package/dist/modules/manager/bun/utils.d.ts +2 -0
- package/dist/modules/manager/bun/utils.js +22 -0
- package/dist/modules/manager/bun/utils.js.map +1 -0
- 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 +166 -166
- package/dist/modules/manager/circleci/extract.js +21 -30
- package/dist/modules/manager/circleci/extract.js.map +1 -1
- package/dist/modules/manager/circleci/schema.d.ts +33 -144
- package/dist/modules/manager/circleci/schema.js +21 -17
- package/dist/modules/manager/circleci/schema.js.map +1 -1
- 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 +32 -34
- 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 +18 -6
- package/dist/modules/manager/composer/utils.js.map +1 -1
- package/dist/modules/manager/conan/artifacts.d.ts +2 -0
- package/dist/modules/manager/conan/artifacts.js +76 -0
- package/dist/modules/manager/conan/artifacts.js.map +1 -0
- package/dist/modules/manager/conan/index.d.ts +2 -0
- package/dist/modules/manager/conan/index.js +4 -1
- package/dist/modules/manager/conan/index.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/crossplane/schema.d.ts +2 -2
- package/dist/modules/manager/custom/jsonata/schema.d.ts +21 -21
- 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 +35 -11
- 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/dockerfile/extract.js +2 -6
- package/dist/modules/manager/dockerfile/extract.js.map +1 -1
- package/dist/modules/manager/fingerprint.generated.js +86 -85
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/fleet/schema.d.ts +4 -4
- 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 +130 -154
- 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/glasskube/schema.d.ts +8 -8
- package/dist/modules/manager/gomod/artifacts-extra.js +12 -4
- package/dist/modules/manager/gomod/artifacts-extra.js.map +1 -1
- 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 +5 -3
- 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/extract.js +8 -13
- package/dist/modules/manager/gradle/extract.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 +17 -24
- package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
- package/dist/modules/manager/gradle/parser/registry-urls.js +46 -12
- package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
- package/dist/modules/manager/gradle/types.d.ts +1 -0
- package/dist/modules/manager/gradle/types.js.map +1 -1
- package/dist/modules/manager/gradle-wrapper/artifacts.js +1 -2
- 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/extract.d.ts +2 -2
- package/dist/modules/manager/maven/extract.js +14 -9
- package/dist/modules/manager/maven/extract.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/mise/extract.js +1 -1
- package/dist/modules/manager/mise/extract.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 +20 -20
- package/dist/modules/manager/nix/schema.js +1 -0
- package/dist/modules/manager/nix/schema.js.map +1 -1
- 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/common/package-file.js +1 -0
- package/dist/modules/manager/npm/extract/common/package-file.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/schema.d.ts +13 -13
- 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/extract.js +21 -18
- package/dist/modules/manager/nuget/extract.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/schema.d.ts +8 -8
- package/dist/modules/manager/nuget/util.js +4 -1
- package/dist/modules/manager/nuget/util.js.map +1 -1
- package/dist/modules/manager/ocb/schema.d.ts +6 -6
- package/dist/modules/manager/pep621/extract.js +19 -3
- package/dist/modules/manager/pep621/extract.js.map +1 -1
- package/dist/modules/manager/pep621/processors/pdm.js +3 -2
- package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
- package/dist/modules/manager/pep621/processors/uv.js +4 -1
- package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
- package/dist/modules/manager/pep621/schema.d.ts +341 -49
- package/dist/modules/manager/pep621/schema.js +3 -1
- package/dist/modules/manager/pep621/schema.js.map +1 -1
- package/dist/modules/manager/pep621/utils.js +1 -1
- package/dist/modules/manager/pep621/utils.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/pip_requirements/common.js +2 -6
- package/dist/modules/manager/pip_requirements/common.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 +78 -0
- package/dist/modules/manager/pixi/artifacts.js.map +1 -0
- package/dist/modules/manager/pixi/extract.d.ts +4 -0
- package/dist/modules/manager/pixi/extract.js +131 -0
- package/dist/modules/manager/pixi/extract.js.map +1 -0
- package/dist/modules/manager/pixi/index.d.ts +10 -0
- package/dist/modules/manager/pixi/index.js +20 -0
- package/dist/modules/manager/pixi/index.js.map +1 -0
- package/dist/modules/manager/pixi/schema.d.ts +405 -0
- package/dist/modules/manager/pixi/schema.js +147 -0
- package/dist/modules/manager/pixi/schema.js.map +1 -0
- package/dist/modules/manager/poetry/artifacts.js +3 -4
- package/dist/modules/manager/poetry/artifacts.js.map +1 -1
- package/dist/modules/manager/poetry/extract.js +2 -1
- package/dist/modules/manager/poetry/extract.js.map +1 -1
- package/dist/modules/manager/poetry/schema.d.ts +44 -44
- 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/sveltos/schema.d.ts +30 -42
- package/dist/modules/manager/terraform/lockfile/hash.d.ts +1 -1
- package/dist/modules/manager/terraform/util.js +1 -3
- package/dist/modules/manager/terraform/util.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 +7 -7
- package/dist/modules/platform/api.d.ts +1 -1
- 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 +49 -44
- package/dist/modules/platform/bitbucket/index.js.map +1 -1
- package/dist/modules/platform/bitbucket/schema.d.ts +14 -14
- 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 +81 -81
- 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/schema.d.ts +76 -0
- package/dist/modules/platform/bitbucket-server/schema.js +15 -1
- package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/types.d.ts +8 -2
- package/dist/modules/platform/bitbucket-server/types.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/utils.d.ts +0 -2
- package/dist/modules/platform/bitbucket-server/utils.js +6 -52
- 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.d.ts +0 -3
- package/dist/modules/platform/gerrit/client.js +20 -29
- package/dist/modules/platform/gerrit/client.js.map +1 -1
- package/dist/modules/platform/gerrit/index.js +0 -6
- package/dist/modules/platform/gerrit/index.js.map +1 -1
- package/dist/modules/platform/gerrit/scm.js +5 -6
- package/dist/modules/platform/gerrit/scm.js.map +1 -1
- package/dist/modules/platform/gerrit/types.d.ts +1 -4
- package/dist/modules/platform/gerrit/types.js.map +1 -1
- package/dist/modules/platform/gerrit/utils.d.ts +3 -2
- package/dist/modules/platform/gerrit/utils.js +4 -8
- 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 +22 -16
- package/dist/modules/platform/gitea/index.js.map +1 -1
- package/dist/modules/platform/gitea/schema.d.ts +8 -8
- 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/common.d.ts +2 -0
- package/dist/modules/platform/github/common.js +16 -0
- package/dist/modules/platform/github/common.js.map +1 -1
- package/dist/modules/platform/github/index.d.ts +1 -1
- package/dist/modules/platform/github/index.js +87 -82
- package/dist/modules/platform/github/index.js.map +1 -1
- package/dist/modules/platform/github/issue.d.ts +18 -18
- 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 +128 -128
- 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 +63 -49
- 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/platform/scm.d.ts +1 -1
- package/dist/modules/versioning/api.js +2 -0
- package/dist/modules/versioning/api.js.map +1 -1
- package/dist/modules/versioning/composer/index.js +10 -0
- package/dist/modules/versioning/composer/index.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/distro.js +1 -3
- package/dist/modules/versioning/distro.js.map +1 -1
- 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/modules/versioning/npm/index.js +2 -1
- package/dist/modules/versioning/npm/index.js.map +1 -1
- package/dist/modules/versioning/types.d.ts +4 -0
- package/dist/modules/versioning/types.js.map +1 -1
- package/dist/proxy.js +2 -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/redis.js +0 -1
- package/dist/util/cache/package/redis.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/impl/base.d.ts +1 -1
- package/dist/util/cache/repository/impl/base.js +4 -0
- package/dist/util/cache/repository/impl/base.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/common.d.ts +4 -2
- package/dist/util/common.js +17 -3
- package/dist/util/common.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 +19 -14
- 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/auth.js +8 -5
- package/dist/util/git/auth.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 +75 -52
- package/dist/util/git/index.js.map +1 -1
- package/dist/util/git/private-key.js +2 -4
- package/dist/util/git/private-key.js.map +1 -1
- package/dist/util/git/types.d.ts +2 -0
- package/dist/util/git/types.js.map +1 -1
- package/dist/util/git/url.js +1 -1
- package/dist/util/git/url.js.map +1 -1
- package/dist/util/github/graphql/datasource-fetcher.js +3 -5
- package/dist/util/github/graphql/datasource-fetcher.js.map +1 -1
- package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +2 -2
- package/dist/util/github/graphql/query-adapters/tags-query-adapter.d.ts +2 -2
- package/dist/util/http/auth.js +0 -1
- package/dist/util/http/auth.js.map +1 -1
- package/dist/util/http/bitbucket-server.d.ts +7 -5
- package/dist/util/http/bitbucket-server.js +26 -23
- package/dist/util/http/bitbucket-server.js.map +1 -1
- package/dist/util/http/bitbucket.d.ts +6 -5
- package/dist/util/http/bitbucket.js +34 -31
- 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/cache/package-http-cache-provider.d.ts +23 -0
- package/dist/util/http/cache/package-http-cache-provider.js +80 -0
- package/dist/util/http/cache/package-http-cache-provider.js.map +1 -0
- package/dist/util/http/cache/schema.d.ts +2 -2
- package/dist/util/http/errors.d.ts +2 -0
- package/dist/util/http/errors.js +8 -0
- package/dist/util/http/errors.js.map +1 -0
- package/dist/util/http/gerrit.d.ts +6 -4
- package/dist/util/http/gerrit.js +11 -12
- package/dist/util/http/gerrit.js.map +1 -1
- package/dist/util/http/gitea.d.ts +5 -4
- package/dist/util/http/gitea.js +14 -13
- package/dist/util/http/gitea.js.map +1 -1
- package/dist/util/http/github.d.ts +14 -8
- package/dist/util/http/github.js +65 -60
- package/dist/util/http/github.js.map +1 -1
- package/dist/util/http/gitlab.d.ts +7 -5
- package/dist/util/http/gitlab.js +58 -46
- package/dist/util/http/gitlab.js.map +1 -1
- package/dist/util/http/got.d.ts +9 -0
- package/dist/util/http/got.js +54 -0
- package/dist/util/http/got.js.map +1 -0
- package/dist/util/http/host-rules.d.ts +2 -1
- package/dist/util/http/host-rules.js +17 -4
- package/dist/util/http/host-rules.js.map +1 -1
- package/dist/util/http/http.d.ts +93 -0
- package/dist/util/http/http.js +346 -0
- package/dist/util/http/http.js.map +1 -0
- package/dist/util/http/index.d.ts +6 -74
- package/dist/util/http/index.js +5 -359
- package/dist/util/http/index.js.map +1 -1
- package/dist/util/http/legacy.js +4 -1
- package/dist/util/http/legacy.js.map +1 -1
- package/dist/util/http/types.d.ts +9 -16
- package/dist/util/http/types.js.map +1 -1
- package/dist/util/schema-utils.d.ts +1 -0
- package/dist/util/schema-utils.js +43 -8
- package/dist/util/schema-utils.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/util/string.d.ts +16 -0
- package/dist/util/string.js +79 -0
- package/dist/util/string.js.map +1 -1
- package/dist/util/toml.d.ts +1 -0
- package/dist/util/toml.js +6 -0
- package/dist/util/toml.js.map +1 -1
- package/dist/util/url.js +3 -8
- package/dist/util/url.js.map +1 -1
- package/dist/util/yaml.js +3 -8
- package/dist/util/yaml.js.map +1 -1
- package/dist/workers/global/autodiscover.js +1 -19
- package/dist/workers/global/autodiscover.js.map +1 -1
- package/dist/workers/global/config/parse/env.js +3 -3
- package/dist/workers/global/config/parse/env.js.map +1 -1
- package/dist/workers/global/config/parse/file.js +18 -8
- package/dist/workers/global/config/parse/file.js.map +1 -1
- package/dist/workers/global/config/parse/host-rules-from-env.js +6 -2
- package/dist/workers/global/config/parse/host-rules-from-env.js.map +1 -1
- package/dist/workers/global/config/parse/index.js +15 -0
- package/dist/workers/global/config/parse/index.js.map +1 -1
- package/dist/workers/global/index.js +4 -2
- package/dist/workers/global/index.js.map +1 -1
- package/dist/workers/repository/cache.js +1 -2
- 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/onboarding/pr/config-description.js +3 -1
- package/dist/workers/repository/onboarding/pr/config-description.js.map +1 -1
- package/dist/workers/repository/onboarding/pr/index.js +4 -0
- package/dist/workers/repository/onboarding/pr/index.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 +15 -4
- package/dist/workers/repository/process/lookup/index.js.map +1 -1
- package/dist/workers/repository/process/lookup/timestamps.d.ts +18 -0
- package/dist/workers/repository/process/lookup/timestamps.js +69 -0
- package/dist/workers/repository/process/lookup/timestamps.js.map +1 -0
- package/dist/workers/repository/process/lookup/types.d.ts +1 -0
- package/dist/workers/repository/process/lookup/types.js.map +1 -1
- package/dist/workers/repository/process/lookup/utils.js +20 -9
- package/dist/workers/repository/process/lookup/utils.js.map +1 -1
- package/dist/workers/repository/process/sort.js +1 -1
- package/dist/workers/repository/process/sort.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/utils.d.ts +2 -0
- package/dist/workers/repository/reconfigure/utils.js +16 -0
- package/dist/workers/repository/reconfigure/utils.js.map +1 -1
- package/dist/workers/repository/reconfigure/validate.js +6 -17
- package/dist/workers/repository/reconfigure/validate.js.map +1 -1
- package/dist/workers/repository/update/branch/auto-replace.js +25 -5
- package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
- package/dist/workers/repository/update/branch/commit.js +2 -0
- package/dist/workers/repository/update/branch/commit.js.map +1 -1
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +17 -8
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
- package/dist/workers/repository/update/pr/body/config-description.js +26 -1
- package/dist/workers/repository/update/pr/body/config-description.js.map +1 -1
- package/dist/workers/repository/update/pr/body/index.js +21 -14
- package/dist/workers/repository/update/pr/body/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/api.js +8 -6
- package/dist/workers/repository/update/pr/changelog/api.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +1 -1
- package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.d.ts +3 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js +39 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js.map +1 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.d.ts +8 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.js +31 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.js.map +1 -0
- 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/gitlab/index.js +1 -1
- package/dist/workers/repository/update/pr/changelog/gitlab/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/release-notes.js +12 -8
- package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/source.d.ts +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/update/pr/changelog/types.d.ts +1 -1
- package/dist/workers/repository/update/pr/changelog/types.js.map +1 -1
- package/dist/workers/repository/update/pr/index.js +2 -4
- package/dist/workers/repository/update/pr/index.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 +3 -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 +86 -83
- package/renovate-schema.json +25 -10
- package/dist/modules/manager/github-actions/types.d.ts +0 -30
- package/dist/modules/manager/github-actions/types.js +0 -3
- package/dist/modules/manager/github-actions/types.js.map +0 -1
- package/dist/modules/manager/gitlabci/common.d.ts +0 -6
- package/dist/modules/manager/gitlabci/common.js +0 -30
- package/dist/modules/manager/gitlabci/common.js.map +0 -1
- package/dist/modules/manager/gitlabci/types.d.ts +0 -35
- package/dist/modules/manager/gitlabci/types.js +0 -3
- package/dist/modules/manager/gitlabci/types.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/platform/azure/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { setTimeout } from 'timers/promises';\nimport is from '@sindresorhus/is';\nimport type {\n GitPullRequest,\n GitPullRequestCommentThread,\n GitStatus,\n GitVersionDescriptor,\n} from 'azure-devops-node-api/interfaces/GitInterfaces.js';\nimport {\n GitPullRequestMergeStrategy,\n GitStatusState,\n PullRequestStatus,\n} from 'azure-devops-node-api/interfaces/GitInterfaces.js';\nimport {\n REPOSITORY_ARCHIVED,\n REPOSITORY_EMPTY,\n REPOSITORY_NOT_FOUND,\n} from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport type { BranchStatus } from '../../../types';\nimport { ExternalHostError } from '../../../types/errors/external-host-error';\nimport { parseJson } from '../../../util/common';\nimport * as git from '../../../util/git';\nimport * as hostRules from '../../../util/host-rules';\nimport { regEx } from '../../../util/regex';\nimport { sanitize } from '../../../util/sanitize';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport type {\n BranchStatusConfig,\n CreatePRConfig,\n EnsureCommentConfig,\n EnsureCommentRemovalConfig,\n EnsureIssueResult,\n FindPRConfig,\n Issue,\n MergePRConfig,\n PlatformParams,\n PlatformResult,\n Pr,\n RepoParams,\n RepoResult,\n UpdatePrConfig,\n} from '../types';\nimport { getNewBranchName, repoFingerprint } from '../util';\nimport { smartTruncate } from '../utils/pr-body';\nimport * as azureApi from './azure-got-wrapper';\nimport * as azureHelper from './azure-helper';\nimport type { AzurePr } from './types';\nimport { AzurePrVote } from './types';\nimport {\n getBranchNameWithoutRefsheadsPrefix,\n getGitStatusContextCombinedName,\n getGitStatusContextFromCombinedName,\n getRenovatePRFormat,\n getRepoByName,\n getStorageExtraCloneOpts,\n mapMergeStrategy,\n max4000Chars,\n} from './util';\n\ninterface Config {\n repoForceRebase: boolean;\n mergeMethods: Record<string, GitPullRequestMergeStrategy>;\n owner: string;\n repoId: string;\n project: string;\n prList: AzurePr[];\n fileList: null;\n repository: string;\n defaultBranch: string;\n}\n\ninterface User {\n id: string;\n name: string;\n isRequired: boolean;\n}\n\nlet config: Config = {} as any;\n\nconst defaults: {\n endpoint?: string;\n hostType: string;\n} = {\n hostType: 'azure',\n};\n\nexport const id = 'azure';\n\nexport function initPlatform({\n endpoint,\n token,\n username,\n password,\n}: PlatformParams): Promise<PlatformResult> {\n if (!endpoint) {\n throw new Error('Init: You must configure an Azure DevOps endpoint');\n }\n if (!token && !(username && password)) {\n throw new Error(\n 'Init: You must configure an Azure DevOps token, or a username and password',\n );\n }\n // TODO: Add a connection check that endpoint/token combination are valid (#9593)\n const res = {\n endpoint: ensureTrailingSlash(endpoint),\n };\n defaults.endpoint = res.endpoint;\n azureApi.setEndpoint(res.endpoint);\n const platformConfig: PlatformResult = {\n endpoint: defaults.endpoint,\n };\n return Promise.resolve(platformConfig);\n}\n\nexport async function getRepos(): Promise<string[]> {\n logger.debug('Autodiscovering Azure DevOps repositories');\n const azureApiGit = await azureApi.gitApi();\n const repos = await azureApiGit.getRepositories();\n return repos\n .filter((repo) => repo.isDisabled !== true)\n .map((repo) => `${repo.project?.name}/${repo.name}`);\n}\n\nexport async function getRawFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<string | null> {\n try {\n const azureApiGit = await azureApi.gitApi();\n\n let repoId: string | undefined;\n if (repoName) {\n const repos = await azureApiGit.getRepositories();\n const repo = getRepoByName(repoName, repos);\n repoId = repo?.id;\n } else {\n repoId = config.repoId;\n }\n\n if (!repoId) {\n logger.debug('No repoId so cannot getRawFile');\n return null;\n }\n\n const versionDescriptor: GitVersionDescriptor = {\n version: branchOrTag,\n } satisfies GitVersionDescriptor;\n\n const item = await azureApiGit.getItem(\n repoId, // repositoryId\n fileName, // path\n undefined, // project\n undefined, // scopePath\n undefined, // recursionLevel\n undefined, // includeContentMetadata\n undefined, // latestProcessedChange\n undefined, // download\n branchOrTag ? versionDescriptor : undefined, // versionDescriptor\n true, // includeContent\n );\n\n return item?.content ?? null;\n } catch (err) /* istanbul ignore next */ {\n if (\n err.message?.includes('<title>Azure DevOps Services Unavailable</title>')\n ) {\n logger.debug(\n 'Azure DevOps is currently unavailable when attempting to fetch file - throwing ExternalHostError',\n );\n throw new ExternalHostError(err, id);\n }\n if (err.code === 'ECONNRESET' || err.code === 'ETIMEDOUT') {\n throw new ExternalHostError(err, id);\n }\n if (err.statusCode && err.statusCode >= 500 && err.statusCode < 600) {\n throw new ExternalHostError(err, id);\n }\n throw err;\n }\n}\n\nexport async function getJsonFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<any> {\n const raw = await getRawFile(fileName, repoName, branchOrTag);\n return parseJson(raw, fileName);\n}\n\nexport async function initRepo({\n repository,\n cloneSubmodules,\n cloneSubmodulesFilter,\n}: RepoParams): Promise<RepoResult> {\n logger.debug(`initRepo(\"${repository}\")`);\n config = { repository } as Config;\n const azureApiGit = await azureApi.gitApi();\n const repos = await azureApiGit.getRepositories();\n const repo = getRepoByName(repository, repos);\n if (!repo) {\n logger.error({ repos, repo }, 'Could not find repo in repo list');\n throw new Error(REPOSITORY_NOT_FOUND);\n }\n logger.debug({ repositoryDetails: repo }, 'Repository details');\n if (repo.isDisabled) {\n logger.debug('Repository is disabled- throwing error to abort renovation');\n throw new Error(REPOSITORY_ARCHIVED);\n }\n // istanbul ignore if\n if (!repo.defaultBranch) {\n logger.debug('Repo is empty');\n throw new Error(REPOSITORY_EMPTY);\n }\n // TODO #22198\n config.repoId = repo.id!;\n\n config.project = repo.project!.name!;\n config.owner = '?owner?';\n logger.debug(`${repository} owner = ${config.owner}`);\n const defaultBranch = repo.defaultBranch.replace('refs/heads/', '');\n config.defaultBranch = defaultBranch;\n logger.debug(`${repository} default branch = ${defaultBranch}`);\n config.mergeMethods = {};\n config.repoForceRebase = false;\n\n const [projectName, repoName] = repository.split('/');\n const opts = hostRules.find({\n hostType: defaults.hostType,\n url: defaults.endpoint,\n });\n // TODO: types (#22198)\n const manualUrl = `${defaults.endpoint!}${encodeURIComponent(\n projectName,\n )}/_git/${encodeURIComponent(repoName)}`;\n const url = repo.remoteUrl ?? manualUrl;\n await git.initRepo({\n ...config,\n url,\n extraCloneOpts: getStorageExtraCloneOpts(opts),\n cloneSubmodules,\n cloneSubmodulesFilter,\n });\n const repoConfig: RepoResult = {\n defaultBranch,\n isFork: false,\n repoFingerprint: repoFingerprint(repo.id!, defaults.endpoint),\n };\n return repoConfig;\n}\n\nexport async function getPrList(): Promise<AzurePr[]> {\n logger.debug('getPrList()');\n if (!config.prList) {\n const azureApiGit = await azureApi.gitApi();\n let prs: GitPullRequest[] = [];\n let fetchedPrs: GitPullRequest[];\n let skip = 0;\n do {\n fetchedPrs = await azureApiGit.getPullRequests(\n config.repoId,\n {\n status: 4,\n // fetch only prs directly created on the repo and not by forks\n sourceRepositoryId: config.project,\n },\n config.project,\n 0,\n skip,\n 100,\n );\n prs = prs.concat(fetchedPrs);\n skip += 100;\n } while (fetchedPrs.length > 0);\n\n config.prList = prs.map(getRenovatePRFormat);\n logger.debug(`Retrieved Pull Requests count: ${config.prList.length}`);\n }\n return config.prList;\n}\n\nexport async function getPr(pullRequestId: number): Promise<Pr | null> {\n logger.debug(`getPr(${pullRequestId})`);\n if (!pullRequestId) {\n return null;\n }\n const azurePr = (await getPrList()).find(\n (item) => item.number === pullRequestId,\n );\n\n if (!azurePr) {\n return null;\n }\n\n const azureApiGit = await azureApi.gitApi();\n const labels = await azureApiGit.getPullRequestLabels(\n config.repoId,\n pullRequestId,\n );\n\n azurePr.labels = labels\n .filter((label) => label.active)\n .map((label) => label.name)\n .filter(is.string);\n return azurePr;\n}\n\nexport async function findPr({\n branchName,\n prTitle,\n state = 'all',\n targetBranch,\n}: FindPRConfig): Promise<Pr | null> {\n let prsFiltered: Pr[] = [];\n try {\n const prs = await getPrList();\n\n prsFiltered = prs.filter(\n (item) => item.sourceRefName === getNewBranchName(branchName),\n );\n\n if (prTitle) {\n prsFiltered = prsFiltered.filter(\n (item) => item.title.toUpperCase() === prTitle.toUpperCase(),\n );\n }\n\n switch (state) {\n case 'all':\n // no more filter needed, we can go further...\n break;\n case '!open':\n prsFiltered = prsFiltered.filter((item) => item.state !== 'open');\n break;\n default:\n prsFiltered = prsFiltered.filter((item) => item.state === state);\n break;\n }\n } catch (err) {\n logger.error({ err }, 'findPr error');\n }\n if (prsFiltered.length === 0) {\n return null;\n }\n if (targetBranch && prsFiltered.length > 1) {\n const pr = prsFiltered.find((item) => item.targetBranch === targetBranch);\n if (pr) {\n return pr;\n }\n }\n return prsFiltered[0];\n}\n\nexport async function getBranchPr(\n branchName: string,\n targetBranch?: string,\n): Promise<Pr | null> {\n logger.debug(`getBranchPr(${branchName}, ${targetBranch})`);\n const existingPr = await findPr({\n branchName,\n state: 'open',\n targetBranch,\n });\n return existingPr ? getPr(existingPr.number) : null;\n}\n\nasync function getStatusCheck(branchName: string): Promise<GitStatus[]> {\n const azureApiGit = await azureApi.gitApi();\n const branch = await azureApiGit.getBranch(\n config.repoId,\n\n // TODO: fix undefined (#22198)\n getBranchNameWithoutRefsheadsPrefix(branchName)!,\n );\n // only grab the latest statuses, it will group any by context\n return azureApiGit.getStatuses(\n // TODO #22198\n branch.commit!.commitId!,\n config.repoId,\n undefined,\n undefined,\n undefined,\n true,\n );\n}\n\nconst azureToRenovateStatusMapping: Record<GitStatusState, BranchStatus> = {\n [GitStatusState.Succeeded]: 'green',\n [GitStatusState.NotApplicable]: 'green',\n [GitStatusState.NotSet]: 'yellow',\n [GitStatusState.Pending]: 'yellow',\n [GitStatusState.PartiallySucceeded]: 'yellow',\n [GitStatusState.Error]: 'red',\n [GitStatusState.Failed]: 'red',\n};\n\nexport async function getBranchStatusCheck(\n branchName: string,\n context: string,\n): Promise<BranchStatus | null> {\n const res = await getStatusCheck(branchName);\n for (const check of res) {\n if (getGitStatusContextCombinedName(check.context) === context) {\n // TODO #22198\n return azureToRenovateStatusMapping[check.state!] ?? 'yellow';\n }\n }\n return null;\n}\n\nexport async function getBranchStatus(\n branchName: string,\n internalChecksAsSuccess: boolean,\n): Promise<BranchStatus> {\n logger.debug(`getBranchStatus(${branchName})`);\n const statuses = await getStatusCheck(branchName);\n logger.debug({ branch: branchName, statuses }, 'branch status check result');\n if (!statuses.length) {\n logger.debug('empty branch status check result = returning \"pending\"');\n return 'yellow';\n }\n const noOfFailures = statuses.filter(\n (status) =>\n status.state === GitStatusState.Error ||\n status.state === GitStatusState.Failed,\n ).length;\n if (noOfFailures) {\n return 'red';\n }\n const noOfPending = statuses.filter(\n (status) =>\n status.state === GitStatusState.NotSet ||\n status.state === GitStatusState.Pending,\n ).length;\n if (noOfPending) {\n return 'yellow';\n }\n if (\n !internalChecksAsSuccess &&\n statuses.every(\n (status) =>\n status.state === GitStatusState.Succeeded &&\n status.context?.genre === 'renovate',\n )\n ) {\n logger.debug(\n 'Successful checks are all internal renovate/ checks, so returning \"pending\" branch status',\n );\n return 'yellow';\n }\n return 'green';\n}\n\nasync function getMergeStrategy(\n targetRefName: string,\n): Promise<GitPullRequestMergeStrategy> {\n return (\n config.mergeMethods[targetRefName] ??\n (config.mergeMethods[targetRefName] = await azureHelper.getMergeMethod(\n config.repoId,\n config.project,\n targetRefName,\n config.defaultBranch,\n ))\n );\n}\n\nexport async function createPr({\n sourceBranch,\n targetBranch,\n prTitle: title,\n prBody: body,\n labels,\n draftPR = false,\n platformPrOptions,\n}: CreatePRConfig): Promise<Pr> {\n const sourceRefName = getNewBranchName(sourceBranch);\n const targetRefName = getNewBranchName(targetBranch);\n const description = max4000Chars(sanitize(body));\n const azureApiGit = await azureApi.gitApi();\n const workItemRefs = [\n {\n id: platformPrOptions?.azureWorkItemId?.toString(),\n },\n ];\n let pr: GitPullRequest = await azureApiGit.createPullRequest(\n {\n sourceRefName,\n targetRefName,\n title,\n description,\n workItemRefs,\n isDraft: draftPR,\n },\n config.repoId,\n );\n if (platformPrOptions?.usePlatformAutomerge) {\n const mergeStrategy =\n platformPrOptions.automergeStrategy === 'auto'\n ? await getMergeStrategy(pr.targetRefName!)\n : mapMergeStrategy(platformPrOptions.automergeStrategy);\n pr = await azureApiGit.updatePullRequest(\n {\n autoCompleteSetBy: {\n // TODO #22198\n id: pr.createdBy!.id,\n },\n completionOptions: {\n mergeStrategy,\n deleteSourceBranch: true,\n mergeCommitMessage: title,\n },\n },\n config.repoId,\n // TODO #22198\n pr.pullRequestId!,\n );\n }\n if (platformPrOptions?.autoApprove) {\n await azureApiGit.createPullRequestReviewer(\n {\n reviewerUrl: pr.createdBy!.url,\n vote: AzurePrVote.Approved,\n isFlagged: false,\n isRequired: false,\n },\n config.repoId,\n // TODO #22198\n pr.pullRequestId!,\n pr.createdBy!.id!,\n );\n }\n await Promise.all(\n labels!.map((label) =>\n azureApiGit.createPullRequestLabel(\n {\n name: label,\n },\n config.repoId,\n // TODO #22198\n pr.pullRequestId!,\n ),\n ),\n );\n\n const result = getRenovatePRFormat(pr);\n if (config.prList) {\n config.prList.push(result);\n }\n return result;\n}\n\nexport async function updatePr({\n number: prNo,\n prTitle: title,\n prBody: body,\n state,\n platformPrOptions,\n targetBranch,\n}: UpdatePrConfig): Promise<void> {\n logger.debug(`updatePr(${prNo}, ${title}, body)`);\n\n const azureApiGit = await azureApi.gitApi();\n const objToUpdate: GitPullRequest = {\n title,\n };\n\n if (targetBranch) {\n objToUpdate.targetRefName = getNewBranchName(targetBranch);\n }\n\n if (body) {\n objToUpdate.description = max4000Chars(sanitize(body));\n }\n\n if (state === 'open') {\n await azureApiGit.updatePullRequest(\n {\n status: PullRequestStatus.Active,\n },\n config.repoId,\n prNo,\n );\n } else if (state === 'closed') {\n objToUpdate.status = PullRequestStatus.Abandoned;\n }\n if (platformPrOptions?.autoApprove) {\n const pr = await azureApiGit.getPullRequestById(prNo, config.project);\n await azureApiGit.createPullRequestReviewer(\n {\n reviewerUrl: pr.createdBy!.url,\n vote: AzurePrVote.Approved,\n isFlagged: false,\n isRequired: false,\n },\n config.repoId,\n // TODO #22198\n pr.pullRequestId!,\n pr.createdBy!.id!,\n );\n }\n\n const updatedPr = await azureApiGit.updatePullRequest(\n objToUpdate,\n config.repoId,\n prNo,\n );\n if (config.prList) {\n const prToCache = getRenovatePRFormat(updatedPr);\n // We need to update the cached entry for this PR\n const existingIndex = config.prList.findIndex(\n (item) => item.number === prNo,\n );\n // istanbul ignore if: should not happen\n if (existingIndex === -1) {\n logger.warn({ prNo }, 'PR not found in cache');\n // Add to cache\n config.prList.push(prToCache);\n } else {\n // overwrite existing PR in cache\n config.prList[existingIndex] = prToCache;\n }\n }\n}\n\nexport async function ensureComment({\n number,\n topic,\n content,\n}: EnsureCommentConfig): Promise<boolean> {\n logger.debug(`ensureComment(${number}, ${topic!}, content)`);\n const header = topic ? `### ${topic}\\n\\n` : '';\n const body = `${header}${sanitize(massageMarkdown(content))}`;\n const azureApiGit = await azureApi.gitApi();\n\n const threads = await azureApiGit.getThreads(config.repoId, number);\n let threadIdFound: number | undefined;\n let commentIdFound: number | undefined;\n let commentNeedsUpdating = false;\n threads.forEach((thread) => {\n const firstCommentContent = thread.comments?.[0].content;\n if (\n (topic && firstCommentContent?.startsWith(header)) === true ||\n (!topic && firstCommentContent === body)\n ) {\n threadIdFound = thread.id;\n commentIdFound = thread.comments?.[0].id;\n commentNeedsUpdating = firstCommentContent !== body;\n }\n });\n\n if (!threadIdFound) {\n await azureApiGit.createThread(\n {\n comments: [{ content: body, commentType: 1, parentCommentId: 0 }],\n status: 1,\n },\n config.repoId,\n number,\n );\n logger.info(\n { repository: config.repository, issueNo: number, topic },\n 'Comment added',\n );\n } else if (commentNeedsUpdating) {\n await azureApiGit.updateComment(\n {\n content: body,\n },\n config.repoId,\n number,\n threadIdFound,\n // TODO #22198\n commentIdFound!,\n );\n logger.debug(\n { repository: config.repository, issueNo: number, topic },\n 'Comment updated',\n );\n } else {\n logger.debug(\n { repository: config.repository, issueNo: number, topic },\n 'Comment is already update-to-date',\n );\n }\n\n return true;\n}\n\nexport async function ensureCommentRemoval(\n removeConfig: EnsureCommentRemovalConfig,\n): Promise<void> {\n const { number: issueNo } = removeConfig;\n const key =\n removeConfig.type === 'by-topic'\n ? removeConfig.topic\n : removeConfig.content;\n logger.debug(`Ensuring comment \"${key}\" in #${issueNo} is removed`);\n\n const azureApiGit = await azureApi.gitApi();\n const threads = await azureApiGit.getThreads(config.repoId, issueNo);\n\n let threadIdFound: number | null | undefined = null;\n if (removeConfig.type === 'by-topic') {\n const thread = threads.find(\n (thread: GitPullRequestCommentThread): boolean =>\n !!thread.comments?.[0].content?.startsWith(\n `### ${removeConfig.topic}\\n\\n`,\n ),\n );\n threadIdFound = thread?.id;\n } else {\n const thread = threads.find(\n (thread: GitPullRequestCommentThread): boolean =>\n thread.comments?.[0].content?.trim() === removeConfig.content,\n );\n threadIdFound = thread?.id;\n }\n\n if (threadIdFound) {\n await azureApiGit.updateThread(\n {\n status: 4, // close\n },\n config.repoId,\n issueNo,\n threadIdFound,\n );\n }\n}\n\nconst renovateToAzureStatusMapping: Record<BranchStatus, GitStatusState> = {\n ['green']: GitStatusState.Succeeded,\n ['yellow']: GitStatusState.Pending,\n ['red']: GitStatusState.Failed,\n};\n\nexport async function setBranchStatus({\n branchName,\n context,\n description,\n state,\n url: targetUrl,\n}: BranchStatusConfig): Promise<void> {\n logger.debug(\n `setBranchStatus(${branchName}, ${context}, ${description}, ${state}, ${targetUrl!})`,\n );\n const azureApiGit = await azureApi.gitApi();\n const branch = await azureApiGit.getBranch(\n config.repoId,\n getBranchNameWithoutRefsheadsPrefix(branchName)!,\n );\n const statusToCreate: GitStatus = {\n description,\n context: getGitStatusContextFromCombinedName(context),\n state: renovateToAzureStatusMapping[state],\n targetUrl,\n };\n await azureApiGit.createCommitStatus(\n statusToCreate,\n // TODO #22198\n branch.commit!.commitId!,\n config.repoId,\n );\n logger.trace(`Created commit status of ${state} on branch ${branchName}`);\n}\n\nexport async function mergePr({\n branchName,\n id: pullRequestId,\n strategy,\n}: MergePRConfig): Promise<boolean> {\n logger.debug(`mergePr(${pullRequestId}, ${branchName!})`);\n const azureApiGit = await azureApi.gitApi();\n\n let pr = await azureApiGit.getPullRequestById(pullRequestId, config.project);\n\n const mergeStrategy =\n strategy === 'auto'\n ? await getMergeStrategy(pr.targetRefName!)\n : mapMergeStrategy(strategy);\n const objToUpdate: GitPullRequest = {\n status: PullRequestStatus.Completed,\n lastMergeSourceCommit: pr.lastMergeSourceCommit,\n completionOptions: {\n mergeStrategy,\n deleteSourceBranch: true,\n mergeCommitMessage: pr.title,\n },\n };\n\n logger.trace(\n `Updating PR ${pullRequestId} to status ${PullRequestStatus.Completed} (${\n PullRequestStatus[PullRequestStatus.Completed]\n }) with lastMergeSourceCommit ${\n // TODO: types (#22198)\n pr.lastMergeSourceCommit?.commitId\n } using mergeStrategy ${mergeStrategy} (${\n GitPullRequestMergeStrategy[mergeStrategy]\n })`,\n );\n\n try {\n const response = await azureApiGit.updatePullRequest(\n objToUpdate,\n config.repoId,\n pullRequestId,\n );\n\n let retries = 0;\n let isClosed = response.status === PullRequestStatus.Completed;\n while (!isClosed && retries < 5) {\n retries += 1;\n const sleepMs = retries * 1000;\n logger.trace(\n { pullRequestId, status: pr.status, retries },\n `Updated PR to closed status but change has not taken effect yet. Retrying...`,\n );\n\n await setTimeout(sleepMs);\n pr = await azureApiGit.getPullRequestById(pullRequestId, config.project);\n isClosed = pr.status === PullRequestStatus.Completed;\n }\n\n if (!isClosed) {\n logger.warn(\n {\n pullRequestId,\n status: pr.status,\n expectedPRStatus: PullRequestStatus[PullRequestStatus.Completed],\n actualPRStatus: PullRequestStatus[pr.status!],\n },\n 'Expected PR to have completed status. However, the PR has a different status',\n );\n }\n return true;\n } catch (err) {\n logger.debug({ err }, 'Failed to set the PR as completed.');\n return false;\n }\n}\n\nexport function massageMarkdown(input: string): string {\n // Remove any HTML we use\n return smartTruncate(input, maxBodyLength())\n .replace(\n 'you tick the rebase/retry checkbox',\n 'PR is renamed to start with \"rebase!\"',\n )\n .replace(\n 'checking the rebase/retry box above',\n 'renaming the PR to start with \"rebase!\"',\n )\n .replace(regEx(`\\n---\\n\\n.*?<!-- rebase-check -->.*?\\n`), '')\n .replace(regEx(/<!--renovate-(?:debug|config-hash):.*?-->/g), '');\n}\n\nexport function maxBodyLength(): number {\n return 4000;\n}\n\n/* istanbul ignore next */\nexport function findIssue(): Promise<Issue | null> {\n // TODO: Needs implementation (#9592)\n logger.debug(`findIssue() is not implemented`);\n return Promise.resolve(null);\n}\n\n/* istanbul ignore next */\nexport function ensureIssue(): Promise<EnsureIssueResult | null> {\n // TODO: Needs implementation (#9592)\n logger.debug(`ensureIssue() is not implemented`);\n return Promise.resolve(null);\n}\n\n/* istanbul ignore next */\nexport function ensureIssueClosing(): Promise<void> {\n return Promise.resolve();\n}\n\n/* istanbul ignore next */\nexport function getIssueList(): Promise<Issue[]> {\n logger.debug(`getIssueList()`);\n // TODO: Needs implementation (#9592)\n return Promise.resolve([]);\n}\n\nasync function getUserIds(users: string[]): Promise<User[]> {\n const azureApiGit = await azureApi.gitApi();\n const azureApiCore = await azureApi.coreApi();\n const repos = await azureApiGit.getRepositories();\n const repo = repos.find((c) => c.id === config.repoId)!;\n const requiredReviewerPrefix = 'required:';\n const validReviewers = new Set<string>();\n\n // TODO #22198\n const teams = await azureHelper.getAllProjectTeams(repo.project!.id!);\n const members = await Promise.all(\n teams.map(\n async (t) =>\n await azureApiCore.getTeamMembersWithExtendedProperties(\n // TODO #22198\n repo.project!.id!,\n t.id!,\n ),\n ),\n );\n\n const ids: { id: string; name: string; isRequired: boolean }[] = [];\n members.forEach((listMembers) => {\n listMembers.forEach((m) => {\n users.forEach((r) => {\n let reviewer = r;\n let isRequired = false;\n if (reviewer.startsWith(requiredReviewerPrefix)) {\n reviewer = reviewer.replace(requiredReviewerPrefix, '');\n isRequired = true;\n }\n if (\n reviewer.toLowerCase() === m.identity?.displayName?.toLowerCase() ||\n reviewer.toLowerCase() === m.identity?.uniqueName?.toLowerCase()\n ) {\n if (ids.filter((c) => c.id === m.identity?.id).length === 0) {\n // TODO #22198\n ids.push({\n id: m.identity.id!,\n name: reviewer,\n isRequired,\n });\n\n validReviewers.add(reviewer);\n }\n }\n });\n });\n });\n\n teams.forEach((t) => {\n users.forEach((r) => {\n let reviewer = r;\n let isRequired = false;\n if (reviewer.startsWith(requiredReviewerPrefix)) {\n reviewer = reviewer.replace(requiredReviewerPrefix, '');\n isRequired = true;\n }\n if (reviewer.toLowerCase() === t.name?.toLowerCase()) {\n if (ids.filter((c) => c.id === t.id).length === 0) {\n // TODO #22198\n ids.push({ id: t.id!, name: reviewer, isRequired });\n\n validReviewers.add(reviewer);\n }\n }\n });\n });\n\n for (const u of users) {\n const reviewer = u.replace(requiredReviewerPrefix, '');\n if (!validReviewers.has(reviewer)) {\n logger.once.info(\n `${reviewer} is neither an Azure DevOps Team nor a user associated with a Team`,\n );\n }\n }\n\n return ids;\n}\n\n/**\n *\n * @param {number} issueNo\n * @param {string[]} assignees\n */\nexport async function addAssignees(\n issueNo: number,\n assignees: string[],\n): Promise<void> {\n logger.trace(`addAssignees(${issueNo}, [${assignees.join(', ')}])`);\n const ids = await getUserIds(assignees);\n await ensureComment({\n number: issueNo,\n topic: 'Add Assignees',\n content: ids.map((a) => `@<${a.id}>`).join(', '),\n });\n}\n\n/**\n *\n * @param {number} prNo\n * @param {string[]} reviewers\n */\nexport async function addReviewers(\n prNo: number,\n reviewers: string[],\n): Promise<void> {\n logger.trace(`addReviewers(${prNo}, [${reviewers.join(', ')}])`);\n const azureApiGit = await azureApi.gitApi();\n\n const ids = await getUserIds(reviewers);\n\n await Promise.all(\n ids.map(async (obj) => {\n await azureApiGit.createPullRequestReviewer(\n {\n isRequired: obj.isRequired,\n },\n config.repoId,\n prNo,\n obj.id,\n );\n logger.debug(`Reviewer added: ${obj.name}`);\n }),\n );\n}\n\nexport async function deleteLabel(\n prNumber: number,\n label: string,\n): Promise<void> {\n logger.debug(`Deleting label ${label} from #${prNumber}`);\n const azureApiGit = await azureApi.gitApi();\n await azureApiGit.deletePullRequestLabels(config.repoId, prNumber, label);\n}\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/platform/azure/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { setTimeout } from 'timers/promises';\nimport is from '@sindresorhus/is';\nimport type {\n GitPullRequest,\n GitPullRequestCommentThread,\n GitStatus,\n GitVersionDescriptor,\n} from 'azure-devops-node-api/interfaces/GitInterfaces.js';\nimport {\n GitPullRequestMergeStrategy,\n GitStatusState,\n PullRequestStatus,\n} from 'azure-devops-node-api/interfaces/GitInterfaces.js';\nimport {\n REPOSITORY_ARCHIVED,\n REPOSITORY_EMPTY,\n REPOSITORY_NOT_FOUND,\n} from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport type { BranchStatus } from '../../../types';\nimport { ExternalHostError } from '../../../types/errors/external-host-error';\nimport { parseJson } from '../../../util/common';\nimport * as git from '../../../util/git';\nimport * as hostRules from '../../../util/host-rules';\nimport { regEx } from '../../../util/regex';\nimport { sanitize } from '../../../util/sanitize';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport type {\n BranchStatusConfig,\n CreatePRConfig,\n EnsureCommentConfig,\n EnsureCommentRemovalConfig,\n EnsureIssueResult,\n FindPRConfig,\n Issue,\n MergePRConfig,\n PlatformParams,\n PlatformResult,\n Pr,\n RepoParams,\n RepoResult,\n UpdatePrConfig,\n} from '../types';\nimport { getNewBranchName, repoFingerprint } from '../util';\nimport { smartTruncate } from '../utils/pr-body';\nimport * as azureApi from './azure-got-wrapper';\nimport * as azureHelper from './azure-helper';\nimport type { AzurePr } from './types';\nimport { AzurePrVote } from './types';\nimport {\n getBranchNameWithoutRefsheadsPrefix,\n getGitStatusContextCombinedName,\n getGitStatusContextFromCombinedName,\n getRenovatePRFormat,\n getRepoByName,\n getStorageExtraCloneOpts,\n mapMergeStrategy,\n max4000Chars,\n} from './util';\n\ninterface Config {\n repoForceRebase: boolean;\n mergeMethods: Record<string, GitPullRequestMergeStrategy>;\n owner: string;\n repoId: string;\n project: string;\n prList: AzurePr[];\n fileList: null;\n repository: string;\n defaultBranch: string;\n}\n\ninterface User {\n id: string;\n name: string;\n isRequired: boolean;\n}\n\nlet config: Config = {} as any;\n\nconst defaults: {\n endpoint?: string;\n hostType: string;\n} = {\n hostType: 'azure',\n};\n\nexport const id = 'azure';\n\nexport function initPlatform({\n endpoint,\n token,\n username,\n password,\n}: PlatformParams): Promise<PlatformResult> {\n if (!endpoint) {\n throw new Error('Init: You must configure an Azure DevOps endpoint');\n }\n if (!token && !(username && password)) {\n throw new Error(\n 'Init: You must configure an Azure DevOps token, or a username and password',\n );\n }\n // TODO: Add a connection check that endpoint/token combination are valid (#9593)\n const res = {\n endpoint: ensureTrailingSlash(endpoint),\n };\n defaults.endpoint = res.endpoint;\n azureApi.setEndpoint(res.endpoint);\n const platformConfig: PlatformResult = {\n endpoint: defaults.endpoint,\n };\n return Promise.resolve(platformConfig);\n}\n\nexport async function getRepos(): Promise<string[]> {\n logger.debug('Autodiscovering Azure DevOps repositories');\n const azureApiGit = await azureApi.gitApi();\n const repos = await azureApiGit.getRepositories();\n return repos\n .filter((repo) => repo.isDisabled !== true)\n .map((repo) => `${repo.project?.name}/${repo.name}`);\n}\n\nexport async function getRawFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<string | null> {\n try {\n const azureApiGit = await azureApi.gitApi();\n\n let repoId: string | undefined;\n if (repoName) {\n const repos = await azureApiGit.getRepositories();\n const repo = getRepoByName(repoName, repos);\n repoId = repo?.id;\n } else {\n repoId = config.repoId;\n }\n\n if (!repoId) {\n logger.debug('No repoId so cannot getRawFile');\n return null;\n }\n\n const versionDescriptor: GitVersionDescriptor = {\n version: branchOrTag,\n } satisfies GitVersionDescriptor;\n\n const item = await azureApiGit.getItem(\n repoId, // repositoryId\n fileName, // path\n undefined, // project\n undefined, // scopePath\n undefined, // recursionLevel\n undefined, // includeContentMetadata\n undefined, // latestProcessedChange\n undefined, // download\n branchOrTag ? versionDescriptor : undefined, // versionDescriptor\n true, // includeContent\n );\n\n return item?.content ?? null;\n } catch (err) /* v8 ignore start */ {\n if (\n err.message?.includes('<title>Azure DevOps Services Unavailable</title>')\n ) {\n logger.debug(\n 'Azure DevOps is currently unavailable when attempting to fetch file - throwing ExternalHostError',\n );\n throw new ExternalHostError(err, id);\n }\n if (err.code === 'ECONNRESET' || err.code === 'ETIMEDOUT') {\n throw new ExternalHostError(err, id);\n }\n if (err.statusCode && err.statusCode >= 500 && err.statusCode < 600) {\n throw new ExternalHostError(err, id);\n }\n throw err;\n } /* v8 ignore stop */\n}\n\nexport async function getJsonFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<any> {\n const raw = await getRawFile(fileName, repoName, branchOrTag);\n return parseJson(raw, fileName);\n}\n\nexport async function initRepo({\n repository,\n cloneSubmodules,\n cloneSubmodulesFilter,\n}: RepoParams): Promise<RepoResult> {\n logger.debug(`initRepo(\"${repository}\")`);\n config = { repository } as Config;\n const azureApiGit = await azureApi.gitApi();\n const repos = await azureApiGit.getRepositories();\n const repo = getRepoByName(repository, repos);\n if (!repo) {\n logger.error({ repos, repo }, 'Could not find repo in repo list');\n throw new Error(REPOSITORY_NOT_FOUND);\n }\n logger.debug({ repositoryDetails: repo }, 'Repository details');\n if (repo.isDisabled) {\n logger.debug('Repository is disabled- throwing error to abort renovation');\n throw new Error(REPOSITORY_ARCHIVED);\n }\n /* v8 ignore start */\n if (!repo.defaultBranch) {\n logger.debug('Repo is empty');\n throw new Error(REPOSITORY_EMPTY);\n } /* v8 ignore stop */\n // TODO #22198\n config.repoId = repo.id!;\n\n config.project = repo.project!.name!;\n config.owner = '?owner?';\n logger.debug(`${repository} owner = ${config.owner}`);\n const defaultBranch = repo.defaultBranch.replace('refs/heads/', '');\n config.defaultBranch = defaultBranch;\n logger.debug(`${repository} default branch = ${defaultBranch}`);\n config.mergeMethods = {};\n config.repoForceRebase = false;\n\n const [projectName, repoName] = repository.split('/');\n const opts = hostRules.find({\n hostType: defaults.hostType,\n url: defaults.endpoint,\n });\n // TODO: types (#22198)\n const manualUrl = `${defaults.endpoint!}${encodeURIComponent(\n projectName,\n )}/_git/${encodeURIComponent(repoName)}`;\n const url = repo.remoteUrl ?? manualUrl;\n await git.initRepo({\n ...config,\n url,\n extraCloneOpts: getStorageExtraCloneOpts(opts),\n cloneSubmodules,\n cloneSubmodulesFilter,\n });\n const repoConfig: RepoResult = {\n defaultBranch,\n isFork: false,\n repoFingerprint: repoFingerprint(repo.id!, defaults.endpoint),\n };\n return repoConfig;\n}\n\nexport async function getPrList(): Promise<AzurePr[]> {\n logger.debug('getPrList()');\n if (!config.prList) {\n const azureApiGit = await azureApi.gitApi();\n let prs: GitPullRequest[] = [];\n let fetchedPrs: GitPullRequest[];\n let skip = 0;\n do {\n fetchedPrs = await azureApiGit.getPullRequests(\n config.repoId,\n {\n status: 4,\n // fetch only prs directly created on the repo and not by forks\n sourceRepositoryId: config.project,\n },\n config.project,\n 0,\n skip,\n 100,\n );\n prs = prs.concat(fetchedPrs);\n skip += 100;\n } while (fetchedPrs.length > 0);\n\n config.prList = prs.map(getRenovatePRFormat);\n logger.debug(`Retrieved Pull Requests count: ${config.prList.length}`);\n }\n return config.prList;\n}\n\nexport async function getPr(pullRequestId: number): Promise<Pr | null> {\n logger.debug(`getPr(${pullRequestId})`);\n if (!pullRequestId) {\n return null;\n }\n const azurePr = (await getPrList()).find(\n (item) => item.number === pullRequestId,\n );\n\n if (!azurePr) {\n return null;\n }\n\n const azureApiGit = await azureApi.gitApi();\n const labels = await azureApiGit.getPullRequestLabels(\n config.repoId,\n pullRequestId,\n );\n\n azurePr.labels = labels\n .filter((label) => label.active)\n .map((label) => label.name)\n .filter(is.string);\n return azurePr;\n}\n\nexport async function findPr({\n branchName,\n prTitle,\n state = 'all',\n targetBranch,\n}: FindPRConfig): Promise<Pr | null> {\n let prsFiltered: Pr[] = [];\n try {\n const prs = await getPrList();\n\n prsFiltered = prs.filter(\n (item) => item.sourceRefName === getNewBranchName(branchName),\n );\n\n if (prTitle) {\n prsFiltered = prsFiltered.filter(\n (item) => item.title.toUpperCase() === prTitle.toUpperCase(),\n );\n }\n\n switch (state) {\n case 'all':\n // no more filter needed, we can go further...\n break;\n case '!open':\n prsFiltered = prsFiltered.filter((item) => item.state !== 'open');\n break;\n default:\n prsFiltered = prsFiltered.filter((item) => item.state === state);\n break;\n }\n } catch (err) {\n logger.error({ err }, 'findPr error');\n }\n if (prsFiltered.length === 0) {\n return null;\n }\n if (targetBranch && prsFiltered.length > 1) {\n const pr = prsFiltered.find((item) => item.targetBranch === targetBranch);\n if (pr) {\n return pr;\n }\n }\n return prsFiltered[0];\n}\n\nexport async function getBranchPr(\n branchName: string,\n targetBranch?: string,\n): Promise<Pr | null> {\n logger.debug(`getBranchPr(${branchName}, ${targetBranch})`);\n const existingPr = await findPr({\n branchName,\n state: 'open',\n targetBranch,\n });\n return existingPr ? getPr(existingPr.number) : null;\n}\n\nasync function getStatusCheck(branchName: string): Promise<GitStatus[]> {\n const azureApiGit = await azureApi.gitApi();\n const branch = await azureApiGit.getBranch(\n config.repoId,\n\n // TODO: fix undefined (#22198)\n getBranchNameWithoutRefsheadsPrefix(branchName)!,\n );\n // only grab the latest statuses, it will group any by context\n return azureApiGit.getStatuses(\n // TODO #22198\n branch.commit!.commitId!,\n config.repoId,\n undefined,\n undefined,\n undefined,\n true,\n );\n}\n\nconst azureToRenovateStatusMapping: Record<GitStatusState, BranchStatus> = {\n [GitStatusState.Succeeded]: 'green',\n [GitStatusState.NotApplicable]: 'green',\n [GitStatusState.NotSet]: 'yellow',\n [GitStatusState.Pending]: 'yellow',\n [GitStatusState.PartiallySucceeded]: 'yellow',\n [GitStatusState.Error]: 'red',\n [GitStatusState.Failed]: 'red',\n};\n\nexport async function getBranchStatusCheck(\n branchName: string,\n context: string,\n): Promise<BranchStatus | null> {\n const res = await getStatusCheck(branchName);\n for (const check of res) {\n if (getGitStatusContextCombinedName(check.context) === context) {\n // TODO #22198\n return azureToRenovateStatusMapping[check.state!] ?? 'yellow';\n }\n }\n return null;\n}\n\nexport async function getBranchStatus(\n branchName: string,\n internalChecksAsSuccess: boolean,\n): Promise<BranchStatus> {\n logger.debug(`getBranchStatus(${branchName})`);\n const statuses = await getStatusCheck(branchName);\n logger.debug({ branch: branchName, statuses }, 'branch status check result');\n if (!statuses.length) {\n logger.debug('empty branch status check result = returning \"pending\"');\n return 'yellow';\n }\n const noOfFailures = statuses.filter(\n (status) =>\n status.state === GitStatusState.Error ||\n status.state === GitStatusState.Failed,\n ).length;\n if (noOfFailures) {\n return 'red';\n }\n const noOfPending = statuses.filter(\n (status) =>\n status.state === GitStatusState.NotSet ||\n status.state === GitStatusState.Pending,\n ).length;\n if (noOfPending) {\n return 'yellow';\n }\n if (\n !internalChecksAsSuccess &&\n statuses.every(\n (status) =>\n status.state === GitStatusState.Succeeded &&\n status.context?.genre === 'renovate',\n )\n ) {\n logger.debug(\n 'Successful checks are all internal renovate/ checks, so returning \"pending\" branch status',\n );\n return 'yellow';\n }\n return 'green';\n}\n\nasync function getMergeStrategy(\n targetRefName: string,\n): Promise<GitPullRequestMergeStrategy> {\n return (\n config.mergeMethods[targetRefName] ??\n (config.mergeMethods[targetRefName] = await azureHelper.getMergeMethod(\n config.repoId,\n config.project,\n targetRefName,\n config.defaultBranch,\n ))\n );\n}\n\nexport async function createPr({\n sourceBranch,\n targetBranch,\n prTitle: title,\n prBody: body,\n labels,\n draftPR = false,\n platformPrOptions,\n}: CreatePRConfig): Promise<Pr> {\n const sourceRefName = getNewBranchName(sourceBranch);\n const targetRefName = getNewBranchName(targetBranch);\n const description = max4000Chars(sanitize(body));\n const azureApiGit = await azureApi.gitApi();\n const workItemRefs = [\n {\n id: platformPrOptions?.azureWorkItemId?.toString(),\n },\n ];\n let pr: GitPullRequest = await azureApiGit.createPullRequest(\n {\n sourceRefName,\n targetRefName,\n title,\n description,\n workItemRefs,\n isDraft: draftPR,\n },\n config.repoId,\n );\n if (platformPrOptions?.usePlatformAutomerge) {\n const mergeStrategy =\n platformPrOptions.automergeStrategy === 'auto'\n ? await getMergeStrategy(pr.targetRefName!)\n : mapMergeStrategy(platformPrOptions.automergeStrategy);\n pr = await azureApiGit.updatePullRequest(\n {\n autoCompleteSetBy: {\n // TODO #22198\n id: pr.createdBy!.id,\n },\n completionOptions: {\n mergeStrategy,\n deleteSourceBranch: true,\n mergeCommitMessage: title,\n },\n },\n config.repoId,\n // TODO #22198\n pr.pullRequestId!,\n );\n }\n if (platformPrOptions?.autoApprove) {\n await azureApiGit.createPullRequestReviewer(\n {\n reviewerUrl: pr.createdBy!.url,\n vote: AzurePrVote.Approved,\n isFlagged: false,\n isRequired: false,\n },\n config.repoId,\n // TODO #22198\n pr.pullRequestId!,\n pr.createdBy!.id!,\n );\n }\n await Promise.all(\n labels!.map((label) =>\n azureApiGit.createPullRequestLabel(\n {\n name: label,\n },\n config.repoId,\n // TODO #22198\n pr.pullRequestId!,\n ),\n ),\n );\n\n const result = getRenovatePRFormat(pr);\n if (config.prList) {\n config.prList.push(result);\n }\n return result;\n}\n\nexport async function updatePr({\n number: prNo,\n prTitle: title,\n prBody: body,\n state,\n platformPrOptions,\n targetBranch,\n}: UpdatePrConfig): Promise<void> {\n logger.debug(`updatePr(${prNo}, ${title}, body)`);\n\n const azureApiGit = await azureApi.gitApi();\n const objToUpdate: GitPullRequest = {\n title,\n };\n\n if (targetBranch) {\n objToUpdate.targetRefName = getNewBranchName(targetBranch);\n }\n\n if (body) {\n objToUpdate.description = max4000Chars(sanitize(body));\n }\n\n if (state === 'open') {\n await azureApiGit.updatePullRequest(\n {\n status: PullRequestStatus.Active,\n },\n config.repoId,\n prNo,\n );\n } else if (state === 'closed') {\n objToUpdate.status = PullRequestStatus.Abandoned;\n }\n if (platformPrOptions?.autoApprove) {\n const pr = await azureApiGit.getPullRequestById(prNo, config.project);\n await azureApiGit.createPullRequestReviewer(\n {\n reviewerUrl: pr.createdBy!.url,\n vote: AzurePrVote.Approved,\n isFlagged: false,\n isRequired: false,\n },\n config.repoId,\n // TODO #22198\n pr.pullRequestId!,\n pr.createdBy!.id!,\n );\n }\n\n const updatedPr = await azureApiGit.updatePullRequest(\n objToUpdate,\n config.repoId,\n prNo,\n );\n if (config.prList) {\n const prToCache = getRenovatePRFormat(updatedPr);\n // We need to update the cached entry for this PR\n const existingIndex = config.prList.findIndex(\n (item) => item.number === prNo,\n );\n /* v8 ignore start: should not happen */\n if (existingIndex === -1) {\n logger.warn({ prNo }, 'PR not found in cache');\n // Add to cache\n config.prList.push(prToCache);\n } /* v8 ignore stop */ else {\n // overwrite existing PR in cache\n config.prList[existingIndex] = prToCache;\n }\n }\n}\n\nexport async function ensureComment({\n number,\n topic,\n content,\n}: EnsureCommentConfig): Promise<boolean> {\n logger.debug(`ensureComment(${number}, ${topic!}, content)`);\n const header = topic ? `### ${topic}\\n\\n` : '';\n const body = `${header}${sanitize(massageMarkdown(content))}`;\n const azureApiGit = await azureApi.gitApi();\n\n const threads = await azureApiGit.getThreads(config.repoId, number);\n let threadIdFound: number | undefined;\n let commentIdFound: number | undefined;\n let commentNeedsUpdating = false;\n threads.forEach((thread) => {\n const firstCommentContent = thread.comments?.[0].content;\n if (\n (topic && firstCommentContent?.startsWith(header)) === true ||\n (!topic && firstCommentContent === body)\n ) {\n threadIdFound = thread.id;\n commentIdFound = thread.comments?.[0].id;\n commentNeedsUpdating = firstCommentContent !== body;\n }\n });\n\n if (!threadIdFound) {\n await azureApiGit.createThread(\n {\n comments: [{ content: body, commentType: 1, parentCommentId: 0 }],\n status: 1,\n },\n config.repoId,\n number,\n );\n logger.info(\n { repository: config.repository, issueNo: number, topic },\n 'Comment added',\n );\n } else if (commentNeedsUpdating) {\n await azureApiGit.updateComment(\n {\n content: body,\n },\n config.repoId,\n number,\n threadIdFound,\n // TODO #22198\n commentIdFound!,\n );\n logger.debug(\n { repository: config.repository, issueNo: number, topic },\n 'Comment updated',\n );\n } else {\n logger.debug(\n { repository: config.repository, issueNo: number, topic },\n 'Comment is already update-to-date',\n );\n }\n\n return true;\n}\n\nexport async function ensureCommentRemoval(\n removeConfig: EnsureCommentRemovalConfig,\n): Promise<void> {\n const { number: issueNo } = removeConfig;\n const key =\n removeConfig.type === 'by-topic'\n ? removeConfig.topic\n : removeConfig.content;\n logger.debug(`Ensuring comment \"${key}\" in #${issueNo} is removed`);\n\n const azureApiGit = await azureApi.gitApi();\n const threads = await azureApiGit.getThreads(config.repoId, issueNo);\n\n let threadIdFound: number | null | undefined = null;\n if (removeConfig.type === 'by-topic') {\n const thread = threads.find(\n (thread: GitPullRequestCommentThread): boolean =>\n !!thread.comments?.[0].content?.startsWith(\n `### ${removeConfig.topic}\\n\\n`,\n ),\n );\n threadIdFound = thread?.id;\n } else {\n const thread = threads.find(\n (thread: GitPullRequestCommentThread): boolean =>\n thread.comments?.[0].content?.trim() === removeConfig.content,\n );\n threadIdFound = thread?.id;\n }\n\n if (threadIdFound) {\n await azureApiGit.updateThread(\n {\n status: 4, // close\n },\n config.repoId,\n issueNo,\n threadIdFound,\n );\n }\n}\n\nconst renovateToAzureStatusMapping: Record<BranchStatus, GitStatusState> = {\n ['green']: GitStatusState.Succeeded,\n ['yellow']: GitStatusState.Pending,\n ['red']: GitStatusState.Failed,\n};\n\nexport async function setBranchStatus({\n branchName,\n context,\n description,\n state,\n url: targetUrl,\n}: BranchStatusConfig): Promise<void> {\n logger.debug(\n `setBranchStatus(${branchName}, ${context}, ${description}, ${state}, ${targetUrl!})`,\n );\n const azureApiGit = await azureApi.gitApi();\n const branch = await azureApiGit.getBranch(\n config.repoId,\n getBranchNameWithoutRefsheadsPrefix(branchName)!,\n );\n const statusToCreate: GitStatus = {\n description,\n context: getGitStatusContextFromCombinedName(context),\n state: renovateToAzureStatusMapping[state],\n targetUrl,\n };\n await azureApiGit.createCommitStatus(\n statusToCreate,\n // TODO #22198\n branch.commit!.commitId!,\n config.repoId,\n );\n logger.trace(`Created commit status of ${state} on branch ${branchName}`);\n}\n\nexport async function mergePr({\n branchName,\n id: pullRequestId,\n strategy,\n}: MergePRConfig): Promise<boolean> {\n logger.debug(`mergePr(${pullRequestId}, ${branchName!})`);\n const azureApiGit = await azureApi.gitApi();\n\n let pr = await azureApiGit.getPullRequestById(pullRequestId, config.project);\n\n const mergeStrategy =\n strategy === 'auto'\n ? await getMergeStrategy(pr.targetRefName!)\n : mapMergeStrategy(strategy);\n const objToUpdate: GitPullRequest = {\n status: PullRequestStatus.Completed,\n lastMergeSourceCommit: pr.lastMergeSourceCommit,\n completionOptions: {\n mergeStrategy,\n deleteSourceBranch: true,\n mergeCommitMessage: pr.title,\n },\n };\n\n logger.trace(\n `Updating PR ${pullRequestId} to status ${PullRequestStatus.Completed} (${\n PullRequestStatus[PullRequestStatus.Completed]\n }) with lastMergeSourceCommit ${\n // TODO: types (#22198)\n pr.lastMergeSourceCommit?.commitId\n } using mergeStrategy ${mergeStrategy} (${\n GitPullRequestMergeStrategy[mergeStrategy]\n })`,\n );\n\n try {\n const response = await azureApiGit.updatePullRequest(\n objToUpdate,\n config.repoId,\n pullRequestId,\n );\n\n let retries = 0;\n let isClosed = response.status === PullRequestStatus.Completed;\n while (!isClosed && retries < 5) {\n retries += 1;\n const sleepMs = retries * 1000;\n logger.trace(\n { pullRequestId, status: pr.status, retries },\n `Updated PR to closed status but change has not taken effect yet. Retrying...`,\n );\n\n await setTimeout(sleepMs);\n pr = await azureApiGit.getPullRequestById(pullRequestId, config.project);\n isClosed = pr.status === PullRequestStatus.Completed;\n }\n\n if (!isClosed) {\n logger.warn(\n {\n pullRequestId,\n status: pr.status,\n expectedPRStatus: PullRequestStatus[PullRequestStatus.Completed],\n actualPRStatus: PullRequestStatus[pr.status!],\n },\n 'Expected PR to have completed status. However, the PR has a different status',\n );\n }\n return true;\n } catch (err) {\n logger.debug({ err }, 'Failed to set the PR as completed.');\n return false;\n }\n}\n\nexport function massageMarkdown(input: string): string {\n // Remove any HTML we use\n return smartTruncate(input, maxBodyLength())\n .replace(\n 'you tick the rebase/retry checkbox',\n 'PR is renamed to start with \"rebase!\"',\n )\n .replace(\n 'checking the rebase/retry box above',\n 'renaming the PR to start with \"rebase!\"',\n )\n .replace(regEx(`\\n---\\n\\n.*?<!-- rebase-check -->.*?\\n`), '')\n .replace(regEx(/<!--renovate-(?:debug|config-hash):.*?-->/g), '');\n}\n\nexport function maxBodyLength(): number {\n return 4000;\n}\n\n/* v8 ignore start */\nexport function findIssue(): Promise<Issue | null> {\n // TODO: Needs implementation (#9592)\n logger.debug(`findIssue() is not implemented`);\n return Promise.resolve(null);\n} /* v8 ignore stop */\n\n/* v8 ignore start */\nexport function ensureIssue(): Promise<EnsureIssueResult | null> {\n // TODO: Needs implementation (#9592)\n logger.debug(`ensureIssue() is not implemented`);\n return Promise.resolve(null);\n} /* v8 ignore stop */\n\n/* v8 ignore start */\nexport function ensureIssueClosing(): Promise<void> {\n return Promise.resolve();\n} /* v8 ignore stop */\n\n/* v8 ignore start */\nexport function getIssueList(): Promise<Issue[]> {\n logger.debug(`getIssueList()`);\n // TODO: Needs implementation (#9592)\n return Promise.resolve([]);\n} /* v8 ignore stop */\n\nasync function getUserIds(users: string[]): Promise<User[]> {\n const azureApiGit = await azureApi.gitApi();\n const azureApiCore = await azureApi.coreApi();\n const repos = await azureApiGit.getRepositories();\n const repo = repos.find((c) => c.id === config.repoId)!;\n const requiredReviewerPrefix = 'required:';\n const validReviewers = new Set<string>();\n\n // TODO #22198\n const teams = await azureHelper.getAllProjectTeams(repo.project!.id!);\n const members = await Promise.all(\n teams.map(\n async (t) =>\n await azureApiCore.getTeamMembersWithExtendedProperties(\n // TODO #22198\n repo.project!.id!,\n t.id!,\n ),\n ),\n );\n\n const ids: { id: string; name: string; isRequired: boolean }[] = [];\n members.forEach((listMembers) => {\n listMembers.forEach((m) => {\n users.forEach((r) => {\n let reviewer = r;\n let isRequired = false;\n if (reviewer.startsWith(requiredReviewerPrefix)) {\n reviewer = reviewer.replace(requiredReviewerPrefix, '');\n isRequired = true;\n }\n if (\n reviewer.toLowerCase() === m.identity?.displayName?.toLowerCase() ||\n reviewer.toLowerCase() === m.identity?.uniqueName?.toLowerCase()\n ) {\n if (ids.filter((c) => c.id === m.identity?.id).length === 0) {\n // TODO #22198\n ids.push({\n id: m.identity.id!,\n name: reviewer,\n isRequired,\n });\n\n validReviewers.add(reviewer);\n }\n }\n });\n });\n });\n\n teams.forEach((t) => {\n users.forEach((r) => {\n let reviewer = r;\n let isRequired = false;\n if (reviewer.startsWith(requiredReviewerPrefix)) {\n reviewer = reviewer.replace(requiredReviewerPrefix, '');\n isRequired = true;\n }\n if (reviewer.toLowerCase() === t.name?.toLowerCase()) {\n if (ids.filter((c) => c.id === t.id).length === 0) {\n // TODO #22198\n ids.push({ id: t.id!, name: reviewer, isRequired });\n\n validReviewers.add(reviewer);\n }\n }\n });\n });\n\n for (const u of users) {\n const reviewer = u.replace(requiredReviewerPrefix, '');\n if (!validReviewers.has(reviewer)) {\n logger.once.info(\n `${reviewer} is neither an Azure DevOps Team nor a user associated with a Team`,\n );\n }\n }\n\n return ids;\n}\n\n/**\n *\n * @param {number} issueNo\n * @param {string[]} assignees\n */\nexport async function addAssignees(\n issueNo: number,\n assignees: string[],\n): Promise<void> {\n logger.trace(`addAssignees(${issueNo}, [${assignees.join(', ')}])`);\n const ids = await getUserIds(assignees);\n await ensureComment({\n number: issueNo,\n topic: 'Add Assignees',\n content: ids.map((a) => `@<${a.id}>`).join(', '),\n });\n}\n\n/**\n *\n * @param {number} prNo\n * @param {string[]} reviewers\n */\nexport async function addReviewers(\n prNo: number,\n reviewers: string[],\n): Promise<void> {\n logger.trace(`addReviewers(${prNo}, [${reviewers.join(', ')}])`);\n const azureApiGit = await azureApi.gitApi();\n\n const ids = await getUserIds(reviewers);\n\n await Promise.all(\n ids.map(async (obj) => {\n await azureApiGit.createPullRequestReviewer(\n {\n isRequired: obj.isRequired,\n },\n config.repoId,\n prNo,\n obj.id,\n );\n logger.debug(`Reviewer added: ${obj.name}`);\n }),\n );\n}\n\nexport async function deleteLabel(\n prNumber: number,\n label: string,\n): Promise<void> {\n logger.debug(`Deleting label ${label} from #${prNumber}`);\n const azureApiGit = await azureApi.gitApi();\n await azureApiGit.deletePullRequestLabels(config.repoId, prNumber, label);\n}\n"]}
|
@@ -69,10 +69,10 @@ async function ensureComment({ config, number: prNo, topic, content, }) {
|
|
69
69
|
}
|
70
70
|
return true;
|
71
71
|
}
|
72
|
-
catch (err) /*
|
72
|
+
catch (err) /* v8 ignore start */ {
|
73
73
|
logger_1.logger.warn({ err }, 'Error ensuring comment');
|
74
74
|
return false;
|
75
|
-
}
|
75
|
+
} /* v8 ignore stop */
|
76
76
|
}
|
77
77
|
async function reopenComments(config, prNo) {
|
78
78
|
const comments = await getComments(config, prNo);
|
@@ -100,9 +100,9 @@ async function ensureCommentRemoval(config, deleteConfig) {
|
|
100
100
|
await deleteComment(config, prNo, commentId);
|
101
101
|
}
|
102
102
|
}
|
103
|
-
catch (err) /*
|
103
|
+
catch (err) /* v8 ignore start */ {
|
104
104
|
logger_1.logger.warn({ err }, 'Error ensuring comment removal');
|
105
|
-
}
|
105
|
+
} /* v8 ignore stop */
|
106
106
|
}
|
107
107
|
function sanitizeCommentBody(body) {
|
108
108
|
return body
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"comments.js","sourceRoot":"","sources":["../../../../lib/modules/platform/bitbucket/comments.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"comments.js","sourceRoot":"","sources":["../../../../lib/modules/platform/bitbucket/comments.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { BitbucketHttp } from '../../../util/http/bitbucket';\nimport type { EnsureCommentConfig, EnsureCommentRemovalConfig } from '../types';\nimport type { Account, Config, PagedResult } from './types';\n\nexport const REOPEN_PR_COMMENT_KEYWORD = 'reopen!';\n\nconst bitbucketHttp = new BitbucketHttp();\n\ninterface Comment {\n content: { raw: string };\n id: number;\n user: Account;\n}\n\nexport type CommentsConfig = Pick<Config, 'repository'>;\n\ninterface EnsureBitbucketCommentConfig extends EnsureCommentConfig {\n config: CommentsConfig;\n}\n\nasync function getComments(\n config: CommentsConfig,\n prNo: number,\n): Promise<Comment[]> {\n const comments = (\n await bitbucketHttp.getJsonUnchecked<PagedResult<Comment>>(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}/comments`,\n {\n paginate: true,\n },\n )\n ).body.values;\n\n logger.debug(`Found ${comments.length} comments`);\n return comments;\n}\n\nasync function addComment(\n config: CommentsConfig,\n prNo: number,\n raw: string,\n): Promise<void> {\n await bitbucketHttp.postJson(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}/comments`,\n {\n body: { content: { raw } },\n },\n );\n}\n\nasync function editComment(\n config: CommentsConfig,\n prNo: number,\n commentId: number,\n raw: string,\n): Promise<void> {\n await bitbucketHttp.putJson(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}/comments/${commentId}`,\n {\n body: { content: { raw } },\n },\n );\n}\n\nasync function deleteComment(\n config: CommentsConfig,\n prNo: number,\n commentId: number,\n): Promise<void> {\n await bitbucketHttp.deleteJson(\n `/2.0/repositories/${config.repository}/pullrequests/${prNo}/comments/${commentId}`,\n );\n}\n\nexport async function ensureComment({\n config,\n number: prNo,\n topic,\n content,\n}: EnsureBitbucketCommentConfig): Promise<boolean> {\n try {\n const comments = await getComments(config, prNo);\n let body: string;\n let commentId: number | undefined;\n let commentNeedsUpdating: boolean | undefined;\n if (topic) {\n logger.debug(`Ensuring comment \"${topic}\" in #${prNo}`);\n body = `### ${topic}\\n\\n${content}`;\n comments.forEach((comment) => {\n if (comment.content.raw.startsWith(`### ${topic}\\n\\n`)) {\n commentId = comment.id;\n commentNeedsUpdating = comment.content.raw !== body;\n }\n });\n } else {\n logger.debug(`Ensuring content-only comment in #${prNo}`);\n body = `${content}`;\n comments.forEach((comment) => {\n if (comment.content.raw === body) {\n commentId = comment.id;\n commentNeedsUpdating = false;\n }\n });\n }\n\n // sanitize any language that isn't supported by Bitbucket Cloud\n body = sanitizeCommentBody(body);\n\n if (!commentId) {\n await addComment(config, prNo, body);\n logger.info(\n { repository: config.repository, prNo, topic },\n 'Comment added',\n );\n } else if (commentNeedsUpdating) {\n await editComment(config, prNo, commentId, body);\n logger.debug({ repository: config.repository, prNo }, 'Comment updated');\n } else {\n logger.debug('Comment is already update-to-date');\n }\n return true;\n } catch (err) /* v8 ignore start */ {\n logger.warn({ err }, 'Error ensuring comment');\n return false;\n } /* v8 ignore stop */\n}\n\nexport async function reopenComments(\n config: CommentsConfig,\n prNo: number,\n): Promise<Comment[]> {\n const comments = await getComments(config, prNo);\n\n const reopenComments = comments.filter((comment) =>\n comment.content.raw.startsWith(REOPEN_PR_COMMENT_KEYWORD),\n );\n\n return reopenComments;\n}\n\nexport async function ensureCommentRemoval(\n config: CommentsConfig,\n deleteConfig: EnsureCommentRemovalConfig,\n): Promise<void> {\n try {\n const { number: prNo } = deleteConfig;\n const key =\n deleteConfig.type === 'by-topic'\n ? deleteConfig.topic\n : deleteConfig.content;\n logger.debug(`Ensuring comment \"${key}\" in #${prNo} is removed`);\n const comments = await getComments(config, prNo);\n\n let commentId: number | undefined = undefined;\n\n if (deleteConfig.type === 'by-topic') {\n const byTopic = (comment: Comment): boolean =>\n comment.content.raw.startsWith(`### ${deleteConfig.topic}\\n\\n`);\n commentId = comments.find(byTopic)?.id;\n } else if (deleteConfig.type === 'by-content') {\n const byContent = (comment: Comment): boolean =>\n comment.content.raw.trim() === deleteConfig.content;\n commentId = comments.find(byContent)?.id;\n }\n\n if (commentId) {\n await deleteComment(config, prNo, commentId);\n }\n } catch (err) /* v8 ignore start */ {\n logger.warn({ err }, 'Error ensuring comment removal');\n } /* v8 ignore stop */\n}\n\nfunction sanitizeCommentBody(body: string): string {\n return body\n .replace(\n 'checking the rebase/retry box above',\n 'renaming this PR to start with \"rebase!\"',\n )\n .replace(\n 'rename this PR to get a fresh replacement',\n 'add a comment starting with \"reopen!\" to get a fresh replacement',\n );\n}\n"]}
|
@@ -37,6 +37,7 @@ const common_1 = require("../../../util/common");
|
|
37
37
|
const git = tslib_1.__importStar(require("../../../util/git"));
|
38
38
|
const hostRules = tslib_1.__importStar(require("../../../util/host-rules"));
|
39
39
|
const bitbucket_1 = require("../../../util/http/bitbucket");
|
40
|
+
const memory_http_cache_provider_1 = require("../../../util/http/cache/memory-http-cache-provider");
|
40
41
|
const repository_http_cache_provider_1 = require("../../../util/http/cache/repository-http-cache-provider");
|
41
42
|
const regex_1 = require("../../../util/regex");
|
42
43
|
const sanitize_1 = require("../../../util/sanitize");
|
@@ -70,9 +71,7 @@ async function initPlatform({ endpoint, username, password, token, }) {
|
|
70
71
|
}
|
71
72
|
(0, bitbucket_1.setBaseUrl)(defaults.endpoint);
|
72
73
|
renovateUserUuid = null;
|
73
|
-
const options = {
|
74
|
-
memCache: false,
|
75
|
-
};
|
74
|
+
const options = { memCache: false };
|
76
75
|
if (token) {
|
77
76
|
options.token = token;
|
78
77
|
}
|
@@ -114,10 +113,10 @@ async function getRepos(config) {
|
|
114
113
|
}
|
115
114
|
return repos.map(({ owner, name }) => `${owner}/${name}`);
|
116
115
|
}
|
117
|
-
catch (err) /*
|
116
|
+
catch (err) /* v8 ignore start */ {
|
118
117
|
logger_1.logger.error({ err }, `bitbucket getRepos error`);
|
119
118
|
throw err;
|
120
|
-
}
|
119
|
+
} /* v8 ignore stop */
|
121
120
|
}
|
122
121
|
async function getRawFile(fileName, repoName, branchOrTag) {
|
123
122
|
// See: https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/src/%7Bcommit%7D/%7Bpath%7D
|
@@ -131,9 +130,8 @@ async function getRawFile(fileName, repoName, branchOrTag) {
|
|
131
130
|
const url = `/2.0/repositories/${repo}/src/` +
|
132
131
|
(finalBranchOrTag ?? `HEAD`) +
|
133
132
|
`/${path}`;
|
134
|
-
const res = await bitbucketHttp.
|
133
|
+
const res = await bitbucketHttp.getText(url, {
|
135
134
|
cacheProvider: repository_http_cache_provider_1.repoCacheProvider,
|
136
|
-
memCache: true,
|
137
135
|
});
|
138
136
|
return res.body;
|
139
137
|
}
|
@@ -176,13 +174,13 @@ async function initRepo({ repository, cloneSubmodules, cloneSubmodulesFilter, ig
|
|
176
174
|
};
|
177
175
|
logger_1.logger.debug(`${repository} owner = ${config.owner}`);
|
178
176
|
}
|
179
|
-
catch (err) /*
|
177
|
+
catch (err) /* v8 ignore start */ {
|
180
178
|
if (err.statusCode === 404) {
|
181
179
|
throw new Error(error_messages_1.REPOSITORY_NOT_FOUND);
|
182
180
|
}
|
183
181
|
logger_1.logger.debug({ err }, 'Unknown Bitbucket initRepo error');
|
184
182
|
throw err;
|
185
|
-
}
|
183
|
+
} /* v8 ignore stop */
|
186
184
|
const { hostname } = node_url_1.default.parse(defaults.endpoint);
|
187
185
|
// Converts API hostnames to their respective HTTP git hosts:
|
188
186
|
// `api.bitbucket.org` to `bitbucket.org`
|
@@ -211,7 +209,7 @@ async function initRepo({ repository, cloneSubmodules, cloneSubmodulesFilter, ig
|
|
211
209
|
};
|
212
210
|
return repoConfig;
|
213
211
|
}
|
214
|
-
|
212
|
+
/* v8 ignore start */
|
215
213
|
function matchesState(state, desiredState) {
|
216
214
|
if (desiredState === 'all') {
|
217
215
|
return true;
|
@@ -220,7 +218,7 @@ function matchesState(state, desiredState) {
|
|
220
218
|
return state !== desiredState.substring(1);
|
221
219
|
}
|
222
220
|
return state === desiredState;
|
223
|
-
}
|
221
|
+
} /* v8 ignore stop */
|
224
222
|
async function getPrList() {
|
225
223
|
logger_1.logger.trace('getPrList()');
|
226
224
|
return await pr_cache_1.BitbucketPrCache.getPrs(bitbucketHttp, config.repository, renovateUserUuid);
|
@@ -229,7 +227,7 @@ async function findPr({ branchName, prTitle, state = 'all', includeOtherAuthors,
|
|
229
227
|
logger_1.logger.debug(`findPr(${branchName}, ${prTitle}, ${state})`);
|
230
228
|
if (includeOtherAuthors) {
|
231
229
|
// PR might have been created by anyone, so don't use the cached Renovate PR list
|
232
|
-
const prs = (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/pullrequests?q=source.branch.name="${branchName}"&state=open
|
230
|
+
const prs = (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/pullrequests?q=source.branch.name="${branchName}"&state=open`, { cacheProvider: memory_http_cache_provider_1.memCacheProvider })).body.values;
|
233
231
|
if (prs.length === 0) {
|
234
232
|
logger_1.logger.debug(`No PR found for branch ${branchName}`);
|
235
233
|
return null;
|
@@ -268,11 +266,11 @@ async function findPr({ branchName, prTitle, state = 'all', includeOtherAuthors,
|
|
268
266
|
}
|
269
267
|
// Gets details for a PR
|
270
268
|
async function getPr(prNo) {
|
271
|
-
const pr = (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/pullrequests/${prNo}
|
272
|
-
|
269
|
+
const pr = (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/pullrequests/${prNo}`, { cacheProvider: memory_http_cache_provider_1.memCacheProvider })).body;
|
270
|
+
/* v8 ignore start */
|
273
271
|
if (!pr) {
|
274
272
|
return null;
|
275
|
-
}
|
273
|
+
} /* v8 ignore stop */
|
276
274
|
const res = {
|
277
275
|
...utils.prInfo(pr),
|
278
276
|
};
|
@@ -287,13 +285,13 @@ const escapeHash = (input) => input?.replace((0, regex_1.regEx)(/#/g), '%23');
|
|
287
285
|
// Return the commit SHA for a branch
|
288
286
|
async function getBranchCommit(branchName) {
|
289
287
|
try {
|
290
|
-
const branch = (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/refs/branches/${escapeHash(branchName)}
|
288
|
+
const branch = (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/refs/branches/${escapeHash(branchName)}`, { cacheProvider: memory_http_cache_provider_1.memCacheProvider })).body;
|
291
289
|
return branch.target.hash;
|
292
290
|
}
|
293
|
-
catch (err) /*
|
291
|
+
catch (err) /* v8 ignore start */ {
|
294
292
|
logger_1.logger.debug({ err }, `getBranchCommit('${branchName}') failed'`);
|
295
293
|
return undefined;
|
296
|
-
}
|
294
|
+
} /* v8 ignore stop */
|
297
295
|
}
|
298
296
|
// Returns the Pull Request for a branch. Null if not exists.
|
299
297
|
async function getBranchPr(branchName) {
|
@@ -306,10 +304,15 @@ async function getBranchPr(branchName) {
|
|
306
304
|
}
|
307
305
|
async function getStatus(branchName, memCache = true) {
|
308
306
|
const sha = await getBranchCommit(branchName);
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
307
|
+
const opts = { paginate: true };
|
308
|
+
/* v8 ignore start: temporary code */
|
309
|
+
if (memCache) {
|
310
|
+
opts.cacheProvider = memory_http_cache_provider_1.memCacheProvider;
|
311
|
+
}
|
312
|
+
else {
|
313
|
+
opts.memCache = false;
|
314
|
+
} /* v8 ignore stop */
|
315
|
+
return (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/commit/${sha}/statuses`, opts)).body.values;
|
313
316
|
}
|
314
317
|
// Returns the combined status for a branch.
|
315
318
|
async function getBranchStatus(branchName, internalChecksAsSuccess) {
|
@@ -349,7 +352,8 @@ async function getBranchStatusCheck(branchName, context) {
|
|
349
352
|
async function setBranchStatus({ branchName, context, description, state, url: targetUrl, }) {
|
350
353
|
const sha = await getBranchCommit(branchName);
|
351
354
|
// TargetUrl can not be empty so default to bitbucket
|
352
|
-
|
355
|
+
/* v8 ignore next */
|
356
|
+
const url = targetUrl ?? 'https://bitbucket.org';
|
353
357
|
const body = {
|
354
358
|
name: context,
|
355
359
|
state: utils.buildStates[state],
|
@@ -371,20 +375,20 @@ async function findOpenIssues(title) {
|
|
371
375
|
filters.push(`reporter.uuid="${renovateUserUuid}"`);
|
372
376
|
}
|
373
377
|
const filter = encodeURIComponent(filters.join(' AND '));
|
374
|
-
return ((await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/issues?q=${filter}
|
378
|
+
return ((await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/issues?q=${filter}`, { cacheProvider: memory_http_cache_provider_1.memCacheProvider })).body.values /* v8 ignore start */ || [] /* v8 ignore stop */);
|
375
379
|
}
|
376
|
-
catch (err) /*
|
380
|
+
catch (err) /* v8 ignore start */ {
|
377
381
|
logger_1.logger.warn({ err }, 'Error finding issues');
|
378
382
|
return [];
|
379
|
-
}
|
383
|
+
} /* v8 ignore stop */
|
380
384
|
}
|
381
385
|
async function findIssue(title) {
|
382
386
|
logger_1.logger.debug(`findIssue(${title})`);
|
383
|
-
/*
|
387
|
+
/* v8 ignore start */
|
384
388
|
if (!config.has_issues) {
|
385
389
|
logger_1.logger.debug('Issues are disabled - cannot findIssue');
|
386
390
|
return null;
|
387
|
-
}
|
391
|
+
} /* v8 ignore stop */
|
388
392
|
const issues = await findOpenIssues(title);
|
389
393
|
if (!issues.length) {
|
390
394
|
return null;
|
@@ -416,12 +420,12 @@ function maxBodyLength() {
|
|
416
420
|
}
|
417
421
|
async function ensureIssue({ title, reuseTitle, body, }) {
|
418
422
|
logger_1.logger.debug(`ensureIssue()`);
|
419
|
-
/*
|
423
|
+
/* v8 ignore start */
|
420
424
|
if (!config.has_issues) {
|
421
425
|
logger_1.logger.debug('Issues are disabled - cannot ensureIssue');
|
422
426
|
logger_1.logger.debug(`Failed to ensure Issue with title:${title}`);
|
423
427
|
return null;
|
424
|
-
}
|
428
|
+
} /* v8 ignore stop */
|
425
429
|
try {
|
426
430
|
let issues = await findOpenIssues(title);
|
427
431
|
const description = massageMarkdown((0, sanitize_1.sanitize)(body));
|
@@ -462,17 +466,17 @@ async function ensureIssue({ title, reuseTitle, body, }) {
|
|
462
466
|
return 'created';
|
463
467
|
}
|
464
468
|
}
|
465
|
-
catch (err) /*
|
469
|
+
catch (err) /* v8 ignore start */ {
|
466
470
|
if (err.message.startsWith('Repository has no issue tracker.')) {
|
467
471
|
logger_1.logger.debug(`Issues are disabled, so could not create issue: ${title}`);
|
468
472
|
}
|
469
473
|
else {
|
470
474
|
logger_1.logger.warn({ err }, 'Could not ensure issue');
|
471
475
|
}
|
472
|
-
}
|
476
|
+
} /* v8 ignore stop */
|
473
477
|
return null;
|
474
478
|
}
|
475
|
-
/*
|
479
|
+
/* v8 ignore start */
|
476
480
|
async function getIssueList() {
|
477
481
|
logger_1.logger.debug(`getIssueList()`);
|
478
482
|
if (!config.has_issues) {
|
@@ -495,13 +499,13 @@ async function getIssueList() {
|
|
495
499
|
logger_1.logger.warn({ err }, 'Error finding issues');
|
496
500
|
return [];
|
497
501
|
}
|
498
|
-
}
|
502
|
+
} /* v8 ignore stop */
|
499
503
|
async function ensureIssueClosing(title) {
|
500
|
-
/*
|
504
|
+
/* v8 ignore start */
|
501
505
|
if (!config.has_issues) {
|
502
506
|
logger_1.logger.debug('Issues are disabled - cannot ensureIssueClosing');
|
503
507
|
return;
|
504
|
-
}
|
508
|
+
} /* v8 ignore stop */
|
505
509
|
const issues = await findOpenIssues(title);
|
506
510
|
for (const issue of issues) {
|
507
511
|
await closeIssue(issue.id);
|
@@ -532,10 +536,10 @@ async function addReviewers(prId, reviewers) {
|
|
532
536
|
body,
|
533
537
|
});
|
534
538
|
}
|
535
|
-
/*
|
539
|
+
/* v8 ignore start */
|
536
540
|
function deleteLabel() {
|
537
541
|
throw new Error('deleteLabel not implemented');
|
538
|
-
}
|
542
|
+
} /* v8 ignore stop */
|
539
543
|
function ensureComment({ number, topic, content, }) {
|
540
544
|
// https://developer.atlassian.com/bitbucket/api/2/reference/search?q=pullrequest+comment
|
541
545
|
return comments.ensureComment({
|
@@ -560,7 +564,7 @@ async function sanitizeReviewers(reviewers, err) {
|
|
560
564
|
logger_1.logger.debug({ err }, 'PR contains reviewers that may be either inactive or no longer a member of this workspace. Will try setting only active reviewers');
|
561
565
|
// Validate that each previous PR reviewer account is still active
|
562
566
|
for (const reviewer of reviewers) {
|
563
|
-
const reviewerUser = (await bitbucketHttp.getJsonUnchecked(`/2.0/users/${reviewer.uuid}`, {
|
567
|
+
const reviewerUser = (await bitbucketHttp.getJsonUnchecked(`/2.0/users/${reviewer.uuid}`, { cacheProvider: memory_http_cache_provider_1.memCacheProvider })).body;
|
564
568
|
if (reviewerUser.account_status === 'active') {
|
565
569
|
// There are cases where an active user may still not be a member of a workspace
|
566
570
|
if (await isAccountMemberOfWorkspace(reviewer, config.repository)) {
|
@@ -599,7 +603,7 @@ async function sanitizeReviewers(reviewers, err) {
|
|
599
603
|
async function isAccountMemberOfWorkspace(reviewer, repository) {
|
600
604
|
const workspace = repository.split('/')[0];
|
601
605
|
try {
|
602
|
-
await bitbucketHttp.get(`/2.0/workspaces/${workspace}/members/${reviewer.uuid}`, {
|
606
|
+
await bitbucketHttp.get(`/2.0/workspaces/${workspace}/members/${reviewer.uuid}`, { cacheProvider: memory_http_cache_provider_1.memCacheProvider });
|
603
607
|
return true;
|
604
608
|
}
|
605
609
|
catch (err) {
|
@@ -620,6 +624,7 @@ async function createPr({ sourceBranch, targetBranch, prTitle: title, prBody: de
|
|
620
624
|
if (platformPrOptions?.bbUseDefaultReviewers) {
|
621
625
|
const reviewersResponse = (await bitbucketHttp.getJsonUnchecked(`/2.0/repositories/${config.repository}/effective-default-reviewers`, {
|
622
626
|
paginate: true,
|
627
|
+
cacheProvider: memory_http_cache_provider_1.memCacheProvider,
|
623
628
|
})).body;
|
624
629
|
reviewers = reviewersResponse.values.map((reviewer) => ({
|
625
630
|
uuid: reviewer.user.uuid,
|
@@ -653,7 +658,7 @@ async function createPr({ sourceBranch, targetBranch, prTitle: title, prBody: de
|
|
653
658
|
}
|
654
659
|
return pr;
|
655
660
|
}
|
656
|
-
catch (err) /*
|
661
|
+
catch (err) /* v8 ignore start */ {
|
657
662
|
// Try sanitizing reviewers
|
658
663
|
const sanitizedReviewers = await sanitizeReviewers(reviewers, err);
|
659
664
|
if (sanitizedReviewers === undefined) {
|
@@ -674,7 +679,7 @@ async function createPr({ sourceBranch, targetBranch, prTitle: title, prBody: de
|
|
674
679
|
}
|
675
680
|
return pr;
|
676
681
|
}
|
677
|
-
}
|
682
|
+
} /* v8 ignore stop */
|
678
683
|
}
|
679
684
|
async function autoResolvePrTasks(pr) {
|
680
685
|
logger_1.logger.debug(`Auto resolve PR tasks in #${pr.number}`);
|
@@ -758,11 +763,11 @@ async function mergePr({ branchName, id: prNo, strategy: mergeStrategy, }) {
|
|
758
763
|
});
|
759
764
|
logger_1.logger.debug('Automerging succeeded');
|
760
765
|
}
|
761
|
-
catch (err) /*
|
766
|
+
catch (err) /* v8 ignore start */ {
|
762
767
|
logger_1.logger.debug({ err }, `PR merge error`);
|
763
768
|
logger_1.logger.info({ pr: prNo }, 'PR automerge failed');
|
764
769
|
return false;
|
765
|
-
}
|
770
|
+
} /* v8 ignore stop */
|
766
771
|
return true;
|
767
772
|
}
|
768
773
|
//# sourceMappingURL=index.js.map
|