renovate 42.3.0 → 42.4.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.js +13 -14
- package/dist/config/decrypt.js.map +1 -1
- package/dist/config/massage.js +6 -7
- package/dist/config/massage.js.map +1 -1
- package/dist/config/migrate-validate.js +3 -3
- package/dist/config/migrate-validate.js.map +1 -1
- package/dist/config/migration.js +19 -20
- package/dist/config/migration.js.map +1 -1
- package/dist/config/migrations/base/abstract-migration.js +5 -6
- package/dist/config/migrations/base/abstract-migration.js.map +1 -1
- package/dist/config/migrations/custom/automerge-major-migration.js +2 -3
- package/dist/config/migrations/custom/automerge-major-migration.js.map +1 -1
- package/dist/config/migrations/custom/automerge-migration.js +4 -5
- package/dist/config/migrations/custom/automerge-migration.js.map +1 -1
- package/dist/config/migrations/custom/automerge-minor-migration.js +2 -3
- package/dist/config/migrations/custom/automerge-minor-migration.js.map +1 -1
- package/dist/config/migrations/custom/automerge-patch-migration.js +2 -3
- package/dist/config/migrations/custom/automerge-patch-migration.js.map +1 -1
- package/dist/config/migrations/custom/automerge-type-migration.js +2 -3
- package/dist/config/migrations/custom/automerge-type-migration.js.map +1 -1
- package/dist/config/migrations/custom/base-branch-migration.js +3 -4
- package/dist/config/migrations/custom/base-branch-migration.js.map +1 -1
- package/dist/config/migrations/custom/branch-name-migration.js +2 -3
- package/dist/config/migrations/custom/branch-name-migration.js.map +1 -1
- package/dist/config/migrations/custom/branch-prefix-migration.js +2 -3
- package/dist/config/migrations/custom/branch-prefix-migration.js.map +1 -1
- package/dist/config/migrations/custom/compatibility-migration.js +2 -3
- package/dist/config/migrations/custom/compatibility-migration.js.map +1 -1
- package/dist/config/migrations/custom/composer-ignore-platform-reqs-migration.js +2 -3
- package/dist/config/migrations/custom/composer-ignore-platform-reqs-migration.js.map +1 -1
- package/dist/config/migrations/custom/custom-managers-migration.js +2 -3
- package/dist/config/migrations/custom/custom-managers-migration.js.map +1 -1
- package/dist/config/migrations/custom/datasource-migration.js +2 -3
- package/dist/config/migrations/custom/datasource-migration.js.map +1 -1
- package/dist/config/migrations/custom/dep-types-migration.js +4 -5
- package/dist/config/migrations/custom/dep-types-migration.js.map +1 -1
- package/dist/config/migrations/custom/enabled-managers-migration.js +2 -3
- package/dist/config/migrations/custom/enabled-managers-migration.js.map +1 -1
- package/dist/config/migrations/custom/extends-migration.js +4 -5
- package/dist/config/migrations/custom/extends-migration.js.map +1 -1
- package/dist/config/migrations/custom/fetch-release-notes-migration.js +2 -3
- package/dist/config/migrations/custom/fetch-release-notes-migration.js.map +1 -1
- package/dist/config/migrations/custom/file-match-migration.js +3 -4
- package/dist/config/migrations/custom/file-match-migration.js.map +1 -1
- package/dist/config/migrations/custom/host-rules-migration.js +6 -7
- package/dist/config/migrations/custom/host-rules-migration.js.map +1 -1
- package/dist/config/migrations/custom/ignore-npmrc-file-migration.js +2 -3
- package/dist/config/migrations/custom/ignore-npmrc-file-migration.js.map +1 -1
- package/dist/config/migrations/custom/include-forks-migration.js +2 -3
- package/dist/config/migrations/custom/include-forks-migration.js.map +1 -1
- package/dist/config/migrations/custom/match-datasources-migration.js +2 -3
- package/dist/config/migrations/custom/match-datasources-migration.js.map +1 -1
- package/dist/config/migrations/custom/match-managers-migration.js +2 -3
- package/dist/config/migrations/custom/match-managers-migration.js.map +1 -1
- package/dist/config/migrations/custom/match-strings-migration.js +2 -3
- package/dist/config/migrations/custom/match-strings-migration.js.map +1 -1
- package/dist/config/migrations/custom/package-files-migration.js +6 -7
- package/dist/config/migrations/custom/package-files-migration.js.map +1 -1
- package/dist/config/migrations/custom/package-rules-migration.js +15 -16
- package/dist/config/migrations/custom/package-rules-migration.js.map +1 -1
- package/dist/config/migrations/custom/packages-migration.js +3 -4
- package/dist/config/migrations/custom/packages-migration.js.map +1 -1
- package/dist/config/migrations/custom/path-rules-migration.js +3 -4
- package/dist/config/migrations/custom/path-rules-migration.js.map +1 -1
- package/dist/config/migrations/custom/pin-versions-migration.js +2 -3
- package/dist/config/migrations/custom/pin-versions-migration.js.map +1 -1
- package/dist/config/migrations/custom/platform-commit-migration.js +2 -3
- package/dist/config/migrations/custom/platform-commit-migration.js.map +1 -1
- package/dist/config/migrations/custom/post-update-options-migration.js +2 -3
- package/dist/config/migrations/custom/post-update-options-migration.js.map +1 -1
- package/dist/config/migrations/custom/rebase-stale-prs-migration.js +2 -3
- package/dist/config/migrations/custom/rebase-stale-prs-migration.js.map +1 -1
- package/dist/config/migrations/custom/recreate-closed-migration.js +2 -3
- package/dist/config/migrations/custom/recreate-closed-migration.js.map +1 -1
- package/dist/config/migrations/custom/renovate-fork-migration.js +2 -3
- package/dist/config/migrations/custom/renovate-fork-migration.js.map +1 -1
- package/dist/config/migrations/custom/schedule-migration.js +4 -4
- package/dist/config/migrations/custom/schedule-migration.js.map +1 -1
- package/dist/config/migrations/custom/semantic-commits-migration.js +2 -3
- package/dist/config/migrations/custom/semantic-commits-migration.js.map +1 -1
- package/dist/config/migrations/custom/semantic-prefix-migration.js +2 -3
- package/dist/config/migrations/custom/semantic-prefix-migration.js.map +1 -1
- package/dist/config/migrations/custom/stability-days-migration.js +2 -3
- package/dist/config/migrations/custom/stability-days-migration.js.map +1 -1
- package/dist/config/migrations/custom/suppress-notifications-migration.js +2 -3
- package/dist/config/migrations/custom/suppress-notifications-migration.js.map +1 -1
- package/dist/config/migrations/custom/unpublish-safe-migration.js +2 -3
- package/dist/config/migrations/custom/unpublish-safe-migration.js.map +1 -1
- package/dist/config/migrations/migrations-service.js +2 -3
- package/dist/config/migrations/migrations-service.js.map +1 -1
- package/dist/config/presets/github/index.js +2 -3
- package/dist/config/presets/github/index.js.map +1 -1
- package/dist/config/presets/gitlab/index.js +2 -3
- package/dist/config/presets/gitlab/index.js.map +1 -1
- package/dist/config/presets/index.js +8 -8
- package/dist/config/presets/index.js.map +1 -1
- package/dist/config/presets/parse.js +2 -3
- package/dist/config/presets/parse.js.map +1 -1
- package/dist/config/secrets.js +3 -4
- package/dist/config/secrets.js.map +1 -1
- package/dist/config/validation-helpers/match-base-branches.js +2 -3
- package/dist/config/validation-helpers/match-base-branches.js.map +1 -1
- package/dist/config/validation-helpers/regex-glob-matchers.js +2 -3
- package/dist/config/validation-helpers/regex-glob-matchers.js.map +1 -1
- package/dist/config/validation-helpers/utils.js +6 -6
- package/dist/config/validation-helpers/utils.js.map +1 -1
- package/dist/config/validation.js +29 -29
- package/dist/config/validation.js.map +1 -1
- package/dist/instrumentation/reporting.js +7 -8
- package/dist/instrumentation/reporting.js.map +1 -1
- package/dist/instrumentation/utils.js +2 -3
- package/dist/instrumentation/utils.js.map +1 -1
- package/dist/logger/err-serializer.js +2 -2
- package/dist/logger/err-serializer.js.map +1 -1
- package/dist/logger/index.js +3 -3
- package/dist/logger/index.js.map +1 -1
- package/dist/logger/renovate-logger.js +4 -5
- package/dist/logger/renovate-logger.js.map +1 -1
- package/dist/logger/utils.js +19 -19
- package/dist/logger/utils.js.map +1 -1
- package/dist/modules/datasource/aws-eks-addon/index.js +2 -2
- package/dist/modules/datasource/aws-eks-addon/index.js.map +1 -1
- package/dist/modules/datasource/bazel/index.js +2 -2
- package/dist/modules/datasource/bazel/index.js.map +1 -1
- package/dist/modules/datasource/bitrise/index.js +2 -2
- package/dist/modules/datasource/bitrise/index.js.map +1 -1
- package/dist/modules/datasource/common.js +4 -4
- package/dist/modules/datasource/common.js.map +1 -1
- package/dist/modules/datasource/conan/index.js +3 -3
- package/dist/modules/datasource/conan/index.js.map +1 -1
- package/dist/modules/datasource/custom/formats/html.js +2 -5
- package/dist/modules/datasource/custom/formats/html.js.map +1 -1
- package/dist/modules/datasource/custom/index.js +2 -3
- package/dist/modules/datasource/custom/index.js.map +1 -1
- package/dist/modules/datasource/custom/utils.js +4 -4
- package/dist/modules/datasource/custom/utils.js.map +1 -1
- package/dist/modules/datasource/dart-version/index.js +2 -3
- package/dist/modules/datasource/dart-version/index.js.map +1 -1
- package/dist/modules/datasource/deno/index.js +2 -2
- package/dist/modules/datasource/deno/index.js.map +1 -1
- package/dist/modules/datasource/docker/common.js +5 -5
- package/dist/modules/datasource/docker/common.js.map +1 -1
- package/dist/modules/datasource/docker/index.js +6 -6
- package/dist/modules/datasource/docker/index.js.map +1 -1
- package/dist/modules/datasource/endoflife-date/index.js +2 -2
- package/dist/modules/datasource/endoflife-date/index.js.map +1 -1
- package/dist/modules/datasource/galaxy/index.js +2 -2
- package/dist/modules/datasource/galaxy/index.js.map +1 -1
- package/dist/modules/datasource/galaxy-collection/index.js +2 -2
- package/dist/modules/datasource/galaxy-collection/index.js.map +1 -1
- package/dist/modules/datasource/git-refs/base.js +2 -2
- package/dist/modules/datasource/git-refs/base.js.map +1 -1
- 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-releases/index.js +2 -3
- package/dist/modules/datasource/github-releases/index.js.map +1 -1
- package/dist/modules/datasource/github-tags/index.js +2 -3
- package/dist/modules/datasource/github-tags/index.js.map +1 -1
- package/dist/modules/datasource/go/goproxy-parser.js +3 -3
- package/dist/modules/datasource/go/goproxy-parser.js.map +1 -1
- package/dist/modules/datasource/go/index.js +2 -2
- package/dist/modules/datasource/go/index.js.map +1 -1
- package/dist/modules/datasource/go/releases-goproxy.js +3 -3
- package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
- package/dist/modules/datasource/hackage/index.js +2 -2
- package/dist/modules/datasource/hackage/index.js.map +1 -1
- package/dist/modules/datasource/hex/schema.js +2 -3
- package/dist/modules/datasource/hex/schema.js.map +1 -1
- package/dist/modules/datasource/hexpm-bob/index.js +2 -2
- package/dist/modules/datasource/hexpm-bob/index.js.map +1 -1
- package/dist/modules/datasource/index.js +14 -14
- package/dist/modules/datasource/index.js.map +1 -1
- package/dist/modules/datasource/jsr/index.js +2 -2
- package/dist/modules/datasource/jsr/index.js.map +1 -1
- package/dist/modules/datasource/jsr/util.js +3 -4
- package/dist/modules/datasource/jsr/util.js.map +1 -1
- package/dist/modules/datasource/metadata.js +5 -5
- package/dist/modules/datasource/metadata.js.map +1 -1
- package/dist/modules/datasource/npm/get.js +2 -2
- package/dist/modules/datasource/npm/get.js.map +1 -1
- package/dist/modules/datasource/npm/npmrc.js +7 -7
- package/dist/modules/datasource/npm/npmrc.js.map +1 -1
- package/dist/modules/datasource/nuget/v3.js +2 -2
- package/dist/modules/datasource/nuget/v3.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.js +3 -4
- package/dist/modules/datasource/packagist/schema.js.map +1 -1
- package/dist/modules/datasource/pypi/index.js +2 -2
- package/dist/modules/datasource/pypi/index.js.map +1 -1
- package/dist/modules/datasource/repology/index.js +3 -3
- package/dist/modules/datasource/repology/index.js.map +1 -1
- package/dist/modules/datasource/rubygems/schema.js +5 -6
- package/dist/modules/datasource/rubygems/schema.js.map +1 -1
- package/dist/modules/datasource/util.js +2 -3
- package/dist/modules/datasource/util.js.map +1 -1
- package/dist/modules/manager/argocd/extract.js +3 -4
- package/dist/modules/manager/argocd/extract.js.map +1 -1
- package/dist/modules/manager/asdf/extract.js +2 -3
- package/dist/modules/manager/asdf/extract.js.map +1 -1
- package/dist/modules/manager/bazel/artifacts.js +2 -2
- package/dist/modules/manager/bazel/artifacts.js.map +1 -1
- package/dist/modules/manager/bazel/common.js +4 -5
- package/dist/modules/manager/bazel/common.js.map +1 -1
- package/dist/modules/manager/bazel/rules/http.js +3 -4
- package/dist/modules/manager/bazel/rules/http.js.map +1 -1
- package/dist/modules/manager/bazel/rules/maven.js +2 -3
- package/dist/modules/manager/bazel/rules/maven.js.map +1 -1
- package/dist/modules/manager/bazel-module/parser/starlark.js +2 -3
- package/dist/modules/manager/bazel-module/parser/starlark.js.map +1 -1
- package/dist/modules/manager/bazel-module/rules.js +3 -3
- package/dist/modules/manager/bazel-module/rules.js.map +1 -1
- package/dist/modules/manager/bitrise/utils.js +3 -4
- package/dist/modules/manager/bitrise/utils.js.map +1 -1
- package/dist/modules/manager/buildpacks/extract.js +2 -3
- package/dist/modules/manager/buildpacks/extract.js.map +1 -1
- package/dist/modules/manager/bun/artifacts.js +2 -2
- package/dist/modules/manager/bun/artifacts.js.map +1 -1
- package/dist/modules/manager/bun/extract.js +2 -3
- package/dist/modules/manager/bun/extract.js.map +1 -1
- package/dist/modules/manager/bundler/artifacts.js +3 -3
- package/dist/modules/manager/bundler/artifacts.js.map +1 -1
- package/dist/modules/manager/bundler/extract.js +5 -6
- package/dist/modules/manager/bundler/extract.js.map +1 -1
- package/dist/modules/manager/cargo/extract.js +3 -4
- package/dist/modules/manager/cargo/extract.js.map +1 -1
- package/dist/modules/manager/composer/artifacts.js +3 -3
- package/dist/modules/manager/composer/artifacts.js.map +1 -1
- package/dist/modules/manager/composer/utils.js +3 -4
- package/dist/modules/manager/composer/utils.js.map +1 -1
- package/dist/modules/manager/conan/extract.js +2 -3
- package/dist/modules/manager/conan/extract.js.map +1 -1
- package/dist/modules/manager/copier/artifacts.js +1 -1
- package/dist/modules/manager/copier/artifacts.js.map +1 -1
- package/dist/modules/manager/copier/utils.js +3 -4
- package/dist/modules/manager/copier/utils.js.map +1 -1
- package/dist/modules/manager/crow/extract.js +2 -3
- package/dist/modules/manager/crow/extract.js.map +1 -1
- package/dist/modules/manager/custom/jsonata/index.js +2 -3
- package/dist/modules/manager/custom/jsonata/index.js.map +1 -1
- package/dist/modules/manager/custom/jsonata/utils.js +3 -3
- package/dist/modules/manager/custom/jsonata/utils.js.map +1 -1
- package/dist/modules/manager/custom/regex/index.js +2 -3
- package/dist/modules/manager/custom/regex/index.js.map +1 -1
- package/dist/modules/manager/custom/regex/strategies.js +4 -5
- package/dist/modules/manager/custom/regex/strategies.js.map +1 -1
- package/dist/modules/manager/custom/regex/utils.js +2 -2
- package/dist/modules/manager/custom/regex/utils.js.map +1 -1
- package/dist/modules/manager/custom/utils.js +6 -7
- package/dist/modules/manager/custom/utils.js.map +1 -1
- package/dist/modules/manager/deps-edn/extract.js +13 -14
- package/dist/modules/manager/deps-edn/extract.js.map +1 -1
- package/dist/modules/manager/deps-edn/parser.js +2 -2
- package/dist/modules/manager/deps-edn/parser.js.map +1 -1
- package/dist/modules/manager/devbox/artifacts.js +2 -2
- package/dist/modules/manager/devbox/artifacts.js.map +1 -1
- package/dist/modules/manager/docker-compose/extract.js +3 -4
- package/dist/modules/manager/docker-compose/extract.js.map +1 -1
- package/dist/modules/manager/docker-compose/schema.js +2 -3
- package/dist/modules/manager/docker-compose/schema.js.map +1 -1
- package/dist/modules/manager/dockerfile/extract.js +5 -5
- package/dist/modules/manager/dockerfile/extract.js.map +1 -1
- package/dist/modules/manager/fingerprint.generated.js +6 -6
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/fleet/extract.js +2 -3
- package/dist/modules/manager/fleet/extract.js.map +1 -1
- package/dist/modules/manager/flux/extract.js +2 -3
- package/dist/modules/manager/flux/extract.js.map +1 -1
- package/dist/modules/manager/glasskube/extract.js +2 -3
- package/dist/modules/manager/glasskube/extract.js.map +1 -1
- package/dist/modules/manager/gleam/artifacts.js +3 -4
- package/dist/modules/manager/gleam/artifacts.js.map +1 -1
- package/dist/modules/manager/gomod/artifacts.js +2 -2
- package/dist/modules/manager/gomod/artifacts.js.map +1 -1
- package/dist/modules/manager/gradle/artifacts.js +2 -2
- package/dist/modules/manager/gradle/artifacts.js.map +1 -1
- package/dist/modules/manager/gradle/extract/catalog.js +5 -5
- package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
- package/dist/modules/manager/gradle-wrapper/artifacts.js +2 -2
- package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
- package/dist/modules/manager/helm-requirements/extract.js +2 -3
- package/dist/modules/manager/helm-requirements/extract.js.map +1 -1
- package/dist/modules/manager/helmfile/artifacts.js +2 -3
- package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
- package/dist/modules/manager/helmfile/extract.js +4 -5
- package/dist/modules/manager/helmfile/extract.js.map +1 -1
- package/dist/modules/manager/helmsman/extract.js +4 -5
- package/dist/modules/manager/helmsman/extract.js.map +1 -1
- package/dist/modules/manager/helmv3/artifacts.js +4 -4
- package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
- package/dist/modules/manager/helmv3/extract.js +4 -5
- package/dist/modules/manager/helmv3/extract.js.map +1 -1
- package/dist/modules/manager/helmv3/oci.js +3 -4
- package/dist/modules/manager/helmv3/oci.js.map +1 -1
- package/dist/modules/manager/homebrew/extract.js +1 -1
- package/dist/modules/manager/homebrew/extract.js.map +1 -1
- package/dist/modules/manager/jenkins/extract.js +3 -3
- package/dist/modules/manager/jenkins/extract.js.map +1 -1
- package/dist/modules/manager/kotlin-script/extract.js +3 -4
- package/dist/modules/manager/kotlin-script/extract.js.map +1 -1
- package/dist/modules/manager/kubernetes/extract.js +4 -4
- package/dist/modules/manager/kubernetes/extract.js.map +1 -1
- package/dist/modules/manager/kustomize/artifacts.js +8 -8
- package/dist/modules/manager/kustomize/artifacts.js.map +1 -1
- package/dist/modules/manager/kustomize/extract.js +8 -8
- package/dist/modules/manager/kustomize/extract.js.map +1 -1
- package/dist/modules/manager/maven/extract.js +4 -4
- package/dist/modules/manager/maven/extract.js.map +1 -1
- package/dist/modules/manager/maven/update.js +2 -2
- package/dist/modules/manager/maven/update.js.map +1 -1
- package/dist/modules/manager/maven-wrapper/artifacts.js +2 -2
- package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
- package/dist/modules/manager/mise/backends.js +9 -10
- package/dist/modules/manager/mise/backends.js.map +1 -1
- package/dist/modules/manager/mise/extract.js +7 -8
- package/dist/modules/manager/mise/extract.js.map +1 -1
- package/dist/modules/manager/mix/artifacts.js +3 -3
- package/dist/modules/manager/mix/artifacts.js.map +1 -1
- package/dist/modules/manager/nix/artifacts.js +2 -2
- package/dist/modules/manager/nix/artifacts.js.map +1 -1
- package/dist/modules/manager/npm/detect.js +2 -2
- package/dist/modules/manager/npm/detect.js.map +1 -1
- package/dist/modules/manager/npm/extract/common/dependency.js +2 -2
- package/dist/modules/manager/npm/extract/common/dependency.js.map +1 -1
- package/dist/modules/manager/npm/extract/common/overrides.js +3 -4
- package/dist/modules/manager/npm/extract/common/overrides.js.map +1 -1
- package/dist/modules/manager/npm/extract/common/package-file.js +8 -9
- package/dist/modules/manager/npm/extract/common/package-file.js.map +1 -1
- package/dist/modules/manager/npm/extract/index.js +10 -10
- package/dist/modules/manager/npm/extract/index.js.map +1 -1
- package/dist/modules/manager/npm/extract/pnpm.js +7 -7
- package/dist/modules/manager/npm/extract/pnpm.js.map +1 -1
- package/dist/modules/manager/npm/extract/post/locked-versions.js +3 -3
- package/dist/modules/manager/npm/extract/post/locked-versions.js.map +1 -1
- package/dist/modules/manager/npm/extract/post/monorepo.js +3 -4
- package/dist/modules/manager/npm/extract/post/monorepo.js.map +1 -1
- package/dist/modules/manager/npm/extract/yarn.js +2 -3
- package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
- package/dist/modules/manager/npm/extract/yarnrc.js +2 -3
- package/dist/modules/manager/npm/extract/yarnrc.js.map +1 -1
- package/dist/modules/manager/npm/post-update/index.js +6 -6
- package/dist/modules/manager/npm/post-update/index.js.map +1 -1
- package/dist/modules/manager/npm/post-update/npm.js +4 -4
- package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/pnpm.js +3 -3
- package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/rules.js +2 -2
- package/dist/modules/manager/npm/post-update/rules.js.map +1 -1
- package/dist/modules/manager/npm/post-update/utils.js +2 -2
- package/dist/modules/manager/npm/post-update/utils.js.map +1 -1
- package/dist/modules/manager/npm/post-update/yarn.js +3 -3
- package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
- package/dist/modules/manager/npm/update/dependency/index.js +2 -3
- package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
- package/dist/modules/manager/npm/update/dependency/pnpm.js +2 -3
- package/dist/modules/manager/npm/update/dependency/pnpm.js.map +1 -1
- package/dist/modules/manager/npm/update/dependency/yarn.js +3 -4
- package/dist/modules/manager/npm/update/dependency/yarn.js.map +1 -1
- package/dist/modules/manager/nuget/config-formatter.js +2 -2
- package/dist/modules/manager/nuget/config-formatter.js.map +1 -1
- package/dist/modules/manager/nuget/extract.js +4 -4
- package/dist/modules/manager/nuget/extract.js.map +1 -1
- package/dist/modules/manager/nuget/package-tree.js +2 -2
- package/dist/modules/manager/nuget/package-tree.js.map +1 -1
- package/dist/modules/manager/ocb/extract.js +2 -3
- package/dist/modules/manager/ocb/extract.js.map +1 -1
- package/dist/modules/manager/osgi/extract.js +4 -4
- package/dist/modules/manager/osgi/extract.js.map +1 -1
- package/dist/modules/manager/pep621/artifacts.js +3 -4
- package/dist/modules/manager/pep621/artifacts.js.map +1 -1
- package/dist/modules/manager/pep621/processors/uv.js +2 -3
- package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
- package/dist/modules/manager/pep621/schema.d.ts +1 -1
- package/dist/modules/manager/pep621/schema.js +1 -0
- package/dist/modules/manager/pep621/schema.js.map +1 -1
- package/dist/modules/manager/pep621/utils.js +8 -10
- package/dist/modules/manager/pep621/utils.js.map +1 -1
- package/dist/modules/manager/pep723/schema.js +2 -3
- package/dist/modules/manager/pep723/schema.js.map +1 -1
- package/dist/modules/manager/pip-compile/common.js +3 -3
- package/dist/modules/manager/pip-compile/common.js.map +1 -1
- package/dist/modules/manager/pip_requirements/artifacts.js +2 -3
- package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
- package/dist/modules/manager/pip_requirements/extract.js +2 -3
- package/dist/modules/manager/pip_requirements/extract.js.map +1 -1
- package/dist/modules/manager/pipenv/artifacts.js +3 -4
- package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
- package/dist/modules/manager/pipenv/extract.js +6 -7
- package/dist/modules/manager/pipenv/extract.js.map +1 -1
- package/dist/modules/manager/pixi/artifacts.js +2 -3
- package/dist/modules/manager/pixi/artifacts.js.map +1 -1
- package/dist/modules/manager/pixi/extract.js +2 -3
- package/dist/modules/manager/pixi/extract.js.map +1 -1
- package/dist/modules/manager/poetry/artifacts.js +4 -5
- package/dist/modules/manager/poetry/artifacts.js.map +1 -1
- package/dist/modules/manager/poetry/extract.js +2 -3
- package/dist/modules/manager/poetry/extract.js.map +1 -1
- package/dist/modules/manager/poetry/schema.d.ts +4 -0
- package/dist/modules/manager/poetry/schema.js +5 -1
- package/dist/modules/manager/poetry/schema.js.map +1 -1
- package/dist/modules/manager/pre-commit/extract.js +4 -5
- package/dist/modules/manager/pre-commit/extract.js.map +1 -1
- package/dist/modules/manager/pub/artifacts.js +3 -4
- package/dist/modules/manager/pub/artifacts.js.map +1 -1
- package/dist/modules/manager/pub/extract.js +8 -11
- package/dist/modules/manager/pub/extract.js.map +1 -1
- package/dist/modules/manager/renovate-config-presets/extract.js +4 -5
- package/dist/modules/manager/renovate-config-presets/extract.js.map +1 -1
- package/dist/modules/manager/tekton/extract.js +9 -10
- package/dist/modules/manager/tekton/extract.js.map +1 -1
- package/dist/modules/manager/terraform/base.js +2 -3
- package/dist/modules/manager/terraform/base.js.map +1 -1
- package/dist/modules/manager/terraform/extract.js +2 -2
- package/dist/modules/manager/terraform/extract.js.map +1 -1
- package/dist/modules/manager/terraform/extractors/others/modules.js +3 -4
- package/dist/modules/manager/terraform/extractors/others/modules.js.map +1 -1
- package/dist/modules/manager/terraform/extractors/others/providers.js +3 -4
- package/dist/modules/manager/terraform/extractors/others/providers.js.map +1 -1
- package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js +7 -8
- package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js.map +1 -1
- package/dist/modules/manager/terraform/extractors/resources/helm-release.js +5 -6
- package/dist/modules/manager/terraform/extractors/resources/helm-release.js.map +1 -1
- package/dist/modules/manager/terraform/extractors/resources/terraform-workspace.js +3 -4
- package/dist/modules/manager/terraform/extractors/resources/terraform-workspace.js.map +1 -1
- package/dist/modules/manager/terraform/extractors/terraform-block/required-provider.js +4 -5
- package/dist/modules/manager/terraform/extractors/terraform-block/required-provider.js.map +1 -1
- package/dist/modules/manager/terraform/extractors/terraform-block/terraform-version.js +3 -3
- package/dist/modules/manager/terraform/extractors/terraform-block/terraform-version.js.map +1 -1
- package/dist/modules/manager/terraform/lockfile/index.js +2 -2
- package/dist/modules/manager/terraform/lockfile/index.js.map +1 -1
- package/dist/modules/manager/terraform/lockfile/util.js +2 -3
- package/dist/modules/manager/terraform/lockfile/util.js.map +1 -1
- package/dist/modules/manager/terraform/util.js +2 -3
- package/dist/modules/manager/terraform/util.js.map +1 -1
- package/dist/modules/manager/tflint-plugin/plugins.js +2 -3
- package/dist/modules/manager/tflint-plugin/plugins.js.map +1 -1
- package/dist/modules/manager/travis/extract.js +5 -6
- package/dist/modules/manager/travis/extract.js.map +1 -1
- package/dist/modules/manager/woodpecker/extract.js +2 -3
- package/dist/modules/manager/woodpecker/extract.js.map +1 -1
- package/dist/modules/platform/azure/index.js +2 -2
- package/dist/modules/platform/azure/index.js.map +1 -1
- package/dist/modules/platform/bitbucket/index.js +5 -5
- package/dist/modules/platform/bitbucket/index.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/pr-cache.js +3 -3
- package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/utils.js +2 -2
- package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
- package/dist/modules/platform/codecommit/codecommit-client.js +2 -2
- package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
- package/dist/modules/platform/forgejo/index.js +5 -5
- package/dist/modules/platform/forgejo/index.js.map +1 -1
- package/dist/modules/platform/forgejo/pr-cache.js +1 -1
- package/dist/modules/platform/forgejo/pr-cache.js.map +1 -1
- package/dist/modules/platform/forgejo/utils.js +2 -2
- package/dist/modules/platform/forgejo/utils.js.map +1 -1
- package/dist/modules/platform/gitea/index.js +5 -5
- package/dist/modules/platform/gitea/index.js.map +1 -1
- package/dist/modules/platform/gitea/pr-cache.js +1 -1
- package/dist/modules/platform/gitea/pr-cache.js.map +1 -1
- package/dist/modules/platform/gitea/utils.js +2 -2
- package/dist/modules/platform/gitea/utils.js.map +1 -1
- package/dist/modules/platform/github/common.js +4 -5
- package/dist/modules/platform/github/common.js.map +1 -1
- package/dist/modules/platform/github/index.js +5 -5
- package/dist/modules/platform/github/index.js.map +1 -1
- package/dist/modules/platform/github/pr.js +2 -3
- package/dist/modules/platform/github/pr.js.map +1 -1
- package/dist/modules/platform/gitlab/http.js +2 -3
- package/dist/modules/platform/gitlab/http.js.map +1 -1
- package/dist/modules/platform/gitlab/index.js +3 -3
- package/dist/modules/platform/gitlab/index.js.map +1 -1
- package/dist/modules/platform/gitlab/utils.js +3 -3
- package/dist/modules/platform/gitlab/utils.js.map +1 -1
- package/dist/modules/platform/pr-body.js +2 -3
- package/dist/modules/platform/pr-body.js.map +1 -1
- package/dist/modules/versioning/composer/index.js +2 -3
- package/dist/modules/versioning/composer/index.js.map +1 -1
- package/dist/modules/versioning/generic.js +5 -6
- package/dist/modules/versioning/generic.js.map +1 -1
- package/dist/modules/versioning/gradle/compare.js +3 -4
- package/dist/modules/versioning/gradle/compare.js.map +1 -1
- package/dist/modules/versioning/ivy/parse.js +1 -1
- package/dist/modules/versioning/ivy/parse.js.map +1 -1
- package/dist/modules/versioning/maven/index.js +1 -1
- package/dist/modules/versioning/maven/index.js.map +1 -1
- package/dist/modules/versioning/nixpkgs/index.js +6 -7
- package/dist/modules/versioning/nixpkgs/index.js.map +1 -1
- package/dist/modules/versioning/npm/range.js +2 -2
- package/dist/modules/versioning/npm/range.js.map +1 -1
- package/dist/modules/versioning/nuget/index.js +1 -1
- package/dist/modules/versioning/nuget/index.js.map +1 -1
- package/dist/modules/versioning/rpm/index.js +4 -5
- package/dist/modules/versioning/rpm/index.js.map +1 -1
- package/dist/modules/versioning/schema.js +2 -2
- package/dist/modules/versioning/schema.js.map +1 -1
- package/dist/modules/versioning/semver-coerced/index.js +3 -3
- package/dist/modules/versioning/semver-coerced/index.js.map +1 -1
- package/dist/modules/versioning/semver-partial/index.js +4 -4
- package/dist/modules/versioning/semver-partial/index.js.map +1 -1
- package/dist/proxy.js +3 -4
- package/dist/proxy.js.map +1 -1
- package/dist/util/array.js +4 -5
- package/dist/util/array.js.map +1 -1
- package/dist/util/assign-keys.js +2 -3
- package/dist/util/assign-keys.js.map +1 -1
- package/dist/util/cache/package/decorator.js +6 -6
- package/dist/util/cache/package/decorator.js.map +1 -1
- package/dist/util/cache/package/ttl.js +4 -5
- package/dist/util/cache/package/ttl.js.map +1 -1
- package/dist/util/cache/repository/impl/base.js +3 -4
- package/dist/util/cache/repository/impl/base.js.map +1 -1
- package/dist/util/cache/repository/impl/s3.js +2 -3
- package/dist/util/cache/repository/impl/s3.js.map +1 -1
- package/dist/util/exec/common.js +2 -3
- package/dist/util/exec/common.js.map +1 -1
- package/dist/util/exec/containerbase.js +2 -2
- package/dist/util/exec/containerbase.js.map +1 -1
- package/dist/util/exec/docker/index.js +5 -5
- package/dist/util/exec/docker/index.js.map +1 -1
- package/dist/util/exec/index.js +2 -2
- package/dist/util/exec/index.js.map +1 -1
- package/dist/util/exec/utils.js +3 -4
- package/dist/util/exec/utils.js.map +1 -1
- package/dist/util/filter-map.js +2 -3
- package/dist/util/filter-map.js.map +1 -1
- package/dist/util/fs/index.js +3 -3
- package/dist/util/fs/index.js.map +1 -1
- package/dist/util/git/auth.js +2 -3
- package/dist/util/git/auth.js.map +1 -1
- package/dist/util/git/behind-base-branch-cache.js +2 -1
- package/dist/util/git/behind-base-branch-cache.js.map +1 -1
- package/dist/util/git/config.js +3 -4
- package/dist/util/git/config.js.map +1 -1
- package/dist/util/git/conflicts-cache.js +2 -1
- package/dist/util/git/conflicts-cache.js.map +1 -1
- package/dist/util/git/index.js +5 -5
- package/dist/util/git/index.js.map +1 -1
- package/dist/util/git/private-key.js +2 -2
- package/dist/util/git/private-key.js.map +1 -1
- package/dist/util/github/graphql/datasource-fetcher.js +2 -1
- package/dist/util/github/graphql/datasource-fetcher.js.map +1 -1
- package/dist/util/host-rules.js +6 -6
- package/dist/util/host-rules.js.map +1 -1
- package/dist/util/http/auth.js +3 -4
- package/dist/util/http/auth.js.map +1 -1
- package/dist/util/http/bitbucket-server.js +2 -3
- package/dist/util/http/bitbucket-server.js.map +1 -1
- package/dist/util/http/bitbucket.js +3 -4
- package/dist/util/http/bitbucket.js.map +1 -1
- package/dist/util/http/cache/package-http-cache-provider.js +2 -2
- package/dist/util/http/cache/package-http-cache-provider.js.map +1 -1
- package/dist/util/http/forgejo.js +3 -4
- package/dist/util/http/forgejo.js.map +1 -1
- package/dist/util/http/gitea.js +3 -4
- package/dist/util/http/gitea.js.map +1 -1
- package/dist/util/http/github.js +10 -10
- package/dist/util/http/github.js.map +1 -1
- package/dist/util/http/gitlab.js +4 -5
- package/dist/util/http/gitlab.js.map +1 -1
- package/dist/util/http/host-rules.js +10 -10
- package/dist/util/http/host-rules.js.map +1 -1
- package/dist/util/http/http.js +5 -5
- package/dist/util/http/http.js.map +1 -1
- package/dist/util/http/rate-limits.js +3 -3
- package/dist/util/http/rate-limits.js.map +1 -1
- package/dist/util/http/retry-after.js +3 -4
- package/dist/util/http/retry-after.js.map +1 -1
- package/dist/util/interpolator.js +8 -9
- package/dist/util/interpolator.js.map +1 -1
- package/dist/util/merge-confidence/index.js +5 -5
- package/dist/util/merge-confidence/index.js.map +1 -1
- package/dist/util/number.js +2 -3
- package/dist/util/number.js.map +1 -1
- package/dist/util/package-rules/base-branches.js +3 -4
- package/dist/util/package-rules/base-branches.js.map +1 -1
- package/dist/util/package-rules/categories.js +3 -4
- package/dist/util/package-rules/categories.js.map +1 -1
- package/dist/util/package-rules/current-age.js +3 -4
- package/dist/util/package-rules/current-age.js.map +1 -1
- package/dist/util/package-rules/current-value.js +2 -3
- package/dist/util/package-rules/current-value.js.map +1 -1
- package/dist/util/package-rules/current-version.js +5 -5
- package/dist/util/package-rules/current-version.js.map +1 -1
- package/dist/util/package-rules/datasources.js +3 -4
- package/dist/util/package-rules/datasources.js.map +1 -1
- package/dist/util/package-rules/dep-names.js +3 -4
- package/dist/util/package-rules/dep-names.js.map +1 -1
- package/dist/util/package-rules/dep-types.js +2 -3
- package/dist/util/package-rules/dep-types.js.map +1 -1
- package/dist/util/package-rules/files.js +4 -5
- package/dist/util/package-rules/files.js.map +1 -1
- package/dist/util/package-rules/index.js +6 -6
- package/dist/util/package-rules/index.js.map +1 -1
- package/dist/util/package-rules/managers.js +3 -4
- package/dist/util/package-rules/managers.js.map +1 -1
- package/dist/util/package-rules/merge-confidence.js +5 -6
- package/dist/util/package-rules/merge-confidence.js.map +1 -1
- package/dist/util/package-rules/new-value.js +2 -3
- package/dist/util/package-rules/new-value.js.map +1 -1
- package/dist/util/package-rules/package-names.js +2 -3
- package/dist/util/package-rules/package-names.js.map +1 -1
- package/dist/util/package-rules/repositories.js +3 -4
- package/dist/util/package-rules/repositories.js.map +1 -1
- package/dist/util/package-rules/sourceurls.js +2 -3
- package/dist/util/package-rules/sourceurls.js.map +1 -1
- package/dist/util/package-rules/update-types.js +2 -3
- package/dist/util/package-rules/update-types.js.map +1 -1
- package/dist/util/pretty-time.js +4 -4
- package/dist/util/pretty-time.js.map +1 -1
- package/dist/util/regex.js +2 -3
- package/dist/util/regex.js.map +1 -1
- package/dist/util/s3.js +2 -3
- package/dist/util/s3.js.map +1 -1
- package/dist/util/sanitize.js +2 -3
- package/dist/util/sanitize.js.map +1 -1
- package/dist/util/string-match.js +2 -3
- package/dist/util/string-match.js.map +1 -1
- package/dist/util/template/index.js +6 -6
- package/dist/util/template/index.js.map +1 -1
- package/dist/util/url.js +5 -5
- package/dist/util/url.js.map +1 -1
- package/dist/workers/global/autodiscover.js +3 -4
- package/dist/workers/global/autodiscover.js.map +1 -1
- package/dist/workers/global/config/parse/additional-config-file.js +4 -4
- package/dist/workers/global/config/parse/additional-config-file.js.map +1 -1
- package/dist/workers/global/config/parse/coersions.js +2 -2
- package/dist/workers/global/config/parse/coersions.js.map +1 -1
- package/dist/workers/global/config/parse/env.js +2 -2
- package/dist/workers/global/config/parse/env.js.map +1 -1
- package/dist/workers/global/config/parse/file.js +5 -5
- package/dist/workers/global/config/parse/file.js.map +1 -1
- package/dist/workers/global/config/parse/index.js +6 -7
- package/dist/workers/global/config/parse/index.js.map +1 -1
- package/dist/workers/global/config/parse/util.js +2 -2
- package/dist/workers/global/config/parse/util.js.map +1 -1
- package/dist/workers/global/index.js +5 -5
- package/dist/workers/global/index.js.map +1 -1
- package/dist/workers/global/limits.js +6 -7
- package/dist/workers/global/limits.js.map +1 -1
- package/dist/workers/repository/config-migration/branch/index.js +2 -3
- package/dist/workers/repository/config-migration/branch/index.js.map +1 -1
- package/dist/workers/repository/config-migration/branch/migrated-data.js +2 -2
- package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
- package/dist/workers/repository/config-migration/pr/index.js +3 -3
- package/dist/workers/repository/config-migration/pr/index.js.map +1 -1
- package/dist/workers/repository/dependency-dashboard.js +10 -10
- package/dist/workers/repository/dependency-dashboard.js.map +1 -1
- package/dist/workers/repository/extract/index.js +2 -3
- package/dist/workers/repository/extract/index.js.map +1 -1
- package/dist/workers/repository/extract/manager-files.js +2 -3
- package/dist/workers/repository/extract/manager-files.js.map +1 -1
- package/dist/workers/repository/extract/supersedes.js +4 -5
- package/dist/workers/repository/extract/supersedes.js.map +1 -1
- package/dist/workers/repository/finalize/prune.js +2 -3
- package/dist/workers/repository/finalize/prune.js.map +1 -1
- package/dist/workers/repository/init/inherited.js +5 -5
- package/dist/workers/repository/init/inherited.js.map +1 -1
- package/dist/workers/repository/init/merge.js +13 -13
- package/dist/workers/repository/init/merge.js.map +1 -1
- package/dist/workers/repository/model/commit-message.js +2 -3
- package/dist/workers/repository/model/commit-message.js.map +1 -1
- package/dist/workers/repository/onboarding/branch/check.js +2 -1
- package/dist/workers/repository/onboarding/branch/check.js.map +1 -1
- package/dist/workers/repository/onboarding/branch/index.js +3 -4
- package/dist/workers/repository/onboarding/branch/index.js.map +1 -1
- package/dist/workers/repository/onboarding/branch/onboarding-branch-cache.js +7 -8
- package/dist/workers/repository/onboarding/branch/onboarding-branch-cache.js.map +1 -1
- package/dist/workers/repository/onboarding/pr/config-description.js +2 -5
- package/dist/workers/repository/onboarding/pr/config-description.js.map +1 -1
- package/dist/workers/repository/onboarding/pr/index.js +3 -3
- package/dist/workers/repository/onboarding/pr/index.js.map +1 -1
- package/dist/workers/repository/package-files.js +8 -9
- package/dist/workers/repository/package-files.js.map +1 -1
- package/dist/workers/repository/process/extract-update.js +2 -2
- package/dist/workers/repository/process/extract-update.js.map +1 -1
- package/dist/workers/repository/process/fetch.js +3 -3
- package/dist/workers/repository/process/fetch.js.map +1 -1
- package/dist/workers/repository/process/lookup/current.js +2 -3
- package/dist/workers/repository/process/lookup/current.js.map +1 -1
- package/dist/workers/repository/process/lookup/filter-checks.js +4 -5
- package/dist/workers/repository/process/lookup/filter-checks.js.map +1 -1
- package/dist/workers/repository/process/lookup/generate.js +2 -3
- package/dist/workers/repository/process/lookup/generate.js.map +1 -1
- package/dist/workers/repository/process/lookup/index.js +15 -16
- package/dist/workers/repository/process/lookup/index.js.map +1 -1
- package/dist/workers/repository/process/lookup/utils.js +7 -7
- package/dist/workers/repository/process/lookup/utils.js.map +1 -1
- package/dist/workers/repository/process/vulnerabilities.js +11 -11
- package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
- package/dist/workers/repository/process/write.js +2 -3
- package/dist/workers/repository/process/write.js.map +1 -1
- package/dist/workers/repository/reconfigure/comment.js +2 -5
- package/dist/workers/repository/reconfigure/comment.js.map +1 -1
- package/dist/workers/repository/reconfigure/utils.js +2 -3
- package/dist/workers/repository/reconfigure/utils.js.map +1 -1
- package/dist/workers/repository/reconfigure/validate.js +2 -3
- package/dist/workers/repository/reconfigure/validate.js.map +1 -1
- package/dist/workers/repository/update/branch/auto-replace.js +4 -5
- package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
- package/dist/workers/repository/update/branch/commit.js +3 -4
- package/dist/workers/repository/update/branch/commit.js.map +1 -1
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +12 -5
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
- package/dist/workers/repository/update/branch/get-updated.js +8 -9
- package/dist/workers/repository/update/branch/get-updated.js.map +1 -1
- package/dist/workers/repository/update/branch/index.js +3 -3
- package/dist/workers/repository/update/branch/index.js.map +1 -1
- package/dist/workers/repository/update/branch/schedule.js +2 -2
- package/dist/workers/repository/update/branch/schedule.js.map +1 -1
- package/dist/workers/repository/update/pr/body/notes.js +2 -2
- package/dist/workers/repository/update/pr/body/notes.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/bitbucket/index.js +2 -2
- package/dist/workers/repository/update/pr/changelog/bitbucket/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/index.js +3 -3
- package/dist/workers/repository/update/pr/changelog/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/release-notes.js +4 -4
- package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/source.js +8 -8
- package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
- package/dist/workers/repository/update/pr/code-owners.js +2 -2
- package/dist/workers/repository/update/pr/code-owners.js.map +1 -1
- package/dist/workers/repository/update/pr/index.js +7 -8
- package/dist/workers/repository/update/pr/index.js.map +1 -1
- package/dist/workers/repository/update/pr/labels.js +4 -4
- package/dist/workers/repository/update/pr/labels.js.map +1 -1
- package/dist/workers/repository/update/pr/participants.js +4 -5
- package/dist/workers/repository/update/pr/participants.js.map +1 -1
- package/dist/workers/repository/updates/generate.js +4 -4
- package/dist/workers/repository/updates/generate.js.map +1 -1
- package/package.json +5 -5
- package/renovate-schema.json +2 -2
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BbsPrCache = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
-
const is_1 =
|
|
5
|
+
const is_1 = require("@sindresorhus/is");
|
|
6
6
|
const dequal_1 = require("dequal");
|
|
7
7
|
const luxon_1 = require("luxon");
|
|
8
8
|
const logger_1 = require("../../../logger");
|
|
@@ -27,7 +27,7 @@ class BbsPrCache {
|
|
|
27
27
|
repoCache.platform.bitbucketServer ??= {};
|
|
28
28
|
let pullRequestCache = repoCache.platform.bitbucketServer
|
|
29
29
|
.pullRequestsCache;
|
|
30
|
-
if (
|
|
30
|
+
if (pullRequestCache?.author !== author) {
|
|
31
31
|
pullRequestCache = {
|
|
32
32
|
items: {},
|
|
33
33
|
updatedDate: null,
|
|
@@ -90,7 +90,7 @@ class BbsPrCache {
|
|
|
90
90
|
state: 'ALL',
|
|
91
91
|
limit: this.items.length ? '20' : '100',
|
|
92
92
|
};
|
|
93
|
-
if (!this.ignorePrAuthor && is_1.
|
|
93
|
+
if (!this.ignorePrAuthor && (0, is_1.isString)(this.author)) {
|
|
94
94
|
searchParams['role.1'] = 'AUTHOR';
|
|
95
95
|
searchParams['username.1'] = this.author;
|
|
96
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-cache.js","sourceRoot":"","sources":["../../../../lib/modules/platform/bitbucket-server/pr-cache.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"pr-cache.js","sourceRoot":"","sources":["../../../../lib/modules/platform/bitbucket-server/pr-cache.ts"],"names":[],"mappings":"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","sourcesContent":["import { isString } from '@sindresorhus/is';\nimport { dequal } from 'dequal';\nimport { DateTime } from 'luxon';\nimport { logger } from '../../../logger';\nimport * as memCache from '../../../util/cache/memory';\nimport { getCache } from '../../../util/cache/repository';\nimport type { BitbucketServerHttp } from '../../../util/http/bitbucket-server';\nimport { getQueryString } from '../../../util/url';\nimport type { BbsPr, BbsPrCacheData, BbsRestPr } from './types';\nimport { prInfo } from './utils';\n\nexport class BbsPrCache {\n private cache: BbsPrCacheData;\n private items: BbsPr[] = [];\n\n private constructor(\n private projectKey: string,\n private repo: string,\n private readonly ignorePrAuthor: boolean,\n private author: string | null,\n ) {\n const repoCache = getCache();\n repoCache.platform ??= {};\n repoCache.platform.bitbucketServer ??= {};\n let pullRequestCache = repoCache.platform.bitbucketServer\n .pullRequestsCache as BbsPrCacheData;\n if (pullRequestCache?.author !== author) {\n pullRequestCache = {\n items: {},\n updatedDate: null,\n author,\n };\n }\n repoCache.platform.bitbucketServer.pullRequestsCache = pullRequestCache;\n this.cache = pullRequestCache;\n this.updateItems();\n }\n\n private static async init(\n http: BitbucketServerHttp,\n projectKey: string,\n repo: string,\n ignorePrAuthor: boolean,\n author: string | null,\n ): Promise<BbsPrCache> {\n const res = new BbsPrCache(projectKey, repo, ignorePrAuthor, author);\n const isSynced = memCache.get<true | undefined>('bbs-pr-cache-synced');\n\n if (!isSynced) {\n await res.sync(http);\n memCache.set('bbs-pr-cache-synced', true);\n }\n\n return res;\n }\n\n private getPrs(): BbsPr[] {\n return this.items;\n }\n\n static async getPrs(\n http: BitbucketServerHttp,\n projectKey: string,\n repo: string,\n ignorePrAuthor: boolean,\n author: string,\n ): Promise<BbsPr[]> {\n const prCache = await BbsPrCache.init(\n http,\n projectKey,\n repo,\n ignorePrAuthor,\n author,\n );\n return prCache.getPrs();\n }\n\n private setPr(item: BbsPr): void {\n this.cache.items[item.number] = item;\n this.updateItems();\n }\n\n static async setPr(\n http: BitbucketServerHttp,\n projectKey: string,\n repo: string,\n ignorePrAuthor: boolean,\n author: string,\n item: BbsPr,\n ): Promise<void> {\n const prCache = await BbsPrCache.init(\n http,\n projectKey,\n repo,\n ignorePrAuthor,\n author,\n );\n prCache.setPr(item);\n }\n\n private reconcile(rawItems: BbsRestPr[]): boolean {\n logger.debug('reconciled');\n const { items } = this.cache;\n let { updatedDate } = this.cache;\n const cacheTime = updatedDate ? DateTime.fromMillis(updatedDate) : null;\n\n let needNextPage = true;\n\n for (const rawItem of rawItems) {\n const id = rawItem.id;\n\n const newItem = prInfo(rawItem);\n\n const oldItem = items[id];\n if (dequal(oldItem, newItem)) {\n needNextPage = false;\n continue;\n }\n\n items[id] = newItem;\n\n const itemTime = DateTime.fromMillis(rawItem.updatedDate);\n if (!cacheTime || itemTime > cacheTime) {\n updatedDate = rawItem.updatedDate;\n }\n }\n\n this.cache.updatedDate = updatedDate;\n\n return needNextPage;\n }\n\n private async sync(http: BitbucketServerHttp): Promise<BbsPrCache> {\n const searchParams: Record<string, string> = {\n state: 'ALL',\n limit: this.items.length ? '20' : '100',\n };\n if (!this.ignorePrAuthor && isString(this.author)) {\n searchParams['role.1'] = 'AUTHOR';\n searchParams['username.1'] = this.author;\n }\n let query: string | null = getQueryString(searchParams);\n\n while (query) {\n const res = await http.getJsonUnchecked<{\n nextPageStart: string;\n values: BbsRestPr[];\n }>(\n `./rest/api/1.0/projects/${this.projectKey}/repos/${this.repo}/pull-requests?${query}`,\n {\n memCache: false,\n },\n );\n\n const needNextPage = this.reconcile(res.body.values);\n if (!needNextPage) {\n break;\n }\n\n if (res.body.nextPageStart) {\n searchParams.start = res.body.nextPageStart.toString();\n } else {\n query = null;\n }\n }\n\n this.updateItems();\n\n return this;\n }\n\n /**\n * Ensure the pr cache starts with the most recent PRs.\n * JavaScript ensures that the cache is sorted by PR number.\n */\n private updateItems(): void {\n this.items = Object.values(this.cache.items).reverse();\n }\n}\n"]}
|
|
@@ -11,7 +11,7 @@ exports.parseModifier = parseModifier;
|
|
|
11
11
|
const tslib_1 = require("tslib");
|
|
12
12
|
// SEE for the reference https://github.com/renovatebot/renovate/blob/c3e9e572b225085448d94aa121c7ec81c14d3955/lib/platform/bitbucket/utils.js
|
|
13
13
|
const node_url_1 = require("node:url");
|
|
14
|
-
const is_1 =
|
|
14
|
+
const is_1 = require("@sindresorhus/is");
|
|
15
15
|
const error_messages_1 = require("../../../constants/error-messages");
|
|
16
16
|
const logger_1 = require("../../../logger");
|
|
17
17
|
const git = tslib_1.__importStar(require("../../../util/git"));
|
|
@@ -49,7 +49,7 @@ function getInvalidReviewers(err) {
|
|
|
49
49
|
if (error.exceptionName === exports.BITBUCKET_INVALID_REVIEWERS_EXCEPTION) {
|
|
50
50
|
invalidReviewers = invalidReviewers.concat(error.reviewerErrors
|
|
51
51
|
?.map(({ context }) => context)
|
|
52
|
-
.filter(is_1.
|
|
52
|
+
.filter(is_1.isNonEmptyString) ?? []);
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
return invalidReviewers;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/modules/platform/bitbucket-server/utils.ts"],"names":[],"mappings":";;;AAwBA,wBAWC;AAmBD,gEAQC;AAED,kDAcC;AAoCD,sCA2BC;AAED,8CAOC;AAED,gDAeC;AAED,sCAMC;;AA/KD,8IAA8I;AAC9I,uCAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../lib/modules/platform/bitbucket-server/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// SEE for the reference https://github.com/renovatebot/renovate/blob/c3e9e572b225085448d94aa121c7ec81c14d3955/lib/platform/bitbucket/utils.js\nimport { URL } from 'node:url';\nimport { isNonEmptyString } from '@sindresorhus/is';\nimport { CONFIG_GIT_URL_UNAVAILABLE } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport type { HostRule } from '../../../types';\nimport type { GitOptions, GitProtocol } from '../../../types/git';\nimport * as git from '../../../util/git';\nimport { regEx } from '../../../util/regex';\nimport { parseUrl } from '../../../util/url';\nimport { getPrBodyStruct } from '../pr-body';\nimport type { GitUrlOption } from '../types';\nimport type { BbsPr, BbsRestPr, BbsRestRepo, BitbucketError } from './types';\n\nexport const BITBUCKET_INVALID_REVIEWERS_EXCEPTION =\n 'com.atlassian.bitbucket.pull.InvalidPullRequestReviewersException';\n\n// https://docs.atlassian.com/bitbucket-server/rest/6.0.0/bitbucket-rest.html#idp250\nconst prStateMapping: any = {\n MERGED: 'merged',\n DECLINED: 'closed',\n OPEN: 'open',\n};\n\nexport function prInfo(pr: BbsRestPr): BbsPr {\n return {\n version: pr.version,\n number: pr.id,\n bodyStruct: getPrBodyStruct(pr.description),\n sourceBranch: pr.fromRef.displayId,\n targetBranch: pr.toRef.displayId,\n title: pr.title,\n state: prStateMapping[pr.state],\n createdAt: pr.createdDate,\n };\n}\n\nexport interface BitbucketCommitStatus {\n failed: number;\n inProgress: number;\n successful: number;\n}\n\nexport type BitbucketBranchState =\n | 'SUCCESSFUL'\n | 'FAILED'\n | 'INPROGRESS'\n | 'STOPPED';\n\nexport interface BitbucketStatus {\n key: string;\n state: BitbucketBranchState;\n}\n\nexport function isInvalidReviewersResponse(err: BitbucketError): boolean {\n const errors = err?.response?.body?.errors ?? [];\n return (\n errors.length > 0 &&\n errors.every(\n (error) => error.exceptionName === BITBUCKET_INVALID_REVIEWERS_EXCEPTION,\n )\n );\n}\n\nexport function getInvalidReviewers(err: BitbucketError): string[] {\n const errors = err?.response?.body?.errors ?? [];\n let invalidReviewers: string[] = [];\n for (const error of errors) {\n if (error.exceptionName === BITBUCKET_INVALID_REVIEWERS_EXCEPTION) {\n invalidReviewers = invalidReviewers.concat(\n error.reviewerErrors\n ?.map(({ context }) => context)\n .filter(isNonEmptyString) ?? [],\n );\n }\n }\n\n return invalidReviewers;\n}\n\nfunction generateUrlFromEndpoint(\n defaultEndpoint: string,\n opts: HostRule,\n repository: string,\n): string {\n const url = new URL(defaultEndpoint);\n const generatedUrl = git.getUrl({\n protocol: url.protocol as GitProtocol,\n // TODO: types (#22198)\n auth: `${opts.username}:${opts.password}`,\n host: `${url.host}${url.pathname}${\n /* v8 ignore start */\n url.pathname.endsWith('/') ? '' : '/'\n /* v8 ignore stop */\n }scm`,\n repository,\n });\n logger.debug(`Using generated endpoint URL: ${generatedUrl}`);\n return generatedUrl;\n}\n\nfunction injectAuth(url: string, opts: HostRule): string {\n const repoUrl = parseUrl(url)!;\n if (!repoUrl) {\n logger.debug(`Invalid url: ${url}`);\n throw new Error(CONFIG_GIT_URL_UNAVAILABLE);\n }\n if (!opts.token && opts.username && opts.password) {\n repoUrl.username = opts.username;\n repoUrl.password = opts.password;\n }\n return repoUrl.toString();\n}\n\nexport function getRepoGitUrl(\n repository: string,\n defaultEndpoint: string,\n gitUrl: GitUrlOption | undefined,\n info: BbsRestRepo,\n opts: HostRule,\n): string {\n if (gitUrl === 'ssh') {\n const sshUrl = info.links.clone?.find(({ name }) => name === 'ssh');\n if (sshUrl === undefined) {\n throw new Error(CONFIG_GIT_URL_UNAVAILABLE);\n }\n logger.debug(`Using ssh URL: ${sshUrl.href}`);\n return sshUrl.href;\n }\n let cloneUrl = info.links.clone?.find(({ name }) => name === 'http');\n if (cloneUrl) {\n // Inject auth into the API provided URL\n return injectAuth(cloneUrl.href, opts);\n }\n // Http access might be disabled, try to find ssh url in this case\n cloneUrl = info.links.clone?.find(({ name }) => name === 'ssh');\n if (gitUrl === 'endpoint' || !cloneUrl) {\n return generateUrlFromEndpoint(defaultEndpoint, opts, repository);\n }\n // SSH urls can be used directly\n return cloneUrl.href;\n}\n\nexport function getExtraCloneOpts(opts: HostRule): GitOptions {\n if (opts.token) {\n return {\n '-c': `http.extraHeader=Authorization: Bearer ${opts.token}`,\n };\n }\n return {};\n}\n\nexport function splitEscapedSpaces(str: string): string[] {\n const parts = str.split(' ');\n const result: string[] = [];\n let last: string | undefined;\n\n for (const part of parts) {\n if (last?.endsWith('\\\\\\\\')) {\n result[result.length - 1] = last.slice(0, -2) + ' ' + part;\n } else {\n result.push(part);\n }\n last = result.at(-1);\n }\n\n return result;\n}\n\nexport function parseModifier(value: string): number | null {\n const match = regEx('^random(?:\\\\((\\\\d+)\\\\))?$').exec(value);\n if (!match) {\n return null;\n }\n return parseInt(match[1] ?? '1');\n}\n"]}
|
|
@@ -18,7 +18,7 @@ exports.createPrApprovalRule = createPrApprovalRule;
|
|
|
18
18
|
exports.getCodeCommitUrl = getCodeCommitUrl;
|
|
19
19
|
const tslib_1 = require("tslib");
|
|
20
20
|
const client_codecommit_1 = require("@aws-sdk/client-codecommit");
|
|
21
|
-
const is_1 =
|
|
21
|
+
const is_1 = require("@sindresorhus/is");
|
|
22
22
|
const aws4 = tslib_1.__importStar(require("aws4"));
|
|
23
23
|
const error_messages_1 = require("../../../constants/error-messages");
|
|
24
24
|
const logger_1 = require("../../../logger");
|
|
@@ -205,7 +205,7 @@ function getCodeCommitUrl(repoMetadata, repoName) {
|
|
|
205
205
|
});
|
|
206
206
|
const dateTime = signer.getDateTime();
|
|
207
207
|
/* v8 ignore start */
|
|
208
|
-
if (!is_1.
|
|
208
|
+
if (!(0, is_1.isString)(dateTime)) {
|
|
209
209
|
throw new Error(error_messages_1.REPOSITORY_UNINITIATED);
|
|
210
210
|
} /* v8 ignore stop */
|
|
211
211
|
const token = `${dateTime}Z${signer.signature()}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codecommit-client.js","sourceRoot":"","sources":["../../../../lib/modules/platform/codecommit/codecommit-client.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n CreatePullRequestApprovalRuleInput,\n CreatePullRequestApprovalRuleOutput,\n CreatePullRequestInput,\n CreatePullRequestOutput,\n DeleteCommentContentInput,\n DeleteCommentContentOutput,\n GetCommentsForPullRequestInput,\n GetCommentsForPullRequestOutput,\n GetFileInput,\n GetFileOutput,\n GetPullRequestInput,\n GetPullRequestOutput,\n GetRepositoryInput,\n GetRepositoryOutput,\n ListPullRequestsInput,\n ListPullRequestsOutput,\n ListRepositoriesInput,\n ListRepositoriesOutput,\n PostCommentForPullRequestInput,\n PostCommentForPullRequestOutput,\n UpdateCommentInput,\n UpdateCommentOutput,\n UpdatePullRequestDescriptionInput,\n UpdatePullRequestDescriptionOutput,\n UpdatePullRequestStatusInput,\n UpdatePullRequestStatusOutput,\n UpdatePullRequestTitleInput,\n UpdatePullRequestTitleOutput,\n} from '@aws-sdk/client-codecommit';\nimport {\n CodeCommitClient,\n CreatePullRequestApprovalRuleCommand,\n CreatePullRequestCommand,\n DeleteCommentContentCommand,\n GetCommentsForPullRequestCommand,\n GetFileCommand,\n GetPullRequestCommand,\n GetRepositoryCommand,\n ListPullRequestsCommand,\n ListRepositoriesCommand,\n PostCommentForPullRequestCommand,\n PullRequestStatusEnum,\n UpdateCommentCommand,\n UpdatePullRequestDescriptionCommand,\n UpdatePullRequestStatusCommand,\n UpdatePullRequestTitleCommand,\n} from '@aws-sdk/client-codecommit';\nimport type { RepositoryMetadata } from '@aws-sdk/client-codecommit/dist-types/models/models_0';\nimport is from '@sindresorhus/is';\nimport * as aws4 from 'aws4';\nimport { REPOSITORY_UNINITIATED } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { getEnv } from '../../../util/env';\n\nlet codeCommitClient: CodeCommitClient;\n\nexport function buildCodeCommitClient(): void {\n if (!codeCommitClient) {\n codeCommitClient = new CodeCommitClient({});\n }\n\n /* v8 ignore start */\n if (!codeCommitClient) {\n throw new Error('Failed to initialize codecommit client');\n } /* v8 ignore stop */\n}\n\nexport async function deleteComment(\n commentId: string,\n): Promise<DeleteCommentContentOutput> {\n const input: DeleteCommentContentInput = {\n commentId,\n };\n const cmd = new DeleteCommentContentCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function getPrComments(\n pullRequestId: string,\n): Promise<GetCommentsForPullRequestOutput> {\n const input: GetCommentsForPullRequestInput = {\n pullRequestId,\n };\n const cmd = new GetCommentsForPullRequestCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function updateComment(\n commentId: string,\n content: string,\n): Promise<UpdateCommentOutput> {\n const input: UpdateCommentInput = {\n commentId,\n content,\n };\n const cmd = new UpdateCommentCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function createPrComment(\n pullRequestId: string,\n repositoryName: string | undefined,\n content: string,\n beforeCommitId: string,\n afterCommitId: string,\n): Promise<PostCommentForPullRequestOutput> {\n const input: PostCommentForPullRequestInput = {\n pullRequestId,\n repositoryName,\n content,\n afterCommitId,\n beforeCommitId,\n };\n const cmd = new PostCommentForPullRequestCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\n// export async function fastForwardMerge(\n// repositoryName: string,\n// sourceCommitSpecifier: string,\n// destinationReference: string\n// ): Promise<MergeBranchesByFastForwardOutput> {\n// const input: MergeBranchesByFastForwardInput = {\n// repositoryName,\n// sourceCommitSpecifier,\n// destinationCommitSpecifier: destinationReference,\n// targetBranch: destinationReference,\n// };\n// const cmd = new MergeBranchesByFastForwardCommand(input);\n// return await codeCommitClient.send(cmd);\n// }\n\n// export async function squashMerge(\n// repositoryName: string,\n// sourceCommitSpecifier: string,\n// destinationReference: string,\n// commitMessage: string | undefined\n// ): Promise<MergeBranchesBySquashOutput> {\n// const input: MergeBranchesBySquashInput = {\n// repositoryName,\n// sourceCommitSpecifier,\n// destinationCommitSpecifier: destinationReference,\n// targetBranch: destinationReference,\n// commitMessage,\n// };\n// const cmd = new MergeBranchesBySquashCommand(input);\n// return await codeCommitClient.send(cmd);\n// }\n\nexport async function updatePrStatus(\n pullRequestId: string,\n pullRequestStatus: PullRequestStatusEnum,\n): Promise<UpdatePullRequestStatusOutput> {\n const input: UpdatePullRequestStatusInput = {\n pullRequestId,\n pullRequestStatus,\n };\n const cmd = new UpdatePullRequestStatusCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function updatePrTitle(\n prNo: string,\n title: string,\n): Promise<UpdatePullRequestTitleOutput> {\n const input: UpdatePullRequestTitleInput = {\n pullRequestId: `${prNo}`,\n title,\n };\n const cmd = new UpdatePullRequestTitleCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function updatePrDescription(\n pullRequestId: string,\n description: string,\n): Promise<UpdatePullRequestDescriptionOutput> {\n const input: UpdatePullRequestDescriptionInput = {\n pullRequestId,\n description,\n };\n const cmd = new UpdatePullRequestDescriptionCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function createPr(\n title: string,\n description: string,\n sourceReference: string,\n destinationReference: string,\n repositoryName: string | undefined,\n): Promise<CreatePullRequestOutput> {\n const input: CreatePullRequestInput = {\n title,\n description,\n targets: [\n {\n sourceReference,\n destinationReference,\n repositoryName,\n },\n ],\n };\n const cmd = new CreatePullRequestCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function getFile(\n repositoryName: string | undefined,\n filePath: string,\n commitSpecifier: string | undefined,\n): Promise<GetFileOutput> {\n const input: GetFileInput = {\n repositoryName,\n filePath,\n commitSpecifier,\n };\n const cmd: GetFileCommand = new GetFileCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function listPullRequests(\n repositoryName: string,\n): Promise<ListPullRequestsOutput> {\n const input: ListPullRequestsInput = {\n repositoryName,\n pullRequestStatus: PullRequestStatusEnum.OPEN,\n };\n\n const cmd = new ListPullRequestsCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function getRepositoryInfo(\n repository: string,\n): Promise<GetRepositoryOutput> {\n const input: GetRepositoryInput = {\n repositoryName: `${repository}`,\n };\n const cmd = new GetRepositoryCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function getPr(\n pullRequestId: string,\n): Promise<GetPullRequestOutput | undefined> {\n const input: GetPullRequestInput = {\n pullRequestId,\n };\n const cmd = new GetPullRequestCommand(input);\n let res;\n try {\n res = await codeCommitClient.send(cmd);\n } catch (err) {\n logger.debug({ err }, 'failed to get PR using prId');\n }\n return res;\n}\n\nexport async function listRepositories(): Promise<ListRepositoriesOutput> {\n const input: ListRepositoriesInput = {};\n const cmd = new ListRepositoriesCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function createPrApprovalRule(\n pullRequestId: string,\n approvalRuleContent: string,\n): Promise<CreatePullRequestApprovalRuleOutput> {\n const input: CreatePullRequestApprovalRuleInput = {\n approvalRuleContent,\n approvalRuleName: 'Reviewers By Renovate',\n pullRequestId,\n };\n const cmd = new CreatePullRequestApprovalRuleCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport function getCodeCommitUrl(\n repoMetadata: RepositoryMetadata,\n repoName: string,\n): string {\n logger.debug('get code commit url');\n const env = getEnv();\n if (!env.AWS_ACCESS_KEY_ID || !env.AWS_SECRET_ACCESS_KEY) {\n if (repoMetadata.cloneUrlHttp) {\n return repoMetadata.cloneUrlHttp;\n }\n // shouldn't reach here, but just in case\n return `https://git-codecommit.${\n env.AWS_REGION ?? 'us-east-1'\n }.amazonaws.com/v1/repos/${repoName}`;\n }\n\n const signer = new aws4.RequestSigner({\n service: 'codecommit',\n host: `git-codecommit.${env.AWS_REGION ?? 'us-east-1'}.amazonaws.com`,\n method: 'GIT',\n path: `v1/repos/${repoName}`,\n });\n const dateTime = signer.getDateTime();\n\n /* v8 ignore start */\n if (!is.string(dateTime)) {\n throw new Error(REPOSITORY_UNINITIATED);\n } /* v8 ignore stop */\n\n const token = `${dateTime}Z${signer.signature()}`;\n\n let username = `${env.AWS_ACCESS_KEY_ID}${\n env.AWS_SESSION_TOKEN ? `%${env.AWS_SESSION_TOKEN}` : ''\n }`;\n\n // massaging username with the session token,\n /* v8 ignore start */\n if (username.includes('/')) {\n username = username.replace(/\\//g, '%2F');\n } /* v8 ignore stop */\n return `https://${username}:${token}@git-codecommit.${\n env.AWS_REGION ?? 'us-east-1'\n }.amazonaws.com/v1/repos/${repoName}`;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"codecommit-client.js","sourceRoot":"","sources":["../../../../lib/modules/platform/codecommit/codecommit-client.ts"],"names":[],"mappings":";;AAyDA,sDASC;AAED,sCAQC;AAED,sCAQC;AAED,sCAUC;AAED,0CAgBC;AAkCD,wCAUC;AAED,sCAUC;AAED,kDAUC;AAED,4BAoBC;AAED,0BAYC;AAED,4CAUC;AAED,8CAQC;AAED,sBAcC;AAED,4CAIC;AAED,oDAWC;AAED,4CA2CC;;AApSD,kEAiBoC;AAEpC,yCAA4C;AAC5C,mDAA6B;AAC7B,sEAA2E;AAC3E,4CAAyC;AACzC,2CAA2C;AAE3C,IAAI,gBAAkC,CAAC;AAEvC,SAAgB,qBAAqB;IACnC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,gBAAgB,GAAG,IAAI,oCAAgB,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC,CAAC,oBAAoB;AACxB,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,SAAiB;IAEjB,MAAM,KAAK,GAA8B;QACvC,SAAS;KACV,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,+CAA2B,CAAC,KAAK,CAAC,CAAC;IACnD,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,aAAqB;IAErB,MAAM,KAAK,GAAmC;QAC5C,aAAa;KACd,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,oDAAgC,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,SAAiB,EACjB,OAAe;IAEf,MAAM,KAAK,GAAuB;QAChC,SAAS;QACT,OAAO;KACR,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,wCAAoB,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,aAAqB,EACrB,cAAkC,EAClC,OAAe,EACf,cAAsB,EACtB,aAAqB;IAErB,MAAM,KAAK,GAAmC;QAC5C,aAAa;QACb,cAAc;QACd,OAAO;QACP,aAAa;QACb,cAAc;KACf,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,oDAAgC,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,0CAA0C;AAC1C,4BAA4B;AAC5B,mCAAmC;AACnC,iCAAiC;AACjC,iDAAiD;AACjD,qDAAqD;AACrD,sBAAsB;AACtB,6BAA6B;AAC7B,wDAAwD;AACxD,0CAA0C;AAC1C,OAAO;AACP,8DAA8D;AAC9D,6CAA6C;AAC7C,IAAI;AAEJ,qCAAqC;AACrC,4BAA4B;AAC5B,mCAAmC;AACnC,kCAAkC;AAClC,sCAAsC;AACtC,4CAA4C;AAC5C,gDAAgD;AAChD,sBAAsB;AACtB,6BAA6B;AAC7B,wDAAwD;AACxD,0CAA0C;AAC1C,qBAAqB;AACrB,OAAO;AACP,yDAAyD;AACzD,6CAA6C;AAC7C,IAAI;AAEG,KAAK,UAAU,cAAc,CAClC,aAAqB,EACrB,iBAAwC;IAExC,MAAM,KAAK,GAAiC;QAC1C,aAAa;QACb,iBAAiB;KAClB,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,kDAA8B,CAAC,KAAK,CAAC,CAAC;IACtD,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,IAAY,EACZ,KAAa;IAEb,MAAM,KAAK,GAAgC;QACzC,aAAa,EAAE,GAAG,IAAI,EAAE;QACxB,KAAK;KACN,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,iDAA6B,CAAC,KAAK,CAAC,CAAC;IACrD,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAEM,KAAK,UAAU,mBAAmB,CACvC,aAAqB,EACrB,WAAmB;IAEnB,MAAM,KAAK,GAAsC;QAC/C,aAAa;QACb,WAAW;KACZ,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,uDAAmC,CAAC,KAAK,CAAC,CAAC;IAC3D,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAEM,KAAK,UAAU,QAAQ,CAC5B,KAAa,EACb,WAAmB,EACnB,eAAuB,EACvB,oBAA4B,EAC5B,cAAkC;IAElC,MAAM,KAAK,GAA2B;QACpC,KAAK;QACL,WAAW;QACX,OAAO,EAAE;YACP;gBACE,eAAe;gBACf,oBAAoB;gBACpB,cAAc;aACf;SACF;KACF,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,4CAAwB,CAAC,KAAK,CAAC,CAAC;IAChD,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAEM,KAAK,UAAU,OAAO,CAC3B,cAAkC,EAClC,QAAgB,EAChB,eAAmC;IAEnC,MAAM,KAAK,GAAiB;QAC1B,cAAc;QACd,QAAQ;QACR,eAAe;KAChB,CAAC;IACF,MAAM,GAAG,GAAmB,IAAI,kCAAc,CAAC,KAAK,CAAC,CAAC;IACtD,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAEM,KAAK,UAAU,gBAAgB,CACpC,cAAsB;IAEtB,MAAM,KAAK,GAA0B;QACnC,cAAc;QACd,iBAAiB,EAAE,yCAAqB,CAAC,IAAI;KAC9C,CAAC;IAEF,MAAM,GAAG,GAAG,IAAI,2CAAuB,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,UAAkB;IAElB,MAAM,KAAK,GAAuB;QAChC,cAAc,EAAE,GAAG,UAAU,EAAE;KAChC,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,wCAAoB,CAAC,KAAK,CAAC,CAAC;IAC5C,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAEM,KAAK,UAAU,KAAK,CACzB,aAAqB;IAErB,MAAM,KAAK,GAAwB;QACjC,aAAa;KACd,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,yCAAqB,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,GAAG,CAAC;IACR,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,6BAA6B,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAEM,KAAK,UAAU,gBAAgB;IACpC,MAAM,KAAK,GAA0B,EAAE,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,2CAAuB,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACxC,aAAqB,EACrB,mBAA2B;IAE3B,MAAM,KAAK,GAAuC;QAChD,mBAAmB;QACnB,gBAAgB,EAAE,uBAAuB;QACzC,aAAa;KACd,CAAC;IACF,MAAM,GAAG,GAAG,IAAI,wDAAoC,CAAC,KAAK,CAAC,CAAC;IAC5D,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1C,CAAC;AAED,SAAgB,gBAAgB,CAC9B,YAAgC,EAChC,QAAgB;IAEhB,eAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACpC,MAAM,GAAG,GAAG,IAAA,YAAM,GAAE,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC;QACzD,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;YAC9B,OAAO,YAAY,CAAC,YAAY,CAAC;QACnC,CAAC;QACD,yCAAyC;QACzC,OAAO,0BACL,GAAG,CAAC,UAAU,IAAI,WACpB,2BAA2B,QAAQ,EAAE,CAAC;IACxC,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC;QACpC,OAAO,EAAE,YAAY;QACrB,IAAI,EAAE,kBAAkB,GAAG,CAAC,UAAU,IAAI,WAAW,gBAAgB;QACrE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,YAAY,QAAQ,EAAE;KAC7B,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAEtC,qBAAqB;IACrB,IAAI,CAAC,IAAA,aAAQ,EAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,uCAAsB,CAAC,CAAC;IAC1C,CAAC,CAAC,oBAAoB;IAEtB,MAAM,KAAK,GAAG,GAAG,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,EAAE,CAAC;IAElD,IAAI,QAAQ,GAAG,GAAG,GAAG,CAAC,iBAAiB,GACrC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EACxD,EAAE,CAAC;IAEH,6CAA6C;IAC7C,qBAAqB;IACrB,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC,oBAAoB;IACtB,OAAO,WAAW,QAAQ,IAAI,KAAK,mBACjC,GAAG,CAAC,UAAU,IAAI,WACpB,2BAA2B,QAAQ,EAAE,CAAC;AACxC,CAAC","sourcesContent":["import type {\n CreatePullRequestApprovalRuleInput,\n CreatePullRequestApprovalRuleOutput,\n CreatePullRequestInput,\n CreatePullRequestOutput,\n DeleteCommentContentInput,\n DeleteCommentContentOutput,\n GetCommentsForPullRequestInput,\n GetCommentsForPullRequestOutput,\n GetFileInput,\n GetFileOutput,\n GetPullRequestInput,\n GetPullRequestOutput,\n GetRepositoryInput,\n GetRepositoryOutput,\n ListPullRequestsInput,\n ListPullRequestsOutput,\n ListRepositoriesInput,\n ListRepositoriesOutput,\n PostCommentForPullRequestInput,\n PostCommentForPullRequestOutput,\n UpdateCommentInput,\n UpdateCommentOutput,\n UpdatePullRequestDescriptionInput,\n UpdatePullRequestDescriptionOutput,\n UpdatePullRequestStatusInput,\n UpdatePullRequestStatusOutput,\n UpdatePullRequestTitleInput,\n UpdatePullRequestTitleOutput,\n} from '@aws-sdk/client-codecommit';\nimport {\n CodeCommitClient,\n CreatePullRequestApprovalRuleCommand,\n CreatePullRequestCommand,\n DeleteCommentContentCommand,\n GetCommentsForPullRequestCommand,\n GetFileCommand,\n GetPullRequestCommand,\n GetRepositoryCommand,\n ListPullRequestsCommand,\n ListRepositoriesCommand,\n PostCommentForPullRequestCommand,\n PullRequestStatusEnum,\n UpdateCommentCommand,\n UpdatePullRequestDescriptionCommand,\n UpdatePullRequestStatusCommand,\n UpdatePullRequestTitleCommand,\n} from '@aws-sdk/client-codecommit';\nimport type { RepositoryMetadata } from '@aws-sdk/client-codecommit/dist-types/models/models_0';\nimport { isString } from '@sindresorhus/is';\nimport * as aws4 from 'aws4';\nimport { REPOSITORY_UNINITIATED } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { getEnv } from '../../../util/env';\n\nlet codeCommitClient: CodeCommitClient;\n\nexport function buildCodeCommitClient(): void {\n if (!codeCommitClient) {\n codeCommitClient = new CodeCommitClient({});\n }\n\n /* v8 ignore start */\n if (!codeCommitClient) {\n throw new Error('Failed to initialize codecommit client');\n } /* v8 ignore stop */\n}\n\nexport async function deleteComment(\n commentId: string,\n): Promise<DeleteCommentContentOutput> {\n const input: DeleteCommentContentInput = {\n commentId,\n };\n const cmd = new DeleteCommentContentCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function getPrComments(\n pullRequestId: string,\n): Promise<GetCommentsForPullRequestOutput> {\n const input: GetCommentsForPullRequestInput = {\n pullRequestId,\n };\n const cmd = new GetCommentsForPullRequestCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function updateComment(\n commentId: string,\n content: string,\n): Promise<UpdateCommentOutput> {\n const input: UpdateCommentInput = {\n commentId,\n content,\n };\n const cmd = new UpdateCommentCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function createPrComment(\n pullRequestId: string,\n repositoryName: string | undefined,\n content: string,\n beforeCommitId: string,\n afterCommitId: string,\n): Promise<PostCommentForPullRequestOutput> {\n const input: PostCommentForPullRequestInput = {\n pullRequestId,\n repositoryName,\n content,\n afterCommitId,\n beforeCommitId,\n };\n const cmd = new PostCommentForPullRequestCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\n// export async function fastForwardMerge(\n// repositoryName: string,\n// sourceCommitSpecifier: string,\n// destinationReference: string\n// ): Promise<MergeBranchesByFastForwardOutput> {\n// const input: MergeBranchesByFastForwardInput = {\n// repositoryName,\n// sourceCommitSpecifier,\n// destinationCommitSpecifier: destinationReference,\n// targetBranch: destinationReference,\n// };\n// const cmd = new MergeBranchesByFastForwardCommand(input);\n// return await codeCommitClient.send(cmd);\n// }\n\n// export async function squashMerge(\n// repositoryName: string,\n// sourceCommitSpecifier: string,\n// destinationReference: string,\n// commitMessage: string | undefined\n// ): Promise<MergeBranchesBySquashOutput> {\n// const input: MergeBranchesBySquashInput = {\n// repositoryName,\n// sourceCommitSpecifier,\n// destinationCommitSpecifier: destinationReference,\n// targetBranch: destinationReference,\n// commitMessage,\n// };\n// const cmd = new MergeBranchesBySquashCommand(input);\n// return await codeCommitClient.send(cmd);\n// }\n\nexport async function updatePrStatus(\n pullRequestId: string,\n pullRequestStatus: PullRequestStatusEnum,\n): Promise<UpdatePullRequestStatusOutput> {\n const input: UpdatePullRequestStatusInput = {\n pullRequestId,\n pullRequestStatus,\n };\n const cmd = new UpdatePullRequestStatusCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function updatePrTitle(\n prNo: string,\n title: string,\n): Promise<UpdatePullRequestTitleOutput> {\n const input: UpdatePullRequestTitleInput = {\n pullRequestId: `${prNo}`,\n title,\n };\n const cmd = new UpdatePullRequestTitleCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function updatePrDescription(\n pullRequestId: string,\n description: string,\n): Promise<UpdatePullRequestDescriptionOutput> {\n const input: UpdatePullRequestDescriptionInput = {\n pullRequestId,\n description,\n };\n const cmd = new UpdatePullRequestDescriptionCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function createPr(\n title: string,\n description: string,\n sourceReference: string,\n destinationReference: string,\n repositoryName: string | undefined,\n): Promise<CreatePullRequestOutput> {\n const input: CreatePullRequestInput = {\n title,\n description,\n targets: [\n {\n sourceReference,\n destinationReference,\n repositoryName,\n },\n ],\n };\n const cmd = new CreatePullRequestCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function getFile(\n repositoryName: string | undefined,\n filePath: string,\n commitSpecifier: string | undefined,\n): Promise<GetFileOutput> {\n const input: GetFileInput = {\n repositoryName,\n filePath,\n commitSpecifier,\n };\n const cmd: GetFileCommand = new GetFileCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function listPullRequests(\n repositoryName: string,\n): Promise<ListPullRequestsOutput> {\n const input: ListPullRequestsInput = {\n repositoryName,\n pullRequestStatus: PullRequestStatusEnum.OPEN,\n };\n\n const cmd = new ListPullRequestsCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function getRepositoryInfo(\n repository: string,\n): Promise<GetRepositoryOutput> {\n const input: GetRepositoryInput = {\n repositoryName: `${repository}`,\n };\n const cmd = new GetRepositoryCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function getPr(\n pullRequestId: string,\n): Promise<GetPullRequestOutput | undefined> {\n const input: GetPullRequestInput = {\n pullRequestId,\n };\n const cmd = new GetPullRequestCommand(input);\n let res;\n try {\n res = await codeCommitClient.send(cmd);\n } catch (err) {\n logger.debug({ err }, 'failed to get PR using prId');\n }\n return res;\n}\n\nexport async function listRepositories(): Promise<ListRepositoriesOutput> {\n const input: ListRepositoriesInput = {};\n const cmd = new ListRepositoriesCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport async function createPrApprovalRule(\n pullRequestId: string,\n approvalRuleContent: string,\n): Promise<CreatePullRequestApprovalRuleOutput> {\n const input: CreatePullRequestApprovalRuleInput = {\n approvalRuleContent,\n approvalRuleName: 'Reviewers By Renovate',\n pullRequestId,\n };\n const cmd = new CreatePullRequestApprovalRuleCommand(input);\n return await codeCommitClient.send(cmd);\n}\n\nexport function getCodeCommitUrl(\n repoMetadata: RepositoryMetadata,\n repoName: string,\n): string {\n logger.debug('get code commit url');\n const env = getEnv();\n if (!env.AWS_ACCESS_KEY_ID || !env.AWS_SECRET_ACCESS_KEY) {\n if (repoMetadata.cloneUrlHttp) {\n return repoMetadata.cloneUrlHttp;\n }\n // shouldn't reach here, but just in case\n return `https://git-codecommit.${\n env.AWS_REGION ?? 'us-east-1'\n }.amazonaws.com/v1/repos/${repoName}`;\n }\n\n const signer = new aws4.RequestSigner({\n service: 'codecommit',\n host: `git-codecommit.${env.AWS_REGION ?? 'us-east-1'}.amazonaws.com`,\n method: 'GIT',\n path: `v1/repos/${repoName}`,\n });\n const dateTime = signer.getDateTime();\n\n /* v8 ignore start */\n if (!isString(dateTime)) {\n throw new Error(REPOSITORY_UNINITIATED);\n } /* v8 ignore stop */\n\n const token = `${dateTime}Z${signer.signature()}`;\n\n let username = `${env.AWS_ACCESS_KEY_ID}${\n env.AWS_SESSION_TOKEN ? `%${env.AWS_SESSION_TOKEN}` : ''\n }`;\n\n // massaging username with the session token,\n /* v8 ignore start */\n if (username.includes('/')) {\n username = username.replace(/\\//g, '%2F');\n } /* v8 ignore stop */\n return `https://${username}:${token}@git-codecommit.${\n env.AWS_REGION ?? 'us-east-1'\n }.amazonaws.com/v1/repos/${repoName}`;\n}\n"]}
|
|
@@ -4,7 +4,7 @@ exports.updatePr = exports.setBranchStatus = exports.mergePr = exports.initRepo
|
|
|
4
4
|
exports.resetPlatform = resetPlatform;
|
|
5
5
|
exports.maxBodyLength = maxBodyLength;
|
|
6
6
|
const tslib_1 = require("tslib");
|
|
7
|
-
const is_1 =
|
|
7
|
+
const is_1 = require("@sindresorhus/is");
|
|
8
8
|
const semver_1 = tslib_1.__importDefault(require("semver"));
|
|
9
9
|
const error_messages_1 = require("../../../constants/error-messages");
|
|
10
10
|
const logger_1 = require("../../../logger");
|
|
@@ -356,7 +356,7 @@ const platform = {
|
|
|
356
356
|
},
|
|
357
357
|
async findPr({ branchName, prTitle: title, state = 'all', includeOtherAuthors, targetBranch, }) {
|
|
358
358
|
logger_1.logger.debug(`findPr(${branchName}, ${title}, ${state})`);
|
|
359
|
-
if (includeOtherAuthors && is_1.
|
|
359
|
+
if (includeOtherAuthors && (0, is_1.isString)(targetBranch)) {
|
|
360
360
|
// do not use pr cache as it only fetches prs created by the bot account
|
|
361
361
|
const pr = await helper.getPRByBranch(config.repository, targetBranch, branchName);
|
|
362
362
|
if (!pr) {
|
|
@@ -392,7 +392,7 @@ const platform = {
|
|
|
392
392
|
head,
|
|
393
393
|
title,
|
|
394
394
|
body,
|
|
395
|
-
labels: labels.filter(is_1.
|
|
395
|
+
labels: labels.filter(is_1.isNumber),
|
|
396
396
|
});
|
|
397
397
|
if (platformPrOptions?.usePlatformAutomerge) {
|
|
398
398
|
// Only Forgejo v10.0.0+ support delete_branch_after_merge.
|
|
@@ -478,7 +478,7 @@ const platform = {
|
|
|
478
478
|
* so a lookup is performed to fetch the details (including the ID) of each label.
|
|
479
479
|
*/
|
|
480
480
|
if (Array.isArray(labels)) {
|
|
481
|
-
prUpdateParams.labels = (await (0, promises_1.map)(labels, lookupLabelByName)).filter(is_1.
|
|
481
|
+
prUpdateParams.labels = (await (0, promises_1.map)(labels, lookupLabelByName)).filter(is_1.isNumber);
|
|
482
482
|
if (labels.length !== prUpdateParams.labels.length) {
|
|
483
483
|
logger_1.logger.warn('Some labels could not be looked up. Renovate may halt label updates assuming changes by others.');
|
|
484
484
|
}
|
|
@@ -555,7 +555,7 @@ const platform = {
|
|
|
555
555
|
issues = issueList.filter((i) => i.title === reuseTitle);
|
|
556
556
|
}
|
|
557
557
|
const labels = Array.isArray(labelNames)
|
|
558
|
-
? (await Promise.all(labelNames.map(lookupLabelByName))).filter(is_1.
|
|
558
|
+
? (await Promise.all(labelNames.map(lookupLabelByName))).filter(is_1.isNumber)
|
|
559
559
|
: undefined;
|
|
560
560
|
// Update any matching issues which currently exist
|
|
561
561
|
if (issues.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/platform/forgejo/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport semver from 'semver';\nimport {\n REPOSITORY_ACCESS_FORBIDDEN,\n REPOSITORY_ARCHIVED,\n REPOSITORY_BLOCKED,\n REPOSITORY_CHANGED,\n REPOSITORY_EMPTY,\n REPOSITORY_MIRRORED,\n} from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport type { BranchStatus } from '../../../types';\nimport { deduplicateArray } from '../../../util/array';\nimport { parseJson } from '../../../util/common';\nimport { getEnv } from '../../../util/env';\nimport * as git from '../../../util/git';\nimport { setBaseUrl } from '../../../util/http/forgejo';\nimport { map } from '../../../util/promises';\nimport { sanitize } from '../../../util/sanitize';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport { getPrBodyStruct, hashBody } from '../pr-body';\nimport type {\n AutodiscoverConfig,\n BranchStatusConfig,\n CreatePRConfig,\n EnsureCommentConfig,\n EnsureCommentRemovalConfig,\n EnsureIssueConfig,\n FindPRConfig,\n Issue,\n MergePRConfig,\n Platform,\n PlatformParams,\n PlatformResult,\n Pr,\n RepoParams,\n RepoResult,\n RepoSortMethod,\n SortMethod,\n UpdatePrConfig,\n} from '../types';\nimport { repoFingerprint } from '../util';\nimport { smartTruncate } from '../utils/pr-body';\nimport * as helper from './forgejo-helper';\nimport { forgejoHttp } from './forgejo-helper';\nimport { ForgejoPrCache } from './pr-cache';\nimport type {\n CombinedCommitStatus,\n Comment,\n Label,\n PRMergeMethod,\n PRUpdateParams,\n Repo,\n} from './types';\nimport {\n DRAFT_PREFIX,\n getMergeMethod,\n getRepoUrl,\n isAllowed,\n smartLinks,\n toRenovatePR,\n trimTrailingApiPath,\n usableRepo,\n} from './utils';\n\ninterface ForgejoRepoConfig {\n ignorePrAuthor: boolean;\n repository: string;\n mergeMethod: PRMergeMethod;\n\n issueList: Promise<Issue[]> | null;\n labelList: Promise<Label[]> | null;\n defaultBranch: string;\n cloneSubmodules: boolean;\n cloneSubmodulesFilter: string[] | undefined;\n hasIssuesEnabled: boolean;\n}\n\nexport const id = 'forgejo';\n\nconst defaults = {\n hostType: 'forgejo',\n endpoint: 'https://code.forgejo.org/',\n version: '0.0.0',\n};\n\nlet config: ForgejoRepoConfig = {} as any;\nlet botUserID: number;\nlet botUserName: string;\n\nexport function resetPlatform(): void {\n config = {} as any;\n botUserID = undefined as never;\n botUserName = undefined as never;\n defaults.hostType = 'forgejo';\n defaults.endpoint = 'https://code.forgejo.org/';\n defaults.version = '0.0.0';\n setBaseUrl(defaults.endpoint);\n}\n\nfunction toRenovateIssue(data: Issue): Issue {\n return {\n number: data.number,\n state: data.state,\n title: data.title,\n body: data.body,\n };\n}\n\nfunction matchesState(actual: string, expected: string): boolean {\n if (expected === 'all') {\n return true;\n }\n if (expected.startsWith('!')) {\n return actual !== expected.substring(1);\n }\n\n return actual === expected;\n}\n\nfunction findCommentByTopic(\n comments: Comment[],\n topic: string,\n): Comment | null {\n return comments.find((c) => c.body.startsWith(`### ${topic}\\n\\n`)) ?? null;\n}\n\nfunction findCommentByContent(\n comments: Comment[],\n content: string,\n): Comment | null {\n return comments.find((c) => c.body.trim() === content) ?? null;\n}\n\nfunction getLabelList(): Promise<Label[]> {\n if (config.labelList === null) {\n const repoLabels = helper\n .getRepoLabels(config.repository, {\n memCache: false,\n })\n .then((labels) => {\n logger.debug(`Retrieved ${labels.length} repo labels`);\n return labels;\n });\n\n const orgLabels = helper\n .getOrgLabels(config.repository.split('/')[0], {\n memCache: false,\n })\n .then((labels) => {\n logger.debug(`Retrieved ${labels.length} org labels`);\n return labels;\n })\n .catch((err) => {\n // Will fail if owner of repo is not org or Forgejo version < 1.12\n logger.debug(`Unable to fetch organization labels`);\n return [] as Label[];\n });\n\n config.labelList = Promise.all([repoLabels, orgLabels]).then((labels) =>\n ([] as Label[]).concat(...labels),\n );\n }\n\n return config.labelList;\n}\n\nasync function lookupLabelByName(name: string): Promise<number | null> {\n logger.debug(`lookupLabelByName(${name})`);\n const labelList = await getLabelList();\n return labelList.find((l) => l.name === name)?.id ?? null;\n}\n\ninterface FetchRepositoriesArgs {\n topic?: string;\n sort?: RepoSortMethod;\n order?: SortMethod;\n}\n\nasync function fetchRepositories({\n topic,\n sort,\n order,\n}: FetchRepositoriesArgs): Promise<string[]> {\n const repos = await helper.searchRepos({\n uid: botUserID,\n archived: false,\n ...(topic && {\n topic: true,\n q: topic,\n }),\n ...(sort && {\n sort,\n }),\n ...(order && {\n order,\n }),\n });\n return repos.filter(usableRepo).map((r) => r.full_name);\n}\n\nconst platform: Platform = {\n async initPlatform({\n endpoint,\n token,\n }: PlatformParams): Promise<PlatformResult> {\n if (!token) {\n throw new Error(\n 'Init: You must configure a Forgejo personal access token',\n );\n }\n\n if (endpoint) {\n let baseEndpoint = trimTrailingApiPath(endpoint);\n baseEndpoint = ensureTrailingSlash(baseEndpoint);\n defaults.endpoint = baseEndpoint;\n } else {\n logger.debug('Using default Forgejo endpoint: ' + defaults.endpoint);\n }\n setBaseUrl(defaults.endpoint);\n\n let gitAuthor: string;\n try {\n const user = await helper.getCurrentUser({ token });\n gitAuthor = `${user.full_name ?? user.username} <${user.email}>`;\n botUserID = user.id;\n botUserName = user.username;\n const env = getEnv();\n /* v8 ignore start: experimental feature */\n if (semver.valid(env.RENOVATE_X_PLATFORM_VERSION)) {\n defaults.version = env.RENOVATE_X_PLATFORM_VERSION!;\n } /* v8 ignore stop */ else {\n defaults.version = await helper.getVersion({ token });\n }\n\n logger.debug(`Forgejo version: ${defaults.version}`);\n } catch (err) {\n logger.debug(\n { err },\n 'Error authenticating with Forgejo. Check your token',\n );\n throw new Error('Init: Authentication failure');\n }\n\n return {\n endpoint: defaults.endpoint,\n gitAuthor,\n };\n },\n\n async getRawFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n ): Promise<string | null> {\n const repo = repoName ?? config.repository;\n const contents = await helper.getRepoContents(repo, fileName, branchOrTag);\n return contents.contentString ?? null;\n },\n\n async getJsonFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n ): Promise<any> {\n // TODO #22198\n const raw = await platform.getRawFile(fileName, repoName, branchOrTag);\n return parseJson(raw, fileName);\n },\n\n async initRepo({\n repository,\n cloneSubmodules,\n cloneSubmodulesFilter,\n gitUrl,\n ignorePrAuthor,\n }: RepoParams): Promise<RepoResult> {\n let repo: Repo;\n\n config = {} as any;\n config.repository = repository;\n config.cloneSubmodules = !!cloneSubmodules;\n config.cloneSubmodulesFilter = cloneSubmodulesFilter;\n config.ignorePrAuthor = !!ignorePrAuthor;\n\n // Try to fetch information about repository\n try {\n repo = await helper.getRepo(repository);\n } catch (err) {\n logger.debug({ err }, 'Unknown Forgejo initRepo error');\n throw err;\n }\n\n // Ensure appropriate repository state and permissions\n if (repo.archived) {\n logger.debug('Repository is archived - aborting renovation');\n throw new Error(REPOSITORY_ARCHIVED);\n }\n if (repo.mirror) {\n logger.debug('Repository is a mirror - aborting renovation');\n throw new Error(REPOSITORY_MIRRORED);\n }\n if (repo.permissions.pull === false || repo.permissions.push === false) {\n logger.debug(\n 'Repository does not permit pull or push - aborting renovation',\n );\n throw new Error(REPOSITORY_ACCESS_FORBIDDEN);\n }\n if (repo.empty) {\n logger.debug('Repository is empty - aborting renovation');\n throw new Error(REPOSITORY_EMPTY);\n }\n\n if (repo.has_pull_requests === false) {\n logger.debug('Repo has disabled pull requests - aborting renovation');\n throw new Error(REPOSITORY_BLOCKED);\n }\n\n // similar to forgejo behaviour- if default merge style is allowed, use this;\n // else fall back to predefined order. Order chosen to minimize commits - see\n // https://github.com/renovatebot/renovate/pull/37768 for discussion.\n const preferredOrder: PRMergeMethod[] = [\n repo.default_merge_style,\n 'fast-forward-only',\n 'squash',\n 'merge',\n 'rebase',\n 'rebase-merge',\n ];\n\n const mergeStyle = preferredOrder.find((style) => isAllowed(style, repo));\n\n if (mergeStyle) {\n config.mergeMethod = mergeStyle;\n } else {\n logger.debug(\n 'Repository has no allowed merge methods - aborting renovation',\n );\n throw new Error(REPOSITORY_BLOCKED);\n }\n\n // Determine author email and branches\n config.defaultBranch = repo.default_branch;\n logger.debug(`${repository} default branch = ${config.defaultBranch}`);\n\n const url = getRepoUrl(repo, gitUrl, defaults.endpoint);\n\n // Initialize Git storage\n await git.initRepo({\n ...config,\n url,\n });\n\n // Reset cached resources\n config.issueList = null;\n config.labelList = null;\n config.hasIssuesEnabled = !repo.external_tracker && repo.has_issues;\n\n return {\n defaultBranch: config.defaultBranch,\n isFork: !!repo.fork,\n repoFingerprint: repoFingerprint(repo.id, defaults.endpoint),\n };\n },\n\n async getRepos(config?: AutodiscoverConfig): Promise<string[]> {\n logger.debug('Auto-discovering Forgejo repositories');\n try {\n if (config?.topics) {\n logger.debug({ topics: config.topics }, 'Auto-discovering by topics');\n const fetchRepoArgs: FetchRepositoriesArgs[] = config.topics.map(\n (topic) => {\n return {\n topic,\n sort: config.sort,\n order: config.order,\n };\n },\n );\n const repos = await map(fetchRepoArgs, fetchRepositories);\n return deduplicateArray(repos.flat());\n } else if (config?.namespaces) {\n logger.debug(\n { namespaces: config.namespaces },\n 'Auto-discovering by organization',\n );\n const repos = await map(\n config.namespaces,\n async (organization: string) => {\n const orgRepos = await helper.orgListRepos(organization);\n return orgRepos\n .filter((r) => !r.mirror && !r.archived)\n .map((r) => r.full_name);\n },\n );\n return deduplicateArray(repos.flat());\n } else {\n return await fetchRepositories({\n sort: config?.sort,\n order: config?.order,\n });\n }\n } catch (err) {\n logger.error({ err }, 'Forgejo getRepos() error');\n throw err;\n }\n },\n\n async setBranchStatus({\n branchName,\n context,\n description,\n state,\n url: target_url,\n }: BranchStatusConfig): Promise<void> {\n try {\n // Create new status for branch commit\n const branchCommit = git.getBranchCommit(branchName);\n // TODO: check branchCommit\n\n await helper.createCommitStatus(config.repository, branchCommit!, {\n state: helper.renovateToForgejoStatusMapping[state] || 'pending',\n context,\n description,\n ...(target_url && { target_url }),\n });\n\n // Refresh caches by re-fetching commit status for branch\n await helper.getCombinedCommitStatus(config.repository, branchName, {\n memCache: false,\n });\n } catch (err) {\n logger.warn({ err }, 'Failed to set branch status');\n }\n },\n\n async getBranchStatus(\n branchName: string,\n internalChecksAsSuccess: boolean,\n ): Promise<BranchStatus> {\n let ccs: CombinedCommitStatus;\n try {\n ccs = await helper.getCombinedCommitStatus(config.repository, branchName);\n } catch (err) {\n if (err.statusCode === 404) {\n logger.debug(\n 'Received 404 when checking branch status, assuming branch deletion',\n );\n throw new Error(REPOSITORY_CHANGED);\n }\n\n logger.debug('Unknown error when checking branch status');\n throw err;\n }\n\n logger.debug({ ccs }, 'Branch status check result');\n if (\n !internalChecksAsSuccess &&\n ccs.worstStatus === 'success' &&\n ccs.statuses.every((status) => status.context?.startsWith('renovate/'))\n ) {\n logger.debug(\n 'Successful checks are all internal renovate/ checks, so returning \"pending\" branch status',\n );\n return 'yellow';\n }\n\n /* v8 ignore next */\n return helper.forgejoToRenovateStatusMapping[ccs.worstStatus] ?? 'yellow';\n },\n\n async getBranchStatusCheck(\n branchName: string,\n context: string,\n ): Promise<BranchStatus | null> {\n const ccs = await helper.getCombinedCommitStatus(\n config.repository,\n branchName,\n );\n const cs = ccs.statuses.find((s) => s.context === context);\n if (!cs) {\n return null;\n } // no status check exists\n const status = helper.forgejoToRenovateStatusMapping[cs.status];\n if (status) {\n return status;\n }\n logger.warn(\n { check: cs },\n 'Could not map Forgejo status value to Renovate status',\n );\n return 'yellow';\n },\n\n getPrList(): Promise<Pr[]> {\n return ForgejoPrCache.getPrs(\n forgejoHttp,\n config.repository,\n config.ignorePrAuthor,\n botUserName,\n );\n },\n\n async getPr(number: number): Promise<Pr | null> {\n // Search for pull request in cached list or attempt to query directly\n const prList = await platform.getPrList();\n let pr = prList.find((p) => p.number === number) ?? null;\n if (pr) {\n logger.debug('Returning from cached PRs');\n } else {\n logger.debug('PR not found in cached PRs - trying to fetch directly');\n const gpr = await helper.getPR(config.repository, number);\n pr = toRenovatePR(gpr, botUserName);\n\n // Add pull request to cache for further lookups / queries\n if (pr) {\n await ForgejoPrCache.setPr(\n forgejoHttp,\n config.repository,\n config.ignorePrAuthor,\n botUserName,\n pr,\n );\n }\n }\n\n // Abort and return null if no match was found\n if (!pr) {\n return null;\n }\n\n return pr;\n },\n\n async findPr({\n branchName,\n prTitle: title,\n state = 'all',\n includeOtherAuthors,\n targetBranch,\n }: FindPRConfig): Promise<Pr | null> {\n logger.debug(`findPr(${branchName}, ${title!}, ${state})`);\n if (includeOtherAuthors && is.string(targetBranch)) {\n // do not use pr cache as it only fetches prs created by the bot account\n const pr = await helper.getPRByBranch(\n config.repository,\n targetBranch,\n branchName,\n );\n if (!pr) {\n return null;\n }\n\n return toRenovatePR(pr, null);\n }\n const prList = await platform.getPrList();\n const pr = prList.find(\n (p) =>\n p.sourceRepo === config.repository &&\n p.sourceBranch === branchName &&\n matchesState(p.state, state) &&\n (!title || p.title === title),\n );\n\n if (pr) {\n logger.debug(`Found PR #${pr.number}`);\n }\n return pr ?? null;\n },\n\n async createPr({\n sourceBranch,\n targetBranch,\n prTitle,\n prBody: rawBody,\n labels: labelNames,\n platformPrOptions,\n draftPR,\n }: CreatePRConfig): Promise<Pr> {\n let title = prTitle;\n const base = targetBranch;\n const head = sourceBranch;\n const body = sanitize(rawBody);\n if (draftPR) {\n title = DRAFT_PREFIX + title;\n }\n\n logger.debug(`Creating pull request: ${title} (${head} => ${base})`);\n try {\n const labels = Array.isArray(labelNames)\n ? await map(labelNames, lookupLabelByName)\n : [];\n const gpr = await helper.createPR(config.repository, {\n base,\n head,\n title,\n body,\n labels: labels.filter(is.number),\n });\n\n if (platformPrOptions?.usePlatformAutomerge) {\n // Only Forgejo v10.0.0+ support delete_branch_after_merge.\n // This is required to not have undesired behavior when renovate finds existing branches on next run.\n // Codeberg usees git versioning like `11.0.1-99-c504062+gitea-1.22.0` so allow any version >= 10.0.0-0.\n if (semver.gte(defaults.version, '10.0.0-0')) {\n try {\n await helper.mergePR(config.repository, gpr.number, {\n Do:\n getMergeMethod(platformPrOptions?.automergeStrategy) ??\n config.mergeMethod,\n merge_when_checks_succeed: true,\n delete_branch_after_merge: true,\n });\n\n logger.debug(\n { prNumber: gpr.number },\n 'Forgejo-native automerge: success',\n );\n } catch (err) {\n logger.warn(\n { err, prNumber: gpr.number },\n 'Forgejo-native automerge: fail',\n );\n }\n } else {\n logger.debug(\n { prNumber: gpr.number },\n `Forgejo-native automerge: not supported on this version of Forgejo. Use 10.0.0 or newer.`,\n );\n }\n }\n\n const pr = toRenovatePR(gpr, botUserName);\n if (!pr) {\n throw new Error('Can not parse newly created Pull Request');\n }\n\n await ForgejoPrCache.setPr(\n forgejoHttp,\n config.repository,\n config.ignorePrAuthor,\n botUserName,\n pr,\n );\n return pr;\n } catch (err) {\n // When the user manually deletes a branch from Renovate, the PR remains but is no longer linked to any branch. In\n // the most recent versions of Forgejo, the PR gets automatically closed when that happens, but older versions do\n // not handle this properly and keep the PR open. As pushing a branch with the same name resurrects the PR, this\n // would cause a HTTP 409 conflict error, which we hereby gracefully handle.\n if (err.statusCode === 409) {\n logger.warn(\n { prTitle: title, sourceBranch },\n 'Attempting to gracefully recover from 409 Conflict response in createPr()',\n );\n\n // Refresh cached PR list and search for pull request with matching information\n ForgejoPrCache.forceSync();\n const pr = await platform.findPr({\n branchName: sourceBranch,\n state: 'open',\n });\n\n // If a valid PR was found, return and gracefully recover from the error. Otherwise, abort and throw error.\n if (pr?.bodyStruct) {\n if (pr.title !== title || pr.bodyStruct.hash !== hashBody(body)) {\n logger.debug(\n `Recovered from 409 Conflict, but PR for ${sourceBranch} is outdated. Updating...`,\n );\n await platform.updatePr({\n number: pr.number,\n prTitle: title,\n prBody: body,\n });\n pr.title = title;\n pr.bodyStruct = getPrBodyStruct(body);\n } else {\n logger.debug(\n `Recovered from 409 Conflict and PR for ${sourceBranch} is up-to-date`,\n );\n }\n\n return pr;\n }\n }\n\n throw err;\n }\n },\n\n async updatePr({\n number,\n prTitle,\n prBody: body,\n labels,\n state,\n targetBranch,\n }: UpdatePrConfig): Promise<void> {\n let title = prTitle;\n if ((await getPrList()).find((pr) => pr.number === number)?.isDraft) {\n title = DRAFT_PREFIX + title;\n }\n\n const prUpdateParams: PRUpdateParams = {\n title,\n ...(body && { body }),\n ...(state && { state }),\n };\n if (targetBranch) {\n prUpdateParams.base = targetBranch;\n }\n\n /**\n * Update PR labels.\n * In the Forgejo API, labels are replaced on each update if the field is present.\n * If the field is not present (i.e., undefined), labels aren't updated.\n * However, the labels array must contain label IDs instead of names,\n * so a lookup is performed to fetch the details (including the ID) of each label.\n */\n if (Array.isArray(labels)) {\n prUpdateParams.labels = (await map(labels, lookupLabelByName)).filter(\n is.number,\n );\n if (labels.length !== prUpdateParams.labels.length) {\n logger.warn(\n 'Some labels could not be looked up. Renovate may halt label updates assuming changes by others.',\n );\n }\n }\n\n const gpr = await helper.updatePR(\n config.repository,\n number,\n prUpdateParams,\n );\n const pr = toRenovatePR(gpr, botUserName);\n if (pr) {\n await ForgejoPrCache.setPr(\n forgejoHttp,\n config.repository,\n config.ignorePrAuthor,\n botUserName,\n pr,\n );\n }\n },\n\n async mergePr({ id, strategy }: MergePRConfig): Promise<boolean> {\n try {\n await helper.mergePR(config.repository, id, {\n Do: getMergeMethod(strategy) ?? config.mergeMethod,\n });\n return true;\n } catch (err) {\n logger.warn({ err, id }, 'Merging of PR failed');\n return false;\n }\n },\n\n getIssueList(): Promise<Issue[]> {\n if (config.hasIssuesEnabled === false) {\n return Promise.resolve([]);\n }\n config.issueList ??= helper\n .searchIssues(config.repository, { state: 'all' }, { memCache: false })\n .then((issues) => {\n const issueList = issues.map(toRenovateIssue);\n logger.debug(`Retrieved ${issueList.length} Issues`);\n return issueList;\n });\n\n return config.issueList;\n },\n\n async getIssue(number: number, memCache = true): Promise<Issue | null> {\n if (config.hasIssuesEnabled === false) {\n return null;\n }\n try {\n const body = (\n await helper.getIssue(config.repository, number, { memCache })\n ).body;\n return {\n number,\n body,\n };\n } catch (err) /* v8 ignore start */ {\n logger.debug({ err, number }, 'Error getting issue');\n return null;\n } /* v8 ignore stop */\n },\n\n async findIssue(title: string): Promise<Issue | null> {\n const issueList = await platform.getIssueList();\n const issue = issueList.find(\n (i) => i.state === 'open' && i.title === title,\n );\n\n if (!issue) {\n return null;\n }\n // TODO: types (#22198)\n logger.debug(`Found Issue #${issue.number!}`);\n // TODO #22198\n return getIssue!(issue.number!);\n },\n\n async ensureIssue({\n title,\n reuseTitle,\n body: content,\n labels: labelNames,\n shouldReOpen,\n once,\n }: EnsureIssueConfig): Promise<'updated' | 'created' | null> {\n logger.debug(`ensureIssue(${title})`);\n if (config.hasIssuesEnabled === false) {\n logger.info(\n 'Cannot ensure issue because issues are disabled in this repository',\n );\n return null;\n }\n try {\n const body = smartLinks(content);\n\n const issueList = await platform.getIssueList();\n let issues = issueList.filter((i) => i.title === title);\n if (!issues.length) {\n issues = issueList.filter((i) => i.title === reuseTitle);\n }\n\n const labels = Array.isArray(labelNames)\n ? (await Promise.all(labelNames.map(lookupLabelByName))).filter(\n is.number,\n )\n : undefined;\n\n // Update any matching issues which currently exist\n if (issues.length) {\n let activeIssue = issues.find((i) => i.state === 'open');\n\n // If no active issue was found, decide if it shall be skipped, re-opened or updated without state change\n if (!activeIssue) {\n if (once) {\n logger.debug('Issue already closed - skipping update');\n return null;\n }\n if (shouldReOpen) {\n logger.debug('Reopening previously closed Issue');\n }\n\n // Pick the last issue in the list as the active one\n activeIssue = issues[issues.length - 1];\n }\n\n // Close any duplicate issues\n for (const issue of issues) {\n if (issue.state === 'open' && issue.number !== activeIssue.number) {\n // TODO: types (#22198)\n logger.warn({ issueNo: issue.number! }, 'Closing duplicate issue');\n // TODO #22198\n await helper.closeIssue(config.repository, issue.number!);\n }\n }\n\n // Check if issue has already correct state\n if (\n activeIssue.title === title &&\n activeIssue.body === body &&\n activeIssue.state === 'open'\n ) {\n logger.debug(\n // TODO: types (#22198)\n `Issue #${activeIssue.number!} is open and up to date - nothing to do`,\n );\n return null;\n }\n\n if (shouldReOpen || activeIssue.state === 'open') {\n // Update issue body and re-open\n logger.debug(`Updating Issue #${activeIssue.number}`);\n const existingIssue = await helper.updateIssue(\n config.repository,\n // TODO #22198\n activeIssue.number!,\n {\n body,\n title,\n state: 'open',\n },\n );\n\n // Test whether the issues need to be updated\n const existingLabelIds = (existingIssue.labels ?? []).map(\n (label) => label.id,\n );\n if (\n labels &&\n (labels.length !== existingLabelIds.length ||\n labels.filter((labelId) => !existingLabelIds.includes(labelId))\n .length !== 0)\n ) {\n await helper.updateIssueLabels(\n config.repository,\n // TODO #22198\n activeIssue.number!,\n {\n labels,\n },\n );\n }\n\n return 'updated';\n }\n }\n\n // Create new issue and reset cache\n const issue = await helper.createIssue(config.repository, {\n body,\n title,\n labels,\n });\n logger.debug(`Created new Issue #${issue.number}`);\n config.issueList = null;\n\n return 'created';\n } catch (err) {\n logger.warn({ err }, 'Could not ensure issue');\n }\n\n return null;\n },\n\n async ensureIssueClosing(title: string): Promise<void> {\n logger.debug(`ensureIssueClosing(${title})`);\n if (config.hasIssuesEnabled === false) {\n return;\n }\n const issueList = await platform.getIssueList();\n for (const issue of issueList) {\n if (issue.state === 'open' && issue.title === title) {\n logger.debug(`Closing issue...issueNo: ${issue.number!}`);\n // TODO #22198\n await helper.closeIssue(config.repository, issue.number!);\n }\n }\n },\n\n async deleteLabel(issue: number, labelName: string): Promise<void> {\n logger.debug(`Deleting label ${labelName} from Issue #${issue}`);\n const label = await lookupLabelByName(labelName);\n if (label) {\n await helper.unassignLabel(config.repository, issue, label);\n } else {\n logger.warn({ issue, labelName }, 'Failed to lookup label for deletion');\n }\n },\n\n async ensureComment({\n number: issue,\n topic,\n content,\n }: EnsureCommentConfig): Promise<boolean> {\n try {\n let body = sanitize(content);\n const commentList = await helper.getComments(config.repository, issue);\n\n // Search comment by either topic or exact body\n let comment: Comment | null = null;\n if (topic) {\n comment = findCommentByTopic(commentList, topic);\n body = `### ${topic}\\n\\n${body}`;\n } else {\n comment = findCommentByContent(commentList, body);\n }\n\n // Create a new comment if no match has been found, otherwise update if necessary\n if (!comment) {\n comment = await helper.createComment(config.repository, issue, body);\n logger.info(\n { repository: config.repository, issue, comment: comment.id },\n 'Comment added',\n );\n } else if (comment.body === body) {\n logger.debug(`Comment #${comment.id} is already up-to-date`);\n } else {\n await helper.updateComment(config.repository, comment.id, body);\n logger.debug(\n { repository: config.repository, issue, comment: comment.id },\n 'Comment updated',\n );\n }\n\n return true;\n } catch (err) {\n logger.warn({ err, issue, subject: topic }, 'Error ensuring comment');\n return false;\n }\n },\n\n async ensureCommentRemoval(\n deleteConfig: EnsureCommentRemovalConfig,\n ): Promise<void> {\n const { number: issue } = deleteConfig;\n const key =\n deleteConfig.type === 'by-topic'\n ? deleteConfig.topic\n : deleteConfig.content;\n logger.debug(`Ensuring comment \"${key}\" in #${issue} is removed`);\n const commentList = await helper.getComments(config.repository, issue);\n\n let comment: Comment | null = null;\n if (deleteConfig.type === 'by-topic') {\n comment = findCommentByTopic(commentList, deleteConfig.topic);\n } else if (deleteConfig.type === 'by-content') {\n const body = sanitize(deleteConfig.content);\n comment = findCommentByContent(commentList, body);\n }\n\n // Abort and do nothing if no matching comment was found\n if (!comment) {\n return;\n }\n\n // Try to delete comment\n try {\n await helper.deleteComment(config.repository, comment.id);\n } catch (err) {\n logger.warn(\n { err, issue, config: deleteConfig },\n 'Error deleting comment',\n );\n }\n },\n\n async getBranchPr(branchName: string): Promise<Pr | null> {\n logger.debug(`getBranchPr(${branchName})`);\n const pr = await platform.findPr({ branchName, state: 'open' });\n return pr ? platform.getPr(pr.number) : null;\n },\n\n async addAssignees(number: number, assignees: string[]): Promise<void> {\n logger.debug(\n `Updating assignees '${assignees?.join(', ')}' on Issue #${number}`,\n );\n await helper.updateIssue(config.repository, number, {\n assignees,\n });\n },\n\n async addReviewers(number: number, reviewers: string[]): Promise<void> {\n logger.debug(`Adding reviewers '${reviewers?.join(', ')}' to #${number}`);\n try {\n const teamReviewers = new Set(reviewers.filter((r) => r.includes('/')));\n await helper.requestPrReviewers(config.repository, number, {\n reviewers: reviewers.filter((r) => !teamReviewers.has(r)),\n ...(teamReviewers.size && { team_reviewers: [...teamReviewers] }),\n });\n } catch (err) {\n logger.warn({ err, number, reviewers }, 'Failed to assign reviewer');\n }\n },\n\n massageMarkdown(prBody: string): string {\n return smartTruncate(smartLinks(prBody), maxBodyLength());\n },\n\n maxBodyLength,\n};\n\nexport function maxBodyLength(): number {\n return 1000000;\n}\n\n/* eslint-disable @typescript-eslint/unbound-method */\nexport const {\n addAssignees,\n addReviewers,\n createPr,\n deleteLabel,\n ensureComment,\n ensureCommentRemoval,\n ensureIssue,\n ensureIssueClosing,\n findIssue,\n findPr,\n getBranchPr,\n getBranchStatus,\n getBranchStatusCheck,\n getIssue,\n getRawFile,\n getJsonFile,\n getIssueList,\n getPr,\n massageMarkdown,\n getPrList,\n getRepos,\n initPlatform,\n initRepo,\n mergePr,\n setBranchStatus,\n updatePr,\n} = platform;\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/platform/forgejo/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNumber, isString } from '@sindresorhus/is';\nimport semver from 'semver';\nimport {\n REPOSITORY_ACCESS_FORBIDDEN,\n REPOSITORY_ARCHIVED,\n REPOSITORY_BLOCKED,\n REPOSITORY_CHANGED,\n REPOSITORY_EMPTY,\n REPOSITORY_MIRRORED,\n} from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport type { BranchStatus } from '../../../types';\nimport { deduplicateArray } from '../../../util/array';\nimport { parseJson } from '../../../util/common';\nimport { getEnv } from '../../../util/env';\nimport * as git from '../../../util/git';\nimport { setBaseUrl } from '../../../util/http/forgejo';\nimport { map } from '../../../util/promises';\nimport { sanitize } from '../../../util/sanitize';\nimport { ensureTrailingSlash } from '../../../util/url';\nimport { getPrBodyStruct, hashBody } from '../pr-body';\nimport type {\n AutodiscoverConfig,\n BranchStatusConfig,\n CreatePRConfig,\n EnsureCommentConfig,\n EnsureCommentRemovalConfig,\n EnsureIssueConfig,\n FindPRConfig,\n Issue,\n MergePRConfig,\n Platform,\n PlatformParams,\n PlatformResult,\n Pr,\n RepoParams,\n RepoResult,\n RepoSortMethod,\n SortMethod,\n UpdatePrConfig,\n} from '../types';\nimport { repoFingerprint } from '../util';\nimport { smartTruncate } from '../utils/pr-body';\nimport * as helper from './forgejo-helper';\nimport { forgejoHttp } from './forgejo-helper';\nimport { ForgejoPrCache } from './pr-cache';\nimport type {\n CombinedCommitStatus,\n Comment,\n Label,\n PRMergeMethod,\n PRUpdateParams,\n Repo,\n} from './types';\nimport {\n DRAFT_PREFIX,\n getMergeMethod,\n getRepoUrl,\n isAllowed,\n smartLinks,\n toRenovatePR,\n trimTrailingApiPath,\n usableRepo,\n} from './utils';\n\ninterface ForgejoRepoConfig {\n ignorePrAuthor: boolean;\n repository: string;\n mergeMethod: PRMergeMethod;\n\n issueList: Promise<Issue[]> | null;\n labelList: Promise<Label[]> | null;\n defaultBranch: string;\n cloneSubmodules: boolean;\n cloneSubmodulesFilter: string[] | undefined;\n hasIssuesEnabled: boolean;\n}\n\nexport const id = 'forgejo';\n\nconst defaults = {\n hostType: 'forgejo',\n endpoint: 'https://code.forgejo.org/',\n version: '0.0.0',\n};\n\nlet config: ForgejoRepoConfig = {} as any;\nlet botUserID: number;\nlet botUserName: string;\n\nexport function resetPlatform(): void {\n config = {} as any;\n botUserID = undefined as never;\n botUserName = undefined as never;\n defaults.hostType = 'forgejo';\n defaults.endpoint = 'https://code.forgejo.org/';\n defaults.version = '0.0.0';\n setBaseUrl(defaults.endpoint);\n}\n\nfunction toRenovateIssue(data: Issue): Issue {\n return {\n number: data.number,\n state: data.state,\n title: data.title,\n body: data.body,\n };\n}\n\nfunction matchesState(actual: string, expected: string): boolean {\n if (expected === 'all') {\n return true;\n }\n if (expected.startsWith('!')) {\n return actual !== expected.substring(1);\n }\n\n return actual === expected;\n}\n\nfunction findCommentByTopic(\n comments: Comment[],\n topic: string,\n): Comment | null {\n return comments.find((c) => c.body.startsWith(`### ${topic}\\n\\n`)) ?? null;\n}\n\nfunction findCommentByContent(\n comments: Comment[],\n content: string,\n): Comment | null {\n return comments.find((c) => c.body.trim() === content) ?? null;\n}\n\nfunction getLabelList(): Promise<Label[]> {\n if (config.labelList === null) {\n const repoLabels = helper\n .getRepoLabels(config.repository, {\n memCache: false,\n })\n .then((labels) => {\n logger.debug(`Retrieved ${labels.length} repo labels`);\n return labels;\n });\n\n const orgLabels = helper\n .getOrgLabels(config.repository.split('/')[0], {\n memCache: false,\n })\n .then((labels) => {\n logger.debug(`Retrieved ${labels.length} org labels`);\n return labels;\n })\n .catch((err) => {\n // Will fail if owner of repo is not org or Forgejo version < 1.12\n logger.debug(`Unable to fetch organization labels`);\n return [] as Label[];\n });\n\n config.labelList = Promise.all([repoLabels, orgLabels]).then((labels) =>\n ([] as Label[]).concat(...labels),\n );\n }\n\n return config.labelList;\n}\n\nasync function lookupLabelByName(name: string): Promise<number | null> {\n logger.debug(`lookupLabelByName(${name})`);\n const labelList = await getLabelList();\n return labelList.find((l) => l.name === name)?.id ?? null;\n}\n\ninterface FetchRepositoriesArgs {\n topic?: string;\n sort?: RepoSortMethod;\n order?: SortMethod;\n}\n\nasync function fetchRepositories({\n topic,\n sort,\n order,\n}: FetchRepositoriesArgs): Promise<string[]> {\n const repos = await helper.searchRepos({\n uid: botUserID,\n archived: false,\n ...(topic && {\n topic: true,\n q: topic,\n }),\n ...(sort && {\n sort,\n }),\n ...(order && {\n order,\n }),\n });\n return repos.filter(usableRepo).map((r) => r.full_name);\n}\n\nconst platform: Platform = {\n async initPlatform({\n endpoint,\n token,\n }: PlatformParams): Promise<PlatformResult> {\n if (!token) {\n throw new Error(\n 'Init: You must configure a Forgejo personal access token',\n );\n }\n\n if (endpoint) {\n let baseEndpoint = trimTrailingApiPath(endpoint);\n baseEndpoint = ensureTrailingSlash(baseEndpoint);\n defaults.endpoint = baseEndpoint;\n } else {\n logger.debug('Using default Forgejo endpoint: ' + defaults.endpoint);\n }\n setBaseUrl(defaults.endpoint);\n\n let gitAuthor: string;\n try {\n const user = await helper.getCurrentUser({ token });\n gitAuthor = `${user.full_name ?? user.username} <${user.email}>`;\n botUserID = user.id;\n botUserName = user.username;\n const env = getEnv();\n /* v8 ignore start: experimental feature */\n if (semver.valid(env.RENOVATE_X_PLATFORM_VERSION)) {\n defaults.version = env.RENOVATE_X_PLATFORM_VERSION!;\n } /* v8 ignore stop */ else {\n defaults.version = await helper.getVersion({ token });\n }\n\n logger.debug(`Forgejo version: ${defaults.version}`);\n } catch (err) {\n logger.debug(\n { err },\n 'Error authenticating with Forgejo. Check your token',\n );\n throw new Error('Init: Authentication failure');\n }\n\n return {\n endpoint: defaults.endpoint,\n gitAuthor,\n };\n },\n\n async getRawFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n ): Promise<string | null> {\n const repo = repoName ?? config.repository;\n const contents = await helper.getRepoContents(repo, fileName, branchOrTag);\n return contents.contentString ?? null;\n },\n\n async getJsonFile(\n fileName: string,\n repoName?: string,\n branchOrTag?: string,\n ): Promise<any> {\n // TODO #22198\n const raw = await platform.getRawFile(fileName, repoName, branchOrTag);\n return parseJson(raw, fileName);\n },\n\n async initRepo({\n repository,\n cloneSubmodules,\n cloneSubmodulesFilter,\n gitUrl,\n ignorePrAuthor,\n }: RepoParams): Promise<RepoResult> {\n let repo: Repo;\n\n config = {} as any;\n config.repository = repository;\n config.cloneSubmodules = !!cloneSubmodules;\n config.cloneSubmodulesFilter = cloneSubmodulesFilter;\n config.ignorePrAuthor = !!ignorePrAuthor;\n\n // Try to fetch information about repository\n try {\n repo = await helper.getRepo(repository);\n } catch (err) {\n logger.debug({ err }, 'Unknown Forgejo initRepo error');\n throw err;\n }\n\n // Ensure appropriate repository state and permissions\n if (repo.archived) {\n logger.debug('Repository is archived - aborting renovation');\n throw new Error(REPOSITORY_ARCHIVED);\n }\n if (repo.mirror) {\n logger.debug('Repository is a mirror - aborting renovation');\n throw new Error(REPOSITORY_MIRRORED);\n }\n if (repo.permissions.pull === false || repo.permissions.push === false) {\n logger.debug(\n 'Repository does not permit pull or push - aborting renovation',\n );\n throw new Error(REPOSITORY_ACCESS_FORBIDDEN);\n }\n if (repo.empty) {\n logger.debug('Repository is empty - aborting renovation');\n throw new Error(REPOSITORY_EMPTY);\n }\n\n if (repo.has_pull_requests === false) {\n logger.debug('Repo has disabled pull requests - aborting renovation');\n throw new Error(REPOSITORY_BLOCKED);\n }\n\n // similar to forgejo behaviour- if default merge style is allowed, use this;\n // else fall back to predefined order. Order chosen to minimize commits - see\n // https://github.com/renovatebot/renovate/pull/37768 for discussion.\n const preferredOrder: PRMergeMethod[] = [\n repo.default_merge_style,\n 'fast-forward-only',\n 'squash',\n 'merge',\n 'rebase',\n 'rebase-merge',\n ];\n\n const mergeStyle = preferredOrder.find((style) => isAllowed(style, repo));\n\n if (mergeStyle) {\n config.mergeMethod = mergeStyle;\n } else {\n logger.debug(\n 'Repository has no allowed merge methods - aborting renovation',\n );\n throw new Error(REPOSITORY_BLOCKED);\n }\n\n // Determine author email and branches\n config.defaultBranch = repo.default_branch;\n logger.debug(`${repository} default branch = ${config.defaultBranch}`);\n\n const url = getRepoUrl(repo, gitUrl, defaults.endpoint);\n\n // Initialize Git storage\n await git.initRepo({\n ...config,\n url,\n });\n\n // Reset cached resources\n config.issueList = null;\n config.labelList = null;\n config.hasIssuesEnabled = !repo.external_tracker && repo.has_issues;\n\n return {\n defaultBranch: config.defaultBranch,\n isFork: !!repo.fork,\n repoFingerprint: repoFingerprint(repo.id, defaults.endpoint),\n };\n },\n\n async getRepos(config?: AutodiscoverConfig): Promise<string[]> {\n logger.debug('Auto-discovering Forgejo repositories');\n try {\n if (config?.topics) {\n logger.debug({ topics: config.topics }, 'Auto-discovering by topics');\n const fetchRepoArgs: FetchRepositoriesArgs[] = config.topics.map(\n (topic) => {\n return {\n topic,\n sort: config.sort,\n order: config.order,\n };\n },\n );\n const repos = await map(fetchRepoArgs, fetchRepositories);\n return deduplicateArray(repos.flat());\n } else if (config?.namespaces) {\n logger.debug(\n { namespaces: config.namespaces },\n 'Auto-discovering by organization',\n );\n const repos = await map(\n config.namespaces,\n async (organization: string) => {\n const orgRepos = await helper.orgListRepos(organization);\n return orgRepos\n .filter((r) => !r.mirror && !r.archived)\n .map((r) => r.full_name);\n },\n );\n return deduplicateArray(repos.flat());\n } else {\n return await fetchRepositories({\n sort: config?.sort,\n order: config?.order,\n });\n }\n } catch (err) {\n logger.error({ err }, 'Forgejo getRepos() error');\n throw err;\n }\n },\n\n async setBranchStatus({\n branchName,\n context,\n description,\n state,\n url: target_url,\n }: BranchStatusConfig): Promise<void> {\n try {\n // Create new status for branch commit\n const branchCommit = git.getBranchCommit(branchName);\n // TODO: check branchCommit\n\n await helper.createCommitStatus(config.repository, branchCommit!, {\n state: helper.renovateToForgejoStatusMapping[state] || 'pending',\n context,\n description,\n ...(target_url && { target_url }),\n });\n\n // Refresh caches by re-fetching commit status for branch\n await helper.getCombinedCommitStatus(config.repository, branchName, {\n memCache: false,\n });\n } catch (err) {\n logger.warn({ err }, 'Failed to set branch status');\n }\n },\n\n async getBranchStatus(\n branchName: string,\n internalChecksAsSuccess: boolean,\n ): Promise<BranchStatus> {\n let ccs: CombinedCommitStatus;\n try {\n ccs = await helper.getCombinedCommitStatus(config.repository, branchName);\n } catch (err) {\n if (err.statusCode === 404) {\n logger.debug(\n 'Received 404 when checking branch status, assuming branch deletion',\n );\n throw new Error(REPOSITORY_CHANGED);\n }\n\n logger.debug('Unknown error when checking branch status');\n throw err;\n }\n\n logger.debug({ ccs }, 'Branch status check result');\n if (\n !internalChecksAsSuccess &&\n ccs.worstStatus === 'success' &&\n ccs.statuses.every((status) => status.context?.startsWith('renovate/'))\n ) {\n logger.debug(\n 'Successful checks are all internal renovate/ checks, so returning \"pending\" branch status',\n );\n return 'yellow';\n }\n\n /* v8 ignore next */\n return helper.forgejoToRenovateStatusMapping[ccs.worstStatus] ?? 'yellow';\n },\n\n async getBranchStatusCheck(\n branchName: string,\n context: string,\n ): Promise<BranchStatus | null> {\n const ccs = await helper.getCombinedCommitStatus(\n config.repository,\n branchName,\n );\n const cs = ccs.statuses.find((s) => s.context === context);\n if (!cs) {\n return null;\n } // no status check exists\n const status = helper.forgejoToRenovateStatusMapping[cs.status];\n if (status) {\n return status;\n }\n logger.warn(\n { check: cs },\n 'Could not map Forgejo status value to Renovate status',\n );\n return 'yellow';\n },\n\n getPrList(): Promise<Pr[]> {\n return ForgejoPrCache.getPrs(\n forgejoHttp,\n config.repository,\n config.ignorePrAuthor,\n botUserName,\n );\n },\n\n async getPr(number: number): Promise<Pr | null> {\n // Search for pull request in cached list or attempt to query directly\n const prList = await platform.getPrList();\n let pr = prList.find((p) => p.number === number) ?? null;\n if (pr) {\n logger.debug('Returning from cached PRs');\n } else {\n logger.debug('PR not found in cached PRs - trying to fetch directly');\n const gpr = await helper.getPR(config.repository, number);\n pr = toRenovatePR(gpr, botUserName);\n\n // Add pull request to cache for further lookups / queries\n if (pr) {\n await ForgejoPrCache.setPr(\n forgejoHttp,\n config.repository,\n config.ignorePrAuthor,\n botUserName,\n pr,\n );\n }\n }\n\n // Abort and return null if no match was found\n if (!pr) {\n return null;\n }\n\n return pr;\n },\n\n async findPr({\n branchName,\n prTitle: title,\n state = 'all',\n includeOtherAuthors,\n targetBranch,\n }: FindPRConfig): Promise<Pr | null> {\n logger.debug(`findPr(${branchName}, ${title!}, ${state})`);\n if (includeOtherAuthors && isString(targetBranch)) {\n // do not use pr cache as it only fetches prs created by the bot account\n const pr = await helper.getPRByBranch(\n config.repository,\n targetBranch,\n branchName,\n );\n if (!pr) {\n return null;\n }\n\n return toRenovatePR(pr, null);\n }\n const prList = await platform.getPrList();\n const pr = prList.find(\n (p) =>\n p.sourceRepo === config.repository &&\n p.sourceBranch === branchName &&\n matchesState(p.state, state) &&\n (!title || p.title === title),\n );\n\n if (pr) {\n logger.debug(`Found PR #${pr.number}`);\n }\n return pr ?? null;\n },\n\n async createPr({\n sourceBranch,\n targetBranch,\n prTitle,\n prBody: rawBody,\n labels: labelNames,\n platformPrOptions,\n draftPR,\n }: CreatePRConfig): Promise<Pr> {\n let title = prTitle;\n const base = targetBranch;\n const head = sourceBranch;\n const body = sanitize(rawBody);\n if (draftPR) {\n title = DRAFT_PREFIX + title;\n }\n\n logger.debug(`Creating pull request: ${title} (${head} => ${base})`);\n try {\n const labels = Array.isArray(labelNames)\n ? await map(labelNames, lookupLabelByName)\n : [];\n const gpr = await helper.createPR(config.repository, {\n base,\n head,\n title,\n body,\n labels: labels.filter(isNumber),\n });\n\n if (platformPrOptions?.usePlatformAutomerge) {\n // Only Forgejo v10.0.0+ support delete_branch_after_merge.\n // This is required to not have undesired behavior when renovate finds existing branches on next run.\n // Codeberg usees git versioning like `11.0.1-99-c504062+gitea-1.22.0` so allow any version >= 10.0.0-0.\n if (semver.gte(defaults.version, '10.0.0-0')) {\n try {\n await helper.mergePR(config.repository, gpr.number, {\n Do:\n getMergeMethod(platformPrOptions?.automergeStrategy) ??\n config.mergeMethod,\n merge_when_checks_succeed: true,\n delete_branch_after_merge: true,\n });\n\n logger.debug(\n { prNumber: gpr.number },\n 'Forgejo-native automerge: success',\n );\n } catch (err) {\n logger.warn(\n { err, prNumber: gpr.number },\n 'Forgejo-native automerge: fail',\n );\n }\n } else {\n logger.debug(\n { prNumber: gpr.number },\n `Forgejo-native automerge: not supported on this version of Forgejo. Use 10.0.0 or newer.`,\n );\n }\n }\n\n const pr = toRenovatePR(gpr, botUserName);\n if (!pr) {\n throw new Error('Can not parse newly created Pull Request');\n }\n\n await ForgejoPrCache.setPr(\n forgejoHttp,\n config.repository,\n config.ignorePrAuthor,\n botUserName,\n pr,\n );\n return pr;\n } catch (err) {\n // When the user manually deletes a branch from Renovate, the PR remains but is no longer linked to any branch. In\n // the most recent versions of Forgejo, the PR gets automatically closed when that happens, but older versions do\n // not handle this properly and keep the PR open. As pushing a branch with the same name resurrects the PR, this\n // would cause a HTTP 409 conflict error, which we hereby gracefully handle.\n if (err.statusCode === 409) {\n logger.warn(\n { prTitle: title, sourceBranch },\n 'Attempting to gracefully recover from 409 Conflict response in createPr()',\n );\n\n // Refresh cached PR list and search for pull request with matching information\n ForgejoPrCache.forceSync();\n const pr = await platform.findPr({\n branchName: sourceBranch,\n state: 'open',\n });\n\n // If a valid PR was found, return and gracefully recover from the error. Otherwise, abort and throw error.\n if (pr?.bodyStruct) {\n if (pr.title !== title || pr.bodyStruct.hash !== hashBody(body)) {\n logger.debug(\n `Recovered from 409 Conflict, but PR for ${sourceBranch} is outdated. Updating...`,\n );\n await platform.updatePr({\n number: pr.number,\n prTitle: title,\n prBody: body,\n });\n pr.title = title;\n pr.bodyStruct = getPrBodyStruct(body);\n } else {\n logger.debug(\n `Recovered from 409 Conflict and PR for ${sourceBranch} is up-to-date`,\n );\n }\n\n return pr;\n }\n }\n\n throw err;\n }\n },\n\n async updatePr({\n number,\n prTitle,\n prBody: body,\n labels,\n state,\n targetBranch,\n }: UpdatePrConfig): Promise<void> {\n let title = prTitle;\n if ((await getPrList()).find((pr) => pr.number === number)?.isDraft) {\n title = DRAFT_PREFIX + title;\n }\n\n const prUpdateParams: PRUpdateParams = {\n title,\n ...(body && { body }),\n ...(state && { state }),\n };\n if (targetBranch) {\n prUpdateParams.base = targetBranch;\n }\n\n /**\n * Update PR labels.\n * In the Forgejo API, labels are replaced on each update if the field is present.\n * If the field is not present (i.e., undefined), labels aren't updated.\n * However, the labels array must contain label IDs instead of names,\n * so a lookup is performed to fetch the details (including the ID) of each label.\n */\n if (Array.isArray(labels)) {\n prUpdateParams.labels = (await map(labels, lookupLabelByName)).filter(\n isNumber,\n );\n if (labels.length !== prUpdateParams.labels.length) {\n logger.warn(\n 'Some labels could not be looked up. Renovate may halt label updates assuming changes by others.',\n );\n }\n }\n\n const gpr = await helper.updatePR(\n config.repository,\n number,\n prUpdateParams,\n );\n const pr = toRenovatePR(gpr, botUserName);\n if (pr) {\n await ForgejoPrCache.setPr(\n forgejoHttp,\n config.repository,\n config.ignorePrAuthor,\n botUserName,\n pr,\n );\n }\n },\n\n async mergePr({ id, strategy }: MergePRConfig): Promise<boolean> {\n try {\n await helper.mergePR(config.repository, id, {\n Do: getMergeMethod(strategy) ?? config.mergeMethod,\n });\n return true;\n } catch (err) {\n logger.warn({ err, id }, 'Merging of PR failed');\n return false;\n }\n },\n\n getIssueList(): Promise<Issue[]> {\n if (config.hasIssuesEnabled === false) {\n return Promise.resolve([]);\n }\n config.issueList ??= helper\n .searchIssues(config.repository, { state: 'all' }, { memCache: false })\n .then((issues) => {\n const issueList = issues.map(toRenovateIssue);\n logger.debug(`Retrieved ${issueList.length} Issues`);\n return issueList;\n });\n\n return config.issueList;\n },\n\n async getIssue(number: number, memCache = true): Promise<Issue | null> {\n if (config.hasIssuesEnabled === false) {\n return null;\n }\n try {\n const body = (\n await helper.getIssue(config.repository, number, { memCache })\n ).body;\n return {\n number,\n body,\n };\n } catch (err) /* v8 ignore start */ {\n logger.debug({ err, number }, 'Error getting issue');\n return null;\n } /* v8 ignore stop */\n },\n\n async findIssue(title: string): Promise<Issue | null> {\n const issueList = await platform.getIssueList();\n const issue = issueList.find(\n (i) => i.state === 'open' && i.title === title,\n );\n\n if (!issue) {\n return null;\n }\n // TODO: types (#22198)\n logger.debug(`Found Issue #${issue.number!}`);\n // TODO #22198\n return getIssue!(issue.number!);\n },\n\n async ensureIssue({\n title,\n reuseTitle,\n body: content,\n labels: labelNames,\n shouldReOpen,\n once,\n }: EnsureIssueConfig): Promise<'updated' | 'created' | null> {\n logger.debug(`ensureIssue(${title})`);\n if (config.hasIssuesEnabled === false) {\n logger.info(\n 'Cannot ensure issue because issues are disabled in this repository',\n );\n return null;\n }\n try {\n const body = smartLinks(content);\n\n const issueList = await platform.getIssueList();\n let issues = issueList.filter((i) => i.title === title);\n if (!issues.length) {\n issues = issueList.filter((i) => i.title === reuseTitle);\n }\n\n const labels = Array.isArray(labelNames)\n ? (await Promise.all(labelNames.map(lookupLabelByName))).filter(\n isNumber,\n )\n : undefined;\n\n // Update any matching issues which currently exist\n if (issues.length) {\n let activeIssue = issues.find((i) => i.state === 'open');\n\n // If no active issue was found, decide if it shall be skipped, re-opened or updated without state change\n if (!activeIssue) {\n if (once) {\n logger.debug('Issue already closed - skipping update');\n return null;\n }\n if (shouldReOpen) {\n logger.debug('Reopening previously closed Issue');\n }\n\n // Pick the last issue in the list as the active one\n activeIssue = issues[issues.length - 1];\n }\n\n // Close any duplicate issues\n for (const issue of issues) {\n if (issue.state === 'open' && issue.number !== activeIssue.number) {\n // TODO: types (#22198)\n logger.warn({ issueNo: issue.number! }, 'Closing duplicate issue');\n // TODO #22198\n await helper.closeIssue(config.repository, issue.number!);\n }\n }\n\n // Check if issue has already correct state\n if (\n activeIssue.title === title &&\n activeIssue.body === body &&\n activeIssue.state === 'open'\n ) {\n logger.debug(\n // TODO: types (#22198)\n `Issue #${activeIssue.number!} is open and up to date - nothing to do`,\n );\n return null;\n }\n\n if (shouldReOpen || activeIssue.state === 'open') {\n // Update issue body and re-open\n logger.debug(`Updating Issue #${activeIssue.number}`);\n const existingIssue = await helper.updateIssue(\n config.repository,\n // TODO #22198\n activeIssue.number!,\n {\n body,\n title,\n state: 'open',\n },\n );\n\n // Test whether the issues need to be updated\n const existingLabelIds = (existingIssue.labels ?? []).map(\n (label) => label.id,\n );\n if (\n labels &&\n (labels.length !== existingLabelIds.length ||\n labels.filter((labelId) => !existingLabelIds.includes(labelId))\n .length !== 0)\n ) {\n await helper.updateIssueLabels(\n config.repository,\n // TODO #22198\n activeIssue.number!,\n {\n labels,\n },\n );\n }\n\n return 'updated';\n }\n }\n\n // Create new issue and reset cache\n const issue = await helper.createIssue(config.repository, {\n body,\n title,\n labels,\n });\n logger.debug(`Created new Issue #${issue.number}`);\n config.issueList = null;\n\n return 'created';\n } catch (err) {\n logger.warn({ err }, 'Could not ensure issue');\n }\n\n return null;\n },\n\n async ensureIssueClosing(title: string): Promise<void> {\n logger.debug(`ensureIssueClosing(${title})`);\n if (config.hasIssuesEnabled === false) {\n return;\n }\n const issueList = await platform.getIssueList();\n for (const issue of issueList) {\n if (issue.state === 'open' && issue.title === title) {\n logger.debug(`Closing issue...issueNo: ${issue.number!}`);\n // TODO #22198\n await helper.closeIssue(config.repository, issue.number!);\n }\n }\n },\n\n async deleteLabel(issue: number, labelName: string): Promise<void> {\n logger.debug(`Deleting label ${labelName} from Issue #${issue}`);\n const label = await lookupLabelByName(labelName);\n if (label) {\n await helper.unassignLabel(config.repository, issue, label);\n } else {\n logger.warn({ issue, labelName }, 'Failed to lookup label for deletion');\n }\n },\n\n async ensureComment({\n number: issue,\n topic,\n content,\n }: EnsureCommentConfig): Promise<boolean> {\n try {\n let body = sanitize(content);\n const commentList = await helper.getComments(config.repository, issue);\n\n // Search comment by either topic or exact body\n let comment: Comment | null = null;\n if (topic) {\n comment = findCommentByTopic(commentList, topic);\n body = `### ${topic}\\n\\n${body}`;\n } else {\n comment = findCommentByContent(commentList, body);\n }\n\n // Create a new comment if no match has been found, otherwise update if necessary\n if (!comment) {\n comment = await helper.createComment(config.repository, issue, body);\n logger.info(\n { repository: config.repository, issue, comment: comment.id },\n 'Comment added',\n );\n } else if (comment.body === body) {\n logger.debug(`Comment #${comment.id} is already up-to-date`);\n } else {\n await helper.updateComment(config.repository, comment.id, body);\n logger.debug(\n { repository: config.repository, issue, comment: comment.id },\n 'Comment updated',\n );\n }\n\n return true;\n } catch (err) {\n logger.warn({ err, issue, subject: topic }, 'Error ensuring comment');\n return false;\n }\n },\n\n async ensureCommentRemoval(\n deleteConfig: EnsureCommentRemovalConfig,\n ): Promise<void> {\n const { number: issue } = deleteConfig;\n const key =\n deleteConfig.type === 'by-topic'\n ? deleteConfig.topic\n : deleteConfig.content;\n logger.debug(`Ensuring comment \"${key}\" in #${issue} is removed`);\n const commentList = await helper.getComments(config.repository, issue);\n\n let comment: Comment | null = null;\n if (deleteConfig.type === 'by-topic') {\n comment = findCommentByTopic(commentList, deleteConfig.topic);\n } else if (deleteConfig.type === 'by-content') {\n const body = sanitize(deleteConfig.content);\n comment = findCommentByContent(commentList, body);\n }\n\n // Abort and do nothing if no matching comment was found\n if (!comment) {\n return;\n }\n\n // Try to delete comment\n try {\n await helper.deleteComment(config.repository, comment.id);\n } catch (err) {\n logger.warn(\n { err, issue, config: deleteConfig },\n 'Error deleting comment',\n );\n }\n },\n\n async getBranchPr(branchName: string): Promise<Pr | null> {\n logger.debug(`getBranchPr(${branchName})`);\n const pr = await platform.findPr({ branchName, state: 'open' });\n return pr ? platform.getPr(pr.number) : null;\n },\n\n async addAssignees(number: number, assignees: string[]): Promise<void> {\n logger.debug(\n `Updating assignees '${assignees?.join(', ')}' on Issue #${number}`,\n );\n await helper.updateIssue(config.repository, number, {\n assignees,\n });\n },\n\n async addReviewers(number: number, reviewers: string[]): Promise<void> {\n logger.debug(`Adding reviewers '${reviewers?.join(', ')}' to #${number}`);\n try {\n const teamReviewers = new Set(reviewers.filter((r) => r.includes('/')));\n await helper.requestPrReviewers(config.repository, number, {\n reviewers: reviewers.filter((r) => !teamReviewers.has(r)),\n ...(teamReviewers.size && { team_reviewers: [...teamReviewers] }),\n });\n } catch (err) {\n logger.warn({ err, number, reviewers }, 'Failed to assign reviewer');\n }\n },\n\n massageMarkdown(prBody: string): string {\n return smartTruncate(smartLinks(prBody), maxBodyLength());\n },\n\n maxBodyLength,\n};\n\nexport function maxBodyLength(): number {\n return 1000000;\n}\n\n/* eslint-disable @typescript-eslint/unbound-method */\nexport const {\n addAssignees,\n addReviewers,\n createPr,\n deleteLabel,\n ensureComment,\n ensureCommentRemoval,\n ensureIssue,\n ensureIssueClosing,\n findIssue,\n findPr,\n getBranchPr,\n getBranchStatus,\n getBranchStatusCheck,\n getIssue,\n getRawFile,\n getJsonFile,\n getIssueList,\n getPr,\n massageMarkdown,\n getPrList,\n getRepos,\n initPlatform,\n initRepo,\n mergePr,\n setBranchStatus,\n updatePr,\n} = platform;\n"]}
|
|
@@ -24,7 +24,7 @@ class ForgejoPrCache {
|
|
|
24
24
|
repoCache.platform ??= {};
|
|
25
25
|
repoCache.platform.forgejo ??= {};
|
|
26
26
|
let pullRequestCache = repoCache.platform.forgejo.pullRequestsCache;
|
|
27
|
-
if (
|
|
27
|
+
if (pullRequestCache?.author !== author) {
|
|
28
28
|
pullRequestCache = {
|
|
29
29
|
items: {},
|
|
30
30
|
updated_at: null,
|