renovate 40.0.0-next.9 → 40.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/decrypt/legacy.js +0 -1
- package/dist/config/decrypt/legacy.js.map +1 -1
- package/dist/config/decrypt.d.ts +3 -1
- package/dist/config/decrypt.js +56 -13
- package/dist/config/decrypt.js.map +1 -1
- package/dist/config/global.js +0 -1
- package/dist/config/global.js.map +1 -1
- package/dist/config/migrate-validate.js +3 -2
- package/dist/config/migrate-validate.js.map +1 -1
- package/dist/config/migration.js +2 -1
- package/dist/config/migration.js.map +1 -1
- package/dist/config/migrations/custom/rebase-stale-prs-migration.js +1 -1
- package/dist/config/migrations/custom/rebase-stale-prs-migration.js.map +1 -1
- package/dist/config/migrations/migrations-service.js +3 -2
- package/dist/config/migrations/migrations-service.js.map +1 -1
- package/dist/config/options/index.js +18 -11
- package/dist/config/options/index.js.map +1 -1
- package/dist/config/parse.js +2 -2
- package/dist/config/parse.js.map +1 -1
- package/dist/config/presets/common.js +1 -0
- package/dist/config/presets/common.js.map +1 -1
- package/dist/config/presets/gitea/index.js +0 -1
- package/dist/config/presets/gitea/index.js.map +1 -1
- package/dist/config/presets/github/index.js +4 -2
- package/dist/config/presets/github/index.js.map +1 -1
- package/dist/config/presets/gitlab/index.js +1 -1
- package/dist/config/presets/gitlab/index.js.map +1 -1
- package/dist/config/presets/http/index.js +2 -2
- package/dist/config/presets/http/index.js.map +1 -1
- package/dist/config/presets/index.js +0 -7
- package/dist/config/presets/index.js.map +1 -1
- package/dist/config/presets/internal/custom-managers.js +18 -4
- package/dist/config/presets/internal/custom-managers.js.map +1 -1
- package/dist/config/presets/internal/group.js +30 -1
- package/dist/config/presets/internal/group.js.map +1 -1
- package/dist/config/presets/internal/index.js +1 -3
- package/dist/config/presets/internal/index.js.map +1 -1
- package/dist/config/presets/internal/workarounds.js +1 -0
- package/dist/config/presets/internal/workarounds.js.map +1 -1
- package/dist/config/presets/npm/index.js +4 -1
- package/dist/config/presets/npm/index.js.map +1 -1
- package/dist/config/presets/parse.js +2 -1
- package/dist/config/presets/parse.js.map +1 -1
- package/dist/config/schema.d.ts +2 -2
- package/dist/config/types.d.ts +4 -2
- package/dist/config/types.js.map +1 -1
- package/dist/config/validation.js +3 -5
- package/dist/config/validation.js.map +1 -1
- package/dist/config-validator.js +0 -1
- package/dist/config-validator.js.map +1 -1
- package/dist/constants/category.js +0 -1
- package/dist/constants/category.js.map +1 -1
- package/dist/constants/platforms.js +5 -1
- package/dist/constants/platforms.js.map +1 -1
- package/dist/data/monorepo.json +9 -2
- package/dist/data/replacements.json +13 -0
- package/dist/data/source-urls.json +1 -0
- package/dist/data-files.generated.js +2 -2
- package/dist/data-files.generated.js.map +1 -1
- package/dist/instrumentation/index.js +39 -15
- package/dist/instrumentation/index.js.map +1 -1
- package/dist/instrumentation/utils.js +1 -1
- package/dist/instrumentation/utils.js.map +1 -1
- package/dist/logger/cmd-serializer.js +0 -1
- package/dist/logger/cmd-serializer.js.map +1 -1
- package/dist/logger/config-serializer.js +0 -1
- package/dist/logger/config-serializer.js.map +1 -1
- package/dist/logger/index.js +1 -4
- package/dist/logger/index.js.map +1 -1
- package/dist/logger/once.js +4 -2
- package/dist/logger/once.js.map +1 -1
- package/dist/logger/pretty-stdout.js +0 -1
- package/dist/logger/pretty-stdout.js.map +1 -1
- package/dist/logger/renovate-logger.js +1 -1
- package/dist/logger/renovate-logger.js.map +1 -1
- package/dist/logger/utils.js +5 -10
- package/dist/logger/utils.js.map +1 -1
- package/dist/modules/datasource/api.js +4 -0
- package/dist/modules/datasource/api.js.map +1 -1
- package/dist/modules/datasource/artifactory/index.js +1 -2
- package/dist/modules/datasource/artifactory/index.js.map +1 -1
- package/dist/modules/datasource/aws-eks-addon/index.d.ts +11 -0
- package/dist/modules/datasource/aws-eks-addon/index.js +75 -0
- package/dist/modules/datasource/aws-eks-addon/index.js.map +1 -0
- package/dist/modules/datasource/aws-eks-addon/schema.d.ts +40 -0
- package/dist/modules/datasource/aws-eks-addon/schema.js +31 -0
- package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -0
- package/dist/modules/datasource/aws-machine-image/index.js +6 -5
- package/dist/modules/datasource/aws-machine-image/index.js.map +1 -1
- package/dist/modules/datasource/azure-pipelines-tasks/index.js +15 -1
- package/dist/modules/datasource/azure-pipelines-tasks/index.js.map +1 -1
- package/dist/modules/datasource/azure-pipelines-tasks/schema.d.ts +24 -0
- package/dist/modules/datasource/azure-pipelines-tasks/schema.js +3 -0
- package/dist/modules/datasource/azure-pipelines-tasks/schema.js.map +1 -1
- package/dist/modules/datasource/bazel/index.js +18 -2
- package/dist/modules/datasource/bazel/index.js.map +1 -1
- package/dist/modules/datasource/bazel/schema.d.ts +1 -0
- package/dist/modules/datasource/bazel/schema.js.map +1 -1
- package/dist/modules/datasource/bitbucket-server-tags/index.d.ts +19 -0
- package/dist/modules/datasource/bitbucket-server-tags/index.js +133 -0
- package/dist/modules/datasource/bitbucket-server-tags/index.js.map +1 -0
- package/dist/modules/datasource/bitbucket-server-tags/schema.d.ts +28 -0
- package/dist/modules/datasource/bitbucket-server-tags/schema.js +13 -0
- package/dist/modules/datasource/bitbucket-server-tags/schema.js.map +1 -0
- package/dist/modules/datasource/bitrise/index.js +1 -1
- package/dist/modules/datasource/bitrise/index.js.map +1 -1
- package/dist/modules/datasource/cdnjs/schema.d.ts +2 -2
- package/dist/modules/datasource/conda/index.js +18 -1
- package/dist/modules/datasource/conda/index.js.map +1 -1
- package/dist/modules/datasource/conda/prefix-dev.d.ts +3 -0
- package/dist/modules/datasource/conda/prefix-dev.js +81 -0
- package/dist/modules/datasource/conda/prefix-dev.js.map +1 -0
- package/dist/modules/datasource/conda/schema/prefix-dev.d.ts +189 -0
- package/dist/modules/datasource/conda/schema/prefix-dev.js +31 -0
- package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -0
- package/dist/modules/datasource/conda/types.d.ts +1 -20
- package/dist/modules/datasource/conda/types.js.map +1 -1
- package/dist/modules/datasource/cpan/index.js +2 -4
- package/dist/modules/datasource/cpan/index.js.map +1 -1
- package/dist/modules/datasource/crate/index.js +3 -3
- package/dist/modules/datasource/crate/index.js.map +1 -1
- package/dist/modules/datasource/custom/formats/html.js +1 -1
- package/dist/modules/datasource/custom/formats/html.js.map +1 -1
- package/dist/modules/datasource/custom/formats/yaml.js +1 -1
- package/dist/modules/datasource/custom/formats/yaml.js.map +1 -1
- package/dist/modules/datasource/custom/index.js +4 -2
- package/dist/modules/datasource/custom/index.js.map +1 -1
- package/dist/modules/datasource/custom/schema.d.ts +22 -22
- package/dist/modules/datasource/custom/utils.js +1 -0
- package/dist/modules/datasource/custom/utils.js.map +1 -1
- package/dist/modules/datasource/dart/index.js +1 -1
- package/dist/modules/datasource/dart/index.js.map +1 -1
- package/dist/modules/datasource/dart-version/index.js +1 -1
- package/dist/modules/datasource/dart-version/index.js.map +1 -1
- package/dist/modules/datasource/datasource.js +0 -1
- package/dist/modules/datasource/datasource.js.map +1 -1
- package/dist/modules/datasource/deb/index.d.ts +4 -5
- package/dist/modules/datasource/deb/index.js +10 -11
- package/dist/modules/datasource/deb/index.js.map +1 -1
- package/dist/modules/datasource/deb/url.d.ts +3 -3
- package/dist/modules/datasource/deb/url.js +17 -13
- package/dist/modules/datasource/deb/url.js.map +1 -1
- package/dist/modules/datasource/deno/index.js +1 -1
- package/dist/modules/datasource/deno/index.js.map +1 -1
- package/dist/modules/datasource/deno/schema.d.ts +1 -1
- package/dist/modules/datasource/devbox/index.js +0 -1
- package/dist/modules/datasource/devbox/index.js.map +1 -1
- package/dist/modules/datasource/docker/common.js +5 -2
- package/dist/modules/datasource/docker/common.js.map +1 -1
- package/dist/modules/datasource/docker/index.js +8 -6
- package/dist/modules/datasource/docker/index.js.map +1 -1
- package/dist/modules/datasource/docker/schema.d.ts +77 -101
- package/dist/modules/datasource/docker/schema.js +2 -1
- package/dist/modules/datasource/docker/schema.js.map +1 -1
- package/dist/modules/datasource/flutter-version/index.js +1 -1
- package/dist/modules/datasource/flutter-version/index.js.map +1 -1
- package/dist/modules/datasource/galaxy/schema.d.ts +1 -1
- package/dist/modules/datasource/galaxy-collection/schema.d.ts +8 -8
- package/dist/modules/datasource/git-refs/index.js +1 -1
- package/dist/modules/datasource/git-refs/index.js.map +1 -1
- package/dist/modules/datasource/gitea-releases/schema.d.ts +6 -6
- package/dist/modules/datasource/gitea-tags/schema.d.ts +4 -4
- package/dist/modules/datasource/github-release-attachments/index.js +2 -2
- package/dist/modules/datasource/github-release-attachments/index.js.map +1 -1
- package/dist/modules/datasource/github-runners/index.js +2 -2
- package/dist/modules/datasource/github-runners/index.js.map +1 -1
- package/dist/modules/datasource/github-tags/index.js +4 -1
- package/dist/modules/datasource/github-tags/index.js.map +1 -1
- package/dist/modules/datasource/gitlab-packages/index.js +1 -1
- package/dist/modules/datasource/gitlab-packages/index.js.map +1 -1
- package/dist/modules/datasource/gitlab-releases/index.js +1 -3
- package/dist/modules/datasource/gitlab-releases/index.js.map +1 -1
- package/dist/modules/datasource/go/base.js +1 -1
- package/dist/modules/datasource/go/base.js.map +1 -1
- package/dist/modules/datasource/go/index.js +1 -1
- package/dist/modules/datasource/go/index.js.map +1 -1
- package/dist/modules/datasource/go/releases-direct.js +7 -4
- package/dist/modules/datasource/go/releases-direct.js.map +1 -1
- package/dist/modules/datasource/go/releases-goproxy.js +1 -1
- package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
- package/dist/modules/datasource/golang-version/index.js +2 -2
- package/dist/modules/datasource/golang-version/index.js.map +1 -1
- package/dist/modules/datasource/gradle-version/index.js +1 -1
- package/dist/modules/datasource/gradle-version/index.js.map +1 -1
- package/dist/modules/datasource/helm/index.js +1 -1
- package/dist/modules/datasource/helm/index.js.map +1 -1
- package/dist/modules/datasource/hex/index.js +1 -1
- package/dist/modules/datasource/hex/index.js.map +1 -1
- package/dist/modules/datasource/hex/schema.d.ts +11 -11
- package/dist/modules/datasource/hexpm-bob/index.js +1 -1
- package/dist/modules/datasource/hexpm-bob/index.js.map +1 -1
- package/dist/modules/datasource/index.js +46 -5
- package/dist/modules/datasource/index.js.map +1 -1
- package/dist/modules/datasource/java-version/index.js +0 -1
- package/dist/modules/datasource/java-version/index.js.map +1 -1
- package/dist/modules/datasource/jenkins-plugins/index.js +1 -1
- package/dist/modules/datasource/jenkins-plugins/index.js.map +1 -1
- package/dist/modules/datasource/maven/index.d.ts +2 -2
- package/dist/modules/datasource/maven/index.js +56 -33
- package/dist/modules/datasource/maven/index.js.map +1 -1
- package/dist/modules/datasource/maven/types.d.ts +7 -6
- package/dist/modules/datasource/maven/types.js.map +1 -1
- package/dist/modules/datasource/maven/util.d.ts +4 -5
- package/dist/modules/datasource/maven/util.js +94 -157
- package/dist/modules/datasource/maven/util.js.map +1 -1
- package/dist/modules/datasource/metadata.js +9 -1
- package/dist/modules/datasource/metadata.js.map +1 -1
- package/dist/modules/datasource/node-version/index.js +1 -1
- package/dist/modules/datasource/node-version/index.js.map +1 -1
- package/dist/modules/datasource/npm/get.d.ts +0 -1
- package/dist/modules/datasource/npm/get.js +14 -68
- package/dist/modules/datasource/npm/get.js.map +1 -1
- package/dist/modules/datasource/npm/index.js +1 -1
- package/dist/modules/datasource/npm/index.js.map +1 -1
- package/dist/modules/datasource/npm/npmrc.js +1 -1
- package/dist/modules/datasource/npm/npmrc.js.map +1 -1
- package/dist/modules/datasource/npm/types.d.ts +0 -8
- package/dist/modules/datasource/npm/types.js.map +1 -1
- package/dist/modules/datasource/nuget/index.js +1 -1
- package/dist/modules/datasource/nuget/index.js.map +1 -1
- package/dist/modules/datasource/nuget/v2.js +1 -1
- package/dist/modules/datasource/nuget/v2.js.map +1 -1
- package/dist/modules/datasource/nuget/v3.js +8 -6
- package/dist/modules/datasource/nuget/v3.js.map +1 -1
- package/dist/modules/datasource/orb/index.js +1 -1
- package/dist/modules/datasource/orb/index.js.map +1 -1
- package/dist/modules/datasource/packagist/index.js +2 -2
- package/dist/modules/datasource/packagist/index.js.map +1 -1
- package/dist/modules/datasource/packagist/schema.d.ts +32 -32
- package/dist/modules/datasource/pod/index.js +2 -2
- package/dist/modules/datasource/pod/index.js.map +1 -1
- package/dist/modules/datasource/postprocess-release.js +1 -1
- package/dist/modules/datasource/postprocess-release.js.map +1 -1
- package/dist/modules/datasource/pypi/index.js +1 -1
- package/dist/modules/datasource/pypi/index.js.map +1 -1
- package/dist/modules/datasource/python-version/index.js +1 -1
- package/dist/modules/datasource/python-version/index.js.map +1 -1
- package/dist/modules/datasource/repology/index.js +1 -1
- package/dist/modules/datasource/repology/index.js.map +1 -1
- package/dist/modules/datasource/ruby-version/index.js +1 -1
- package/dist/modules/datasource/ruby-version/index.js.map +1 -1
- package/dist/modules/datasource/rubygems/index.js +2 -2
- package/dist/modules/datasource/rubygems/index.js.map +1 -1
- package/dist/modules/datasource/rubygems/versions-endpoint-cache.js +2 -2
- package/dist/modules/datasource/rubygems/versions-endpoint-cache.js.map +1 -1
- package/dist/modules/datasource/sbt-package/index.js +1 -1
- package/dist/modules/datasource/sbt-package/index.js.map +1 -1
- package/dist/modules/datasource/sbt-plugin/index.js +1 -1
- package/dist/modules/datasource/sbt-plugin/index.js.map +1 -1
- package/dist/modules/datasource/schema.d.ts +4 -4
- package/dist/modules/datasource/terraform-module/index.js +1 -1
- package/dist/modules/datasource/terraform-module/index.js.map +1 -1
- package/dist/modules/datasource/terraform-provider/index.js +2 -3
- package/dist/modules/datasource/terraform-provider/index.js.map +1 -1
- package/dist/modules/datasource/types.d.ts +2 -0
- package/dist/modules/datasource/types.js.map +1 -1
- package/dist/modules/manager/api.js +2 -0
- package/dist/modules/manager/api.js.map +1 -1
- package/dist/modules/manager/argocd/extract.js +1 -1
- package/dist/modules/manager/argocd/extract.js.map +1 -1
- package/dist/modules/manager/argocd/schema.d.ts +22 -22
- package/dist/modules/manager/asdf/upgradeable-tooling.js +94 -0
- package/dist/modules/manager/asdf/upgradeable-tooling.js.map +1 -1
- package/dist/modules/manager/azure-pipelines/schema.d.ts +32 -32
- package/dist/modules/manager/batect/schema.d.ts +4 -4
- package/dist/modules/manager/batect-wrapper/artifacts.js +1 -1
- package/dist/modules/manager/batect-wrapper/artifacts.js.map +1 -1
- package/dist/modules/manager/bazel/rules/docker.d.ts +6 -6
- package/dist/modules/manager/bazel/rules/git.d.ts +10 -10
- package/dist/modules/manager/bazel/rules/git.js +9 -2
- package/dist/modules/manager/bazel/rules/git.js.map +1 -1
- package/dist/modules/manager/bazel/rules/go.d.ts +5 -5
- package/dist/modules/manager/bazel/rules/maven.d.ts +7 -7
- package/dist/modules/manager/bazel/rules/oci.d.ts +6 -6
- package/dist/modules/manager/bazel-module/parser/fragments.d.ts +40 -40
- package/dist/modules/manager/bazel-module/parser/maven.d.ts +44 -90
- package/dist/modules/manager/bazel-module/parser/oci.d.ts +19 -42
- package/dist/modules/manager/bazel-module/rules.d.ts +50 -160
- package/dist/modules/manager/buildpacks/extract.d.ts +6 -1
- package/dist/modules/manager/buildpacks/extract.js +24 -14
- package/dist/modules/manager/buildpacks/extract.js.map +1 -1
- package/dist/modules/manager/bun/artifacts.js +0 -1
- package/dist/modules/manager/bun/artifacts.js.map +1 -1
- package/dist/modules/manager/bun/extract.d.ts +1 -0
- package/dist/modules/manager/bun/extract.js +53 -27
- package/dist/modules/manager/bun/extract.js.map +1 -1
- package/dist/modules/manager/bun/index.js +1 -1
- package/dist/modules/manager/bun/index.js.map +1 -1
- package/dist/modules/manager/bun/utils.d.ts +2 -0
- package/dist/modules/manager/bun/utils.js +22 -0
- package/dist/modules/manager/bun/utils.js.map +1 -0
- package/dist/modules/manager/bundler/artifacts.js +0 -1
- package/dist/modules/manager/bundler/artifacts.js.map +1 -1
- package/dist/modules/manager/bundler/extract.js +2 -1
- package/dist/modules/manager/bundler/extract.js.map +1 -1
- package/dist/modules/manager/cake/index.js +4 -2
- package/dist/modules/manager/cake/index.js.map +1 -1
- package/dist/modules/manager/cargo/artifacts.js +5 -7
- package/dist/modules/manager/cargo/artifacts.js.map +1 -1
- package/dist/modules/manager/cargo/schema.d.ts +166 -166
- package/dist/modules/manager/circleci/extract.js +21 -30
- package/dist/modules/manager/circleci/extract.js.map +1 -1
- package/dist/modules/manager/circleci/schema.d.ts +33 -144
- package/dist/modules/manager/circleci/schema.js +21 -17
- package/dist/modules/manager/circleci/schema.js.map +1 -1
- package/dist/modules/manager/cocoapods/artifacts.js +1 -2
- package/dist/modules/manager/cocoapods/artifacts.js.map +1 -1
- package/dist/modules/manager/composer/artifacts.js +1 -2
- package/dist/modules/manager/composer/artifacts.js.map +1 -1
- package/dist/modules/manager/composer/schema.d.ts +32 -34
- package/dist/modules/manager/composer/schema.js +1 -1
- package/dist/modules/manager/composer/schema.js.map +1 -1
- package/dist/modules/manager/composer/utils.d.ts +1 -0
- package/dist/modules/manager/composer/utils.js +18 -6
- package/dist/modules/manager/composer/utils.js.map +1 -1
- package/dist/modules/manager/conan/artifacts.d.ts +2 -0
- package/dist/modules/manager/conan/artifacts.js +76 -0
- package/dist/modules/manager/conan/artifacts.js.map +1 -0
- package/dist/modules/manager/conan/index.d.ts +2 -0
- package/dist/modules/manager/conan/index.js +4 -1
- package/dist/modules/manager/conan/index.js.map +1 -1
- package/dist/modules/manager/copier/artifacts.js +0 -1
- package/dist/modules/manager/copier/artifacts.js.map +1 -1
- package/dist/modules/manager/crossplane/schema.d.ts +2 -2
- package/dist/modules/manager/custom/jsonata/schema.d.ts +21 -21
- package/dist/modules/manager/custom/regex/index.js +2 -0
- package/dist/modules/manager/custom/regex/index.js.map +1 -1
- package/dist/modules/manager/deps-edn/extract.js +2 -1
- package/dist/modules/manager/deps-edn/extract.js.map +1 -1
- package/dist/modules/manager/devbox/artifacts.d.ts +1 -1
- package/dist/modules/manager/devbox/artifacts.js +35 -11
- package/dist/modules/manager/devbox/artifacts.js.map +1 -1
- package/dist/modules/manager/devbox/schema.js +1 -1
- package/dist/modules/manager/devbox/schema.js.map +1 -1
- package/dist/modules/manager/devcontainer/extract.js +43 -1
- package/dist/modules/manager/devcontainer/extract.js.map +1 -1
- package/dist/modules/manager/devcontainer/index.js +11 -1
- package/dist/modules/manager/devcontainer/index.js.map +1 -1
- package/dist/modules/manager/devcontainer/schema.d.ts +7 -3
- package/dist/modules/manager/devcontainer/schema.js +3 -1
- package/dist/modules/manager/devcontainer/schema.js.map +1 -1
- package/dist/modules/manager/docker-compose/schema.d.ts +6 -6
- package/dist/modules/manager/dockerfile/extract.js +2 -6
- package/dist/modules/manager/dockerfile/extract.js.map +1 -1
- package/dist/modules/manager/fingerprint.generated.js +86 -85
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/fleet/schema.d.ts +4 -4
- package/dist/modules/manager/flux/artifacts.js +0 -1
- package/dist/modules/manager/flux/artifacts.js.map +1 -1
- package/dist/modules/manager/flux/extract.js +27 -24
- package/dist/modules/manager/flux/extract.js.map +1 -1
- package/dist/modules/manager/flux/schema.d.ts +130 -154
- package/dist/modules/manager/github-actions/extract.js +60 -39
- package/dist/modules/manager/github-actions/extract.js.map +1 -1
- package/dist/modules/manager/github-actions/schema.d.ts +66 -0
- package/dist/modules/manager/github-actions/schema.js +38 -0
- package/dist/modules/manager/github-actions/schema.js.map +1 -0
- package/dist/modules/manager/gitlabci/extract.d.ts +1 -5
- package/dist/modules/manager/gitlabci/extract.js +27 -126
- package/dist/modules/manager/gitlabci/extract.js.map +1 -1
- package/dist/modules/manager/gitlabci/schema.d.ts +55 -0
- package/dist/modules/manager/gitlabci/schema.js +63 -0
- package/dist/modules/manager/gitlabci/schema.js.map +1 -0
- package/dist/modules/manager/gitlabci-include/extract.js +6 -54
- package/dist/modules/manager/gitlabci-include/extract.js.map +1 -1
- package/dist/modules/manager/gitlabci-include/schema.d.ts +13 -0
- package/dist/modules/manager/gitlabci-include/schema.js +46 -0
- package/dist/modules/manager/gitlabci-include/schema.js.map +1 -0
- package/dist/modules/manager/glasskube/schema.d.ts +8 -8
- package/dist/modules/manager/gomod/artifacts-extra.js +12 -4
- package/dist/modules/manager/gomod/artifacts-extra.js.map +1 -1
- package/dist/modules/manager/gomod/artifacts.js +24 -10
- package/dist/modules/manager/gomod/artifacts.js.map +1 -1
- package/dist/modules/manager/gomod/extract.js +23 -0
- package/dist/modules/manager/gomod/extract.js.map +1 -1
- package/dist/modules/manager/gomod/line-parser.js +16 -0
- package/dist/modules/manager/gomod/line-parser.js.map +1 -1
- package/dist/modules/manager/gomod/update.js +5 -3
- package/dist/modules/manager/gomod/update.js.map +1 -1
- package/dist/modules/manager/gradle/artifacts.js +0 -1
- package/dist/modules/manager/gradle/artifacts.js.map +1 -1
- package/dist/modules/manager/gradle/extract/catalog.js +1 -1
- package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
- package/dist/modules/manager/gradle/extract.js +8 -13
- package/dist/modules/manager/gradle/extract.js.map +1 -1
- package/dist/modules/manager/gradle/parser/assignments.js +2 -2
- package/dist/modules/manager/gradle/parser/assignments.js.map +1 -1
- package/dist/modules/manager/gradle/parser/handlers.d.ts +1 -2
- package/dist/modules/manager/gradle/parser/handlers.js +17 -24
- package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
- package/dist/modules/manager/gradle/parser/registry-urls.js +46 -12
- package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
- package/dist/modules/manager/gradle/types.d.ts +1 -0
- package/dist/modules/manager/gradle/types.js.map +1 -1
- package/dist/modules/manager/gradle-wrapper/artifacts.js +1 -2
- package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
- package/dist/modules/manager/helmfile/artifacts.js +0 -1
- package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
- package/dist/modules/manager/helmfile/extract.js +4 -0
- package/dist/modules/manager/helmfile/extract.js.map +1 -1
- package/dist/modules/manager/helmfile/schema.d.ts +9 -9
- package/dist/modules/manager/helmv3/artifacts.js +0 -1
- package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
- package/dist/modules/manager/helmv3/utils.js +3 -1
- package/dist/modules/manager/helmv3/utils.js.map +1 -1
- package/dist/modules/manager/hermit/artifacts.js +0 -1
- package/dist/modules/manager/hermit/artifacts.js.map +1 -1
- package/dist/modules/manager/homebrew/extract.js +0 -1
- package/dist/modules/manager/homebrew/extract.js.map +1 -1
- package/dist/modules/manager/jsonnet-bundler/artifacts.js +0 -1
- package/dist/modules/manager/jsonnet-bundler/artifacts.js.map +1 -1
- package/dist/modules/manager/kustomize/artifacts.d.ts +2 -0
- package/dist/modules/manager/kustomize/artifacts.js +154 -0
- package/dist/modules/manager/kustomize/artifacts.js.map +1 -0
- package/dist/modules/manager/kustomize/common.d.ts +3 -0
- package/dist/modules/manager/kustomize/common.js +22 -0
- package/dist/modules/manager/kustomize/common.js.map +1 -0
- package/dist/modules/manager/kustomize/index.d.ts +1 -0
- package/dist/modules/manager/kustomize/index.js +3 -1
- package/dist/modules/manager/kustomize/index.js.map +1 -1
- package/dist/modules/manager/kustomize/types.d.ts +4 -0
- package/dist/modules/manager/kustomize/types.js.map +1 -1
- package/dist/modules/manager/maven/extract.d.ts +2 -2
- package/dist/modules/manager/maven/extract.js +14 -9
- package/dist/modules/manager/maven/extract.js.map +1 -1
- package/dist/modules/manager/maven-wrapper/artifacts.js +0 -1
- package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
- package/dist/modules/manager/mise/extract.js +1 -1
- package/dist/modules/manager/mise/extract.js.map +1 -1
- package/dist/modules/manager/mix/artifacts.js +64 -14
- package/dist/modules/manager/mix/artifacts.js.map +1 -1
- package/dist/modules/manager/mix/index.d.ts +1 -0
- package/dist/modules/manager/mix/index.js +2 -1
- package/dist/modules/manager/mix/index.js.map +1 -1
- package/dist/modules/manager/nix/artifacts.js +0 -1
- package/dist/modules/manager/nix/artifacts.js.map +1 -1
- package/dist/modules/manager/nix/extract.js +1 -1
- package/dist/modules/manager/nix/extract.js.map +1 -1
- package/dist/modules/manager/nix/schema.d.ts +20 -20
- package/dist/modules/manager/nix/schema.js +1 -0
- package/dist/modules/manager/nix/schema.js.map +1 -1
- package/dist/modules/manager/npm/artifacts.js +0 -1
- package/dist/modules/manager/npm/artifacts.js.map +1 -1
- package/dist/modules/manager/npm/extract/common/package-file.js +1 -0
- package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
- package/dist/modules/manager/npm/extract/yarn.js +2 -2
- package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
- package/dist/modules/manager/npm/post-update/npm.js +0 -1
- package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/pnpm.js +13 -2
- package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/rules.js +11 -1
- package/dist/modules/manager/npm/post-update/rules.js.map +1 -1
- package/dist/modules/manager/npm/post-update/yarn.js +0 -1
- package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
- package/dist/modules/manager/npm/schema.d.ts +13 -13
- package/dist/modules/manager/npm/update/dependency/index.js +1 -1
- package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
- package/dist/modules/manager/nuget/artifacts.js +1 -2
- package/dist/modules/manager/nuget/artifacts.js.map +1 -1
- package/dist/modules/manager/nuget/extract.js +21 -18
- package/dist/modules/manager/nuget/extract.js.map +1 -1
- package/dist/modules/manager/nuget/package-tree.js +4 -0
- package/dist/modules/manager/nuget/package-tree.js.map +1 -1
- package/dist/modules/manager/nuget/schema.d.ts +8 -8
- package/dist/modules/manager/nuget/util.js +4 -1
- package/dist/modules/manager/nuget/util.js.map +1 -1
- package/dist/modules/manager/ocb/schema.d.ts +6 -6
- package/dist/modules/manager/pep621/extract.js +19 -3
- package/dist/modules/manager/pep621/extract.js.map +1 -1
- package/dist/modules/manager/pep621/processors/pdm.js +3 -2
- package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
- package/dist/modules/manager/pep621/processors/uv.js +4 -1
- package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
- package/dist/modules/manager/pep621/schema.d.ts +341 -49
- package/dist/modules/manager/pep621/schema.js +3 -1
- package/dist/modules/manager/pep621/schema.js.map +1 -1
- package/dist/modules/manager/pep621/utils.js +1 -1
- package/dist/modules/manager/pep621/utils.js.map +1 -1
- package/dist/modules/manager/pip-compile/common.js +0 -1
- package/dist/modules/manager/pip-compile/common.js.map +1 -1
- package/dist/modules/manager/pip_requirements/artifacts.js +0 -1
- package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
- package/dist/modules/manager/pip_requirements/common.js +2 -6
- package/dist/modules/manager/pip_requirements/common.js.map +1 -1
- package/dist/modules/manager/pipenv/artifacts.js +0 -1
- package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
- package/dist/modules/manager/pixi/artifacts.d.ts +3 -0
- package/dist/modules/manager/pixi/artifacts.js +78 -0
- package/dist/modules/manager/pixi/artifacts.js.map +1 -0
- package/dist/modules/manager/pixi/extract.d.ts +4 -0
- package/dist/modules/manager/pixi/extract.js +131 -0
- package/dist/modules/manager/pixi/extract.js.map +1 -0
- package/dist/modules/manager/pixi/index.d.ts +10 -0
- package/dist/modules/manager/pixi/index.js +20 -0
- package/dist/modules/manager/pixi/index.js.map +1 -0
- package/dist/modules/manager/pixi/schema.d.ts +405 -0
- package/dist/modules/manager/pixi/schema.js +147 -0
- package/dist/modules/manager/pixi/schema.js.map +1 -0
- package/dist/modules/manager/poetry/artifacts.js +3 -4
- package/dist/modules/manager/poetry/artifacts.js.map +1 -1
- package/dist/modules/manager/poetry/extract.js +2 -1
- package/dist/modules/manager/poetry/extract.js.map +1 -1
- package/dist/modules/manager/poetry/schema.d.ts +44 -44
- package/dist/modules/manager/pub/artifacts.js +0 -1
- package/dist/modules/manager/pub/artifacts.js.map +1 -1
- package/dist/modules/manager/pub/schema.d.ts +8 -8
- package/dist/modules/manager/scalafmt/extract.js +1 -1
- package/dist/modules/manager/scalafmt/extract.js.map +1 -1
- package/dist/modules/manager/sveltos/schema.d.ts +30 -42
- package/dist/modules/manager/terraform/lockfile/hash.d.ts +1 -1
- package/dist/modules/manager/terraform/util.js +1 -3
- package/dist/modules/manager/terraform/util.js.map +1 -1
- package/dist/modules/manager/types.d.ts +6 -2
- package/dist/modules/manager/types.js.map +1 -1
- package/dist/modules/manager/vendir/schema.d.ts +7 -7
- package/dist/modules/platform/api.d.ts +1 -1
- package/dist/modules/platform/azure/azure-helper.js +2 -2
- package/dist/modules/platform/azure/azure-helper.js.map +1 -1
- package/dist/modules/platform/azure/index.js +14 -14
- package/dist/modules/platform/azure/index.js.map +1 -1
- package/dist/modules/platform/bitbucket/comments.js +4 -4
- package/dist/modules/platform/bitbucket/comments.js.map +1 -1
- package/dist/modules/platform/bitbucket/index.js +49 -44
- package/dist/modules/platform/bitbucket/index.js.map +1 -1
- package/dist/modules/platform/bitbucket/schema.d.ts +14 -14
- package/dist/modules/platform/bitbucket/utils.js +3 -3
- package/dist/modules/platform/bitbucket/utils.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/index.d.ts +2 -2
- package/dist/modules/platform/bitbucket-server/index.js +81 -81
- package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/pr-cache.d.ts +23 -0
- package/dist/modules/platform/bitbucket-server/pr-cache.js +125 -0
- package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -0
- package/dist/modules/platform/bitbucket-server/schema.d.ts +76 -0
- package/dist/modules/platform/bitbucket-server/schema.js +15 -1
- package/dist/modules/platform/bitbucket-server/schema.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/types.d.ts +8 -2
- package/dist/modules/platform/bitbucket-server/types.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/utils.d.ts +0 -2
- package/dist/modules/platform/bitbucket-server/utils.js +6 -52
- package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
- package/dist/modules/platform/codecommit/codecommit-client.js +6 -6
- package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
- package/dist/modules/platform/codecommit/index.js +24 -24
- package/dist/modules/platform/codecommit/index.js.map +1 -1
- package/dist/modules/platform/gerrit/client.d.ts +0 -3
- package/dist/modules/platform/gerrit/client.js +20 -29
- package/dist/modules/platform/gerrit/client.js.map +1 -1
- package/dist/modules/platform/gerrit/index.js +0 -6
- package/dist/modules/platform/gerrit/index.js.map +1 -1
- package/dist/modules/platform/gerrit/scm.js +5 -6
- package/dist/modules/platform/gerrit/scm.js.map +1 -1
- package/dist/modules/platform/gerrit/types.d.ts +1 -4
- package/dist/modules/platform/gerrit/types.js.map +1 -1
- package/dist/modules/platform/gerrit/utils.d.ts +3 -2
- package/dist/modules/platform/gerrit/utils.js +4 -8
- package/dist/modules/platform/gerrit/utils.js.map +1 -1
- package/dist/modules/platform/gitea/gitea-helper.d.ts +1 -0
- package/dist/modules/platform/gitea/gitea-helper.js +16 -0
- package/dist/modules/platform/gitea/gitea-helper.js.map +1 -1
- package/dist/modules/platform/gitea/index.js +22 -16
- package/dist/modules/platform/gitea/index.js.map +1 -1
- package/dist/modules/platform/gitea/schema.d.ts +8 -8
- package/dist/modules/platform/gitea/types.d.ts +1 -1
- package/dist/modules/platform/gitea/types.js.map +1 -1
- package/dist/modules/platform/github/common.d.ts +2 -0
- package/dist/modules/platform/github/common.js +16 -0
- package/dist/modules/platform/github/common.js.map +1 -1
- package/dist/modules/platform/github/index.d.ts +1 -1
- package/dist/modules/platform/github/index.js +87 -82
- package/dist/modules/platform/github/index.js.map +1 -1
- package/dist/modules/platform/github/issue.d.ts +18 -18
- package/dist/modules/platform/github/massage-markdown-links.js +2 -2
- package/dist/modules/platform/github/massage-markdown-links.js.map +1 -1
- package/dist/modules/platform/github/pr.js +3 -3
- package/dist/modules/platform/github/pr.js.map +1 -1
- package/dist/modules/platform/github/schema.d.ts +128 -128
- package/dist/modules/platform/github/schema.js +3 -1
- package/dist/modules/platform/github/schema.js.map +1 -1
- package/dist/modules/platform/gitlab/index.js +63 -49
- package/dist/modules/platform/gitlab/index.js.map +1 -1
- package/dist/modules/platform/index.js +0 -1
- package/dist/modules/platform/index.js.map +1 -1
- package/dist/modules/platform/scm.d.ts +1 -1
- package/dist/modules/versioning/api.js +2 -0
- package/dist/modules/versioning/api.js.map +1 -1
- package/dist/modules/versioning/composer/index.js +10 -0
- package/dist/modules/versioning/composer/index.js.map +1 -1
- package/dist/modules/versioning/conda/index.d.ts +41 -0
- package/dist/modules/versioning/conda/index.js +178 -0
- package/dist/modules/versioning/conda/index.js.map +1 -0
- package/dist/modules/versioning/distro.js +1 -3
- package/dist/modules/versioning/distro.js.map +1 -1
- package/dist/modules/versioning/hashicorp/convertor.d.ts +2 -1
- package/dist/modules/versioning/hashicorp/convertor.js +13 -8
- package/dist/modules/versioning/hashicorp/convertor.js.map +1 -1
- package/dist/modules/versioning/hex/index.js +3 -3
- package/dist/modules/versioning/hex/index.js.map +1 -1
- package/dist/modules/versioning/npm/index.js +2 -1
- package/dist/modules/versioning/npm/index.js.map +1 -1
- package/dist/modules/versioning/types.d.ts +4 -0
- package/dist/modules/versioning/types.js.map +1 -1
- package/dist/proxy.js +2 -1
- package/dist/proxy.js.map +1 -1
- package/dist/renovate.js +2 -2
- package/dist/renovate.js.map +1 -1
- package/dist/util/cache/package/redis.js +0 -1
- package/dist/util/cache/package/redis.js.map +1 -1
- package/dist/util/cache/package/types.d.ts +1 -1
- package/dist/util/cache/package/types.js.map +1 -1
- package/dist/util/cache/repository/impl/base.d.ts +1 -1
- package/dist/util/cache/repository/impl/base.js +4 -0
- package/dist/util/cache/repository/impl/base.js.map +1 -1
- package/dist/util/cache/repository/schema.d.ts +4 -4
- package/dist/util/cache/repository/types.d.ts +3 -0
- package/dist/util/cache/repository/types.js.map +1 -1
- package/dist/util/common.d.ts +4 -2
- package/dist/util/common.js +17 -3
- package/dist/util/common.js.map +1 -1
- package/dist/util/env.d.ts +4 -0
- package/dist/util/env.js +22 -0
- package/dist/util/env.js.map +1 -0
- package/dist/util/exec/containerbase.js +19 -14
- package/dist/util/exec/containerbase.js.map +1 -1
- package/dist/util/exec/index.js +5 -2
- package/dist/util/exec/index.js.map +1 -1
- package/dist/util/exec/types.d.ts +0 -2
- package/dist/util/exec/types.js.map +1 -1
- package/dist/util/exec/utils.d.ts +1 -1
- package/dist/util/exec/utils.js +6 -5
- package/dist/util/exec/utils.js.map +1 -1
- package/dist/util/git/auth.js +8 -5
- package/dist/util/git/auth.js.map +1 -1
- package/dist/util/git/author.js +1 -1
- package/dist/util/git/author.js.map +1 -1
- package/dist/util/git/config.js +0 -1
- package/dist/util/git/config.js.map +1 -1
- package/dist/util/git/error.js +4 -2
- package/dist/util/git/error.js.map +1 -1
- package/dist/util/git/index.js +75 -52
- package/dist/util/git/index.js.map +1 -1
- package/dist/util/git/private-key.js +2 -4
- package/dist/util/git/private-key.js.map +1 -1
- package/dist/util/git/types.d.ts +2 -0
- package/dist/util/git/types.js.map +1 -1
- package/dist/util/git/url.js +1 -1
- package/dist/util/git/url.js.map +1 -1
- package/dist/util/github/graphql/datasource-fetcher.js +3 -5
- package/dist/util/github/graphql/datasource-fetcher.js.map +1 -1
- package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +2 -2
- package/dist/util/github/graphql/query-adapters/tags-query-adapter.d.ts +2 -2
- package/dist/util/http/auth.js +0 -1
- package/dist/util/http/auth.js.map +1 -1
- package/dist/util/http/bitbucket-server.d.ts +7 -5
- package/dist/util/http/bitbucket-server.js +26 -23
- package/dist/util/http/bitbucket-server.js.map +1 -1
- package/dist/util/http/bitbucket.d.ts +6 -5
- package/dist/util/http/bitbucket.js +34 -31
- package/dist/util/http/bitbucket.js.map +1 -1
- package/dist/util/http/cache/abstract-http-cache-provider.js +2 -2
- package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
- package/dist/util/http/cache/memory-http-cache-provider.d.ts +10 -0
- package/dist/util/http/cache/memory-http-cache-provider.js +29 -0
- package/dist/util/http/cache/memory-http-cache-provider.js.map +1 -0
- package/dist/util/http/cache/package-http-cache-provider.d.ts +23 -0
- package/dist/util/http/cache/package-http-cache-provider.js +80 -0
- package/dist/util/http/cache/package-http-cache-provider.js.map +1 -0
- package/dist/util/http/cache/schema.d.ts +2 -2
- package/dist/util/http/errors.d.ts +2 -0
- package/dist/util/http/errors.js +8 -0
- package/dist/util/http/errors.js.map +1 -0
- package/dist/util/http/gerrit.d.ts +6 -4
- package/dist/util/http/gerrit.js +11 -12
- package/dist/util/http/gerrit.js.map +1 -1
- package/dist/util/http/gitea.d.ts +5 -4
- package/dist/util/http/gitea.js +14 -13
- package/dist/util/http/gitea.js.map +1 -1
- package/dist/util/http/github.d.ts +14 -8
- package/dist/util/http/github.js +65 -60
- package/dist/util/http/github.js.map +1 -1
- package/dist/util/http/gitlab.d.ts +7 -5
- package/dist/util/http/gitlab.js +58 -46
- package/dist/util/http/gitlab.js.map +1 -1
- package/dist/util/http/got.d.ts +9 -0
- package/dist/util/http/got.js +54 -0
- package/dist/util/http/got.js.map +1 -0
- package/dist/util/http/host-rules.d.ts +2 -1
- package/dist/util/http/host-rules.js +17 -4
- package/dist/util/http/host-rules.js.map +1 -1
- package/dist/util/http/http.d.ts +93 -0
- package/dist/util/http/http.js +346 -0
- package/dist/util/http/http.js.map +1 -0
- package/dist/util/http/index.d.ts +6 -74
- package/dist/util/http/index.js +5 -359
- package/dist/util/http/index.js.map +1 -1
- package/dist/util/http/legacy.js +4 -1
- package/dist/util/http/legacy.js.map +1 -1
- package/dist/util/http/types.d.ts +9 -16
- package/dist/util/http/types.js.map +1 -1
- package/dist/util/schema-utils.d.ts +1 -0
- package/dist/util/schema-utils.js +43 -8
- package/dist/util/schema-utils.js.map +1 -1
- package/dist/util/stats.d.ts +10 -0
- package/dist/util/stats.js +45 -1
- package/dist/util/stats.js.map +1 -1
- package/dist/util/string.d.ts +16 -0
- package/dist/util/string.js +79 -0
- package/dist/util/string.js.map +1 -1
- package/dist/util/toml.d.ts +1 -0
- package/dist/util/toml.js +6 -0
- package/dist/util/toml.js.map +1 -1
- package/dist/util/url.js +3 -8
- package/dist/util/url.js.map +1 -1
- package/dist/util/yaml.js +3 -8
- package/dist/util/yaml.js.map +1 -1
- package/dist/workers/global/autodiscover.js +1 -19
- package/dist/workers/global/autodiscover.js.map +1 -1
- package/dist/workers/global/config/parse/env.js +3 -3
- package/dist/workers/global/config/parse/env.js.map +1 -1
- package/dist/workers/global/config/parse/file.js +18 -8
- package/dist/workers/global/config/parse/file.js.map +1 -1
- package/dist/workers/global/config/parse/host-rules-from-env.js +6 -2
- package/dist/workers/global/config/parse/host-rules-from-env.js.map +1 -1
- package/dist/workers/global/config/parse/index.js +15 -0
- package/dist/workers/global/config/parse/index.js.map +1 -1
- package/dist/workers/global/index.js +4 -2
- package/dist/workers/global/index.js.map +1 -1
- package/dist/workers/repository/cache.js +1 -2
- package/dist/workers/repository/cache.js.map +1 -1
- package/dist/workers/repository/config-migration/branch/migrated-data.js +2 -0
- package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
- package/dist/workers/repository/index.js +1 -0
- package/dist/workers/repository/index.js.map +1 -1
- package/dist/workers/repository/init/merge.js +6 -3
- package/dist/workers/repository/init/merge.js.map +1 -1
- package/dist/workers/repository/onboarding/pr/config-description.js +3 -1
- package/dist/workers/repository/onboarding/pr/config-description.js.map +1 -1
- package/dist/workers/repository/onboarding/pr/index.js +4 -0
- package/dist/workers/repository/onboarding/pr/index.js.map +1 -1
- package/dist/workers/repository/process/extract-update.js +0 -1
- package/dist/workers/repository/process/extract-update.js.map +1 -1
- package/dist/workers/repository/process/fingerprint-fields.js +0 -1
- package/dist/workers/repository/process/fingerprint-fields.js.map +1 -1
- package/dist/workers/repository/process/libyear.js +2 -2
- package/dist/workers/repository/process/libyear.js.map +1 -1
- package/dist/workers/repository/process/lookup/index.js +15 -4
- package/dist/workers/repository/process/lookup/index.js.map +1 -1
- package/dist/workers/repository/process/lookup/timestamps.d.ts +18 -0
- package/dist/workers/repository/process/lookup/timestamps.js +69 -0
- package/dist/workers/repository/process/lookup/timestamps.js.map +1 -0
- package/dist/workers/repository/process/lookup/types.d.ts +1 -0
- package/dist/workers/repository/process/lookup/types.js.map +1 -1
- package/dist/workers/repository/process/lookup/utils.js +20 -9
- package/dist/workers/repository/process/lookup/utils.js.map +1 -1
- package/dist/workers/repository/process/sort.js +1 -1
- package/dist/workers/repository/process/sort.js.map +1 -1
- package/dist/workers/repository/process/vulnerabilities.js +1 -1
- package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
- package/dist/workers/repository/process/write.js +1 -8
- package/dist/workers/repository/process/write.js.map +1 -1
- package/dist/workers/repository/reconfigure/utils.d.ts +2 -0
- package/dist/workers/repository/reconfigure/utils.js +16 -0
- package/dist/workers/repository/reconfigure/utils.js.map +1 -1
- package/dist/workers/repository/reconfigure/validate.js +6 -17
- package/dist/workers/repository/reconfigure/validate.js.map +1 -1
- package/dist/workers/repository/update/branch/auto-replace.js +25 -5
- package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
- package/dist/workers/repository/update/branch/commit.js +2 -0
- package/dist/workers/repository/update/branch/commit.js.map +1 -1
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +17 -8
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
- package/dist/workers/repository/update/pr/body/config-description.js +26 -1
- package/dist/workers/repository/update/pr/body/config-description.js.map +1 -1
- package/dist/workers/repository/update/pr/body/index.js +21 -14
- package/dist/workers/repository/update/pr/body/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/api.js +8 -6
- package/dist/workers/repository/update/pr/changelog/api.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +1 -1
- package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.d.ts +3 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js +39 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/index.js.map +1 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.d.ts +8 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.js +31 -0
- package/dist/workers/repository/update/pr/changelog/bitbucket-server/source.js.map +1 -0
- package/dist/workers/repository/update/pr/changelog/github/index.js +6 -3
- package/dist/workers/repository/update/pr/changelog/github/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/gitlab/index.js +1 -1
- package/dist/workers/repository/update/pr/changelog/gitlab/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/release-notes.js +12 -8
- package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/source.d.ts +1 -1
- package/dist/workers/repository/update/pr/changelog/source.js +1 -0
- package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/types.d.ts +1 -1
- package/dist/workers/repository/update/pr/changelog/types.js.map +1 -1
- package/dist/workers/repository/update/pr/index.js +2 -4
- package/dist/workers/repository/update/pr/index.js.map +1 -1
- package/dist/workers/repository/updates/flatten.js +8 -4
- package/dist/workers/repository/updates/flatten.js.map +1 -1
- package/dist/workers/repository/updates/generate.js +3 -2
- package/dist/workers/repository/updates/generate.js.map +1 -1
- package/dist/workers/types.d.ts +1 -4
- package/dist/workers/types.js.map +1 -1
- package/package.json +86 -83
- package/renovate-schema.json +25 -10
- package/dist/modules/manager/github-actions/types.d.ts +0 -30
- package/dist/modules/manager/github-actions/types.js +0 -3
- package/dist/modules/manager/github-actions/types.js.map +0 -1
- package/dist/modules/manager/gitlabci/common.d.ts +0 -6
- package/dist/modules/manager/gitlabci/common.js +0 -30
- package/dist/modules/manager/gitlabci/common.js.map +0 -1
- package/dist/modules/manager/gitlabci/types.d.ts +0 -35
- package/dist/modules/manager/gitlabci/types.js +0 -3
- package/dist/modules/manager/gitlabci/types.js.map +0 -1
@@ -3,8 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.client = void 0;
|
4
4
|
const error_messages_1 = require("../../../constants/error-messages");
|
5
5
|
const logger_1 = require("../../../logger");
|
6
|
+
const memory_http_cache_provider_1 = require("../../../util/http/cache/memory-http-cache-provider");
|
6
7
|
const gerrit_1 = require("../../../util/http/gerrit");
|
7
8
|
const regex_1 = require("../../../util/regex");
|
9
|
+
const url_1 = require("../../../util/url");
|
8
10
|
const utils_1 = require("./utils");
|
9
11
|
const QUOTES_REGEX = (0, regex_1.regEx)('"', 'g');
|
10
12
|
class GerritClient {
|
@@ -35,16 +37,27 @@ class GerritClient {
|
|
35
37
|
return branchInfo.body;
|
36
38
|
}
|
37
39
|
async findChanges(repository, findPRConfig, refreshCache) {
|
40
|
+
const opts = {};
|
41
|
+
/* v8 ignore start: temporary code */
|
42
|
+
// TODO: should refresh the cache rather than just ignore it
|
43
|
+
if (refreshCache) {
|
44
|
+
opts.memCache = false;
|
45
|
+
}
|
46
|
+
else {
|
47
|
+
opts.cacheProvider = memory_http_cache_provider_1.memCacheProvider;
|
48
|
+
}
|
49
|
+
/* v8 ignore stop */
|
38
50
|
const filters = GerritClient.buildSearchFilters(repository, findPRConfig);
|
39
|
-
const
|
40
|
-
|
41
|
-
|
51
|
+
const queryString = (0, url_1.getQueryString)({
|
52
|
+
o: this.requestDetails,
|
53
|
+
});
|
54
|
+
const changes = await this.gerritHttp.getJsonUnchecked(`a/changes/?q=${filters.join('+')}&${queryString}`, opts);
|
42
55
|
logger_1.logger.trace(`findChanges(${filters.join(', ')}) => ${changes.body.length}`);
|
43
56
|
return changes.body;
|
44
57
|
}
|
45
58
|
async getChange(changeNumber) {
|
46
|
-
const
|
47
|
-
|
59
|
+
const queryString = (0, url_1.getQueryString)({ o: this.requestDetails });
|
60
|
+
const changes = await this.gerritHttp.getJsonUnchecked(`a/changes/${changeNumber}?${queryString}`);
|
48
61
|
return changes.body;
|
49
62
|
}
|
50
63
|
async getMergeableInfo(change) {
|
@@ -96,24 +109,9 @@ class GerritClient {
|
|
96
109
|
});
|
97
110
|
}
|
98
111
|
async getFile(repo, branch, fileName) {
|
99
|
-
const base64Content = await this.gerritHttp.
|
112
|
+
const base64Content = await this.gerritHttp.getText(`a/projects/${encodeURIComponent(repo)}/branches/${encodeURIComponent(branch)}/files/${encodeURIComponent(fileName)}/content`);
|
100
113
|
return Buffer.from(base64Content.body, 'base64').toString();
|
101
114
|
}
|
102
|
-
async approveChange(changeId) {
|
103
|
-
const isApproved = await this.checkIfApproved(changeId);
|
104
|
-
if (!isApproved) {
|
105
|
-
await this.setLabel(changeId, 'Code-Review', +2);
|
106
|
-
}
|
107
|
-
}
|
108
|
-
async checkIfApproved(changeId) {
|
109
|
-
const change = await exports.client.getChange(changeId);
|
110
|
-
const reviewLabels = change?.labels?.['Code-Review'];
|
111
|
-
return reviewLabels === undefined || reviewLabels.approved !== undefined;
|
112
|
-
}
|
113
|
-
wasApprovedBy(change, username) {
|
114
|
-
return (change.labels?.['Code-Review'].approved &&
|
115
|
-
change.labels['Code-Review'].approved.username === username);
|
116
|
-
}
|
117
115
|
normalizeMessage(message) {
|
118
116
|
//the last \n was removed from gerrit after the comment was added...
|
119
117
|
return message.substring(0, 0x4000).trim();
|
@@ -122,14 +120,7 @@ class GerritClient {
|
|
122
120
|
const filterState = (0, utils_1.mapPrStateToGerritFilter)(searchConfig.state);
|
123
121
|
const filters = ['owner:self', 'project:' + repository, filterState];
|
124
122
|
if (searchConfig.branchName) {
|
125
|
-
filters.push(
|
126
|
-
'(',
|
127
|
-
`footer:Renovate-Branch=${searchConfig.branchName}`,
|
128
|
-
// for backwards compatibility
|
129
|
-
'OR',
|
130
|
-
`hashtag:sourceBranch-${searchConfig.branchName}`,
|
131
|
-
')',
|
132
|
-
]);
|
123
|
+
filters.push(`footer:Renovate-Branch=${searchConfig.branchName}`);
|
133
124
|
}
|
134
125
|
if (searchConfig.targetBranch) {
|
135
126
|
filters.push(`branch:${searchConfig.targetBranch}`);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../lib/modules/platform/gerrit/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { REPOSITORY_ARCHIVED } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { GerritHttp } from '../../../util/http/gerrit';\nimport { regEx } from '../../../util/regex';\nimport type {\n GerritAccountInfo,\n GerritBranchInfo,\n GerritChange,\n GerritChangeMessageInfo,\n GerritFindPRConfig,\n GerritMergeableInfo,\n GerritProjectInfo,\n} from './types';\nimport { mapPrStateToGerritFilter } from './utils';\n\nconst QUOTES_REGEX = regEx('\"', 'g');\n\nclass GerritClient {\n private requestDetails = [\n 'SUBMITTABLE', //include the submittable field in ChangeInfo, which can be used to tell if the change is reviewed and ready for submit.\n 'CHECK', // include potential consistency problems with the change (not related to labels)\n 'MESSAGES',\n 'DETAILED_ACCOUNTS',\n 'LABELS',\n 'CURRENT_ACTIONS', //to check if current_revision can be \"rebased\"\n 'CURRENT_REVISION', //get RevisionInfo::ref to fetch\n 'CURRENT_COMMIT', // to get the commit message\n ] as const;\n\n private gerritHttp = new GerritHttp();\n\n async getRepos(): Promise<string[]> {\n const res = await this.gerritHttp.getJsonUnchecked<string[]>(\n 'a/projects/?type=CODE&state=ACTIVE',\n {},\n );\n return Object.keys(res.body);\n }\n\n async getProjectInfo(repository: string): Promise<GerritProjectInfo> {\n const projectInfo =\n await this.gerritHttp.getJsonUnchecked<GerritProjectInfo>(\n `a/projects/${encodeURIComponent(repository)}`,\n );\n if (projectInfo.body.state !== 'ACTIVE') {\n throw new Error(REPOSITORY_ARCHIVED);\n }\n return projectInfo.body;\n }\n\n async getBranchInfo(repository: string): Promise<GerritBranchInfo> {\n const branchInfo = await this.gerritHttp.getJsonUnchecked<GerritBranchInfo>(\n `a/projects/${encodeURIComponent(repository)}/branches/HEAD`,\n );\n return branchInfo.body;\n }\n\n async findChanges(\n repository: string,\n findPRConfig: GerritFindPRConfig,\n refreshCache?: boolean,\n ): Promise<GerritChange[]> {\n const filters = GerritClient.buildSearchFilters(repository, findPRConfig);\n const changes = await this.gerritHttp.getJsonUnchecked<GerritChange[]>(\n `a/changes/?q=` +\n filters.join('+') +\n this.requestDetails.map((det) => `&o=${det}`).join(''),\n { memCache: !refreshCache },\n );\n logger.trace(\n `findChanges(${filters.join(', ')}) => ${changes.body.length}`,\n );\n return changes.body;\n }\n\n async getChange(changeNumber: number): Promise<GerritChange> {\n const changes = await this.gerritHttp.getJsonUnchecked<GerritChange>(\n `a/changes/${changeNumber}?` +\n this.requestDetails.map((det) => `o=${det}`).join('&'),\n );\n return changes.body;\n }\n\n async getMergeableInfo(change: GerritChange): Promise<GerritMergeableInfo> {\n const mergeable =\n await this.gerritHttp.getJsonUnchecked<GerritMergeableInfo>(\n `a/changes/${change._number}/revisions/current/mergeable`,\n );\n return mergeable.body;\n }\n\n async abandonChange(changeNumber: number): Promise<void> {\n await this.gerritHttp.postJson(`a/changes/${changeNumber}/abandon`);\n }\n\n async submitChange(changeNumber: number): Promise<GerritChange> {\n const change = await this.gerritHttp.postJson<GerritChange>(\n `a/changes/${changeNumber}/submit`,\n );\n return change.body;\n }\n\n async getMessages(changeNumber: number): Promise<GerritChangeMessageInfo[]> {\n const messages = await this.gerritHttp.getJsonUnchecked<\n GerritChangeMessageInfo[]\n >(`a/changes/${changeNumber}/messages`, { memCache: false });\n return messages.body;\n }\n\n async addMessage(\n changeNumber: number,\n fullMessage: string,\n tag?: string,\n ): Promise<void> {\n const message = this.normalizeMessage(fullMessage);\n await this.gerritHttp.postJson(\n `a/changes/${changeNumber}/revisions/current/review`,\n { body: { message, tag, notify: 'NONE' } },\n );\n }\n\n async checkForExistingMessage(\n changeNumber: number,\n newMessage: string,\n msgType?: string,\n ): Promise<boolean> {\n const messages = await this.getMessages(changeNumber);\n return messages.some(\n (existingMsg) =>\n (msgType === undefined || msgType === existingMsg.tag) &&\n existingMsg.message.includes(newMessage),\n );\n }\n\n async addMessageIfNotAlreadyExists(\n changeNumber: number,\n message: string,\n tag?: string,\n ): Promise<void> {\n const newMsg = this.normalizeMessage(message);\n if (!(await this.checkForExistingMessage(changeNumber, newMsg, tag))) {\n await this.addMessage(changeNumber, newMsg, tag);\n }\n }\n\n async setLabel(\n changeNumber: number,\n label: string,\n value: number,\n ): Promise<void> {\n await this.gerritHttp.postJson(\n `a/changes/${changeNumber}/revisions/current/review`,\n { body: { labels: { [label]: value }, notify: 'NONE' } },\n );\n }\n\n async addReviewers(changeNumber: number, reviewers: string[]): Promise<void> {\n await this.gerritHttp.postJson(\n `a/changes/${changeNumber}/revisions/current/review`,\n {\n body: {\n reviewers: reviewers.map((r) => ({ reviewer: r })),\n notify: 'OWNER_REVIEWERS', // Avoids notifying cc's\n },\n },\n );\n }\n\n async addAssignee(changeNumber: number, assignee: string): Promise<void> {\n await this.gerritHttp.putJson<GerritAccountInfo>(\n // TODO: refactor this as this API removed in Gerrit 3.8\n `a/changes/${changeNumber}/assignee`,\n {\n body: { assignee },\n },\n );\n }\n\n async getFile(\n repo: string,\n branch: string,\n fileName: string,\n ): Promise<string> {\n const base64Content = await this.gerritHttp.get(\n `a/projects/${encodeURIComponent(\n repo,\n )}/branches/${encodeURIComponent(branch)}/files/${encodeURIComponent(fileName)}/content`,\n );\n return Buffer.from(base64Content.body, 'base64').toString();\n }\n\n async approveChange(changeId: number): Promise<void> {\n const isApproved = await this.checkIfApproved(changeId);\n if (!isApproved) {\n await this.setLabel(changeId, 'Code-Review', +2);\n }\n }\n\n async checkIfApproved(changeId: number): Promise<boolean> {\n const change = await client.getChange(changeId);\n const reviewLabels = change?.labels?.['Code-Review'];\n return reviewLabels === undefined || reviewLabels.approved !== undefined;\n }\n\n wasApprovedBy(change: GerritChange, username: string): boolean | undefined {\n return (\n change.labels?.['Code-Review'].approved &&\n change.labels['Code-Review'].approved.username === username\n );\n }\n\n normalizeMessage(message: string): string {\n //the last \\n was removed from gerrit after the comment was added...\n return message.substring(0, 0x4000).trim();\n }\n\n private static buildSearchFilters(\n repository: string,\n searchConfig: GerritFindPRConfig,\n ): string[] {\n const filterState = mapPrStateToGerritFilter(searchConfig.state);\n const filters = ['owner:self', 'project:' + repository, filterState];\n if (searchConfig.branchName) {\n filters.push(\n ...[\n '(',\n `footer:Renovate-Branch=${searchConfig.branchName}`,\n // for backwards compatibility\n 'OR',\n `hashtag:sourceBranch-${searchConfig.branchName}`,\n ')',\n ],\n );\n }\n if (searchConfig.targetBranch) {\n filters.push(`branch:${searchConfig.targetBranch}`);\n }\n if (searchConfig.label) {\n filters.push(`label:Code-Review=${searchConfig.label}`);\n }\n if (searchConfig.prTitle) {\n // escaping support in Gerrit is not great, so we need to remove quotes\n // special characters are ignored anyway in the search so it does not create any issues\n filters.push(\n `message:${encodeURIComponent('\"' + searchConfig.prTitle.replace(QUOTES_REGEX, '') + '\"')}`,\n );\n }\n return filters;\n }\n}\n\nexport const client = new GerritClient();\n"]}
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../lib/modules/platform/gerrit/client.ts"],"names":[],"mappings":"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","sourcesContent":["import { REPOSITORY_ARCHIVED } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { memCacheProvider } from '../../../util/http/cache/memory-http-cache-provider';\nimport { GerritHttp } from '../../../util/http/gerrit';\nimport type { HttpOptions } from '../../../util/http/types';\nimport { regEx } from '../../../util/regex';\nimport { getQueryString } from '../../../util/url';\nimport type {\n GerritAccountInfo,\n GerritBranchInfo,\n GerritChange,\n GerritChangeMessageInfo,\n GerritFindPRConfig,\n GerritMergeableInfo,\n GerritProjectInfo,\n} from './types';\nimport { mapPrStateToGerritFilter } from './utils';\n\nconst QUOTES_REGEX = regEx('\"', 'g');\n\nclass GerritClient {\n private requestDetails = [\n 'SUBMITTABLE', //include the submittable field in ChangeInfo, which can be used to tell if the change is reviewed and ready for submit.\n 'CHECK', // include potential consistency problems with the change (not related to labels)\n 'MESSAGES',\n 'DETAILED_ACCOUNTS',\n 'LABELS',\n 'CURRENT_ACTIONS', //to check if current_revision can be \"rebased\"\n 'CURRENT_REVISION', //get RevisionInfo::ref to fetch\n 'CURRENT_COMMIT', // to get the commit message\n ] as const;\n\n private gerritHttp = new GerritHttp();\n\n async getRepos(): Promise<string[]> {\n const res = await this.gerritHttp.getJsonUnchecked<string[]>(\n 'a/projects/?type=CODE&state=ACTIVE',\n {},\n );\n return Object.keys(res.body);\n }\n\n async getProjectInfo(repository: string): Promise<GerritProjectInfo> {\n const projectInfo =\n await this.gerritHttp.getJsonUnchecked<GerritProjectInfo>(\n `a/projects/${encodeURIComponent(repository)}`,\n );\n if (projectInfo.body.state !== 'ACTIVE') {\n throw new Error(REPOSITORY_ARCHIVED);\n }\n return projectInfo.body;\n }\n\n async getBranchInfo(repository: string): Promise<GerritBranchInfo> {\n const branchInfo = await this.gerritHttp.getJsonUnchecked<GerritBranchInfo>(\n `a/projects/${encodeURIComponent(repository)}/branches/HEAD`,\n );\n return branchInfo.body;\n }\n\n async findChanges(\n repository: string,\n findPRConfig: GerritFindPRConfig,\n refreshCache?: boolean,\n ): Promise<GerritChange[]> {\n const opts: HttpOptions = {};\n /* v8 ignore start: temporary code */\n // TODO: should refresh the cache rather than just ignore it\n if (refreshCache) {\n opts.memCache = false;\n } else {\n opts.cacheProvider = memCacheProvider;\n }\n /* v8 ignore stop */\n\n const filters = GerritClient.buildSearchFilters(repository, findPRConfig);\n const queryString = getQueryString({\n o: this.requestDetails,\n });\n const changes = await this.gerritHttp.getJsonUnchecked<GerritChange[]>(\n `a/changes/?q=${filters.join('+')}&${queryString}`,\n opts,\n );\n logger.trace(\n `findChanges(${filters.join(', ')}) => ${changes.body.length}`,\n );\n return changes.body;\n }\n\n async getChange(changeNumber: number): Promise<GerritChange> {\n const queryString = getQueryString({ o: this.requestDetails });\n const changes = await this.gerritHttp.getJsonUnchecked<GerritChange>(\n `a/changes/${changeNumber}?${queryString}`,\n );\n return changes.body;\n }\n\n async getMergeableInfo(change: GerritChange): Promise<GerritMergeableInfo> {\n const mergeable =\n await this.gerritHttp.getJsonUnchecked<GerritMergeableInfo>(\n `a/changes/${change._number}/revisions/current/mergeable`,\n );\n return mergeable.body;\n }\n\n async abandonChange(changeNumber: number): Promise<void> {\n await this.gerritHttp.postJson(`a/changes/${changeNumber}/abandon`);\n }\n\n async submitChange(changeNumber: number): Promise<GerritChange> {\n const change = await this.gerritHttp.postJson<GerritChange>(\n `a/changes/${changeNumber}/submit`,\n );\n return change.body;\n }\n\n async getMessages(changeNumber: number): Promise<GerritChangeMessageInfo[]> {\n const messages = await this.gerritHttp.getJsonUnchecked<\n GerritChangeMessageInfo[]\n >(`a/changes/${changeNumber}/messages`, { memCache: false });\n return messages.body;\n }\n\n async addMessage(\n changeNumber: number,\n fullMessage: string,\n tag?: string,\n ): Promise<void> {\n const message = this.normalizeMessage(fullMessage);\n await this.gerritHttp.postJson(\n `a/changes/${changeNumber}/revisions/current/review`,\n { body: { message, tag, notify: 'NONE' } },\n );\n }\n\n async checkForExistingMessage(\n changeNumber: number,\n newMessage: string,\n msgType?: string,\n ): Promise<boolean> {\n const messages = await this.getMessages(changeNumber);\n return messages.some(\n (existingMsg) =>\n (msgType === undefined || msgType === existingMsg.tag) &&\n existingMsg.message.includes(newMessage),\n );\n }\n\n async addMessageIfNotAlreadyExists(\n changeNumber: number,\n message: string,\n tag?: string,\n ): Promise<void> {\n const newMsg = this.normalizeMessage(message);\n if (!(await this.checkForExistingMessage(changeNumber, newMsg, tag))) {\n await this.addMessage(changeNumber, newMsg, tag);\n }\n }\n\n async setLabel(\n changeNumber: number,\n label: string,\n value: number,\n ): Promise<void> {\n await this.gerritHttp.postJson(\n `a/changes/${changeNumber}/revisions/current/review`,\n { body: { labels: { [label]: value }, notify: 'NONE' } },\n );\n }\n\n async addReviewers(changeNumber: number, reviewers: string[]): Promise<void> {\n await this.gerritHttp.postJson(\n `a/changes/${changeNumber}/revisions/current/review`,\n {\n body: {\n reviewers: reviewers.map((r) => ({ reviewer: r })),\n notify: 'OWNER_REVIEWERS', // Avoids notifying cc's\n },\n },\n );\n }\n\n async addAssignee(changeNumber: number, assignee: string): Promise<void> {\n await this.gerritHttp.putJson<GerritAccountInfo>(\n // TODO: refactor this as this API removed in Gerrit 3.8\n `a/changes/${changeNumber}/assignee`,\n {\n body: { assignee },\n },\n );\n }\n\n async getFile(\n repo: string,\n branch: string,\n fileName: string,\n ): Promise<string> {\n const base64Content = await this.gerritHttp.getText(\n `a/projects/${encodeURIComponent(\n repo,\n )}/branches/${encodeURIComponent(branch)}/files/${encodeURIComponent(fileName)}/content`,\n );\n return Buffer.from(base64Content.body, 'base64').toString();\n }\n\n normalizeMessage(message: string): string {\n //the last \\n was removed from gerrit after the comment was added...\n return message.substring(0, 0x4000).trim();\n }\n\n private static buildSearchFilters(\n repository: string,\n searchConfig: GerritFindPRConfig,\n ): string[] {\n const filterState = mapPrStateToGerritFilter(searchConfig.state);\n const filters = ['owner:self', 'project:' + repository, filterState];\n if (searchConfig.branchName) {\n filters.push(`footer:Renovate-Branch=${searchConfig.branchName}`);\n }\n if (searchConfig.targetBranch) {\n filters.push(`branch:${searchConfig.targetBranch}`);\n }\n if (searchConfig.label) {\n filters.push(`label:Code-Review=${searchConfig.label}`);\n }\n if (searchConfig.prTitle) {\n // escaping support in Gerrit is not great, so we need to remove quotes\n // special characters are ignored anyway in the search so it does not create any issues\n filters.push(\n `message:${encodeURIComponent('\"' + searchConfig.prTitle.replace(QUOTES_REGEX, '') + '\"')}`,\n );\n }\n return filters;\n }\n}\n\nexport const client = new GerritClient();\n"]}
|
@@ -128,9 +128,6 @@ async function updatePr(prConfig) {
|
|
128
128
|
if (prConfig.prBody) {
|
129
129
|
await client_1.client.addMessageIfNotAlreadyExists(prConfig.number, prConfig.prBody, utils_1.TAG_PULL_REQUEST_BODY);
|
130
130
|
}
|
131
|
-
if (prConfig.platformPrOptions?.autoApprove) {
|
132
|
-
await client_1.client.approveChange(prConfig.number);
|
133
|
-
}
|
134
131
|
if (prConfig.state && prConfig.state === 'closed') {
|
135
132
|
await client_1.client.abandonChange(prConfig.number);
|
136
133
|
}
|
@@ -146,9 +143,6 @@ async function createPr(prConfig) {
|
|
146
143
|
throw new Error(`the change should be created automatically from previous push to refs/for/${prConfig.sourceBranch}`);
|
147
144
|
}
|
148
145
|
await client_1.client.addMessageIfNotAlreadyExists(pr._number, prConfig.prBody, utils_1.TAG_PULL_REQUEST_BODY);
|
149
|
-
if (prConfig.platformPrOptions?.autoApprove) {
|
150
|
-
await client_1.client.approveChange(pr._number);
|
151
|
-
}
|
152
146
|
return getPr(pr._number);
|
153
147
|
}
|
154
148
|
async function getBranchPr(branchName) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/platform/gerrit/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport type { BranchStatus } from '../../../types';\nimport { parseJson } from '../../../util/common';\nimport * as git from '../../../util/git';\nimport { setBaseUrl } from '../../../util/http/gerrit';\nimport { regEx } from '../../../util/regex';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport type {\n BranchStatusConfig,\n CreatePRConfig,\n EnsureCommentConfig,\n EnsureCommentRemovalConfigByContent,\n EnsureCommentRemovalConfigByTopic,\n EnsureIssueConfig,\n EnsureIssueResult,\n FindPRConfig,\n Issue,\n MergePRConfig,\n PlatformParams,\n PlatformResult,\n Pr,\n RepoParams,\n RepoResult,\n UpdatePrConfig,\n} from '../types';\nimport { repoFingerprint } from '../util';\n\nimport { smartTruncate } from '../utils/pr-body';\nimport { readOnlyIssueBody } from '../utils/read-only-issue-body';\nimport { client } from './client';\nimport { configureScm } from './scm';\nimport type { GerritLabelTypeInfo, GerritProjectInfo } from './types';\nimport {\n TAG_PULL_REQUEST_BODY,\n getGerritRepoUrl,\n mapBranchStatusToLabel,\n mapGerritChangeToPr,\n} from './utils';\n\nexport const id = 'gerrit';\n\nconst defaults: {\n endpoint?: string;\n} = {};\n\nlet config: {\n repository?: string;\n head?: string;\n config?: GerritProjectInfo;\n labels: Record<string, GerritLabelTypeInfo>;\n gerritUsername?: string;\n} = {\n labels: {},\n};\n\nexport function writeToConfig(newConfig: typeof config): void {\n config = { ...config, ...newConfig };\n}\n\nexport function initPlatform({\n endpoint,\n username,\n password,\n}: PlatformParams): Promise<PlatformResult> {\n logger.debug(`initPlatform(${endpoint!}, ${username!})`);\n if (!endpoint) {\n throw new Error('Init: You must configure a Gerrit Server endpoint');\n }\n if (!(username && password)) {\n throw new Error(\n 'Init: You must configure a Gerrit Server username/password',\n );\n }\n config.gerritUsername = username;\n defaults.endpoint = ensureTrailingSlash(endpoint);\n setBaseUrl(defaults.endpoint);\n const platformConfig: PlatformResult = {\n endpoint: defaults.endpoint,\n };\n return Promise.resolve(platformConfig);\n}\n\n/**\n * Get all state=\"ACTIVE\" and type=\"CODE\" repositories from gerrit\n */\nexport async function getRepos(): Promise<string[]> {\n logger.debug(`getRepos()`);\n return await client.getRepos();\n}\n\n/**\n * Clone repository to local directory\n * @param config\n */\nexport async function initRepo({\n repository,\n gitUrl,\n}: RepoParams): Promise<RepoResult> {\n logger.debug(`initRepo(${repository}, ${gitUrl})`);\n const projectInfo = await client.getProjectInfo(repository);\n const branchInfo = await client.getBranchInfo(repository);\n\n config = {\n ...config,\n repository,\n head: branchInfo.revision,\n config: projectInfo,\n labels: projectInfo.labels ?? {},\n };\n const baseUrl = defaults.endpoint!;\n const url = getGerritRepoUrl(repository, baseUrl);\n configureScm(repository, config.gerritUsername!);\n await git.initRepo({ url });\n\n //abandon \"open\" and \"rejected\" changes at startup\n const rejectedChanges = await client.findChanges(config.repository!, {\n branchName: '',\n state: 'open',\n label: '-2',\n });\n for (const change of rejectedChanges) {\n await client.abandonChange(change._number);\n }\n const repoConfig: RepoResult = {\n defaultBranch: config.head!,\n isFork: false,\n repoFingerprint: repoFingerprint(repository, baseUrl),\n };\n return repoConfig;\n}\n\nexport async function findPr(\n findPRConfig: FindPRConfig,\n refreshCache?: boolean,\n): Promise<Pr | null> {\n const change = (\n await client.findChanges(config.repository!, findPRConfig, refreshCache)\n ).pop();\n return change ? mapGerritChangeToPr(change) : null;\n}\n\nexport async function getPr(number: number): Promise<Pr | null> {\n try {\n const change = await client.getChange(number);\n return mapGerritChangeToPr(change);\n } catch (err) {\n if (err.statusCode === 404) {\n return null;\n }\n throw err;\n }\n}\n\nexport async function updatePr(prConfig: UpdatePrConfig): Promise<void> {\n logger.debug(`updatePr(${prConfig.number}, ${prConfig.prTitle})`);\n if (prConfig.prBody) {\n await client.addMessageIfNotAlreadyExists(\n prConfig.number,\n prConfig.prBody,\n TAG_PULL_REQUEST_BODY,\n );\n }\n if (prConfig.platformPrOptions?.autoApprove) {\n await client.approveChange(prConfig.number);\n }\n if (prConfig.state && prConfig.state === 'closed') {\n await client.abandonChange(prConfig.number);\n }\n}\n\nexport async function createPr(prConfig: CreatePRConfig): Promise<Pr | null> {\n logger.debug(\n `createPr(${prConfig.sourceBranch}, ${prConfig.prTitle}, ${\n prConfig.labels?.toString() ?? ''\n })`,\n );\n const pr = (\n await client.findChanges(\n config.repository!,\n {\n branchName: prConfig.sourceBranch,\n targetBranch: prConfig.targetBranch,\n state: 'open',\n },\n true,\n )\n ).pop();\n if (pr === undefined) {\n throw new Error(\n `the change should be created automatically from previous push to refs/for/${prConfig.sourceBranch}`,\n );\n }\n await client.addMessageIfNotAlreadyExists(\n pr._number,\n prConfig.prBody,\n TAG_PULL_REQUEST_BODY,\n );\n if (prConfig.platformPrOptions?.autoApprove) {\n await client.approveChange(pr._number);\n }\n return getPr(pr._number);\n}\n\nexport async function getBranchPr(branchName: string): Promise<Pr | null> {\n const change = (\n await client.findChanges(config.repository!, { branchName, state: 'open' })\n ).pop();\n return change ? mapGerritChangeToPr(change) : null;\n}\n\nexport function getPrList(): Promise<Pr[]> {\n return client\n .findChanges(config.repository!, { branchName: '' })\n .then((res) => res.map((change) => mapGerritChangeToPr(change)));\n}\n\nexport async function mergePr(config: MergePRConfig): Promise<boolean> {\n logger.debug(\n `mergePr(${config.id}, ${config.branchName!}, ${config.strategy!})`,\n );\n try {\n const change = await client.submitChange(config.id);\n return change.status === 'MERGED';\n } catch (err) {\n if (err.statusCode === 409) {\n logger.warn(\n { err },\n \"Can't submit the change, because the submit rule doesn't allow it.\",\n );\n return false;\n }\n throw err;\n }\n}\n\n/**\n * BranchStatus for Gerrit assumes that the branchName refers to a change.\n * @param branchName\n */\nexport async function getBranchStatus(\n branchName: string,\n): Promise<BranchStatus> {\n logger.debug(`getBranchStatus(${branchName})`);\n const changes = await client.findChanges(\n config.repository!,\n { state: 'open', branchName },\n true,\n );\n if (changes.length > 0) {\n const allSubmittable =\n changes.filter((change) => change.submittable === true).length ===\n changes.length;\n if (allSubmittable) {\n return 'green';\n }\n const hasProblems =\n changes.filter((change) => change.problems.length > 0).length > 0;\n if (hasProblems) {\n return 'red';\n }\n const hasBlockingLabels =\n changes.filter((change) =>\n Object.values(change.labels ?? {}).some((label) => label.blocking),\n ).length > 0;\n if (hasBlockingLabels) {\n return 'red';\n }\n }\n return 'yellow';\n}\n\n/**\n * check the gerrit-change for the presence of the corresponding \"$context\" Gerrit label if configured,\n * return 'yellow' if not configured or not set\n * @param branchName\n * @param context renovate/stability-days || ...\n */\nexport async function getBranchStatusCheck(\n branchName: string,\n context: string,\n): Promise<BranchStatus | null> {\n const label = config.labels[context];\n if (label) {\n const change = (\n await client.findChanges(\n config.repository!,\n { branchName, state: 'open' },\n true,\n )\n ).pop();\n if (change) {\n const labelRes = change.labels?.[context];\n if (labelRes) {\n // Check for rejected first, as a label could have both rejected and approved\n if (labelRes.rejected) {\n return 'red';\n }\n if (labelRes.approved) {\n return 'green';\n }\n }\n }\n }\n return 'yellow';\n}\n\n/**\n * Apply the branch state $context to the corresponding gerrit label (if available)\n * context === \"renovate/stability-days\" / \"renovate/merge-confidence\" and state === \"green\"/...\n * @param branchStatusConfig\n */\nexport async function setBranchStatus(\n branchStatusConfig: BranchStatusConfig,\n): Promise<void> {\n const label = config.labels[branchStatusConfig.context];\n const labelValue =\n label && mapBranchStatusToLabel(branchStatusConfig.state, label);\n if (branchStatusConfig.context && labelValue) {\n const pr = await getBranchPr(branchStatusConfig.branchName);\n if (pr === null) {\n return;\n }\n await client.setLabel(pr.number, branchStatusConfig.context, labelValue);\n }\n}\n\nexport function getRawFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<string | null> {\n const repo = repoName ?? config.repository ?? 'All-Projects';\n const branch =\n branchOrTag ?? (repo === config.repository ? config.head! : 'HEAD');\n return client.getFile(repo, branch, fileName);\n}\n\nexport async function getJsonFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<any> {\n const raw = await getRawFile(fileName, repoName, branchOrTag);\n return parseJson(raw, fileName);\n}\n\nexport async function addReviewers(\n number: number,\n reviewers: string[],\n): Promise<void> {\n await client.addReviewers(number, reviewers);\n}\n\n/**\n * add \"CC\" (only one possible)\n */\nexport async function addAssignees(\n number: number,\n assignees: string[],\n): Promise<void> {\n if (assignees.length) {\n if (assignees.length > 1) {\n logger.debug(\n `addAssignees(${number}, ${assignees.toString()}) called with more then one assignee! Gerrit only supports one assignee! Using the first from list.`,\n );\n }\n await client.addAssignee(number, assignees[0]);\n }\n}\n\nexport async function ensureComment(\n ensureComment: EnsureCommentConfig,\n): Promise<boolean> {\n logger.debug(\n `ensureComment(${ensureComment.number}, ${ensureComment.topic!}, ${\n ensureComment.content\n })`,\n );\n await client.addMessageIfNotAlreadyExists(\n ensureComment.number,\n ensureComment.content,\n ensureComment.topic ?? undefined,\n );\n return true;\n}\n\nexport function massageMarkdown(prBody: string): string {\n //TODO: do more Gerrit specific replacements?\n return smartTruncate(readOnlyIssueBody(prBody), maxBodyLength())\n .replace(regEx(/Pull Request(s)?/g), 'Change-Request$1')\n .replace(regEx(/\\bPR(s)?\\b/g), 'Change-Request$1')\n .replace(regEx(/<\\/?summary>/g), '**')\n .replace(regEx(/<\\/?details>/g), '')\n .replace(regEx(/​/g), '') //remove zero-width-space not supported in gerrit-markdown\n .replace(\n 'close this Change-Request unmerged.',\n 'abandon or down vote this Change-Request with -2.',\n )\n .replace('Branch creation', 'Change creation')\n .replace(\n 'Close this Change-Request',\n 'Down-vote this Change-Request with -2',\n )\n .replace(\n 'you tick the rebase/retry checkbox',\n 'add \"rebase!\" at the beginning of the commit message.',\n )\n .replace(regEx(`\\n---\\n\\n.*?<!-- rebase-check -->.*?\\n`), '')\n .replace(regEx(/<!--renovate-(?:debug|config-hash):.*?-->/g), '');\n}\n\nexport function maxBodyLength(): number {\n return 16384; //TODO: check the real gerrit limit (max. chars)\n}\n\nexport function deleteLabel(number: number, label: string): Promise<void> {\n return Promise.resolve();\n}\n\nexport function ensureCommentRemoval(\n ensureCommentRemoval:\n | EnsureCommentRemovalConfigByTopic\n | EnsureCommentRemovalConfigByContent,\n): Promise<void> {\n return Promise.resolve();\n}\n\nexport function ensureIssueClosing(title: string): Promise<void> {\n return Promise.resolve();\n}\n\nexport function ensureIssue(\n issueConfig: EnsureIssueConfig,\n): Promise<EnsureIssueResult | null> {\n return Promise.resolve(null);\n}\n\nexport function findIssue(title: string): Promise<Issue | null> {\n return Promise.resolve(null);\n}\n\nexport function getIssueList(): Promise<Issue[]> {\n return Promise.resolve([]);\n}\n"]}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/platform/gerrit/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport type { BranchStatus } from '../../../types';\nimport { parseJson } from '../../../util/common';\nimport * as git from '../../../util/git';\nimport { setBaseUrl } from '../../../util/http/gerrit';\nimport { regEx } from '../../../util/regex';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport type {\n BranchStatusConfig,\n CreatePRConfig,\n EnsureCommentConfig,\n EnsureCommentRemovalConfigByContent,\n EnsureCommentRemovalConfigByTopic,\n EnsureIssueConfig,\n EnsureIssueResult,\n FindPRConfig,\n Issue,\n MergePRConfig,\n PlatformParams,\n PlatformResult,\n Pr,\n RepoParams,\n RepoResult,\n UpdatePrConfig,\n} from '../types';\nimport { repoFingerprint } from '../util';\n\nimport { smartTruncate } from '../utils/pr-body';\nimport { readOnlyIssueBody } from '../utils/read-only-issue-body';\nimport { client } from './client';\nimport { configureScm } from './scm';\nimport type { GerritLabelTypeInfo, GerritProjectInfo } from './types';\nimport {\n TAG_PULL_REQUEST_BODY,\n getGerritRepoUrl,\n mapBranchStatusToLabel,\n mapGerritChangeToPr,\n} from './utils';\n\nexport const id = 'gerrit';\n\nconst defaults: {\n endpoint?: string;\n} = {};\n\nlet config: {\n repository?: string;\n head?: string;\n config?: GerritProjectInfo;\n labels: Record<string, GerritLabelTypeInfo>;\n gerritUsername?: string;\n} = {\n labels: {},\n};\n\nexport function writeToConfig(newConfig: typeof config): void {\n config = { ...config, ...newConfig };\n}\n\nexport function initPlatform({\n endpoint,\n username,\n password,\n}: PlatformParams): Promise<PlatformResult> {\n logger.debug(`initPlatform(${endpoint!}, ${username!})`);\n if (!endpoint) {\n throw new Error('Init: You must configure a Gerrit Server endpoint');\n }\n if (!(username && password)) {\n throw new Error(\n 'Init: You must configure a Gerrit Server username/password',\n );\n }\n config.gerritUsername = username;\n defaults.endpoint = ensureTrailingSlash(endpoint);\n setBaseUrl(defaults.endpoint);\n const platformConfig: PlatformResult = {\n endpoint: defaults.endpoint,\n };\n return Promise.resolve(platformConfig);\n}\n\n/**\n * Get all state=\"ACTIVE\" and type=\"CODE\" repositories from gerrit\n */\nexport async function getRepos(): Promise<string[]> {\n logger.debug(`getRepos()`);\n return await client.getRepos();\n}\n\n/**\n * Clone repository to local directory\n * @param config\n */\nexport async function initRepo({\n repository,\n gitUrl,\n}: RepoParams): Promise<RepoResult> {\n logger.debug(`initRepo(${repository}, ${gitUrl})`);\n const projectInfo = await client.getProjectInfo(repository);\n const branchInfo = await client.getBranchInfo(repository);\n\n config = {\n ...config,\n repository,\n head: branchInfo.revision,\n config: projectInfo,\n labels: projectInfo.labels ?? {},\n };\n const baseUrl = defaults.endpoint!;\n const url = getGerritRepoUrl(repository, baseUrl);\n configureScm(repository, config.gerritUsername!);\n await git.initRepo({ url });\n\n //abandon \"open\" and \"rejected\" changes at startup\n const rejectedChanges = await client.findChanges(config.repository!, {\n branchName: '',\n state: 'open',\n label: '-2',\n });\n for (const change of rejectedChanges) {\n await client.abandonChange(change._number);\n }\n const repoConfig: RepoResult = {\n defaultBranch: config.head!,\n isFork: false,\n repoFingerprint: repoFingerprint(repository, baseUrl),\n };\n return repoConfig;\n}\n\nexport async function findPr(\n findPRConfig: FindPRConfig,\n refreshCache?: boolean,\n): Promise<Pr | null> {\n const change = (\n await client.findChanges(config.repository!, findPRConfig, refreshCache)\n ).pop();\n return change ? mapGerritChangeToPr(change) : null;\n}\n\nexport async function getPr(number: number): Promise<Pr | null> {\n try {\n const change = await client.getChange(number);\n return mapGerritChangeToPr(change);\n } catch (err) {\n if (err.statusCode === 404) {\n return null;\n }\n throw err;\n }\n}\n\nexport async function updatePr(prConfig: UpdatePrConfig): Promise<void> {\n logger.debug(`updatePr(${prConfig.number}, ${prConfig.prTitle})`);\n if (prConfig.prBody) {\n await client.addMessageIfNotAlreadyExists(\n prConfig.number,\n prConfig.prBody,\n TAG_PULL_REQUEST_BODY,\n );\n }\n if (prConfig.state && prConfig.state === 'closed') {\n await client.abandonChange(prConfig.number);\n }\n}\n\nexport async function createPr(prConfig: CreatePRConfig): Promise<Pr | null> {\n logger.debug(\n `createPr(${prConfig.sourceBranch}, ${prConfig.prTitle}, ${\n prConfig.labels?.toString() ?? ''\n })`,\n );\n const pr = (\n await client.findChanges(\n config.repository!,\n {\n branchName: prConfig.sourceBranch,\n targetBranch: prConfig.targetBranch,\n state: 'open',\n },\n true,\n )\n ).pop();\n if (pr === undefined) {\n throw new Error(\n `the change should be created automatically from previous push to refs/for/${prConfig.sourceBranch}`,\n );\n }\n await client.addMessageIfNotAlreadyExists(\n pr._number,\n prConfig.prBody,\n TAG_PULL_REQUEST_BODY,\n );\n return getPr(pr._number);\n}\n\nexport async function getBranchPr(branchName: string): Promise<Pr | null> {\n const change = (\n await client.findChanges(config.repository!, { branchName, state: 'open' })\n ).pop();\n return change ? mapGerritChangeToPr(change) : null;\n}\n\nexport function getPrList(): Promise<Pr[]> {\n return client\n .findChanges(config.repository!, { branchName: '' })\n .then((res) => res.map((change) => mapGerritChangeToPr(change)));\n}\n\nexport async function mergePr(config: MergePRConfig): Promise<boolean> {\n logger.debug(\n `mergePr(${config.id}, ${config.branchName!}, ${config.strategy!})`,\n );\n try {\n const change = await client.submitChange(config.id);\n return change.status === 'MERGED';\n } catch (err) {\n if (err.statusCode === 409) {\n logger.warn(\n { err },\n \"Can't submit the change, because the submit rule doesn't allow it.\",\n );\n return false;\n }\n throw err;\n }\n}\n\n/**\n * BranchStatus for Gerrit assumes that the branchName refers to a change.\n * @param branchName\n */\nexport async function getBranchStatus(\n branchName: string,\n): Promise<BranchStatus> {\n logger.debug(`getBranchStatus(${branchName})`);\n const changes = await client.findChanges(\n config.repository!,\n { state: 'open', branchName },\n true,\n );\n if (changes.length > 0) {\n const allSubmittable =\n changes.filter((change) => change.submittable === true).length ===\n changes.length;\n if (allSubmittable) {\n return 'green';\n }\n const hasProblems =\n changes.filter((change) => change.problems.length > 0).length > 0;\n if (hasProblems) {\n return 'red';\n }\n const hasBlockingLabels =\n changes.filter((change) =>\n Object.values(change.labels ?? {}).some((label) => label.blocking),\n ).length > 0;\n if (hasBlockingLabels) {\n return 'red';\n }\n }\n return 'yellow';\n}\n\n/**\n * check the gerrit-change for the presence of the corresponding \"$context\" Gerrit label if configured,\n * return 'yellow' if not configured or not set\n * @param branchName\n * @param context renovate/stability-days || ...\n */\nexport async function getBranchStatusCheck(\n branchName: string,\n context: string,\n): Promise<BranchStatus | null> {\n const label = config.labels[context];\n if (label) {\n const change = (\n await client.findChanges(\n config.repository!,\n { branchName, state: 'open' },\n true,\n )\n ).pop();\n if (change) {\n const labelRes = change.labels?.[context];\n if (labelRes) {\n // Check for rejected first, as a label could have both rejected and approved\n if (labelRes.rejected) {\n return 'red';\n }\n if (labelRes.approved) {\n return 'green';\n }\n }\n }\n }\n return 'yellow';\n}\n\n/**\n * Apply the branch state $context to the corresponding gerrit label (if available)\n * context === \"renovate/stability-days\" / \"renovate/merge-confidence\" and state === \"green\"/...\n * @param branchStatusConfig\n */\nexport async function setBranchStatus(\n branchStatusConfig: BranchStatusConfig,\n): Promise<void> {\n const label = config.labels[branchStatusConfig.context];\n const labelValue =\n label && mapBranchStatusToLabel(branchStatusConfig.state, label);\n if (branchStatusConfig.context && labelValue) {\n const pr = await getBranchPr(branchStatusConfig.branchName);\n if (pr === null) {\n return;\n }\n await client.setLabel(pr.number, branchStatusConfig.context, labelValue);\n }\n}\n\nexport function getRawFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<string | null> {\n const repo = repoName ?? config.repository ?? 'All-Projects';\n const branch =\n branchOrTag ?? (repo === config.repository ? config.head! : 'HEAD');\n return client.getFile(repo, branch, fileName);\n}\n\nexport async function getJsonFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n): Promise<any> {\n const raw = await getRawFile(fileName, repoName, branchOrTag);\n return parseJson(raw, fileName);\n}\n\nexport async function addReviewers(\n number: number,\n reviewers: string[],\n): Promise<void> {\n await client.addReviewers(number, reviewers);\n}\n\n/**\n * add \"CC\" (only one possible)\n */\nexport async function addAssignees(\n number: number,\n assignees: string[],\n): Promise<void> {\n if (assignees.length) {\n if (assignees.length > 1) {\n logger.debug(\n `addAssignees(${number}, ${assignees.toString()}) called with more then one assignee! Gerrit only supports one assignee! Using the first from list.`,\n );\n }\n await client.addAssignee(number, assignees[0]);\n }\n}\n\nexport async function ensureComment(\n ensureComment: EnsureCommentConfig,\n): Promise<boolean> {\n logger.debug(\n `ensureComment(${ensureComment.number}, ${ensureComment.topic!}, ${\n ensureComment.content\n })`,\n );\n await client.addMessageIfNotAlreadyExists(\n ensureComment.number,\n ensureComment.content,\n ensureComment.topic ?? undefined,\n );\n return true;\n}\n\nexport function massageMarkdown(prBody: string): string {\n //TODO: do more Gerrit specific replacements?\n return smartTruncate(readOnlyIssueBody(prBody), maxBodyLength())\n .replace(regEx(/Pull Request(s)?/g), 'Change-Request$1')\n .replace(regEx(/\\bPR(s)?\\b/g), 'Change-Request$1')\n .replace(regEx(/<\\/?summary>/g), '**')\n .replace(regEx(/<\\/?details>/g), '')\n .replace(regEx(/​/g), '') //remove zero-width-space not supported in gerrit-markdown\n .replace(\n 'close this Change-Request unmerged.',\n 'abandon or down vote this Change-Request with -2.',\n )\n .replace('Branch creation', 'Change creation')\n .replace(\n 'Close this Change-Request',\n 'Down-vote this Change-Request with -2',\n )\n .replace(\n 'you tick the rebase/retry checkbox',\n 'add \"rebase!\" at the beginning of the commit message.',\n )\n .replace(regEx(`\\n---\\n\\n.*?<!-- rebase-check -->.*?\\n`), '')\n .replace(regEx(/<!--renovate-(?:debug|config-hash):.*?-->/g), '');\n}\n\nexport function maxBodyLength(): number {\n return 16384; //TODO: check the real gerrit limit (max. chars)\n}\n\nexport function deleteLabel(number: number, label: string): Promise<void> {\n return Promise.resolve();\n}\n\nexport function ensureCommentRemoval(\n ensureCommentRemoval:\n | EnsureCommentRemovalConfigByTopic\n | EnsureCommentRemovalConfigByContent,\n): Promise<void> {\n return Promise.resolve();\n}\n\nexport function ensureIssueClosing(title: string): Promise<void> {\n return Promise.resolve();\n}\n\nexport function ensureIssue(\n issueConfig: EnsureIssueConfig,\n): Promise<EnsureIssueResult | null> {\n return Promise.resolve(null);\n}\n\nexport function findIssue(title: string): Promise<Issue | null> {\n return Promise.resolve(null);\n}\n\nexport function getIssueList(): Promise<Issue[]> {\n return Promise.resolve([]);\n}\n"]}
|
@@ -109,17 +109,16 @@ class GerritScm extends default_scm_1.DefaultGitScm {
|
|
109
109
|
hasChanges = await git.hasDiff('HEAD', 'FETCH_HEAD'); //avoid empty patchsets
|
110
110
|
}
|
111
111
|
if (hasChanges || commit.force) {
|
112
|
+
const pushOptions = ['notify=NONE'];
|
113
|
+
if (commit.autoApprove) {
|
114
|
+
pushOptions.push('label=Code-Review+2');
|
115
|
+
}
|
112
116
|
const pushResult = await git.pushCommit({
|
113
117
|
sourceRef: commit.branchName,
|
114
|
-
targetRef: `refs/for/${commit.baseBranch}
|
118
|
+
targetRef: `refs/for/${commit.baseBranch}%${pushOptions.join(',')}`,
|
115
119
|
files: commit.files,
|
116
120
|
});
|
117
121
|
if (pushResult) {
|
118
|
-
//existingChange was the old change before commit/push. we need to approve again, if it was previously approved from renovate
|
119
|
-
if (existingChange &&
|
120
|
-
client_1.client.wasApprovedBy(existingChange, username)) {
|
121
|
-
await client_1.client.approveChange(existingChange._number);
|
122
|
-
}
|
123
122
|
return commitSha;
|
124
123
|
}
|
125
124
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scm.js","sourceRoot":"","sources":["../../../../lib/modules/platform/gerrit/scm.ts"],"names":[],"mappings":";;;AAWA,oCAGC;;AAdD,mCAAoC;AACpC,4CAAyC;AACzC,+DAAyC;AAEzC,6CAA0C;AAC1C,gDAA+C;AAC/C,qCAAkC;AAGlC,IAAI,UAAkB,CAAC;AACvB,IAAI,QAAgB,CAAC;AACrB,SAAgB,YAAY,CAAC,IAAY,EAAE,KAAa;IACtD,UAAU,GAAG,IAAI,CAAC;IAClB,QAAQ,GAAG,KAAK,CAAC;AACnB,CAAC;AAED,MAAa,SAAU,SAAQ,2BAAa;IACjC,KAAK,CAAC,YAAY,CAAC,UAAkB;QAC5C,MAAM,YAAY,GAAuB,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,eAAM;aACxB,WAAW,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC;aAC3C,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5B,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAEQ,KAAK,CAAC,eAAe,CAC5B,UAAkB;QAElB,MAAM,YAAY,GAAuB,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,eAAM;aACxB,WAAW,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC;aAC3C,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5B,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC,gBAAiC,CAAC;QAClD,CAAC;QACD,OAAO,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAEQ,KAAK,CAAC,kBAAkB,CAC/B,UAAkB,EAClB,UAAkB;QAElB,MAAM,YAAY,GAAuB;YACvC,KAAK,EAAE,MAAM;YACb,UAAU;YACV,YAAY,EAAE,UAAU;SACzB,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,eAAM;aACxB,WAAW,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC;aAC3C,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,qBAAqB,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACxE,OAAO,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;QAChE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,KAAK,CAAC,kBAAkB,CAC/B,UAAkB,EAClB,MAAc;QAEd,MAAM,YAAY,GAAuB;YACvC,KAAK,EAAE,MAAM;YACb,UAAU,EAAE,MAAM;YAClB,YAAY,EAAE,UAAU;SACzB,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,MAAM,eAAM,CAAC,WAAW,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAC1E,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,SAAS,GAAG,MAAM,eAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACxD,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,eAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,UAAU,EAAE,EACtB,0CAA0C,CAC3C,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEQ,KAAK,CAAC,gBAAgB,CAAC,UAAkB;QAChD,MAAM,YAAY,GAAuB,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,eAAM;aACxB,WAAW,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC;aAC3C,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,qBAAqB,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACxE,OAAO,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAC;QAC9D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEQ,KAAK,CAAC,aAAa,CAC1B,MAAyB;QAEzB,eAAM,CAAC,KAAK,CAAC,iBAAiB,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC;QACpD,MAAM,YAAY,GAAuB;YACvC,KAAK,EAAE,MAAM;YACb,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,MAAM,CAAC,UAAU;SAChC,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,eAAM;aAChC,WAAW,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC;aAC3C,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAE5B,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,MAAM,OAAO,GACX,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QAEzE,8EAA8E;QAC9E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,MAAM,iBAAiB,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjD,iBAAiB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;YACtC,OAAO,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,CAAC,OAAO,GAAG;YACf,GAAG,OAAO;YACV,oBAAoB,MAAM,CAAC,UAAU,gBAAgB,cAAc,EAAE,SAAS,IAAI,gBAAgB,EAAE,EAAE;SACvG,CAAC;QACF,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC;YACnC,IAAI,cAAc,EAAE,SAAS,IAAI,cAAc,CAAC,gBAAgB,EAAE,CAAC;gBACjE,MAAM,YAAY,GAChB,cAAc,CAAC,SAAS,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC;gBAChE,MAAM,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,sCAAsC;gBAC5E,UAAU,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,uBAAuB;YAC/E,CAAC;YACD,IAAI,UAAU,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC;oBACtC,SAAS,EAAE,MAAM,CAAC,UAAU;oBAC5B,SAAS,EAAE,YAAY,MAAM,CAAC,UAAW,cAAc;oBACvD,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB,CAAC,CAAC;gBACH,IAAI,UAAU,EAAE,CAAC;oBACf,6HAA6H;oBAC7H,IACE,cAAc;wBACd,eAAM,CAAC,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,EAC9C,CAAC;wBACD,MAAM,eAAM,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;oBACrD,CAAC;oBACD,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,gDAAgD;IAC/D,CAAC;IAEQ,YAAY,CAAC,UAAkB;QACtC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAEQ,KAAK,CAAC,YAAY,CAAC,UAAkB;QAC5C,MAAM,YAAY,GAAuB,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,eAAM;aACxB,WAAW,CAAC,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC;aAC3C,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5B,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;CACF;AAtJD,8BAsJC;AAED;;;;GAIG;AACH,SAAS,gBAAgB;IACvB,OAAO,GAAG,GAAG,IAAA,WAAI,EAAC,IAAA,mBAAU,GAAE,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC","sourcesContent":["import { randomUUID } from 'crypto';\nimport { logger } from '../../../logger';\nimport * as git from '../../../util/git';\nimport type { CommitFilesConfig, LongCommitSha } from '../../../util/git/types';\nimport { hash } from '../../../util/hash';\nimport { DefaultGitScm } from '../default-scm';\nimport { client } from './client';\nimport type { GerritFindPRConfig } from './types';\n\nlet repository: string;\nlet username: string;\nexport function configureScm(repo: string, login: string): void {\n repository = repo;\n username = login;\n}\n\nexport class GerritScm extends DefaultGitScm {\n override async branchExists(branchName: string): Promise<boolean> {\n const searchConfig: GerritFindPRConfig = { state: 'open', branchName };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n return true;\n }\n return git.branchExists(branchName);\n }\n\n override async getBranchCommit(\n branchName: string,\n ): Promise<LongCommitSha | null> {\n const searchConfig: GerritFindPRConfig = { state: 'open', branchName };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n return change.current_revision as LongCommitSha;\n }\n return git.getBranchCommit(branchName);\n }\n\n override async isBranchBehindBase(\n branchName: string,\n baseBranch: string,\n ): Promise<boolean> {\n const searchConfig: GerritFindPRConfig = {\n state: 'open',\n branchName,\n targetBranch: baseBranch,\n };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n const currentGerritPatchset = change.revisions[change.current_revision];\n return currentGerritPatchset.actions?.rebase.enabled === true;\n }\n return true;\n }\n\n override async isBranchConflicted(\n baseBranch: string,\n branch: string,\n ): Promise<boolean> {\n const searchConfig: GerritFindPRConfig = {\n state: 'open',\n branchName: branch,\n targetBranch: baseBranch,\n };\n const change = (await client.findChanges(repository, searchConfig)).pop();\n if (change) {\n const mergeInfo = await client.getMergeableInfo(change);\n return !mergeInfo.mergeable;\n } else {\n logger.warn(\n { branch, baseBranch },\n 'There is no open change with this branch',\n );\n return true;\n }\n }\n\n override async isBranchModified(branchName: string): Promise<boolean> {\n const searchConfig: GerritFindPRConfig = { state: 'open', branchName };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n const currentGerritPatchset = change.revisions[change.current_revision];\n return currentGerritPatchset.uploader.username !== username;\n }\n return false;\n }\n\n override async commitAndPush(\n commit: CommitFilesConfig,\n ): Promise<LongCommitSha | null> {\n logger.debug(`commitAndPush(${commit.branchName})`);\n const searchConfig: GerritFindPRConfig = {\n state: 'open',\n branchName: commit.branchName,\n targetBranch: commit.baseBranch,\n };\n const existingChange = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n\n let hasChanges = true;\n const message =\n typeof commit.message === 'string' ? [commit.message] : commit.message;\n\n // In Gerrit, the change subject/title is the first line of the commit message\n if (commit.prTitle) {\n const firstMessageLines = message[0].split('\\n');\n firstMessageLines[0] = commit.prTitle;\n message[0] = firstMessageLines.join('\\n');\n }\n\n commit.message = [\n ...message,\n `Renovate-Branch: ${commit.branchName}\\nChange-Id: ${existingChange?.change_id ?? generateChangeId()}`,\n ];\n const commitResult = await git.prepareCommit({ ...commit, force: true });\n if (commitResult) {\n const { commitSha } = commitResult;\n if (existingChange?.revisions && existingChange.current_revision) {\n const fetchRefSpec =\n existingChange.revisions[existingChange.current_revision].ref;\n await git.fetchRevSpec(fetchRefSpec); //fetch current ChangeSet for git diff\n hasChanges = await git.hasDiff('HEAD', 'FETCH_HEAD'); //avoid empty patchsets\n }\n if (hasChanges || commit.force) {\n const pushResult = await git.pushCommit({\n sourceRef: commit.branchName,\n targetRef: `refs/for/${commit.baseBranch!}%notify=NONE`,\n files: commit.files,\n });\n if (pushResult) {\n //existingChange was the old change before commit/push. we need to approve again, if it was previously approved from renovate\n if (\n existingChange &&\n client.wasApprovedBy(existingChange, username)\n ) {\n await client.approveChange(existingChange._number);\n }\n return commitSha;\n }\n }\n }\n return null; //empty commit, no changes in this Gerrit-Change\n }\n\n override deleteBranch(branchName: string): Promise<void> {\n return Promise.resolve();\n }\n\n override async mergeToLocal(branchName: string): Promise<void> {\n const searchConfig: GerritFindPRConfig = { state: 'open', branchName };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n return super.mergeToLocal(change.revisions[change.current_revision].ref);\n }\n return super.mergeToLocal(branchName);\n }\n}\n\n/**\n * This function should generate a Gerrit Change-ID analogous to the commit hook. We avoid the commit hook cause of security concerns.\n * random=$( (whoami ; hostname ; date; cat $1 ; echo $RANDOM) | git hash-object --stdin) prefixed with an 'I'.\n * TODO: Gerrit don't accept longer Change-IDs (sha256), but what happens with this https://git-scm.com/docs/hash-function-transition/ ?\n */\nfunction generateChangeId(): string {\n return 'I' + hash(randomUUID(), 'sha1');\n}\n"]}
|
1
|
+
{"version":3,"file":"scm.js","sourceRoot":"","sources":["../../../../lib/modules/platform/gerrit/scm.ts"],"names":[],"mappings":"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","sourcesContent":["import { randomUUID } from 'crypto';\nimport { logger } from '../../../logger';\nimport * as git from '../../../util/git';\nimport type { CommitFilesConfig, LongCommitSha } from '../../../util/git/types';\nimport { hash } from '../../../util/hash';\nimport { DefaultGitScm } from '../default-scm';\nimport { client } from './client';\nimport type { GerritFindPRConfig } from './types';\n\nlet repository: string;\nlet username: string;\nexport function configureScm(repo: string, login: string): void {\n repository = repo;\n username = login;\n}\n\nexport class GerritScm extends DefaultGitScm {\n override async branchExists(branchName: string): Promise<boolean> {\n const searchConfig: GerritFindPRConfig = { state: 'open', branchName };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n return true;\n }\n return git.branchExists(branchName);\n }\n\n override async getBranchCommit(\n branchName: string,\n ): Promise<LongCommitSha | null> {\n const searchConfig: GerritFindPRConfig = { state: 'open', branchName };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n return change.current_revision as LongCommitSha;\n }\n return git.getBranchCommit(branchName);\n }\n\n override async isBranchBehindBase(\n branchName: string,\n baseBranch: string,\n ): Promise<boolean> {\n const searchConfig: GerritFindPRConfig = {\n state: 'open',\n branchName,\n targetBranch: baseBranch,\n };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n const currentGerritPatchset = change.revisions[change.current_revision];\n return currentGerritPatchset.actions?.rebase.enabled === true;\n }\n return true;\n }\n\n override async isBranchConflicted(\n baseBranch: string,\n branch: string,\n ): Promise<boolean> {\n const searchConfig: GerritFindPRConfig = {\n state: 'open',\n branchName: branch,\n targetBranch: baseBranch,\n };\n const change = (await client.findChanges(repository, searchConfig)).pop();\n if (change) {\n const mergeInfo = await client.getMergeableInfo(change);\n return !mergeInfo.mergeable;\n } else {\n logger.warn(\n { branch, baseBranch },\n 'There is no open change with this branch',\n );\n return true;\n }\n }\n\n override async isBranchModified(branchName: string): Promise<boolean> {\n const searchConfig: GerritFindPRConfig = { state: 'open', branchName };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n const currentGerritPatchset = change.revisions[change.current_revision];\n return currentGerritPatchset.uploader.username !== username;\n }\n return false;\n }\n\n override async commitAndPush(\n commit: CommitFilesConfig,\n ): Promise<LongCommitSha | null> {\n logger.debug(`commitAndPush(${commit.branchName})`);\n const searchConfig: GerritFindPRConfig = {\n state: 'open',\n branchName: commit.branchName,\n targetBranch: commit.baseBranch,\n };\n const existingChange = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n\n let hasChanges = true;\n const message =\n typeof commit.message === 'string' ? [commit.message] : commit.message;\n\n // In Gerrit, the change subject/title is the first line of the commit message\n if (commit.prTitle) {\n const firstMessageLines = message[0].split('\\n');\n firstMessageLines[0] = commit.prTitle;\n message[0] = firstMessageLines.join('\\n');\n }\n\n commit.message = [\n ...message,\n `Renovate-Branch: ${commit.branchName}\\nChange-Id: ${existingChange?.change_id ?? generateChangeId()}`,\n ];\n const commitResult = await git.prepareCommit({ ...commit, force: true });\n if (commitResult) {\n const { commitSha } = commitResult;\n if (existingChange?.revisions && existingChange.current_revision) {\n const fetchRefSpec =\n existingChange.revisions[existingChange.current_revision].ref;\n await git.fetchRevSpec(fetchRefSpec); //fetch current ChangeSet for git diff\n hasChanges = await git.hasDiff('HEAD', 'FETCH_HEAD'); //avoid empty patchsets\n }\n if (hasChanges || commit.force) {\n const pushOptions = ['notify=NONE'];\n if (commit.autoApprove) {\n pushOptions.push('label=Code-Review+2');\n }\n const pushResult = await git.pushCommit({\n sourceRef: commit.branchName,\n targetRef: `refs/for/${commit.baseBranch!}%${pushOptions.join(',')}`,\n files: commit.files,\n });\n if (pushResult) {\n return commitSha;\n }\n }\n }\n return null; //empty commit, no changes in this Gerrit-Change\n }\n\n override deleteBranch(branchName: string): Promise<void> {\n return Promise.resolve();\n }\n\n override async mergeToLocal(branchName: string): Promise<void> {\n const searchConfig: GerritFindPRConfig = { state: 'open', branchName };\n const change = await client\n .findChanges(repository, searchConfig, true)\n .then((res) => res.pop());\n if (change) {\n return super.mergeToLocal(change.revisions[change.current_revision].ref);\n }\n return super.mergeToLocal(branchName);\n }\n}\n\n/**\n * This function should generate a Gerrit Change-ID analogous to the commit hook. We avoid the commit hook cause of security concerns.\n * random=$( (whoami ; hostname ; date; cat $1 ; echo $RANDOM) | git hash-object --stdin) prefixed with an 'I'.\n * TODO: Gerrit don't accept longer Change-IDs (sha256), but what happens with this https://git-scm.com/docs/hash-function-transition/ ?\n */\nfunction generateChangeId(): string {\n return 'I' + hash(randomUUID(), 'sha1');\n}\n"]}
|
@@ -26,13 +26,10 @@ export type GerritChangeStatus = 'NEW' | 'MERGED' | 'ABANDONED';
|
|
26
26
|
export type GerritReviewersType = 'REVIEWER' | 'CC' | 'REMOVED';
|
27
27
|
export interface GerritChange {
|
28
28
|
branch: string;
|
29
|
-
/**
|
30
|
-
* for backwards compatibility
|
31
|
-
*/
|
32
|
-
hashtags?: string[];
|
33
29
|
change_id: string;
|
34
30
|
subject: string;
|
35
31
|
status: GerritChangeStatus;
|
32
|
+
created: string;
|
36
33
|
submittable?: boolean;
|
37
34
|
_number: number;
|
38
35
|
labels?: Record<string, GerritLabelInfo>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/platform/gerrit/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { FindPRConfig } from '../types';\n\nexport interface GerritFindPRConfig extends FindPRConfig {\n label?: string;\n}\n\n/**\n * The Interfaces for the Gerrit API Responses ({@link https://gerrit-review.googlesource.com/Documentation/rest-api.html | REST-API})\n * minimized to only needed properties.\n *\n * @packageDocumentation\n */\n\nexport interface GerritProjectInfo {\n id: string;\n name: string;\n state?: 'ACTIVE' | 'READ_ONLY' | 'HIDDEN';\n labels?: Record<string, GerritLabelTypeInfo>;\n}\n\nexport interface GerritLabelTypeInfo {\n values: Record<number, string>;\n default_value: number;\n}\n\nexport interface GerritBranchInfo {\n ref: string;\n revision: string;\n}\n\nexport type GerritChangeStatus = 'NEW' | 'MERGED' | 'ABANDONED';\n\nexport type GerritReviewersType = 'REVIEWER' | 'CC' | 'REMOVED';\n\nexport interface GerritChange {\n branch: string;\n
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../lib/modules/platform/gerrit/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { FindPRConfig } from '../types';\n\nexport interface GerritFindPRConfig extends FindPRConfig {\n label?: string;\n}\n\n/**\n * The Interfaces for the Gerrit API Responses ({@link https://gerrit-review.googlesource.com/Documentation/rest-api.html | REST-API})\n * minimized to only needed properties.\n *\n * @packageDocumentation\n */\n\nexport interface GerritProjectInfo {\n id: string;\n name: string;\n state?: 'ACTIVE' | 'READ_ONLY' | 'HIDDEN';\n labels?: Record<string, GerritLabelTypeInfo>;\n}\n\nexport interface GerritLabelTypeInfo {\n values: Record<number, string>;\n default_value: number;\n}\n\nexport interface GerritBranchInfo {\n ref: string;\n revision: string;\n}\n\nexport type GerritChangeStatus = 'NEW' | 'MERGED' | 'ABANDONED';\n\nexport type GerritReviewersType = 'REVIEWER' | 'CC' | 'REMOVED';\n\nexport interface GerritChange {\n branch: string;\n change_id: string;\n subject: string;\n status: GerritChangeStatus;\n created: string;\n submittable?: boolean;\n _number: number;\n labels?: Record<string, GerritLabelInfo>;\n reviewers?: Record<GerritReviewersType, GerritAccountInfo[]>;\n messages?: GerritChangeMessageInfo[];\n current_revision: string;\n /**\n * All patch sets of this change as a map that maps the commit ID of the patch set to a RevisionInfo entity.\n */\n revisions: Record<string, GerritRevisionInfo>;\n problems: unknown[];\n}\n\nexport interface GerritCommitInfo {\n message: string;\n}\n\nexport interface GerritRevisionInfo {\n uploader: GerritAccountInfo;\n /**\n * The Git reference for the patch set.\n */\n ref: string;\n actions?: Record<string, GerritActionInfo>;\n commit: GerritCommitInfo;\n}\n\nexport interface GerritChangeMessageInfo {\n id: string;\n message: string;\n tag?: string;\n}\n\nexport interface GerritLabelInfo {\n approved?: GerritAccountInfo;\n rejected?: GerritAccountInfo;\n /** If true, the label blocks submit operation. If not set, the default is false. */\n blocking?: boolean;\n}\n\nexport interface GerritActionInfo {\n method?: string;\n enabled?: boolean;\n}\n\nexport interface GerritAccountInfo {\n _account_id: number;\n username?: string;\n}\n\nexport interface GerritMergeableInfo {\n submit_type:\n | 'MERGE_IF_NECESSARY'\n | 'FAST_FORWARD_ONLY'\n | 'REBASE_IF_NECESSARY'\n | 'REBASE_ALWAYS'\n | 'MERGE_ALWAYS'\n | 'CHERRY_PICK';\n mergeable: boolean;\n}\n"]}
|
@@ -5,7 +5,8 @@ export declare const TAG_PULL_REQUEST_BODY = "pull-request";
|
|
5
5
|
export declare function getGerritRepoUrl(repository: string, endpoint: string): string;
|
6
6
|
export declare function mapPrStateToGerritFilter(state?: PrState): string;
|
7
7
|
export declare function mapGerritChangeToPr(change: GerritChange): Pr;
|
8
|
-
export declare function mapGerritChangeStateToPrState(state: GerritChangeStatus): PrState;
|
8
|
+
export declare function mapGerritChangeStateToPrState(state: GerritChangeStatus | 'UNKNOWN'): PrState;
|
9
9
|
export declare function extractSourceBranch(change: GerritChange): string | undefined;
|
10
10
|
export declare function findPullRequestBody(change: GerritChange): string | undefined;
|
11
|
-
export declare function mapBranchStatusToLabel(state: BranchStatus,
|
11
|
+
export declare function mapBranchStatusToLabel(state: BranchStatus | 'UNKNOWN', // suppress default path code removal
|
12
|
+
label: GerritLabelTypeInfo): number;
|
@@ -57,6 +57,7 @@ function mapGerritChangeToPr(change) {
|
|
57
57
|
sourceBranch: extractSourceBranch(change) ?? change.branch,
|
58
58
|
targetBranch: change.branch,
|
59
59
|
title: change.subject,
|
60
|
+
createdAt: change.created?.replace(' ', 'T'),
|
60
61
|
reviewers: change.reviewers?.REVIEWER?.filter((reviewer) => typeof reviewer.username === 'string').map((reviewer) => reviewer.username) ?? [],
|
61
62
|
bodyStruct: {
|
62
63
|
hash: (0, pr_body_1.hashBody)(findPullRequestBody(change)),
|
@@ -83,12 +84,6 @@ function extractSourceBranch(change) {
|
|
83
84
|
sourceBranch = re.exec(message)?.[1];
|
84
85
|
}
|
85
86
|
}
|
86
|
-
// for backwards compatibility
|
87
|
-
if (!sourceBranch) {
|
88
|
-
sourceBranch = change.hashtags
|
89
|
-
?.find((tag) => tag.startsWith('sourceBranch-'))
|
90
|
-
?.replace('sourceBranch-', '');
|
91
|
-
}
|
92
87
|
return sourceBranch ?? undefined;
|
93
88
|
}
|
94
89
|
function findPullRequestBody(change) {
|
@@ -100,7 +95,8 @@ function findPullRequestBody(change) {
|
|
100
95
|
}
|
101
96
|
return undefined;
|
102
97
|
}
|
103
|
-
function mapBranchStatusToLabel(state,
|
98
|
+
function mapBranchStatusToLabel(state, // suppress default path code removal
|
99
|
+
label) {
|
104
100
|
const numbers = Object.keys(label.values).map((x) => parseInt(x, 10));
|
105
101
|
switch (state) {
|
106
102
|
case 'green':
|
@@ -109,7 +105,7 @@ function mapBranchStatusToLabel(state, label) {
|
|
109
105
|
case 'red':
|
110
106
|
return Math.min(...numbers);
|
111
107
|
}
|
112
|
-
|
108
|
+
/* v8 ignore next */
|
113
109
|
return label.default_value;
|
114
110
|
}
|
115
111
|
//# sourceMappingURL=utils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/modules/platform/gerrit/utils.ts"],"names":[],"mappings":";;;AAgBA,4CA4BC;AAED,4DAcC;AAED,
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/modules/platform/gerrit/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { CONFIG_GIT_URL_UNAVAILABLE } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport type { BranchStatus, PrState } from '../../../types';\nimport * as hostRules from '../../../util/host-rules';\nimport { regEx } from '../../../util/regex';\nimport { joinUrlParts, parseUrl } from '../../../util/url';\nimport { hashBody } from '../pr-body';\nimport type { Pr } from '../types';\nimport type {\n GerritChange,\n GerritChangeStatus,\n GerritLabelTypeInfo,\n} from './types';\n\nexport const TAG_PULL_REQUEST_BODY = 'pull-request';\n\nexport function getGerritRepoUrl(repository: string, endpoint: string): string {\n // Find options for current host and determine Git endpoint\n const opts = hostRules.find({\n hostType: 'gerrit',\n url: endpoint,\n });\n\n const url = parseUrl(endpoint);\n if (!url) {\n throw new Error(CONFIG_GIT_URL_UNAVAILABLE);\n }\n if (!(opts.username && opts.password)) {\n throw new Error(\n 'Init: You must configure a Gerrit Server username/password',\n );\n }\n url.username = opts.username;\n url.password = opts.password;\n url.pathname = joinUrlParts(\n url.pathname,\n 'a',\n encodeURIComponent(repository),\n );\n logger.trace(\n { url: url.toString() },\n 'using URL based on configured endpoint',\n );\n return url.toString();\n}\n\nexport function mapPrStateToGerritFilter(state?: PrState): string {\n switch (state) {\n case 'closed':\n return 'status:closed';\n case 'merged':\n return 'status:merged';\n case '!open':\n return '-status:open';\n case 'open':\n return 'status:open';\n case 'all':\n default:\n return '-is:wip';\n }\n}\n\nexport function mapGerritChangeToPr(change: GerritChange): Pr {\n return {\n number: change._number,\n state: mapGerritChangeStateToPrState(change.status),\n sourceBranch: extractSourceBranch(change) ?? change.branch,\n targetBranch: change.branch,\n title: change.subject,\n createdAt: change.created?.replace(' ', 'T'),\n reviewers:\n change.reviewers?.REVIEWER?.filter(\n (reviewer) => typeof reviewer.username === 'string',\n ).map((reviewer) => reviewer.username!) ?? [],\n bodyStruct: {\n hash: hashBody(findPullRequestBody(change)),\n },\n };\n}\n\nexport function mapGerritChangeStateToPrState(\n state: GerritChangeStatus | 'UNKNOWN', // suppress default path code removal\n): PrState {\n switch (state) {\n case 'NEW':\n return 'open';\n case 'MERGED':\n return 'merged';\n case 'ABANDONED':\n return 'closed';\n }\n return 'all';\n}\nexport function extractSourceBranch(change: GerritChange): string | undefined {\n let sourceBranch: string | undefined = undefined;\n\n if (change.current_revision) {\n const re = regEx(/^Renovate-Branch: (.+)$/m);\n const message = change.revisions[change.current_revision]?.commit?.message;\n if (message) {\n sourceBranch = re.exec(message)?.[1];\n }\n }\n\n return sourceBranch ?? undefined;\n}\n\nexport function findPullRequestBody(change: GerritChange): string | undefined {\n const msg = Array.from(change.messages ?? [])\n .reverse()\n .find((msg) => msg.tag === TAG_PULL_REQUEST_BODY);\n if (msg) {\n return msg.message.replace(/^Patch Set \\d+:\\n\\n/, ''); //TODO: check how to get rid of the auto-added prefix?\n }\n return undefined;\n}\n\nexport function mapBranchStatusToLabel(\n state: BranchStatus | 'UNKNOWN', // suppress default path code removal\n label: GerritLabelTypeInfo,\n): number {\n const numbers = Object.keys(label.values).map((x) => parseInt(x, 10));\n switch (state) {\n case 'green':\n return Math.max(...numbers);\n case 'yellow':\n case 'red':\n return Math.min(...numbers);\n }\n /* v8 ignore next */\n return label.default_value;\n}\n"]}
|
@@ -14,6 +14,7 @@ export declare function updatePR(repoPath: string, idx: number, params: PRUpdate
|
|
14
14
|
export declare function closePR(repoPath: string, idx: number, options?: GiteaHttpOptions): Promise<void>;
|
15
15
|
export declare function mergePR(repoPath: string, idx: number, params: PRMergeParams, options?: GiteaHttpOptions): Promise<void>;
|
16
16
|
export declare function getPR(repoPath: string, idx: number, options?: GiteaHttpOptions): Promise<PR>;
|
17
|
+
export declare function getPRByBranch(repoPath: string, base: string, head: string, options?: GiteaHttpOptions): Promise<PR | null>;
|
17
18
|
export declare function requestPrReviewers(repoPath: string, idx: number, params: PrReviewersParams, options?: GiteaHttpOptions): Promise<void>;
|
18
19
|
export declare function createIssue(repoPath: string, params: IssueCreateParams, options?: GiteaHttpOptions): Promise<Issue>;
|
19
20
|
export declare function updateIssue(repoPath: string, idx: number, params: IssueUpdateParams, options?: GiteaHttpOptions): Promise<Issue>;
|
@@ -12,6 +12,7 @@ exports.updatePR = updatePR;
|
|
12
12
|
exports.closePR = closePR;
|
13
13
|
exports.mergePR = mergePR;
|
14
14
|
exports.getPR = getPR;
|
15
|
+
exports.getPRByBranch = getPRByBranch;
|
15
16
|
exports.requestPrReviewers = requestPrReviewers;
|
16
17
|
exports.createIssue = createIssue;
|
17
18
|
exports.updateIssue = updateIssue;
|
@@ -29,6 +30,7 @@ exports.getComments = getComments;
|
|
29
30
|
exports.createCommitStatus = createCommitStatus;
|
30
31
|
exports.getCombinedCommitStatus = getCombinedCommitStatus;
|
31
32
|
exports.getBranch = getBranch;
|
33
|
+
const logger_1 = require("../../../logger");
|
32
34
|
const gitea_1 = require("../../../util/http/gitea");
|
33
35
|
const url_1 = require("../../../util/url");
|
34
36
|
const utils_1 = require("./utils");
|
@@ -120,6 +122,20 @@ async function getPR(repoPath, idx, options) {
|
|
120
122
|
const res = await exports.giteaHttp.getJsonUnchecked(url, options);
|
121
123
|
return res.body;
|
122
124
|
}
|
125
|
+
async function getPRByBranch(repoPath, base, head, options) {
|
126
|
+
const url = `${utils_1.API_PATH}/repos/${repoPath}/pulls/${base}/${head}`;
|
127
|
+
try {
|
128
|
+
const res = await exports.giteaHttp.getJsonUnchecked(url, options);
|
129
|
+
return res.body;
|
130
|
+
}
|
131
|
+
catch (err) {
|
132
|
+
logger_1.logger.trace({ err }, 'Error while fetching PR');
|
133
|
+
if (err.statusCode !== 404) {
|
134
|
+
logger_1.logger.debug({ err }, 'Error while fetching PR');
|
135
|
+
}
|
136
|
+
return null;
|
137
|
+
}
|
138
|
+
}
|
123
139
|
async function requestPrReviewers(repoPath, idx, params, options) {
|
124
140
|
const url = `${utils_1.API_PATH}/repos/${repoPath}/pulls/${idx}/requested_reviewers`;
|
125
141
|
await exports.giteaHttp.postJson(url, {
|