renovate 40.0.0-next.4 → 40.0.0-next.41
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/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/options/index.js +17 -3
- 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 +0 -1
- 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 +1 -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/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 -1
- 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 +8 -2
- 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 +6 -11
- 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 +10 -8
- 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 +2 -2
- 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/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 +4 -4
- package/dist/modules/datasource/index.js.map +1 -1
- package/dist/modules/datasource/java-version/index.js +0 -1
- package/dist/modules/datasource/java-version/index.js.map +1 -1
- package/dist/modules/datasource/jenkins-plugins/index.js +1 -1
- package/dist/modules/datasource/jenkins-plugins/index.js.map +1 -1
- package/dist/modules/datasource/maven/index.js +35 -27
- package/dist/modules/datasource/maven/index.js.map +1 -1
- package/dist/modules/datasource/maven/types.d.ts +3 -6
- package/dist/modules/datasource/maven/types.js.map +1 -1
- package/dist/modules/datasource/maven/util.d.ts +4 -5
- package/dist/modules/datasource/maven/util.js +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 +6 -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/datasource/unity3d/index.d.ts +4 -1
- package/dist/modules/datasource/unity3d/index.js +36 -42
- package/dist/modules/datasource/unity3d/index.js.map +1 -1
- package/dist/modules/datasource/unity3d/schema.d.ts +47 -0
- package/dist/modules/datasource/unity3d/schema.js +17 -0
- package/dist/modules/datasource/unity3d/schema.js.map +1 -0
- 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/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 +117 -117
- 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/index.js +4 -0
- package/dist/modules/manager/custom/jsonata/index.js.map +1 -1
- 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/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.js +4 -4
- 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/processors/pdm.js +0 -1
- package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
- package/dist/modules/manager/pep621/processors/uv.js +0 -1
- package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
- package/dist/modules/manager/pep621/schema.d.ts +346 -54
- package/dist/modules/manager/pep621/schema.js +2 -0
- 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 +48 -48
- 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.d.ts +1 -0
- package/dist/modules/platform/bitbucket/index.js +54 -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 +3 -3
- 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.d.ts +1 -0
- package/dist/modules/platform/gitea/index.js +33 -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.d.ts +1 -0
- package/dist/modules/platform/gitlab/index.js +72 -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/schema.js +1 -1
- package/dist/modules/versioning/schema.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/decorator.js +2 -2
- package/dist/util/cache/package/decorator.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/config/parse/env.js +3 -2
- package/dist/workers/global/config/parse/env.js.map +1 -1
- package/dist/workers/global/config/parse/file.js +19 -9
- 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/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 +10 -1
- 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 +85 -85
- package/renovate-schema.json +24 -3
- 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
@@ -24,6 +24,7 @@ const regex_1 = require("../../../../../util/regex");
|
|
24
24
|
const string_1 = require("../../../../../util/string");
|
25
25
|
const url_1 = require("../../../../../util/url");
|
26
26
|
const bitbucket = tslib_1.__importStar(require("./bitbucket"));
|
27
|
+
const bitbucketServer = tslib_1.__importStar(require("./bitbucket-server"));
|
27
28
|
const gitea = tslib_1.__importStar(require("./gitea"));
|
28
29
|
const github = tslib_1.__importStar(require("./github"));
|
29
30
|
const gitlab = tslib_1.__importStar(require("./gitlab"));
|
@@ -43,6 +44,9 @@ async function getReleaseList(project, release) {
|
|
43
44
|
return await github.getReleaseList(project, release);
|
44
45
|
case 'bitbucket':
|
45
46
|
return bitbucket.getReleaseList(project, release);
|
47
|
+
case 'bitbucket-server':
|
48
|
+
logger_1.logger.trace('Unsupported Bitbucket Server feature. Skipping release fetching.');
|
49
|
+
return [];
|
46
50
|
default:
|
47
51
|
logger_1.logger.warn({ apiBaseUrl, repository, type }, 'Invalid project type');
|
48
52
|
return [];
|
@@ -205,6 +209,8 @@ async function getReleaseNotesMdFileInner(project) {
|
|
205
209
|
return await github.getReleaseNotesMd(repository, apiBaseUrl, sourceDirectory);
|
206
210
|
case 'bitbucket':
|
207
211
|
return await bitbucket.getReleaseNotesMd(repository, apiBaseUrl, sourceDirectory);
|
212
|
+
case 'bitbucket-server':
|
213
|
+
return await bitbucketServer.getReleaseNotesMd(repository, apiBaseUrl, sourceDirectory);
|
208
214
|
default:
|
209
215
|
logger_1.logger.warn({ apiBaseUrl, repository, type }, 'Invalid project type');
|
210
216
|
return null;
|
@@ -264,8 +270,7 @@ async function getReleaseNotesMd(project, release) {
|
|
264
270
|
for (const word of title) {
|
265
271
|
if (word.includes(version) && !(0, url_1.isHttpUrl)(word)) {
|
266
272
|
logger_1.logger.trace({ body }, 'Found release notes for v' + version);
|
267
|
-
|
268
|
-
const notesSourceUrl = (0, url_1.joinUrlParts)(baseUrl, repository, getSourceRootPath(project.type), 'HEAD', changelogFile);
|
273
|
+
const notesSourceUrl = getNotesSourceUrl(baseUrl, repository, project, changelogFile);
|
269
274
|
const mdHeadingLink = title
|
270
275
|
.filter((word) => !(0, url_1.isHttpUrl)(word))
|
271
276
|
.join('-')
|
@@ -364,12 +369,11 @@ async function addReleaseNotes(input, config) {
|
|
364
369
|
function shouldSkipChangelogMd(repository) {
|
365
370
|
return repositoriesToSkipMdFetching.includes(repository);
|
366
371
|
}
|
367
|
-
function
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
default:
|
372
|
-
return 'blob';
|
372
|
+
function getNotesSourceUrl(baseUrl, repository, project, changelogFile) {
|
373
|
+
if (project.type === 'bitbucket-server') {
|
374
|
+
const [projectKey, repositorySlug] = repository.split('/');
|
375
|
+
return (0, url_1.joinUrlParts)(baseUrl, 'projects', projectKey, 'repos', repositorySlug, 'browse', changelogFile, '?at=HEAD');
|
373
376
|
}
|
377
|
+
return (0, url_1.joinUrlParts)(baseUrl, repository, project.type === 'bitbucket' ? 'src' : 'blob', 'HEAD', changelogFile);
|
374
378
|
}
|
375
379
|
//# sourceMappingURL=release-notes.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"release-notes.js","sourceRoot":"","sources":["../../../../../../lib/workers/repository/update/pr/changelog/release-notes.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { DateTime } from 'luxon';\nimport MarkdownIt from 'markdown-it';\nimport { logger } from '../../../../../logger';\nimport * as memCache from '../../../../../util/cache/memory';\nimport * as packageCache from '../../../../../util/cache/package';\nimport type { PackageCacheNamespace } from '../../../../../util/cache/package/types';\nimport { detectPlatform } from '../../../../../util/common';\nimport { linkify } from '../../../../../util/markdown';\nimport { newlineRegex, regEx } from '../../../../../util/regex';\nimport { coerceString } from '../../../../../util/string';\nimport { isHttpUrl, joinUrlParts } from '../../../../../util/url';\nimport type { BranchUpgradeConfig } from '../../../../types';\nimport * as bitbucket from './bitbucket';\nimport * as gitea from './gitea';\nimport * as github from './github';\nimport * as gitlab from './gitlab';\nimport type {\n ChangeLogFile,\n ChangeLogNotes,\n ChangeLogPlatform,\n ChangeLogProject,\n ChangeLogRelease,\n ChangeLogResult,\n} from './types';\n\nconst markdown = new MarkdownIt('zero');\nmarkdown.enable(['heading', 'lheading']);\n\nconst repositoriesToSkipMdFetching = ['facebook/react-native'];\n\nexport async function getReleaseList(\n project: ChangeLogProject,\n release: ChangeLogRelease,\n): Promise<ChangeLogNotes[]> {\n logger.trace('getReleaseList()');\n const { apiBaseUrl, repository, type } = project;\n try {\n switch (type) {\n case 'gitea':\n return await gitea.getReleaseList(project, release);\n case 'gitlab':\n return await gitlab.getReleaseList(project, release);\n case 'github':\n return await github.getReleaseList(project, release);\n case 'bitbucket':\n return bitbucket.getReleaseList(project, release);\n default:\n logger.warn({ apiBaseUrl, repository, type }, 'Invalid project type');\n return [];\n }\n } catch (err) /* istanbul ignore next */ {\n if (err.statusCode === 404) {\n logger.debug({ repository, type, apiBaseUrl }, 'getReleaseList 404');\n } else {\n logger.debug(\n { repository, type, apiBaseUrl, err },\n 'getReleaseList error',\n );\n }\n }\n return [];\n}\n\nexport function getCachedReleaseList(\n project: ChangeLogProject,\n release: ChangeLogRelease,\n): Promise<ChangeLogNotes[]> {\n const { repository, apiBaseUrl } = project;\n // TODO: types (#22198)\n const cacheKey = `getReleaseList-${apiBaseUrl}-${repository}`;\n const cachedResult = memCache.get<Promise<ChangeLogNotes[]>>(cacheKey);\n // istanbul ignore if\n if (cachedResult !== undefined) {\n return cachedResult;\n }\n const promisedRes = getReleaseList(project, release);\n memCache.set(cacheKey, promisedRes);\n return promisedRes;\n}\n\nexport function massageBody(\n input: string | undefined | null,\n baseUrl: string,\n): string {\n let body = coerceString(input);\n // Convert line returns\n body = body.replace(regEx(/\\r\\n/g), '\\n');\n // semantic-release cleanup\n body = body.replace(regEx(/^<a name=\"[^\"]*\"><\\/a>\\n/), '');\n body = body.replace(\n regEx(\n `^##? \\\\[[^\\\\]]*\\\\]\\\\(${baseUrl}[^/]*/[^/]*/compare/.*?\\\\n`,\n undefined,\n false,\n ),\n '',\n );\n // Clean-up unnecessary commits link\n body = `\\n${body}\\n`.replace(\n regEx(`\\\\n${baseUrl}[^/]+/[^/]+/compare/[^\\\\n]+(\\\\n|$)`),\n '\\n',\n );\n // Reduce headings size\n body = body\n .replace(regEx(/\\n\\s*####? /g), '\\n##### ')\n .replace(regEx(/\\n\\s*## /g), '\\n#### ')\n .replace(regEx(/\\n\\s*# /g), '\\n### ');\n // Trim whitespace\n return body.trim();\n}\n\nexport function massageName(\n input: string | undefined | null,\n version: string | undefined,\n): string | undefined {\n let name = input ?? '';\n\n if (version) {\n name = name.replace(RegExp(`^(Release )?v?${version}`, 'i'), '').trim();\n }\n\n name = name.trim();\n if (!name.length) {\n return undefined;\n }\n\n return name;\n}\n\nexport async function getReleaseNotes(\n project: ChangeLogProject,\n release: ChangeLogRelease,\n config: BranchUpgradeConfig,\n): Promise<ChangeLogNotes | null> {\n const { packageName, depName, repository } = project;\n const { version, gitRef } = release;\n // TODO: types (#22198)\n logger.trace(\n `getReleaseNotes(${repository}, ${version}, ${packageName!}, ${depName!})`,\n );\n const releases = await getCachedReleaseList(project, release);\n logger.trace({ releases }, 'Release list from getReleaseList');\n let releaseNotes: ChangeLogNotes | null = null;\n\n let matchedRelease = getExactReleaseMatch(\n packageName!,\n depName!,\n version,\n releases,\n );\n if (is.undefined(matchedRelease)) {\n // no exact match of a release then check other cases\n matchedRelease = releases.find(\n (r) =>\n r.tag === version ||\n r.tag === `v${version}` ||\n r.tag === gitRef ||\n r.tag === `v${gitRef}`,\n );\n }\n if (is.undefined(matchedRelease) && config.extractVersion) {\n const extractVersionRegEx = regEx(config.extractVersion);\n matchedRelease = releases.find((r) => {\n const extractedVersion = extractVersionRegEx.exec(r.tag!)?.groups\n ?.version;\n return version === extractedVersion;\n });\n }\n releaseNotes = await releaseNotesResult(matchedRelease, project);\n logger.trace({ releaseNotes });\n return releaseNotes;\n}\n\nfunction getExactReleaseMatch(\n packageName: string,\n depName: string,\n version: string,\n releases: ChangeLogNotes[],\n): ChangeLogNotes | undefined {\n const exactReleaseReg = regEx(\n `(?:^|/)(?:${packageName}|${depName})[@_-]v?${version}`,\n );\n const candidateReleases = releases.filter((r) => r.tag?.endsWith(version));\n const matchedRelease = candidateReleases.find((r) =>\n exactReleaseReg.test(r.tag!),\n );\n return matchedRelease;\n}\n\nasync function releaseNotesResult(\n releaseMatch: ChangeLogNotes | undefined,\n project: ChangeLogProject,\n): Promise<ChangeLogNotes | null> {\n if (!releaseMatch) {\n return null;\n }\n const { baseUrl, repository } = project;\n const releaseNotes: ChangeLogNotes = releaseMatch;\n if (detectPlatform(baseUrl) === 'gitlab') {\n releaseNotes.url = `${baseUrl}${repository}/tags/${releaseMatch.tag!}`;\n } else {\n releaseNotes.url = releaseMatch.url\n ? releaseMatch.url\n : /* istanbul ignore next */\n `${baseUrl}${repository}/releases/${releaseMatch.tag!}`;\n }\n // set body for release notes\n releaseNotes.body = massageBody(releaseNotes.body, baseUrl);\n releaseNotes.name = massageName(releaseNotes.name, releaseNotes.tag);\n if (releaseNotes.body.length || releaseNotes.name?.length) {\n try {\n if (baseUrl !== 'https://gitlab.com/') {\n releaseNotes.body = await linkify(releaseNotes.body, {\n repository: `${baseUrl}${repository}`,\n });\n }\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ err, baseUrl, repository }, 'Error linkifying');\n }\n } else {\n return null;\n }\n\n return releaseNotes;\n}\n\nfunction sectionize(text: string, level: number): string[] {\n const sections: [number, number][] = [];\n const lines = text.split(newlineRegex);\n const tokens = markdown.parse(text, undefined);\n tokens.forEach((token) => {\n if (token.type === 'heading_open') {\n const lev = +token.tag.substring(1);\n if (lev <= level) {\n sections.push([lev, token.map![0]]);\n }\n }\n });\n sections.push([-1, lines.length]);\n const result: string[] = [];\n for (let i = 1; i < sections.length; i += 1) {\n const [lev, start] = sections[i - 1];\n const [, end] = sections[i];\n if (lev === level) {\n result.push(lines.slice(start, end).join('\\n'));\n }\n }\n return result;\n}\n\nexport async function getReleaseNotesMdFileInner(\n project: ChangeLogProject,\n): Promise<ChangeLogFile | null> {\n const { repository, type } = project;\n const apiBaseUrl = project.apiBaseUrl;\n const sourceDirectory = project.sourceDirectory!;\n try {\n switch (type) {\n case 'gitea':\n return await gitea.getReleaseNotesMd(\n repository,\n apiBaseUrl,\n sourceDirectory,\n );\n case 'gitlab':\n return await gitlab.getReleaseNotesMd(\n repository,\n apiBaseUrl,\n sourceDirectory,\n );\n case 'github':\n return await github.getReleaseNotesMd(\n repository,\n apiBaseUrl,\n sourceDirectory,\n );\n case 'bitbucket':\n return await bitbucket.getReleaseNotesMd(\n repository,\n apiBaseUrl,\n sourceDirectory,\n );\n default:\n logger.warn({ apiBaseUrl, repository, type }, 'Invalid project type');\n return null;\n }\n } catch (err) /* istanbul ignore next */ {\n if (err.statusCode === 404) {\n logger.debug(\n { repository, type, apiBaseUrl },\n 'Error 404 getting changelog md',\n );\n } else {\n logger.debug(\n { err, repository, type, apiBaseUrl },\n 'Error getting changelog md',\n );\n }\n }\n return null;\n}\n\nexport function getReleaseNotesMdFile(\n project: ChangeLogProject,\n): Promise<ChangeLogFile | null> {\n const { sourceDirectory, repository, apiBaseUrl } = project;\n // TODO: types (#22198)\n const cacheKey = sourceDirectory\n ? `getReleaseNotesMdFile@v2-${repository}-${sourceDirectory}-${apiBaseUrl}`\n : `getReleaseNotesMdFile@v2-${repository}-${apiBaseUrl}`;\n const cachedResult = memCache.get<Promise<ChangeLogFile | null>>(cacheKey);\n // istanbul ignore if\n if (cachedResult !== undefined) {\n return cachedResult;\n }\n const promisedRes = getReleaseNotesMdFileInner(project);\n memCache.set(cacheKey, promisedRes);\n return promisedRes;\n}\n\nexport async function getReleaseNotesMd(\n project: ChangeLogProject,\n release: ChangeLogRelease,\n): Promise<ChangeLogNotes | null> {\n const { baseUrl, repository } = project;\n const version = release.version;\n logger.trace(`getReleaseNotesMd(${repository}, ${version})`);\n\n if (shouldSkipChangelogMd(repository)) {\n return null;\n }\n\n const changelog = await getReleaseNotesMdFile(project);\n if (!changelog) {\n return null;\n }\n const { changelogFile } = changelog;\n const changelogMd = changelog.changelogMd.replace(\n regEx(/\\n\\s*<a name=\"[^\"]*\">.*?<\\/a>\\n/g),\n '\\n',\n );\n for (const level of [1, 2, 3, 4, 5, 6, 7]) {\n const changelogParsed = sectionize(changelogMd, level);\n if (changelogParsed.length >= 2) {\n for (const section of changelogParsed) {\n try {\n // replace brackets and parenthesis with space\n const deParenthesizedSection = section.replace(\n regEx(/[[\\]()]/g),\n ' ',\n );\n const [heading] = deParenthesizedSection.split(newlineRegex);\n const title = heading\n .replace(regEx(/^\\s*#*\\s*/), '')\n .split(' ')\n .filter(Boolean);\n let body = section.replace(regEx(/.*?\\n(-{3,}\\n)?/), '').trim();\n for (const word of title) {\n if (word.includes(version) && !isHttpUrl(word)) {\n logger.trace({ body }, 'Found release notes for v' + version);\n // TODO: fix url\n const notesSourceUrl = joinUrlParts(\n baseUrl,\n repository,\n getSourceRootPath(project.type),\n 'HEAD',\n changelogFile,\n );\n const mdHeadingLink = title\n .filter((word) => !isHttpUrl(word))\n .join('-')\n .replace(regEx(/[^A-Za-z0-9-]/g), '');\n const url = `${notesSourceUrl}#${mdHeadingLink}`;\n body = massageBody(body, baseUrl);\n if (body?.length) {\n try {\n body = await linkify(body, {\n repository: `${baseUrl}${repository}`,\n });\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ body, err }, 'linkify error');\n }\n }\n return {\n body,\n url,\n notesSourceUrl,\n };\n }\n }\n } catch (err) /* istanbul ignore next */ {\n logger.warn(\n { file: changelogFile, err },\n `Error parsing changelog file`,\n );\n }\n }\n }\n logger.trace({ repository }, `No level ${level} changelogs headings found`);\n }\n logger.trace({ repository, version }, `No entry found in ${changelogFile}`);\n return null;\n}\n\n/**\n * Determine how long to cache release notes based on when the version was released.\n *\n * It's not uncommon for release notes to be updated shortly after the release itself,\n * so only cache for about an hour when the release is less than a week old. Otherwise,\n * cache for days.\n */\nexport function releaseNotesCacheMinutes(releaseDate?: string | Date): number {\n const dt = is.date(releaseDate)\n ? DateTime.fromJSDate(releaseDate)\n : DateTime.fromISO(releaseDate!);\n\n const now = DateTime.local();\n\n if (!dt.isValid || now.diff(dt, 'days').days < 7) {\n return 55;\n }\n\n if (now.diff(dt, 'months').months < 6) {\n return 1435; // 5 minutes shy of one day\n }\n\n return 14495; // 5 minutes shy of 10 days\n}\n\nexport async function addReleaseNotes(\n input: ChangeLogResult | null | undefined,\n config: BranchUpgradeConfig,\n): Promise<ChangeLogResult | null> {\n if (!input?.versions || !input.project?.type) {\n logger.debug('Missing project or versions');\n return input ?? null;\n }\n const output: ChangeLogResult = {\n ...input,\n versions: [],\n hasReleaseNotes: false,\n };\n\n const { repository, sourceDirectory, type: projectType } = input.project;\n const cacheNamespace: PackageCacheNamespace = `changelog-${projectType}-notes@v2`;\n const cacheKeyPrefix = sourceDirectory\n ? `${repository}:${sourceDirectory}`\n : `${repository}`;\n\n for (const v of input.versions) {\n let releaseNotes: ChangeLogNotes | null | undefined;\n const cacheKey = `${cacheKeyPrefix}:${v.version}`;\n releaseNotes = await packageCache.get(cacheNamespace, cacheKey);\n releaseNotes ??= await getReleaseNotesMd(input.project, v);\n releaseNotes ??= await getReleaseNotes(input.project, v, config);\n\n // If there is no release notes, at least try to show the compare URL\n if (!releaseNotes && v.compare.url) {\n releaseNotes = { url: v.compare.url, notesSourceUrl: '' };\n }\n\n const cacheMinutes = releaseNotesCacheMinutes(v.date);\n await packageCache.set(\n cacheNamespace,\n cacheKey,\n releaseNotes,\n cacheMinutes,\n );\n output.versions!.push({\n ...v,\n releaseNotes: releaseNotes!,\n });\n\n if (releaseNotes) {\n output.hasReleaseNotes = true;\n }\n }\n return output;\n}\n\n/**\n * Skip fetching changelog/release-notes markdown files.\n * Will force a fallback to using GitHub release notes\n */\nexport function shouldSkipChangelogMd(repository: string): boolean {\n return repositoriesToSkipMdFetching.includes(repository);\n}\n\nfunction getSourceRootPath(type: ChangeLogPlatform): string {\n switch (type) {\n case 'bitbucket':\n return 'src';\n default:\n return 'blob';\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"release-notes.js","sourceRoot":"","sources":["../../../../../../lib/workers/repository/update/pr/changelog/release-notes.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { DateTime } from 'luxon';\nimport MarkdownIt from 'markdown-it';\nimport { logger } from '../../../../../logger';\nimport * as memCache from '../../../../../util/cache/memory';\nimport * as packageCache from '../../../../../util/cache/package';\nimport type { PackageCacheNamespace } from '../../../../../util/cache/package/types';\nimport { detectPlatform } from '../../../../../util/common';\nimport { linkify } from '../../../../../util/markdown';\nimport { newlineRegex, regEx } from '../../../../../util/regex';\nimport { coerceString } from '../../../../../util/string';\nimport { isHttpUrl, joinUrlParts } from '../../../../../util/url';\nimport type { BranchUpgradeConfig } from '../../../../types';\nimport * as bitbucket from './bitbucket';\nimport * as bitbucketServer from './bitbucket-server';\nimport * as gitea from './gitea';\nimport * as github from './github';\nimport * as gitlab from './gitlab';\nimport type {\n ChangeLogFile,\n ChangeLogNotes,\n ChangeLogProject,\n ChangeLogRelease,\n ChangeLogResult,\n} from './types';\n\nconst markdown = new MarkdownIt('zero');\nmarkdown.enable(['heading', 'lheading']);\n\nconst repositoriesToSkipMdFetching = ['facebook/react-native'];\n\nexport async function getReleaseList(\n project: ChangeLogProject,\n release: ChangeLogRelease,\n): Promise<ChangeLogNotes[]> {\n logger.trace('getReleaseList()');\n const { apiBaseUrl, repository, type } = project;\n try {\n switch (type) {\n case 'gitea':\n return await gitea.getReleaseList(project, release);\n case 'gitlab':\n return await gitlab.getReleaseList(project, release);\n case 'github':\n return await github.getReleaseList(project, release);\n case 'bitbucket':\n return bitbucket.getReleaseList(project, release);\n case 'bitbucket-server':\n logger.trace(\n 'Unsupported Bitbucket Server feature. Skipping release fetching.',\n );\n return [];\n default:\n logger.warn({ apiBaseUrl, repository, type }, 'Invalid project type');\n return [];\n }\n } catch (err) /* istanbul ignore next */ {\n if (err.statusCode === 404) {\n logger.debug({ repository, type, apiBaseUrl }, 'getReleaseList 404');\n } else {\n logger.debug(\n { repository, type, apiBaseUrl, err },\n 'getReleaseList error',\n );\n }\n }\n return [];\n}\n\nexport function getCachedReleaseList(\n project: ChangeLogProject,\n release: ChangeLogRelease,\n): Promise<ChangeLogNotes[]> {\n const { repository, apiBaseUrl } = project;\n // TODO: types (#22198)\n const cacheKey = `getReleaseList-${apiBaseUrl}-${repository}`;\n const cachedResult = memCache.get<Promise<ChangeLogNotes[]>>(cacheKey);\n // istanbul ignore if\n if (cachedResult !== undefined) {\n return cachedResult;\n }\n const promisedRes = getReleaseList(project, release);\n memCache.set(cacheKey, promisedRes);\n return promisedRes;\n}\n\nexport function massageBody(\n input: string | undefined | null,\n baseUrl: string,\n): string {\n let body = coerceString(input);\n // Convert line returns\n body = body.replace(regEx(/\\r\\n/g), '\\n');\n // semantic-release cleanup\n body = body.replace(regEx(/^<a name=\"[^\"]*\"><\\/a>\\n/), '');\n body = body.replace(\n regEx(\n `^##? \\\\[[^\\\\]]*\\\\]\\\\(${baseUrl}[^/]*/[^/]*/compare/.*?\\\\n`,\n undefined,\n false,\n ),\n '',\n );\n // Clean-up unnecessary commits link\n body = `\\n${body}\\n`.replace(\n regEx(`\\\\n${baseUrl}[^/]+/[^/]+/compare/[^\\\\n]+(\\\\n|$)`),\n '\\n',\n );\n // Reduce headings size\n body = body\n .replace(regEx(/\\n\\s*####? /g), '\\n##### ')\n .replace(regEx(/\\n\\s*## /g), '\\n#### ')\n .replace(regEx(/\\n\\s*# /g), '\\n### ');\n // Trim whitespace\n return body.trim();\n}\n\nexport function massageName(\n input: string | undefined | null,\n version: string | undefined,\n): string | undefined {\n let name = input ?? '';\n\n if (version) {\n name = name.replace(RegExp(`^(Release )?v?${version}`, 'i'), '').trim();\n }\n\n name = name.trim();\n if (!name.length) {\n return undefined;\n }\n\n return name;\n}\n\nexport async function getReleaseNotes(\n project: ChangeLogProject,\n release: ChangeLogRelease,\n config: BranchUpgradeConfig,\n): Promise<ChangeLogNotes | null> {\n const { packageName, depName, repository } = project;\n const { version, gitRef } = release;\n // TODO: types (#22198)\n logger.trace(\n `getReleaseNotes(${repository}, ${version}, ${packageName!}, ${depName!})`,\n );\n const releases = await getCachedReleaseList(project, release);\n logger.trace({ releases }, 'Release list from getReleaseList');\n let releaseNotes: ChangeLogNotes | null = null;\n\n let matchedRelease = getExactReleaseMatch(\n packageName!,\n depName!,\n version,\n releases,\n );\n if (is.undefined(matchedRelease)) {\n // no exact match of a release then check other cases\n matchedRelease = releases.find(\n (r) =>\n r.tag === version ||\n r.tag === `v${version}` ||\n r.tag === gitRef ||\n r.tag === `v${gitRef}`,\n );\n }\n if (is.undefined(matchedRelease) && config.extractVersion) {\n const extractVersionRegEx = regEx(config.extractVersion);\n matchedRelease = releases.find((r) => {\n const extractedVersion = extractVersionRegEx.exec(r.tag!)?.groups\n ?.version;\n return version === extractedVersion;\n });\n }\n releaseNotes = await releaseNotesResult(matchedRelease, project);\n logger.trace({ releaseNotes });\n return releaseNotes;\n}\n\nfunction getExactReleaseMatch(\n packageName: string,\n depName: string,\n version: string,\n releases: ChangeLogNotes[],\n): ChangeLogNotes | undefined {\n const exactReleaseReg = regEx(\n `(?:^|/)(?:${packageName}|${depName})[@_-]v?${version}`,\n );\n const candidateReleases = releases.filter((r) => r.tag?.endsWith(version));\n const matchedRelease = candidateReleases.find((r) =>\n exactReleaseReg.test(r.tag!),\n );\n return matchedRelease;\n}\n\nasync function releaseNotesResult(\n releaseMatch: ChangeLogNotes | undefined,\n project: ChangeLogProject,\n): Promise<ChangeLogNotes | null> {\n if (!releaseMatch) {\n return null;\n }\n const { baseUrl, repository } = project;\n const releaseNotes: ChangeLogNotes = releaseMatch;\n if (detectPlatform(baseUrl) === 'gitlab') {\n releaseNotes.url = `${baseUrl}${repository}/tags/${releaseMatch.tag!}`;\n } else {\n releaseNotes.url = releaseMatch.url\n ? releaseMatch.url\n : /* istanbul ignore next */\n `${baseUrl}${repository}/releases/${releaseMatch.tag!}`;\n }\n // set body for release notes\n releaseNotes.body = massageBody(releaseNotes.body, baseUrl);\n releaseNotes.name = massageName(releaseNotes.name, releaseNotes.tag);\n if (releaseNotes.body.length || releaseNotes.name?.length) {\n try {\n if (baseUrl !== 'https://gitlab.com/') {\n releaseNotes.body = await linkify(releaseNotes.body, {\n repository: `${baseUrl}${repository}`,\n });\n }\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ err, baseUrl, repository }, 'Error linkifying');\n }\n } else {\n return null;\n }\n\n return releaseNotes;\n}\n\nfunction sectionize(text: string, level: number): string[] {\n const sections: [number, number][] = [];\n const lines = text.split(newlineRegex);\n const tokens = markdown.parse(text, undefined);\n tokens.forEach((token) => {\n if (token.type === 'heading_open') {\n const lev = +token.tag.substring(1);\n if (lev <= level) {\n sections.push([lev, token.map![0]]);\n }\n }\n });\n sections.push([-1, lines.length]);\n const result: string[] = [];\n for (let i = 1; i < sections.length; i += 1) {\n const [lev, start] = sections[i - 1];\n const [, end] = sections[i];\n if (lev === level) {\n result.push(lines.slice(start, end).join('\\n'));\n }\n }\n return result;\n}\n\nexport async function getReleaseNotesMdFileInner(\n project: ChangeLogProject,\n): Promise<ChangeLogFile | null> {\n const { repository, type } = project;\n const apiBaseUrl = project.apiBaseUrl;\n const sourceDirectory = project.sourceDirectory!;\n try {\n switch (type) {\n case 'gitea':\n return await gitea.getReleaseNotesMd(\n repository,\n apiBaseUrl,\n sourceDirectory,\n );\n case 'gitlab':\n return await gitlab.getReleaseNotesMd(\n repository,\n apiBaseUrl,\n sourceDirectory,\n );\n case 'github':\n return await github.getReleaseNotesMd(\n repository,\n apiBaseUrl,\n sourceDirectory,\n );\n case 'bitbucket':\n return await bitbucket.getReleaseNotesMd(\n repository,\n apiBaseUrl,\n sourceDirectory,\n );\n case 'bitbucket-server':\n return await bitbucketServer.getReleaseNotesMd(\n repository,\n apiBaseUrl,\n sourceDirectory,\n );\n default:\n logger.warn({ apiBaseUrl, repository, type }, 'Invalid project type');\n return null;\n }\n } catch (err) /* istanbul ignore next */ {\n if (err.statusCode === 404) {\n logger.debug(\n { repository, type, apiBaseUrl },\n 'Error 404 getting changelog md',\n );\n } else {\n logger.debug(\n { err, repository, type, apiBaseUrl },\n 'Error getting changelog md',\n );\n }\n }\n return null;\n}\n\nexport function getReleaseNotesMdFile(\n project: ChangeLogProject,\n): Promise<ChangeLogFile | null> {\n const { sourceDirectory, repository, apiBaseUrl } = project;\n // TODO: types (#22198)\n const cacheKey = sourceDirectory\n ? `getReleaseNotesMdFile@v2-${repository}-${sourceDirectory}-${apiBaseUrl}`\n : `getReleaseNotesMdFile@v2-${repository}-${apiBaseUrl}`;\n const cachedResult = memCache.get<Promise<ChangeLogFile | null>>(cacheKey);\n // istanbul ignore if\n if (cachedResult !== undefined) {\n return cachedResult;\n }\n const promisedRes = getReleaseNotesMdFileInner(project);\n memCache.set(cacheKey, promisedRes);\n return promisedRes;\n}\n\nexport async function getReleaseNotesMd(\n project: ChangeLogProject,\n release: ChangeLogRelease,\n): Promise<ChangeLogNotes | null> {\n const { baseUrl, repository } = project;\n const version = release.version;\n logger.trace(`getReleaseNotesMd(${repository}, ${version})`);\n\n if (shouldSkipChangelogMd(repository)) {\n return null;\n }\n\n const changelog = await getReleaseNotesMdFile(project);\n if (!changelog) {\n return null;\n }\n const { changelogFile } = changelog;\n const changelogMd = changelog.changelogMd.replace(\n regEx(/\\n\\s*<a name=\"[^\"]*\">.*?<\\/a>\\n/g),\n '\\n',\n );\n for (const level of [1, 2, 3, 4, 5, 6, 7]) {\n const changelogParsed = sectionize(changelogMd, level);\n if (changelogParsed.length >= 2) {\n for (const section of changelogParsed) {\n try {\n // replace brackets and parenthesis with space\n const deParenthesizedSection = section.replace(\n regEx(/[[\\]()]/g),\n ' ',\n );\n const [heading] = deParenthesizedSection.split(newlineRegex);\n const title = heading\n .replace(regEx(/^\\s*#*\\s*/), '')\n .split(' ')\n .filter(Boolean);\n let body = section.replace(regEx(/.*?\\n(-{3,}\\n)?/), '').trim();\n for (const word of title) {\n if (word.includes(version) && !isHttpUrl(word)) {\n logger.trace({ body }, 'Found release notes for v' + version);\n const notesSourceUrl = getNotesSourceUrl(\n baseUrl,\n repository,\n project,\n changelogFile,\n );\n const mdHeadingLink = title\n .filter((word) => !isHttpUrl(word))\n .join('-')\n .replace(regEx(/[^A-Za-z0-9-]/g), '');\n const url = `${notesSourceUrl}#${mdHeadingLink}`;\n body = massageBody(body, baseUrl);\n if (body?.length) {\n try {\n body = await linkify(body, {\n repository: `${baseUrl}${repository}`,\n });\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ body, err }, 'linkify error');\n }\n }\n return {\n body,\n url,\n notesSourceUrl,\n };\n }\n }\n } catch (err) /* istanbul ignore next */ {\n logger.warn(\n { file: changelogFile, err },\n `Error parsing changelog file`,\n );\n }\n }\n }\n logger.trace({ repository }, `No level ${level} changelogs headings found`);\n }\n logger.trace({ repository, version }, `No entry found in ${changelogFile}`);\n return null;\n}\n\n/**\n * Determine how long to cache release notes based on when the version was released.\n *\n * It's not uncommon for release notes to be updated shortly after the release itself,\n * so only cache for about an hour when the release is less than a week old. Otherwise,\n * cache for days.\n */\nexport function releaseNotesCacheMinutes(releaseDate?: string | Date): number {\n const dt = is.date(releaseDate)\n ? DateTime.fromJSDate(releaseDate)\n : DateTime.fromISO(releaseDate!);\n\n const now = DateTime.local();\n\n if (!dt.isValid || now.diff(dt, 'days').days < 7) {\n return 55;\n }\n\n if (now.diff(dt, 'months').months < 6) {\n return 1435; // 5 minutes shy of one day\n }\n\n return 14495; // 5 minutes shy of 10 days\n}\n\nexport async function addReleaseNotes(\n input: ChangeLogResult | null | undefined,\n config: BranchUpgradeConfig,\n): Promise<ChangeLogResult | null> {\n if (!input?.versions || !input.project?.type) {\n logger.debug('Missing project or versions');\n return input ?? null;\n }\n const output: ChangeLogResult = {\n ...input,\n versions: [],\n hasReleaseNotes: false,\n };\n\n const { repository, sourceDirectory, type: projectType } = input.project;\n const cacheNamespace: PackageCacheNamespace = `changelog-${projectType}-notes@v2`;\n const cacheKeyPrefix = sourceDirectory\n ? `${repository}:${sourceDirectory}`\n : `${repository}`;\n\n for (const v of input.versions) {\n let releaseNotes: ChangeLogNotes | null | undefined;\n const cacheKey = `${cacheKeyPrefix}:${v.version}`;\n releaseNotes = await packageCache.get(cacheNamespace, cacheKey);\n releaseNotes ??= await getReleaseNotesMd(input.project, v);\n releaseNotes ??= await getReleaseNotes(input.project, v, config);\n\n // If there is no release notes, at least try to show the compare URL\n if (!releaseNotes && v.compare.url) {\n releaseNotes = { url: v.compare.url, notesSourceUrl: '' };\n }\n\n const cacheMinutes = releaseNotesCacheMinutes(v.date);\n await packageCache.set(\n cacheNamespace,\n cacheKey,\n releaseNotes,\n cacheMinutes,\n );\n output.versions!.push({\n ...v,\n releaseNotes: releaseNotes!,\n });\n\n if (releaseNotes) {\n output.hasReleaseNotes = true;\n }\n }\n return output;\n}\n\n/**\n * Skip fetching changelog/release-notes markdown files.\n * Will force a fallback to using GitHub release notes\n */\nexport function shouldSkipChangelogMd(repository: string): boolean {\n return repositoriesToSkipMdFetching.includes(repository);\n}\n\nfunction getNotesSourceUrl(\n baseUrl: string,\n repository: string,\n project: ChangeLogProject,\n changelogFile: string,\n): string {\n if (project.type === 'bitbucket-server') {\n const [projectKey, repositorySlug] = repository.split('/');\n return joinUrlParts(\n baseUrl,\n 'projects',\n projectKey,\n 'repos',\n repositorySlug,\n 'browse',\n changelogFile,\n '?at=HEAD',\n );\n }\n\n return joinUrlParts(\n baseUrl,\n repository,\n project.type === 'bitbucket' ? 'src' : 'blob',\n 'HEAD',\n changelogFile,\n );\n}\n"]}
|
@@ -4,7 +4,7 @@ export declare abstract class ChangeLogSource {
|
|
4
4
|
private readonly platform;
|
5
5
|
private readonly datasource;
|
6
6
|
private readonly cacheNamespace;
|
7
|
-
constructor(platform: ChangeLogPlatform, datasource: 'bitbucket-tags' | 'gitea-tags' | 'github-tags' | 'gitlab-tags');
|
7
|
+
constructor(platform: ChangeLogPlatform, datasource: 'bitbucket-tags' | 'bitbucket-server-tags' | 'gitea-tags' | 'github-tags' | 'gitlab-tags');
|
8
8
|
abstract getCompareURL(baseUrl: string, repository: string, prevHead: string, nextHead: string): string;
|
9
9
|
abstract getAPIBaseUrl(config: BranchUpgradeConfig): string;
|
10
10
|
getAllTags(endpoint: string, repository: string): Promise<string[]>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../../../../../lib/workers/repository/update/pr/changelog/source.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../../../logger';\nimport { getPkgReleases } from '../../../../../modules/datasource';\nimport type { Release } from '../../../../../modules/datasource/types';\nimport * as allVersioning from '../../../../../modules/versioning';\nimport * as packageCache from '../../../../../util/cache/package';\nimport type { PackageCacheNamespace } from '../../../../../util/cache/package/types';\nimport { memoize } from '../../../../../util/memoize';\nimport { regEx } from '../../../../../util/regex';\nimport { parseUrl, trimSlashes } from '../../../../../util/url';\nimport type { BranchUpgradeConfig } from '../../../../types';\nimport { slugifyUrl } from './common';\nimport { addReleaseNotes } from './release-notes';\nimport { getInRangeReleases } from './releases';\nimport type {\n ChangeLogError,\n ChangeLogPlatform,\n ChangeLogRelease,\n ChangeLogResult,\n} from './types';\n\nexport abstract class ChangeLogSource {\n private readonly cacheNamespace: PackageCacheNamespace;\n\n constructor(\n private readonly platform: ChangeLogPlatform,\n private readonly datasource:\n | 'bitbucket-tags'\n | 'gitea-tags'\n | 'github-tags'\n | 'gitlab-tags',\n ) {\n this.cacheNamespace = `changelog-${platform}-release`;\n }\n\n abstract getCompareURL(\n baseUrl: string,\n repository: string,\n prevHead: string,\n nextHead: string,\n ): string;\n\n abstract getAPIBaseUrl(config: BranchUpgradeConfig): string;\n\n async getAllTags(endpoint: string, repository: string): Promise<string[]> {\n const tags = (\n await getPkgReleases({\n registryUrls: [endpoint],\n datasource: this.datasource,\n packageName: repository,\n versioning:\n 'regex:(?<major>\\\\d+)(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?',\n })\n )?.releases;\n\n if (is.nullOrUndefined(tags) || is.emptyArray(tags)) {\n logger.debug(\n `No ${this.datasource} tags found for repository: ${repository}`,\n );\n\n return [];\n }\n\n return tags.map(({ version }) => version);\n }\n\n public async getChangeLogJSON(\n config: BranchUpgradeConfig,\n ): Promise<ChangeLogResult | null> {\n logger.trace(`getChangeLogJSON for ${this.platform}`);\n\n const versioning = config.versioning!;\n const currentVersion = config.currentVersion!;\n const newVersion = config.newVersion!;\n const sourceUrl = config.sourceUrl!;\n const packageName = config.packageName!;\n const depName = config.depName!;\n const sourceDirectory = config.sourceDirectory;\n const versioningApi = allVersioning.get(versioning);\n\n if (this.shouldSkipPackage(config)) {\n return null;\n }\n\n const baseUrl = this.getBaseUrl(config);\n const apiBaseUrl = this.getAPIBaseUrl(config);\n const repository = this.getRepositoryFromUrl(config);\n\n const tokenResponse = this.hasValidToken(config);\n if (!tokenResponse.isValid) {\n if (tokenResponse.error) {\n return {\n error: tokenResponse.error,\n };\n }\n return null;\n }\n\n if (is.falsy(this.hasValidRepository(repository))) {\n logger.debug(`Invalid ${this.platform} URL found: ${sourceUrl}`);\n return null;\n }\n\n const releases = config.releases ?? (await getInRangeReleases(config));\n if (!releases?.length) {\n logger.debug('No releases');\n return null;\n }\n // This extra filter/sort should not be necessary, but better safe than sorry\n const validReleases = [...releases]\n .filter((release) => versioningApi.isVersion(release.version))\n .sort((a, b) => versioningApi.sortVersions(a.version, b.version));\n\n if (validReleases.length < 2) {\n logger.debug(\n `Not enough valid releases for dep ${depName} (${packageName})`,\n );\n return null;\n }\n\n const changelogReleases: ChangeLogRelease[] = [];\n\n // Check if `v` belongs to the range (currentVersion, newVersion]\n const inRange = (v: string): boolean =>\n versioningApi.isGreaterThan(v, currentVersion) &&\n !versioningApi.isGreaterThan(v, newVersion);\n\n const getTags = memoize(() => this.getAllTags(apiBaseUrl, repository));\n for (let i = 1; i < validReleases.length; i += 1) {\n const prev = validReleases[i - 1];\n const next = validReleases[i];\n if (!inRange(next.version)) {\n continue;\n }\n let release = await packageCache.get(\n this.cacheNamespace,\n this.getCacheKey(sourceUrl, packageName, prev.version, next.version),\n );\n if (!release) {\n release = {\n version: next.version,\n date: next.releaseTimestamp,\n gitRef: next.gitRef,\n // put empty changes so that existing templates won't break\n changes: [],\n compare: {},\n };\n const tags = await getTags();\n const prevHead = this.getRef(\n versioningApi,\n packageName,\n depName,\n prev,\n tags,\n );\n const nextHead = this.getRef(\n versioningApi,\n packageName,\n depName,\n next,\n tags,\n );\n if (is.nonEmptyString(prevHead) && is.nonEmptyString(nextHead)) {\n release.compare.url = this.getCompareURL(\n baseUrl,\n repository,\n prevHead,\n nextHead,\n );\n }\n const cacheMinutes = 55;\n await packageCache.set(\n this.cacheNamespace,\n this.getCacheKey(sourceUrl, packageName, prev.version, next.version),\n release,\n cacheMinutes,\n );\n }\n changelogReleases.unshift(release);\n }\n\n let res: ChangeLogResult | null = {\n project: {\n apiBaseUrl,\n baseUrl,\n type: this.platform,\n repository,\n sourceUrl,\n sourceDirectory,\n packageName,\n },\n versions: changelogReleases,\n };\n\n res = await addReleaseNotes(res, config);\n\n return res;\n }\n\n private findTagOfRelease(\n versioningApi: allVersioning.VersioningApi,\n packageName: string,\n depName: string,\n depNewVersion: string,\n tags: string[],\n ): string | undefined {\n const releaseRegexPrefix = `^(?:${packageName}|${depName}|release)[@_-]v?`;\n const regex = regEx(releaseRegexPrefix, undefined, false);\n const exactReleaseRegex = regEx(`${releaseRegexPrefix}${depNewVersion}`);\n const exactTagsList = tags.filter((tag) => {\n return exactReleaseRegex.test(tag);\n });\n const tagList = exactTagsList.length ? exactTagsList : tags;\n return tagList\n .filter((tag) => versioningApi.isVersion(tag.replace(regex, '')))\n .find((tag) =>\n versioningApi.equals(tag.replace(regex, ''), depNewVersion),\n );\n }\n\n private getRef(\n versioningApi: allVersioning.VersioningApi,\n packageName: string,\n depName: string,\n release: Release,\n tags: string[],\n ): string | null {\n const tagName = this.findTagOfRelease(\n versioningApi,\n packageName,\n depName,\n release.version,\n tags,\n );\n if (is.nonEmptyString(tagName)) {\n return tagName;\n }\n if (is.nonEmptyString(release.gitRef)) {\n return release.gitRef;\n }\n return null;\n }\n\n private getCacheKey(\n sourceUrl: string,\n packageName: string,\n prev: string,\n next: string,\n ): string {\n return `${slugifyUrl(sourceUrl)}:${packageName}:${prev}:${next}`;\n }\n\n getBaseUrl(config: BranchUpgradeConfig): string {\n const parsedUrl = parseUrl(config.sourceUrl);\n if (is.nullOrUndefined(parsedUrl)) {\n return '';\n }\n const protocol = parsedUrl.protocol.replace(regEx(/^git\\+/), '');\n const host = parsedUrl.host;\n return `${protocol}//${host}/`;\n }\n\n getRepositoryFromUrl(config: BranchUpgradeConfig): string {\n const parsedUrl = parseUrl(config.sourceUrl);\n if (is.nullOrUndefined(parsedUrl)) {\n return '';\n }\n const pathname = parsedUrl.pathname;\n return trimSlashes(pathname).replace(regEx(/\\.git$/), '');\n }\n\n protected hasValidToken(config: BranchUpgradeConfig): {\n isValid: boolean;\n error?: ChangeLogError;\n } {\n return { isValid: true };\n }\n\n protected shouldSkipPackage(config: BranchUpgradeConfig): boolean {\n return false;\n }\n\n hasValidRepository(repository: string): boolean {\n return repository.split('/').length === 2;\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../../../../../lib/workers/repository/update/pr/changelog/source.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../../../logger';\nimport { getPkgReleases } from '../../../../../modules/datasource';\nimport type { Release } from '../../../../../modules/datasource/types';\nimport * as allVersioning from '../../../../../modules/versioning';\nimport * as packageCache from '../../../../../util/cache/package';\nimport type { PackageCacheNamespace } from '../../../../../util/cache/package/types';\nimport { memoize } from '../../../../../util/memoize';\nimport { regEx } from '../../../../../util/regex';\nimport { parseUrl, trimSlashes } from '../../../../../util/url';\nimport type { BranchUpgradeConfig } from '../../../../types';\nimport { slugifyUrl } from './common';\nimport { addReleaseNotes } from './release-notes';\nimport { getInRangeReleases } from './releases';\nimport type {\n ChangeLogError,\n ChangeLogPlatform,\n ChangeLogRelease,\n ChangeLogResult,\n} from './types';\n\nexport abstract class ChangeLogSource {\n private readonly cacheNamespace: PackageCacheNamespace;\n\n constructor(\n private readonly platform: ChangeLogPlatform,\n private readonly datasource:\n | 'bitbucket-tags'\n | 'bitbucket-server-tags'\n | 'gitea-tags'\n | 'github-tags'\n | 'gitlab-tags',\n ) {\n this.cacheNamespace = `changelog-${platform}-release`;\n }\n\n abstract getCompareURL(\n baseUrl: string,\n repository: string,\n prevHead: string,\n nextHead: string,\n ): string;\n\n abstract getAPIBaseUrl(config: BranchUpgradeConfig): string;\n\n async getAllTags(endpoint: string, repository: string): Promise<string[]> {\n const tags = (\n await getPkgReleases({\n registryUrls: [endpoint],\n datasource: this.datasource,\n packageName: repository,\n versioning:\n 'regex:(?<major>\\\\d+)(\\\\.(?<minor>\\\\d+))?(\\\\.(?<patch>\\\\d+))?',\n })\n )?.releases;\n\n if (is.nullOrUndefined(tags) || is.emptyArray(tags)) {\n logger.debug(\n `No ${this.datasource} tags found for repository: ${repository}`,\n );\n\n return [];\n }\n\n return tags.map(({ version }) => version);\n }\n\n public async getChangeLogJSON(\n config: BranchUpgradeConfig,\n ): Promise<ChangeLogResult | null> {\n logger.trace(`getChangeLogJSON for ${this.platform}`);\n\n const versioning = config.versioning!;\n const currentVersion = config.currentVersion!;\n const newVersion = config.newVersion!;\n const sourceUrl = config.sourceUrl!;\n const packageName = config.packageName!;\n const depName = config.depName!;\n const sourceDirectory = config.sourceDirectory;\n const versioningApi = allVersioning.get(versioning);\n\n if (this.shouldSkipPackage(config)) {\n return null;\n }\n\n const baseUrl = this.getBaseUrl(config);\n const apiBaseUrl = this.getAPIBaseUrl(config);\n const repository = this.getRepositoryFromUrl(config);\n\n const tokenResponse = this.hasValidToken(config);\n if (!tokenResponse.isValid) {\n if (tokenResponse.error) {\n return {\n error: tokenResponse.error,\n };\n }\n return null;\n }\n\n if (is.falsy(this.hasValidRepository(repository))) {\n logger.debug(`Invalid ${this.platform} URL found: ${sourceUrl}`);\n return null;\n }\n\n const releases = config.releases ?? (await getInRangeReleases(config));\n if (!releases?.length) {\n logger.debug('No releases');\n return null;\n }\n // This extra filter/sort should not be necessary, but better safe than sorry\n const validReleases = [...releases]\n .filter((release) => versioningApi.isVersion(release.version))\n .sort((a, b) => versioningApi.sortVersions(a.version, b.version));\n\n if (validReleases.length < 2) {\n logger.debug(\n `Not enough valid releases for dep ${depName} (${packageName})`,\n );\n return null;\n }\n\n const changelogReleases: ChangeLogRelease[] = [];\n\n // Check if `v` belongs to the range (currentVersion, newVersion]\n const inRange = (v: string): boolean =>\n versioningApi.isGreaterThan(v, currentVersion) &&\n !versioningApi.isGreaterThan(v, newVersion);\n\n const getTags = memoize(() => this.getAllTags(apiBaseUrl, repository));\n for (let i = 1; i < validReleases.length; i += 1) {\n const prev = validReleases[i - 1];\n const next = validReleases[i];\n if (!inRange(next.version)) {\n continue;\n }\n let release = await packageCache.get(\n this.cacheNamespace,\n this.getCacheKey(sourceUrl, packageName, prev.version, next.version),\n );\n if (!release) {\n release = {\n version: next.version,\n date: next.releaseTimestamp,\n gitRef: next.gitRef,\n // put empty changes so that existing templates won't break\n changes: [],\n compare: {},\n };\n const tags = await getTags();\n const prevHead = this.getRef(\n versioningApi,\n packageName,\n depName,\n prev,\n tags,\n );\n const nextHead = this.getRef(\n versioningApi,\n packageName,\n depName,\n next,\n tags,\n );\n if (is.nonEmptyString(prevHead) && is.nonEmptyString(nextHead)) {\n release.compare.url = this.getCompareURL(\n baseUrl,\n repository,\n prevHead,\n nextHead,\n );\n }\n const cacheMinutes = 55;\n await packageCache.set(\n this.cacheNamespace,\n this.getCacheKey(sourceUrl, packageName, prev.version, next.version),\n release,\n cacheMinutes,\n );\n }\n changelogReleases.unshift(release);\n }\n\n let res: ChangeLogResult | null = {\n project: {\n apiBaseUrl,\n baseUrl,\n type: this.platform,\n repository,\n sourceUrl,\n sourceDirectory,\n packageName,\n depName,\n },\n versions: changelogReleases,\n };\n\n res = await addReleaseNotes(res, config);\n\n return res;\n }\n\n private findTagOfRelease(\n versioningApi: allVersioning.VersioningApi,\n packageName: string,\n depName: string,\n depNewVersion: string,\n tags: string[],\n ): string | undefined {\n const releaseRegexPrefix = `^(?:${packageName}|${depName}|release)[@_-]v?`;\n const regex = regEx(releaseRegexPrefix, undefined, false);\n const exactReleaseRegex = regEx(`${releaseRegexPrefix}${depNewVersion}`);\n const exactTagsList = tags.filter((tag) => {\n return exactReleaseRegex.test(tag);\n });\n const tagList = exactTagsList.length ? exactTagsList : tags;\n return tagList\n .filter((tag) => versioningApi.isVersion(tag.replace(regex, '')))\n .find((tag) =>\n versioningApi.equals(tag.replace(regex, ''), depNewVersion),\n );\n }\n\n private getRef(\n versioningApi: allVersioning.VersioningApi,\n packageName: string,\n depName: string,\n release: Release,\n tags: string[],\n ): string | null {\n const tagName = this.findTagOfRelease(\n versioningApi,\n packageName,\n depName,\n release.version,\n tags,\n );\n if (is.nonEmptyString(tagName)) {\n return tagName;\n }\n if (is.nonEmptyString(release.gitRef)) {\n return release.gitRef;\n }\n return null;\n }\n\n private getCacheKey(\n sourceUrl: string,\n packageName: string,\n prev: string,\n next: string,\n ): string {\n return `${slugifyUrl(sourceUrl)}:${packageName}:${prev}:${next}`;\n }\n\n getBaseUrl(config: BranchUpgradeConfig): string {\n const parsedUrl = parseUrl(config.sourceUrl);\n if (is.nullOrUndefined(parsedUrl)) {\n return '';\n }\n const protocol = parsedUrl.protocol.replace(regEx(/^git\\+/), '');\n const host = parsedUrl.host;\n return `${protocol}//${host}/`;\n }\n\n getRepositoryFromUrl(config: BranchUpgradeConfig): string {\n const parsedUrl = parseUrl(config.sourceUrl);\n if (is.nullOrUndefined(parsedUrl)) {\n return '';\n }\n const pathname = parsedUrl.pathname;\n return trimSlashes(pathname).replace(regEx(/\\.git$/), '');\n }\n\n protected hasValidToken(config: BranchUpgradeConfig): {\n isValid: boolean;\n error?: ChangeLogError;\n } {\n return { isValid: true };\n }\n\n protected shouldSkipPackage(config: BranchUpgradeConfig): boolean {\n return false;\n }\n\n hasValidRepository(repository: string): boolean {\n return repository.split('/').length === 2;\n }\n}\n"]}
|
@@ -21,7 +21,7 @@ export interface ChangeLogRelease {
|
|
21
21
|
version: string;
|
22
22
|
gitRef: string;
|
23
23
|
}
|
24
|
-
export type ChangeLogPlatform = 'bitbucket' | 'gitea' | 'github' | 'gitlab';
|
24
|
+
export type ChangeLogPlatform = 'bitbucket' | 'bitbucket-server' | 'gitea' | 'github' | 'gitlab';
|
25
25
|
export interface ChangeLogProject {
|
26
26
|
packageName?: string;
|
27
27
|
depName?: string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../lib/workers/repository/update/pr/changelog/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface ChangeLogNotes {\n body?: string;\n id?: number;\n name?: string;\n tag?: string;\n // url to changelog.md file or github/gitlab release api\n notesSourceUrl: string;\n url: string;\n}\n\nexport interface ChangeLogChange {\n date: Date;\n message: string;\n sha: string;\n}\n\nexport interface ChangeLogRelease {\n changes: ChangeLogChange[];\n compare: { url?: string };\n date: string | Date;\n releaseNotes?: ChangeLogNotes;\n version: string;\n gitRef: string;\n}\n\nexport type ChangeLogPlatform
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../lib/workers/repository/update/pr/changelog/types.ts"],"names":[],"mappings":"","sourcesContent":["export interface ChangeLogNotes {\n body?: string;\n id?: number;\n name?: string;\n tag?: string;\n // url to changelog.md file or github/gitlab release api\n notesSourceUrl: string;\n url: string;\n}\n\nexport interface ChangeLogChange {\n date: Date;\n message: string;\n sha: string;\n}\n\nexport interface ChangeLogRelease {\n changes: ChangeLogChange[];\n compare: { url?: string };\n date: string | Date;\n releaseNotes?: ChangeLogNotes;\n version: string;\n gitRef: string;\n}\n\nexport type ChangeLogPlatform =\n | 'bitbucket'\n | 'bitbucket-server'\n | 'gitea'\n | 'github'\n | 'gitlab';\n\nexport interface ChangeLogProject {\n packageName?: string;\n depName?: string;\n type: ChangeLogPlatform;\n apiBaseUrl: string;\n baseUrl: string;\n repository: string;\n sourceUrl: string;\n sourceDirectory?: string;\n}\n\nexport type ChangeLogError =\n | 'MissingBitbucketToken'\n | 'MissingGithubToken'\n | 'MissingGitlabToken';\n\nexport interface ChangeLogResult {\n hasReleaseNotes?: boolean;\n project?: ChangeLogProject;\n versions?: ChangeLogRelease[];\n error?: ChangeLogError;\n}\n\nexport interface ChangeLogFile {\n changelogFile: string;\n changelogMd: string;\n}\n"]}
|
@@ -225,10 +225,8 @@ async function ensurePr(prConfig) {
|
|
225
225
|
const releaseNotesSources = [];
|
226
226
|
for (const upgrade of config.upgrades) {
|
227
227
|
let notesSourceUrl = upgrade.releases?.[0]?.releaseNotes?.notesSourceUrl;
|
228
|
-
|
229
|
-
|
230
|
-
notesSourceUrl = `${upgrade.sourceUrl}${upgrade.sourceDirectory ? `:${upgrade.sourceDirectory}` : ''}`;
|
231
|
-
}
|
228
|
+
// TODO: types (#22198)
|
229
|
+
notesSourceUrl ??= `${upgrade.sourceUrl}${upgrade.sourceDirectory ? `:${upgrade.sourceDirectory}` : ''}`;
|
232
230
|
if (upgrade.hasReleaseNotes && notesSourceUrl) {
|
233
231
|
if (releaseNotesSources.includes(notesSourceUrl)) {
|
234
232
|
logger_1.logger.debug({ depName: upgrade.depName }, 'Removing duplicate release notes');
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/update/pr/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { GlobalConfig } from '../../../../config/global';\nimport type { RenovateConfig } from '../../../../config/types';\nimport {\n PLATFORM_INTEGRATION_UNAUTHORIZED,\n PLATFORM_RATE_LIMIT_EXCEEDED,\n REPOSITORY_CHANGED,\n} from '../../../../constants/error-messages';\nimport { pkg } from '../../../../expose.cjs';\nimport { logger } from '../../../../logger';\nimport type {\n PlatformPrOptions,\n Pr,\n PrDebugData,\n UpdatePrConfig,\n} from '../../../../modules/platform';\nimport { platform } from '../../../../modules/platform';\nimport { ensureComment } from '../../../../modules/platform/comment';\nimport {\n getPrBodyStruct,\n hashBody,\n} from '../../../../modules/platform/pr-body';\nimport { scm } from '../../../../modules/platform/scm';\nimport { ExternalHostError } from '../../../../types/errors/external-host-error';\nimport { getElapsedHours } from '../../../../util/date';\nimport { stripEmojis } from '../../../../util/emoji';\nimport { fingerprint } from '../../../../util/fingerprint';\nimport { getBranchLastCommitTime } from '../../../../util/git';\nimport { memoize } from '../../../../util/memoize';\nimport { incCountValue, isLimitReached } from '../../../global/limits';\nimport type {\n BranchConfig,\n BranchUpgradeConfig,\n PrBlockedBy,\n} from '../../../types';\nimport { embedChangelogs } from '../../changelog';\nimport { resolveBranchStatus } from '../branch/status-checks';\nimport { getPrBody } from './body';\nimport { getChangedLabels, prepareLabels, shouldUpdateLabels } from './labels';\nimport { addParticipants } from './participants';\nimport { getPrCache, setPrCache } from './pr-cache';\nimport {\n generatePrBodyFingerprintConfig,\n validatePrCache,\n} from './pr-fingerprint';\nimport { tryReuseAutoclosedPr } from './pr-reuse';\n\nexport function getPlatformPrOptions(\n config: RenovateConfig & PlatformPrOptions,\n): PlatformPrOptions {\n const usePlatformAutomerge = Boolean(\n config.automerge &&\n (config.automergeType === 'pr' || config.automergeType === 'branch') &&\n config.platformAutomerge,\n );\n\n return {\n autoApprove: !!config.autoApprove,\n automergeStrategy: config.automergeStrategy,\n azureWorkItemId: config.azureWorkItemId ?? 0,\n bbAutoResolvePrTasks: !!config.bbAutoResolvePrTasks,\n bbUseDefaultReviewers: !!config.bbUseDefaultReviewers,\n gitLabIgnoreApprovals: !!config.gitLabIgnoreApprovals,\n forkModeDisallowMaintainerEdits: !!config.forkModeDisallowMaintainerEdits,\n usePlatformAutomerge,\n };\n}\n\nexport interface ResultWithPr {\n type: 'with-pr';\n pr: Pr;\n}\n\nexport interface ResultWithoutPr {\n type: 'without-pr';\n prBlockedBy: PrBlockedBy;\n}\n\nexport type EnsurePrResult = ResultWithPr | ResultWithoutPr;\n\nexport function updatePrDebugData(\n targetBranch: string,\n labels: string[],\n debugData: PrDebugData | undefined,\n): PrDebugData {\n const createdByRenovateVersion = debugData?.createdInVer ?? pkg.version;\n const updatedByRenovateVersion = pkg.version;\n\n const updatedPrDebugData: PrDebugData = {\n createdInVer: createdByRenovateVersion,\n updatedInVer: updatedByRenovateVersion,\n targetBranch,\n };\n\n // Add labels to the debug data object.\n // When to add:\n // 1. Add it when a new PR is created, i.e., when debugData is undefined.\n // 2. Add it if an existing PR already has labels in the debug data, confirming that we can update its labels.\n if (!debugData || is.array(debugData.labels)) {\n updatedPrDebugData.labels = labels;\n }\n\n return updatedPrDebugData;\n}\n\nfunction hasNotIgnoredReviewers(pr: Pr, config: BranchConfig): boolean {\n if (\n is.nonEmptyArray(config.ignoreReviewers) &&\n is.nonEmptyArray(pr.reviewers)\n ) {\n const ignoreReviewers = new Set(config.ignoreReviewers);\n return (\n pr.reviewers.filter((reviewer) => !ignoreReviewers.has(reviewer)).length >\n 0\n );\n }\n return is.nonEmptyArray(pr.reviewers);\n}\n\n// Ensures that PR exists with matching title/body\nexport async function ensurePr(\n prConfig: BranchConfig,\n): Promise<EnsurePrResult> {\n const config: BranchConfig = { ...prConfig };\n const filteredPrConfig = generatePrBodyFingerprintConfig(config);\n const prBodyFingerprint = fingerprint(filteredPrConfig);\n logger.trace({ config }, 'ensurePr');\n // If there is a group, it will use the config of the first upgrade in the array\n const {\n branchName,\n ignoreTests,\n internalChecksAsSuccess,\n prTitle = '',\n upgrades,\n } = config;\n const getBranchStatus = memoize(() =>\n resolveBranchStatus(branchName, !!internalChecksAsSuccess, ignoreTests),\n );\n const dependencyDashboardCheck =\n config.dependencyDashboardChecks?.[config.branchName];\n // Check if PR already exists\n const existingPr =\n (await platform.getBranchPr(branchName, config.baseBranch)) ??\n (await tryReuseAutoclosedPr(branchName));\n const prCache = getPrCache(branchName);\n if (existingPr) {\n logger.debug('Found existing PR');\n if (existingPr.bodyStruct?.rebaseRequested) {\n logger.debug('PR rebase requested, so skipping cache check');\n } else if (prCache) {\n logger.trace({ prCache }, 'Found existing PR cache');\n // return if pr cache is valid and pr was not changed in the past 24hrs\n if (validatePrCache(prCache, prBodyFingerprint)) {\n return { type: 'with-pr', pr: existingPr };\n }\n } else if (config.repositoryCache === 'enabled') {\n logger.debug('PR cache not found');\n }\n }\n config.upgrades = [];\n\n if (config.artifactErrors?.length) {\n logger.debug('Forcing PR because of artifact errors');\n config.forcePr = true;\n }\n\n if (dependencyDashboardCheck === 'approvePr') {\n logger.debug('Forcing PR because of dependency dashboard approval');\n config.forcePr = true;\n }\n\n if (!existingPr) {\n // Only create a PR if a branch automerge has failed\n if (\n config.automerge === true &&\n config.automergeType?.startsWith('branch') &&\n !config.forcePr\n ) {\n logger.debug(`Branch automerge is enabled`);\n if (\n config.stabilityStatus !== 'yellow' &&\n (await getBranchStatus()) === 'yellow' &&\n is.number(config.prNotPendingHours)\n ) {\n logger.debug('Checking how long this branch has been pending');\n const lastCommitTime = await getBranchLastCommitTime(branchName);\n if (getElapsedHours(lastCommitTime) >= config.prNotPendingHours) {\n logger.debug(\n 'Branch exceeds prNotPending hours - forcing PR creation',\n );\n config.forcePr = true;\n }\n }\n if (config.forcePr || (await getBranchStatus()) === 'red') {\n logger.debug(`Branch tests failed, so will create PR`);\n } else {\n // Branch should be automerged, so we don't want to create a PR\n return { type: 'without-pr', prBlockedBy: 'BranchAutomerge' };\n }\n }\n if (config.prCreation === 'status-success') {\n logger.debug('Checking branch combined status');\n if ((await getBranchStatus()) !== 'green') {\n logger.debug(`Branch status isn't green - not creating PR`);\n return { type: 'without-pr', prBlockedBy: 'AwaitingTests' };\n }\n logger.debug('Branch status success');\n } else if (\n config.prCreation === 'approval' &&\n dependencyDashboardCheck !== 'approvePr'\n ) {\n return { type: 'without-pr', prBlockedBy: 'NeedsApproval' };\n } else if (config.prCreation === 'not-pending' && !config.forcePr) {\n logger.debug('Checking branch combined status');\n if ((await getBranchStatus()) === 'yellow') {\n logger.debug(`Branch status is yellow - checking timeout`);\n const lastCommitTime = await getBranchLastCommitTime(branchName);\n const elapsedHours = getElapsedHours(lastCommitTime);\n if (\n !dependencyDashboardCheck &&\n ((config.stabilityStatus && config.stabilityStatus !== 'yellow') ||\n (is.number(config.prNotPendingHours) &&\n elapsedHours < config.prNotPendingHours))\n ) {\n logger.debug(\n `Branch is ${elapsedHours} hours old - skipping PR creation`,\n );\n return {\n type: 'without-pr',\n prBlockedBy: 'AwaitingTests',\n };\n }\n const prNotPendingHours = String(config.prNotPendingHours);\n logger.debug(\n `prNotPendingHours=${prNotPendingHours} threshold hit - creating PR`,\n );\n }\n logger.debug('Branch status success');\n }\n }\n\n const processedUpgrades: string[] = [];\n const commitRepos: string[] = [];\n\n function getRepoNameWithSourceDirectory(\n upgrade: BranchUpgradeConfig,\n ): string {\n // TODO: types (#22198)\n return `${upgrade.repoName!}${\n upgrade.sourceDirectory ? `:${upgrade.sourceDirectory}` : ''\n }`;\n }\n\n if (config.fetchChangeLogs === 'pr') {\n // fetch changelogs when not already done;\n await embedChangelogs(upgrades);\n }\n\n // Get changelog and then generate template strings\n for (const upgrade of upgrades) {\n // TODO: types (#22198)\n const upgradeKey = `${upgrade.depType!}-${upgrade.depName!}-${upgrade.manager}-${upgrade.currentVersion ?? ''}-${upgrade.currentValue ?? ''}-${upgrade.newVersion ?? ''}-${upgrade.newValue ?? ''}`;\n if (processedUpgrades.includes(upgradeKey)) {\n continue;\n }\n processedUpgrades.push(upgradeKey);\n\n const logJSON = upgrade.logJSON;\n\n if (logJSON) {\n if (typeof logJSON.error === 'undefined') {\n if (logJSON.project) {\n upgrade.repoName = logJSON.project.repository;\n }\n upgrade.hasReleaseNotes = false;\n upgrade.releases = [];\n if (\n logJSON.hasReleaseNotes &&\n upgrade.repoName &&\n !commitRepos.includes(getRepoNameWithSourceDirectory(upgrade))\n ) {\n commitRepos.push(getRepoNameWithSourceDirectory(upgrade));\n upgrade.hasReleaseNotes = logJSON.hasReleaseNotes;\n if (logJSON.versions) {\n for (const version of logJSON.versions) {\n const release = { ...version };\n upgrade.releases.push(release);\n }\n }\n }\n } else if (logJSON.error === 'MissingGithubToken') {\n upgrade.prBodyNotes ??= [];\n upgrade.prBodyNotes = [\n ...upgrade.prBodyNotes,\n [\n '> :exclamation: **Important**',\n '> ',\n '> Release Notes retrieval for this PR were skipped because no github.com credentials were available. ',\n '> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).',\n '\\n',\n ].join('\\n'),\n ];\n }\n }\n config.upgrades.push(upgrade);\n }\n\n config.hasReleaseNotes = config.upgrades.some((upg) => upg.hasReleaseNotes);\n\n const releaseNotesSources: string[] = [];\n for (const upgrade of config.upgrades) {\n let notesSourceUrl = upgrade.releases?.[0]?.releaseNotes?.notesSourceUrl;\n if (!notesSourceUrl) {\n // TODO: types (#22198)\n notesSourceUrl = `${upgrade.sourceUrl!}${\n upgrade.sourceDirectory ? `:${upgrade.sourceDirectory}` : ''\n }`;\n }\n\n if (upgrade.hasReleaseNotes && notesSourceUrl) {\n if (releaseNotesSources.includes(notesSourceUrl)) {\n logger.debug(\n { depName: upgrade.depName },\n 'Removing duplicate release notes',\n );\n upgrade.hasReleaseNotes = false;\n } else {\n releaseNotesSources.push(notesSourceUrl);\n }\n }\n }\n\n const prBody = getPrBody(\n config,\n {\n debugData: updatePrDebugData(\n config.baseBranch,\n prepareLabels(config), // include labels in debug data\n existingPr?.bodyStruct?.debugData,\n ),\n },\n config,\n );\n\n try {\n if (existingPr) {\n logger.debug('Processing existing PR');\n\n if (\n !existingPr.hasAssignees &&\n !hasNotIgnoredReviewers(existingPr, config) &&\n config.automerge &&\n !config.assignAutomerge &&\n (await getBranchStatus()) === 'red'\n ) {\n logger.debug(`Setting assignees and reviewers as status checks failed`);\n await addParticipants(config, existingPr);\n }\n // Check if existing PR needs updating\n const existingPrTitle = stripEmojis(existingPr.title);\n const existingPrBodyHash = existingPr.bodyStruct?.hash;\n const newPrTitle = stripEmojis(prTitle);\n const newPrBodyHash = hashBody(prBody);\n\n const prInitialLabels = existingPr.bodyStruct?.debugData?.labels;\n const prCurrentLabels = existingPr.labels;\n const configuredLabels = prepareLabels(config);\n\n const labelsNeedUpdate = shouldUpdateLabels(\n prInitialLabels,\n prCurrentLabels,\n configuredLabels,\n );\n\n if (\n existingPr?.targetBranch === config.baseBranch &&\n existingPrTitle === newPrTitle &&\n existingPrBodyHash === newPrBodyHash &&\n !labelsNeedUpdate\n ) {\n // adds or-cache for existing PRs\n setPrCache(branchName, prBodyFingerprint, false);\n logger.debug(\n `Pull Request #${existingPr.number} does not need updating`,\n );\n return { type: 'with-pr', pr: existingPr };\n }\n\n const updatePrConfig: UpdatePrConfig = {\n number: existingPr.number,\n prTitle,\n prBody,\n platformPrOptions: getPlatformPrOptions(config),\n };\n // PR must need updating\n if (existingPr?.targetBranch !== config.baseBranch) {\n logger.debug(\n {\n branchName,\n oldBaseBranch: existingPr?.targetBranch,\n newBaseBranch: config.baseBranch,\n },\n 'PR base branch has changed',\n );\n updatePrConfig.targetBranch = config.baseBranch;\n }\n\n if (labelsNeedUpdate) {\n logger.debug(\n {\n branchName,\n prCurrentLabels,\n configuredLabels,\n },\n 'PR labels have changed',\n );\n\n // Divide labels into three categories:\n // i) addLabels: Labels that need to be added\n // ii) removeLabels: Labels that need to be removed\n // iii) labels: New labels for the PR, replacing the old labels array entirely.\n // This distinction is necessary because different platforms update labels differently\n // For more details, refer to the updatePr function of each platform.\n\n const [addLabels, removeLabels] = getChangedLabels(\n prCurrentLabels,\n configuredLabels,\n );\n\n // for Gitea\n updatePrConfig.labels = configuredLabels;\n\n // for GitHub, GitLab\n updatePrConfig.addLabels = addLabels;\n updatePrConfig.removeLabels = removeLabels;\n }\n if (existingPrTitle !== newPrTitle) {\n logger.debug(\n {\n branchName,\n oldPrTitle: existingPr.title,\n newPrTitle: prTitle,\n },\n 'PR title changed',\n );\n } else if (!config.committedFiles && !config.rebaseRequested) {\n logger.debug(\n {\n prTitle,\n },\n 'PR body changed',\n );\n }\n\n if (GlobalConfig.get('dryRun')) {\n logger.info(`DRY-RUN: Would update PR #${existingPr.number}`);\n return { type: 'with-pr', pr: existingPr };\n } else {\n await platform.updatePr(updatePrConfig);\n logger.info({ pr: existingPr.number, prTitle }, `PR updated`);\n setPrCache(branchName, prBodyFingerprint, true);\n }\n return {\n type: 'with-pr',\n pr: {\n ...existingPr,\n bodyStruct: getPrBodyStruct(prBody),\n title: prTitle,\n targetBranch: config.baseBranch,\n },\n };\n }\n logger.debug({ branch: branchName, prTitle }, `Creating PR`);\n if (config.updateType === 'rollback') {\n logger.info('Creating Rollback PR');\n }\n let pr: Pr | null;\n if (GlobalConfig.get('dryRun')) {\n logger.info('DRY-RUN: Would create PR: ' + prTitle);\n pr = { number: 0 } as never;\n } else {\n try {\n if (\n !dependencyDashboardCheck &&\n isLimitReached('ConcurrentPRs', prConfig) &&\n !config.isVulnerabilityAlert\n ) {\n logger.debug('Skipping PR - limit reached');\n return { type: 'without-pr', prBlockedBy: 'RateLimited' };\n }\n pr = await platform.createPr({\n sourceBranch: branchName,\n targetBranch: config.baseBranch,\n prTitle,\n prBody,\n labels: prepareLabels(config),\n platformPrOptions: getPlatformPrOptions(config),\n draftPR: !!config.draftPR,\n milestone: config.milestone,\n });\n\n incCountValue('ConcurrentPRs');\n incCountValue('HourlyPRs');\n logger.info({ pr: pr?.number, prTitle }, 'PR created');\n } catch (err) {\n logger.debug({ err }, 'Pull request creation error');\n if (\n err.body?.message === 'Validation failed' &&\n err.body.errors?.length &&\n err.body.errors.some((error: { message?: string }) =>\n error.message?.startsWith('A pull request already exists'),\n )\n ) {\n logger.warn('A pull requests already exists');\n return { type: 'without-pr', prBlockedBy: 'Error' };\n }\n if (err.statusCode === 502) {\n logger.warn(\n { branch: branchName },\n 'Deleting branch due to server error',\n );\n await scm.deleteBranch(branchName);\n }\n return { type: 'without-pr', prBlockedBy: 'Error' };\n }\n }\n if (\n pr &&\n config.branchAutomergeFailureMessage &&\n !config.suppressNotifications?.includes('branchAutomergeFailure')\n ) {\n const topic = 'Branch automerge failure';\n let content =\n 'This PR was configured for branch automerge. However, this is not possible, so it has been raised as a PR instead.';\n if (config.branchAutomergeFailureMessage === 'branch status error') {\n content += '\\n___\\n * Branch has one or more failed status checks';\n }\n content = platform.massageMarkdown(content);\n logger.debug('Adding branch automerge failure message to PR');\n if (GlobalConfig.get('dryRun')) {\n logger.info(`DRY-RUN: Would add comment to PR #${pr.number}`);\n } else {\n await ensureComment({\n number: pr.number,\n topic,\n content,\n });\n }\n }\n // Skip assign and review if automerging PR\n if (pr) {\n if (\n config.automerge &&\n !config.assignAutomerge &&\n (await getBranchStatus()) !== 'red'\n ) {\n logger.debug(\n `Skipping assignees and reviewers as automerge=${config.automerge}`,\n );\n } else {\n await addParticipants(config, pr);\n }\n setPrCache(branchName, prBodyFingerprint, true);\n logger.debug(`Created Pull Request #${pr.number}`);\n return { type: 'with-pr', pr };\n }\n } catch (err) {\n if (\n err instanceof ExternalHostError ||\n err.message === REPOSITORY_CHANGED ||\n err.message === PLATFORM_RATE_LIMIT_EXCEEDED ||\n err.message === PLATFORM_INTEGRATION_UNAUTHORIZED\n ) {\n logger.debug('Passing error up');\n throw err;\n }\n logger.warn({ err, prTitle }, 'Failed to ensure PR');\n }\n if (existingPr) {\n return { type: 'with-pr', pr: existingPr };\n }\n return { type: 'without-pr', prBlockedBy: 'Error' };\n}\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../lib/workers/repository/update/pr/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { GlobalConfig } from '../../../../config/global';\nimport type { RenovateConfig } from '../../../../config/types';\nimport {\n PLATFORM_INTEGRATION_UNAUTHORIZED,\n PLATFORM_RATE_LIMIT_EXCEEDED,\n REPOSITORY_CHANGED,\n} from '../../../../constants/error-messages';\nimport { pkg } from '../../../../expose.cjs';\nimport { logger } from '../../../../logger';\nimport type {\n PlatformPrOptions,\n Pr,\n PrDebugData,\n UpdatePrConfig,\n} from '../../../../modules/platform';\nimport { platform } from '../../../../modules/platform';\nimport { ensureComment } from '../../../../modules/platform/comment';\nimport {\n getPrBodyStruct,\n hashBody,\n} from '../../../../modules/platform/pr-body';\nimport { scm } from '../../../../modules/platform/scm';\nimport { ExternalHostError } from '../../../../types/errors/external-host-error';\nimport { getElapsedHours } from '../../../../util/date';\nimport { stripEmojis } from '../../../../util/emoji';\nimport { fingerprint } from '../../../../util/fingerprint';\nimport { getBranchLastCommitTime } from '../../../../util/git';\nimport { memoize } from '../../../../util/memoize';\nimport { incCountValue, isLimitReached } from '../../../global/limits';\nimport type {\n BranchConfig,\n BranchUpgradeConfig,\n PrBlockedBy,\n} from '../../../types';\nimport { embedChangelogs } from '../../changelog';\nimport { resolveBranchStatus } from '../branch/status-checks';\nimport { getPrBody } from './body';\nimport { getChangedLabels, prepareLabels, shouldUpdateLabels } from './labels';\nimport { addParticipants } from './participants';\nimport { getPrCache, setPrCache } from './pr-cache';\nimport {\n generatePrBodyFingerprintConfig,\n validatePrCache,\n} from './pr-fingerprint';\nimport { tryReuseAutoclosedPr } from './pr-reuse';\n\nexport function getPlatformPrOptions(\n config: RenovateConfig & PlatformPrOptions,\n): PlatformPrOptions {\n const usePlatformAutomerge = Boolean(\n config.automerge &&\n (config.automergeType === 'pr' || config.automergeType === 'branch') &&\n config.platformAutomerge,\n );\n\n return {\n autoApprove: !!config.autoApprove,\n automergeStrategy: config.automergeStrategy,\n azureWorkItemId: config.azureWorkItemId ?? 0,\n bbAutoResolvePrTasks: !!config.bbAutoResolvePrTasks,\n bbUseDefaultReviewers: !!config.bbUseDefaultReviewers,\n gitLabIgnoreApprovals: !!config.gitLabIgnoreApprovals,\n forkModeDisallowMaintainerEdits: !!config.forkModeDisallowMaintainerEdits,\n usePlatformAutomerge,\n };\n}\n\nexport interface ResultWithPr {\n type: 'with-pr';\n pr: Pr;\n}\n\nexport interface ResultWithoutPr {\n type: 'without-pr';\n prBlockedBy: PrBlockedBy;\n}\n\nexport type EnsurePrResult = ResultWithPr | ResultWithoutPr;\n\nexport function updatePrDebugData(\n targetBranch: string,\n labels: string[],\n debugData: PrDebugData | undefined,\n): PrDebugData {\n const createdByRenovateVersion = debugData?.createdInVer ?? pkg.version;\n const updatedByRenovateVersion = pkg.version;\n\n const updatedPrDebugData: PrDebugData = {\n createdInVer: createdByRenovateVersion,\n updatedInVer: updatedByRenovateVersion,\n targetBranch,\n };\n\n // Add labels to the debug data object.\n // When to add:\n // 1. Add it when a new PR is created, i.e., when debugData is undefined.\n // 2. Add it if an existing PR already has labels in the debug data, confirming that we can update its labels.\n if (!debugData || is.array(debugData.labels)) {\n updatedPrDebugData.labels = labels;\n }\n\n return updatedPrDebugData;\n}\n\nfunction hasNotIgnoredReviewers(pr: Pr, config: BranchConfig): boolean {\n if (\n is.nonEmptyArray(config.ignoreReviewers) &&\n is.nonEmptyArray(pr.reviewers)\n ) {\n const ignoreReviewers = new Set(config.ignoreReviewers);\n return (\n pr.reviewers.filter((reviewer) => !ignoreReviewers.has(reviewer)).length >\n 0\n );\n }\n return is.nonEmptyArray(pr.reviewers);\n}\n\n// Ensures that PR exists with matching title/body\nexport async function ensurePr(\n prConfig: BranchConfig,\n): Promise<EnsurePrResult> {\n const config: BranchConfig = { ...prConfig };\n const filteredPrConfig = generatePrBodyFingerprintConfig(config);\n const prBodyFingerprint = fingerprint(filteredPrConfig);\n logger.trace({ config }, 'ensurePr');\n // If there is a group, it will use the config of the first upgrade in the array\n const {\n branchName,\n ignoreTests,\n internalChecksAsSuccess,\n prTitle = '',\n upgrades,\n } = config;\n const getBranchStatus = memoize(() =>\n resolveBranchStatus(branchName, !!internalChecksAsSuccess, ignoreTests),\n );\n const dependencyDashboardCheck =\n config.dependencyDashboardChecks?.[config.branchName];\n // Check if PR already exists\n const existingPr =\n (await platform.getBranchPr(branchName, config.baseBranch)) ??\n (await tryReuseAutoclosedPr(branchName));\n const prCache = getPrCache(branchName);\n if (existingPr) {\n logger.debug('Found existing PR');\n if (existingPr.bodyStruct?.rebaseRequested) {\n logger.debug('PR rebase requested, so skipping cache check');\n } else if (prCache) {\n logger.trace({ prCache }, 'Found existing PR cache');\n // return if pr cache is valid and pr was not changed in the past 24hrs\n if (validatePrCache(prCache, prBodyFingerprint)) {\n return { type: 'with-pr', pr: existingPr };\n }\n } else if (config.repositoryCache === 'enabled') {\n logger.debug('PR cache not found');\n }\n }\n config.upgrades = [];\n\n if (config.artifactErrors?.length) {\n logger.debug('Forcing PR because of artifact errors');\n config.forcePr = true;\n }\n\n if (dependencyDashboardCheck === 'approvePr') {\n logger.debug('Forcing PR because of dependency dashboard approval');\n config.forcePr = true;\n }\n\n if (!existingPr) {\n // Only create a PR if a branch automerge has failed\n if (\n config.automerge === true &&\n config.automergeType?.startsWith('branch') &&\n !config.forcePr\n ) {\n logger.debug(`Branch automerge is enabled`);\n if (\n config.stabilityStatus !== 'yellow' &&\n (await getBranchStatus()) === 'yellow' &&\n is.number(config.prNotPendingHours)\n ) {\n logger.debug('Checking how long this branch has been pending');\n const lastCommitTime = await getBranchLastCommitTime(branchName);\n if (getElapsedHours(lastCommitTime) >= config.prNotPendingHours) {\n logger.debug(\n 'Branch exceeds prNotPending hours - forcing PR creation',\n );\n config.forcePr = true;\n }\n }\n if (config.forcePr || (await getBranchStatus()) === 'red') {\n logger.debug(`Branch tests failed, so will create PR`);\n } else {\n // Branch should be automerged, so we don't want to create a PR\n return { type: 'without-pr', prBlockedBy: 'BranchAutomerge' };\n }\n }\n if (config.prCreation === 'status-success') {\n logger.debug('Checking branch combined status');\n if ((await getBranchStatus()) !== 'green') {\n logger.debug(`Branch status isn't green - not creating PR`);\n return { type: 'without-pr', prBlockedBy: 'AwaitingTests' };\n }\n logger.debug('Branch status success');\n } else if (\n config.prCreation === 'approval' &&\n dependencyDashboardCheck !== 'approvePr'\n ) {\n return { type: 'without-pr', prBlockedBy: 'NeedsApproval' };\n } else if (config.prCreation === 'not-pending' && !config.forcePr) {\n logger.debug('Checking branch combined status');\n if ((await getBranchStatus()) === 'yellow') {\n logger.debug(`Branch status is yellow - checking timeout`);\n const lastCommitTime = await getBranchLastCommitTime(branchName);\n const elapsedHours = getElapsedHours(lastCommitTime);\n if (\n !dependencyDashboardCheck &&\n ((config.stabilityStatus && config.stabilityStatus !== 'yellow') ||\n (is.number(config.prNotPendingHours) &&\n elapsedHours < config.prNotPendingHours))\n ) {\n logger.debug(\n `Branch is ${elapsedHours} hours old - skipping PR creation`,\n );\n return {\n type: 'without-pr',\n prBlockedBy: 'AwaitingTests',\n };\n }\n const prNotPendingHours = String(config.prNotPendingHours);\n logger.debug(\n `prNotPendingHours=${prNotPendingHours} threshold hit - creating PR`,\n );\n }\n logger.debug('Branch status success');\n }\n }\n\n const processedUpgrades: string[] = [];\n const commitRepos: string[] = [];\n\n function getRepoNameWithSourceDirectory(\n upgrade: BranchUpgradeConfig,\n ): string {\n // TODO: types (#22198)\n return `${upgrade.repoName!}${\n upgrade.sourceDirectory ? `:${upgrade.sourceDirectory}` : ''\n }`;\n }\n\n if (config.fetchChangeLogs === 'pr') {\n // fetch changelogs when not already done;\n await embedChangelogs(upgrades);\n }\n\n // Get changelog and then generate template strings\n for (const upgrade of upgrades) {\n // TODO: types (#22198)\n const upgradeKey = `${upgrade.depType!}-${upgrade.depName!}-${upgrade.manager}-${upgrade.currentVersion ?? ''}-${upgrade.currentValue ?? ''}-${upgrade.newVersion ?? ''}-${upgrade.newValue ?? ''}`;\n if (processedUpgrades.includes(upgradeKey)) {\n continue;\n }\n processedUpgrades.push(upgradeKey);\n\n const logJSON = upgrade.logJSON;\n\n if (logJSON) {\n if (typeof logJSON.error === 'undefined') {\n if (logJSON.project) {\n upgrade.repoName = logJSON.project.repository;\n }\n upgrade.hasReleaseNotes = false;\n upgrade.releases = [];\n if (\n logJSON.hasReleaseNotes &&\n upgrade.repoName &&\n !commitRepos.includes(getRepoNameWithSourceDirectory(upgrade))\n ) {\n commitRepos.push(getRepoNameWithSourceDirectory(upgrade));\n upgrade.hasReleaseNotes = logJSON.hasReleaseNotes;\n if (logJSON.versions) {\n for (const version of logJSON.versions) {\n const release = { ...version };\n upgrade.releases.push(release);\n }\n }\n }\n } else if (logJSON.error === 'MissingGithubToken') {\n upgrade.prBodyNotes ??= [];\n upgrade.prBodyNotes = [\n ...upgrade.prBodyNotes,\n [\n '> :exclamation: **Important**',\n '> ',\n '> Release Notes retrieval for this PR were skipped because no github.com credentials were available. ',\n '> If you are self-hosted, please see [this instruction](https://github.com/renovatebot/renovate/blob/master/docs/usage/examples/self-hosting.md#githubcom-token-for-release-notes).',\n '\\n',\n ].join('\\n'),\n ];\n }\n }\n config.upgrades.push(upgrade);\n }\n\n config.hasReleaseNotes = config.upgrades.some((upg) => upg.hasReleaseNotes);\n\n const releaseNotesSources: string[] = [];\n for (const upgrade of config.upgrades) {\n let notesSourceUrl = upgrade.releases?.[0]?.releaseNotes?.notesSourceUrl;\n // TODO: types (#22198)\n notesSourceUrl ??= `${upgrade.sourceUrl!}${\n upgrade.sourceDirectory ? `:${upgrade.sourceDirectory}` : ''\n }`;\n\n if (upgrade.hasReleaseNotes && notesSourceUrl) {\n if (releaseNotesSources.includes(notesSourceUrl)) {\n logger.debug(\n { depName: upgrade.depName },\n 'Removing duplicate release notes',\n );\n upgrade.hasReleaseNotes = false;\n } else {\n releaseNotesSources.push(notesSourceUrl);\n }\n }\n }\n\n const prBody = getPrBody(\n config,\n {\n debugData: updatePrDebugData(\n config.baseBranch,\n prepareLabels(config), // include labels in debug data\n existingPr?.bodyStruct?.debugData,\n ),\n },\n config,\n );\n\n try {\n if (existingPr) {\n logger.debug('Processing existing PR');\n\n if (\n !existingPr.hasAssignees &&\n !hasNotIgnoredReviewers(existingPr, config) &&\n config.automerge &&\n !config.assignAutomerge &&\n (await getBranchStatus()) === 'red'\n ) {\n logger.debug(`Setting assignees and reviewers as status checks failed`);\n await addParticipants(config, existingPr);\n }\n // Check if existing PR needs updating\n const existingPrTitle = stripEmojis(existingPr.title);\n const existingPrBodyHash = existingPr.bodyStruct?.hash;\n const newPrTitle = stripEmojis(prTitle);\n const newPrBodyHash = hashBody(prBody);\n\n const prInitialLabels = existingPr.bodyStruct?.debugData?.labels;\n const prCurrentLabels = existingPr.labels;\n const configuredLabels = prepareLabels(config);\n\n const labelsNeedUpdate = shouldUpdateLabels(\n prInitialLabels,\n prCurrentLabels,\n configuredLabels,\n );\n\n if (\n existingPr?.targetBranch === config.baseBranch &&\n existingPrTitle === newPrTitle &&\n existingPrBodyHash === newPrBodyHash &&\n !labelsNeedUpdate\n ) {\n // adds or-cache for existing PRs\n setPrCache(branchName, prBodyFingerprint, false);\n logger.debug(\n `Pull Request #${existingPr.number} does not need updating`,\n );\n return { type: 'with-pr', pr: existingPr };\n }\n\n const updatePrConfig: UpdatePrConfig = {\n number: existingPr.number,\n prTitle,\n prBody,\n platformPrOptions: getPlatformPrOptions(config),\n };\n // PR must need updating\n if (existingPr?.targetBranch !== config.baseBranch) {\n logger.debug(\n {\n branchName,\n oldBaseBranch: existingPr?.targetBranch,\n newBaseBranch: config.baseBranch,\n },\n 'PR base branch has changed',\n );\n updatePrConfig.targetBranch = config.baseBranch;\n }\n\n if (labelsNeedUpdate) {\n logger.debug(\n {\n branchName,\n prCurrentLabels,\n configuredLabels,\n },\n 'PR labels have changed',\n );\n\n // Divide labels into three categories:\n // i) addLabels: Labels that need to be added\n // ii) removeLabels: Labels that need to be removed\n // iii) labels: New labels for the PR, replacing the old labels array entirely.\n // This distinction is necessary because different platforms update labels differently\n // For more details, refer to the updatePr function of each platform.\n\n const [addLabels, removeLabels] = getChangedLabels(\n prCurrentLabels,\n configuredLabels,\n );\n\n // for Gitea\n updatePrConfig.labels = configuredLabels;\n\n // for GitHub, GitLab\n updatePrConfig.addLabels = addLabels;\n updatePrConfig.removeLabels = removeLabels;\n }\n if (existingPrTitle !== newPrTitle) {\n logger.debug(\n {\n branchName,\n oldPrTitle: existingPr.title,\n newPrTitle: prTitle,\n },\n 'PR title changed',\n );\n } else if (!config.committedFiles && !config.rebaseRequested) {\n logger.debug(\n {\n prTitle,\n },\n 'PR body changed',\n );\n }\n\n if (GlobalConfig.get('dryRun')) {\n logger.info(`DRY-RUN: Would update PR #${existingPr.number}`);\n return { type: 'with-pr', pr: existingPr };\n } else {\n await platform.updatePr(updatePrConfig);\n logger.info({ pr: existingPr.number, prTitle }, `PR updated`);\n setPrCache(branchName, prBodyFingerprint, true);\n }\n return {\n type: 'with-pr',\n pr: {\n ...existingPr,\n bodyStruct: getPrBodyStruct(prBody),\n title: prTitle,\n targetBranch: config.baseBranch,\n },\n };\n }\n logger.debug({ branch: branchName, prTitle }, `Creating PR`);\n if (config.updateType === 'rollback') {\n logger.info('Creating Rollback PR');\n }\n let pr: Pr | null;\n if (GlobalConfig.get('dryRun')) {\n logger.info('DRY-RUN: Would create PR: ' + prTitle);\n pr = { number: 0 } as never;\n } else {\n try {\n if (\n !dependencyDashboardCheck &&\n isLimitReached('ConcurrentPRs', prConfig) &&\n !config.isVulnerabilityAlert\n ) {\n logger.debug('Skipping PR - limit reached');\n return { type: 'without-pr', prBlockedBy: 'RateLimited' };\n }\n pr = await platform.createPr({\n sourceBranch: branchName,\n targetBranch: config.baseBranch,\n prTitle,\n prBody,\n labels: prepareLabels(config),\n platformPrOptions: getPlatformPrOptions(config),\n draftPR: !!config.draftPR,\n milestone: config.milestone,\n });\n\n incCountValue('ConcurrentPRs');\n incCountValue('HourlyPRs');\n logger.info({ pr: pr?.number, prTitle }, 'PR created');\n } catch (err) {\n logger.debug({ err }, 'Pull request creation error');\n if (\n err.body?.message === 'Validation failed' &&\n err.body.errors?.length &&\n err.body.errors.some((error: { message?: string }) =>\n error.message?.startsWith('A pull request already exists'),\n )\n ) {\n logger.warn('A pull requests already exists');\n return { type: 'without-pr', prBlockedBy: 'Error' };\n }\n if (err.statusCode === 502) {\n logger.warn(\n { branch: branchName },\n 'Deleting branch due to server error',\n );\n await scm.deleteBranch(branchName);\n }\n return { type: 'without-pr', prBlockedBy: 'Error' };\n }\n }\n if (\n pr &&\n config.branchAutomergeFailureMessage &&\n !config.suppressNotifications?.includes('branchAutomergeFailure')\n ) {\n const topic = 'Branch automerge failure';\n let content =\n 'This PR was configured for branch automerge. However, this is not possible, so it has been raised as a PR instead.';\n if (config.branchAutomergeFailureMessage === 'branch status error') {\n content += '\\n___\\n * Branch has one or more failed status checks';\n }\n content = platform.massageMarkdown(content);\n logger.debug('Adding branch automerge failure message to PR');\n if (GlobalConfig.get('dryRun')) {\n logger.info(`DRY-RUN: Would add comment to PR #${pr.number}`);\n } else {\n await ensureComment({\n number: pr.number,\n topic,\n content,\n });\n }\n }\n // Skip assign and review if automerging PR\n if (pr) {\n if (\n config.automerge &&\n !config.assignAutomerge &&\n (await getBranchStatus()) !== 'red'\n ) {\n logger.debug(\n `Skipping assignees and reviewers as automerge=${config.automerge}`,\n );\n } else {\n await addParticipants(config, pr);\n }\n setPrCache(branchName, prBodyFingerprint, true);\n logger.debug(`Created Pull Request #${pr.number}`);\n return { type: 'with-pr', pr };\n }\n } catch (err) {\n if (\n err instanceof ExternalHostError ||\n err.message === REPOSITORY_CHANGED ||\n err.message === PLATFORM_RATE_LIMIT_EXCEEDED ||\n err.message === PLATFORM_INTEGRATION_UNAUTHORIZED\n ) {\n logger.debug('Passing error up');\n throw err;\n }\n logger.warn({ err, prTitle }, 'Failed to ensure PR');\n }\n if (existingPr) {\n return { type: 'with-pr', pr: existingPr };\n }\n return { type: 'without-pr', prBlockedBy: 'Error' };\n}\n"]}
|
@@ -5,6 +5,7 @@ exports.applyUpdateConfig = applyUpdateConfig;
|
|
5
5
|
exports.flattenUpdates = flattenUpdates;
|
6
6
|
const tslib_1 = require("tslib");
|
7
7
|
const config_1 = require("../../../config");
|
8
|
+
const logger_1 = require("../../../logger");
|
8
9
|
const datasource_1 = require("../../../modules/datasource");
|
9
10
|
const manager_1 = require("../../../modules/manager");
|
10
11
|
const semantic_1 = require("../../../util/git/semantic");
|
@@ -68,7 +69,6 @@ async function flattenUpdates(config, packageFiles) {
|
|
68
69
|
for (const packageFile of files) {
|
69
70
|
const packageFileConfig = (0, config_1.mergeChildConfig)(managerConfig, packageFile);
|
70
71
|
const packagePath = packageFile.packageFile?.split('/');
|
71
|
-
// istanbul ignore else: can never happen and would throw
|
72
72
|
if (packagePath.length > 0) {
|
73
73
|
packagePath.splice(-1, 1);
|
74
74
|
}
|
@@ -136,7 +136,7 @@ async function flattenUpdates(config, packageFiles) {
|
|
136
136
|
updates.push(lockFileConfig);
|
137
137
|
}
|
138
138
|
if ((0, manager_1.get)(manager, 'updateLockedDependency')) {
|
139
|
-
for (const lockFile of packageFileConfig.lockFiles
|
139
|
+
for (const lockFile of packageFileConfig.lockFiles ?? []) {
|
140
140
|
const lockfileRemediations = config.remediations;
|
141
141
|
const remediations = lockfileRemediations?.[lockFile];
|
142
142
|
if (remediations) {
|
@@ -164,9 +164,13 @@ async function flattenUpdates(config, packageFiles) {
|
|
164
164
|
update.semanticCommits = semanticCommits;
|
165
165
|
}
|
166
166
|
}
|
167
|
-
|
168
|
-
.filter((update) => update.enabled)
|
167
|
+
const filteredUpdates = updates
|
168
|
+
.filter((update) => update.enabled !== false)
|
169
169
|
.map(({ vulnerabilityAlerts, ...update }) => update)
|
170
170
|
.map((update) => (0, config_1.filterConfig)(update, 'branch'));
|
171
|
+
if (filteredUpdates.length < updates.length) {
|
172
|
+
logger_1.logger.debug(`Filtered out ${updates.length - filteredUpdates.length} disabled update(s). ${filteredUpdates.length} update(s) remaining.`);
|
173
|
+
}
|
174
|
+
return filteredUpdates;
|
171
175
|
}
|
172
176
|
//# sourceMappingURL=flatten.js.map
|