renovate 41.0.0-next.22 → 41.0.0-next.23
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 +5 -3
- package/dist/config/decrypt.js.map +1 -1
- package/dist/config/options/index.js +45 -3
- package/dist/config/options/index.js.map +1 -1
- package/dist/config/presets/github/index.js +2 -2
- package/dist/config/presets/github/index.js.map +1 -1
- package/dist/config/presets/internal/group.js +21 -0
- package/dist/config/presets/internal/group.js.map +1 -1
- package/dist/config/presets/internal/workarounds.js +11 -0
- package/dist/config/presets/internal/workarounds.js.map +1 -1
- package/dist/config/secrets.d.ts +2 -0
- package/dist/config/secrets.js +10 -77
- package/dist/config/secrets.js.map +1 -1
- package/dist/config/types.d.ts +9 -1
- package/dist/config/types.js.map +1 -1
- package/dist/config-validator.js +4 -2
- package/dist/config-validator.js.map +1 -1
- package/dist/data/monorepo.json +10 -1
- package/dist/data-files.generated.d.ts +1 -1
- package/dist/data-files.generated.js +2 -1
- package/dist/data-files.generated.js.map +1 -1
- package/dist/instrumentation/index.js +5 -3
- package/dist/instrumentation/index.js.map +1 -1
- package/dist/instrumentation/reporting.d.ts +2 -2
- package/dist/instrumentation/reporting.js +3 -7
- package/dist/instrumentation/reporting.js.map +1 -1
- package/dist/instrumentation/types.d.ts +11 -5
- package/dist/instrumentation/types.js.map +1 -1
- package/dist/instrumentation/utils.js +3 -2
- package/dist/instrumentation/utils.js.map +1 -1
- package/dist/logger/once.js +2 -0
- package/dist/logger/once.js.map +1 -1
- package/dist/modules/datasource/aws-eks-addon/schema.d.ts +14 -38
- package/dist/modules/datasource/aws-eks-addon/schema.js +11 -22
- package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -1
- package/dist/modules/datasource/cdnjs/index.js +2 -1
- package/dist/modules/datasource/cdnjs/index.js.map +1 -1
- package/dist/modules/datasource/crate/index.js +7 -2
- package/dist/modules/datasource/crate/index.js.map +1 -1
- package/dist/modules/datasource/docker/ecr.js +2 -2
- package/dist/modules/datasource/docker/ecr.js.map +1 -1
- package/dist/modules/datasource/docker/index.js +26 -9
- package/dist/modules/datasource/docker/index.js.map +1 -1
- package/dist/modules/datasource/docker/schema.d.ts +9 -87
- package/dist/modules/datasource/docker/schema.js +1 -1
- package/dist/modules/datasource/docker/schema.js.map +1 -1
- package/dist/modules/datasource/git-refs/base.js +2 -6
- package/dist/modules/datasource/git-refs/base.js.map +1 -1
- package/dist/modules/datasource/go/goproxy-parser.js +6 -2
- package/dist/modules/datasource/go/goproxy-parser.js.map +1 -1
- package/dist/modules/datasource/go/index.js +4 -2
- package/dist/modules/datasource/go/index.js.map +1 -1
- package/dist/modules/datasource/go/releases-goproxy.js +3 -2
- package/dist/modules/datasource/go/releases-goproxy.js.map +1 -1
- package/dist/modules/datasource/index.js +1 -1
- package/dist/modules/datasource/index.js.map +1 -1
- package/dist/modules/datasource/maven/index.js +5 -19
- package/dist/modules/datasource/maven/index.js.map +1 -1
- package/dist/modules/datasource/maven/util.js +8 -1
- package/dist/modules/datasource/maven/util.js.map +1 -1
- package/dist/modules/datasource/npm/get.js +2 -1
- package/dist/modules/datasource/npm/get.js.map +1 -1
- package/dist/modules/datasource/npm/npmrc.js +2 -1
- package/dist/modules/datasource/npm/npmrc.js.map +1 -1
- package/dist/modules/datasource/nuget/v3.js +3 -2
- package/dist/modules/datasource/nuget/v3.js.map +1 -1
- package/dist/modules/datasource/pod/index.js +3 -1
- package/dist/modules/datasource/pod/index.js.map +1 -1
- package/dist/modules/datasource/pypi/index.js +2 -1
- package/dist/modules/datasource/pypi/index.js.map +1 -1
- package/dist/modules/datasource/types.d.ts +2 -1
- package/dist/modules/datasource/types.js.map +1 -1
- package/dist/modules/manager/asdf/upgradeable-tooling.js +8 -0
- package/dist/modules/manager/asdf/upgradeable-tooling.js.map +1 -1
- package/dist/modules/manager/bazel/rules/git.d.ts +7 -7
- package/dist/modules/manager/bazel/rules/git.js +6 -1
- package/dist/modules/manager/bazel/rules/git.js.map +1 -1
- package/dist/modules/manager/bazel-module/bazelrc.d.ts +2 -0
- package/dist/modules/manager/bazel-module/bazelrc.js +30 -1
- package/dist/modules/manager/bazel-module/bazelrc.js.map +1 -1
- package/dist/modules/manager/bazel-module/parser/rules.js +1 -0
- package/dist/modules/manager/bazel-module/parser/rules.js.map +1 -1
- package/dist/modules/manager/bazel-module/rules.d.ts +62 -24
- package/dist/modules/manager/bazel-module/rules.js +10 -4
- package/dist/modules/manager/bazel-module/rules.js.map +1 -1
- package/dist/modules/manager/cargo/extract.js +2 -1
- package/dist/modules/manager/cargo/extract.js.map +1 -1
- package/dist/modules/manager/composer/schema.js +1 -1
- package/dist/modules/manager/composer/schema.js.map +1 -1
- package/dist/modules/manager/docker-compose/extract.js +2 -0
- package/dist/modules/manager/docker-compose/extract.js.map +1 -1
- package/dist/modules/manager/docker-compose/schema.d.ts +120 -9
- package/dist/modules/manager/docker-compose/schema.js +35 -4
- package/dist/modules/manager/docker-compose/schema.js.map +1 -1
- package/dist/modules/manager/fingerprint.generated.js +19 -19
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/fleet/extract.js +2 -2
- package/dist/modules/manager/fleet/extract.js.map +1 -1
- package/dist/modules/manager/fleet/schema.d.ts +5 -5
- package/dist/modules/manager/fleet/schema.js +1 -1
- package/dist/modules/manager/fleet/schema.js.map +1 -1
- package/dist/modules/manager/flux/extract.js +1 -1
- package/dist/modules/manager/flux/extract.js.map +1 -1
- package/dist/modules/manager/git-submodules/extract.js +2 -6
- package/dist/modules/manager/git-submodules/extract.js.map +1 -1
- package/dist/modules/manager/git-submodules/update.js +3 -7
- package/dist/modules/manager/git-submodules/update.js.map +1 -1
- package/dist/modules/manager/github-actions/extract.js +1 -1
- package/dist/modules/manager/github-actions/extract.js.map +1 -1
- package/dist/modules/manager/gleam/artifacts.js +5 -1
- package/dist/modules/manager/gleam/artifacts.js.map +1 -1
- package/dist/modules/manager/gomod/artifacts.js +8 -6
- package/dist/modules/manager/gomod/artifacts.js.map +1 -1
- package/dist/modules/manager/gradle/extract.js +4 -1
- package/dist/modules/manager/gradle/extract.js.map +1 -1
- package/dist/modules/manager/gradle/utils.js +8 -14
- package/dist/modules/manager/gradle/utils.js.map +1 -1
- package/dist/modules/manager/helmfile/utils.js +1 -1
- package/dist/modules/manager/helmfile/utils.js.map +1 -1
- package/dist/modules/manager/helmv3/artifacts.js +8 -2
- package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
- package/dist/modules/manager/helmv3/common.d.ts +1 -1
- package/dist/modules/manager/helmv3/common.js +9 -3
- package/dist/modules/manager/helmv3/common.js.map +1 -1
- package/dist/modules/manager/hermit/artifacts.js +2 -2
- package/dist/modules/manager/hermit/artifacts.js.map +1 -1
- package/dist/modules/manager/kubernetes/extract.js +2 -2
- package/dist/modules/manager/kubernetes/extract.js.map +1 -1
- package/dist/modules/manager/kustomize/artifacts.js +1 -1
- package/dist/modules/manager/kustomize/artifacts.js.map +1 -1
- package/dist/modules/manager/maven/extract.d.ts +1 -1
- package/dist/modules/manager/maven/extract.js +82 -24
- package/dist/modules/manager/maven/extract.js.map +1 -1
- package/dist/modules/manager/maven/index.d.ts +0 -1
- package/dist/modules/manager/maven/index.js +2 -4
- package/dist/modules/manager/maven/index.js.map +1 -1
- package/dist/modules/manager/maven/update.js +15 -0
- package/dist/modules/manager/maven/update.js.map +1 -1
- package/dist/modules/manager/mise/backends.d.ts +48 -0
- package/dist/modules/manager/mise/backends.js +219 -0
- package/dist/modules/manager/mise/backends.js.map +1 -0
- package/dist/modules/manager/mise/extract.js +77 -10
- package/dist/modules/manager/mise/extract.js.map +1 -1
- package/dist/modules/manager/mise/index.js +37 -2
- package/dist/modules/manager/mise/index.js.map +1 -1
- package/dist/modules/manager/mise/schema.d.ts +24 -0
- package/dist/modules/manager/mise/schema.js +7 -1
- package/dist/modules/manager/mise/schema.js.map +1 -1
- package/dist/modules/manager/mise/upgradeable-tooling.js +210 -1
- package/dist/modules/manager/mise/upgradeable-tooling.js.map +1 -1
- package/dist/modules/manager/mix/artifacts.js +5 -0
- package/dist/modules/manager/mix/artifacts.js.map +1 -1
- package/dist/modules/manager/npm/extract/index.js +27 -24
- package/dist/modules/manager/npm/extract/index.js.map +1 -1
- package/dist/modules/manager/npm/post-update/index.js +9 -3
- package/dist/modules/manager/npm/post-update/index.js.map +1 -1
- package/dist/modules/manager/npm/post-update/npm.js +8 -5
- package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/pnpm.js +4 -0
- package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/utils.js +17 -0
- package/dist/modules/manager/npm/post-update/utils.js.map +1 -1
- package/dist/modules/manager/npm/post-update/yarn.js +7 -5
- package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
- package/dist/modules/manager/npm/schema.d.ts +116 -0
- package/dist/modules/manager/npm/schema.js +9 -0
- package/dist/modules/manager/npm/schema.js.map +1 -1
- package/dist/modules/manager/npm/utils.js +1 -1
- package/dist/modules/manager/npm/utils.js.map +1 -1
- package/dist/modules/manager/nuget/util.js +9 -0
- package/dist/modules/manager/nuget/util.js.map +1 -1
- package/dist/modules/manager/pep621/processors/uv.js +1 -1
- package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
- package/dist/modules/manager/pip-compile/artifacts.js +6 -4
- package/dist/modules/manager/pip-compile/artifacts.js.map +1 -1
- package/dist/modules/manager/pip_requirements/common.js +2 -1
- package/dist/modules/manager/pip_requirements/common.js.map +1 -1
- package/dist/modules/manager/poetry/schema.js +2 -1
- package/dist/modules/manager/poetry/schema.js.map +1 -1
- package/dist/modules/manager/pre-commit/index.js +2 -1
- package/dist/modules/manager/pre-commit/index.js.map +1 -1
- package/dist/modules/manager/renovate-config-presets/index.d.ts +1 -1
- package/dist/modules/manager/renovate-config-presets/index.js +1 -3
- package/dist/modules/manager/renovate-config-presets/index.js.map +1 -1
- package/dist/modules/manager/terraform/extractors/others/modules.js +4 -9
- package/dist/modules/manager/terraform/extractors/others/modules.js.map +1 -1
- package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.d.ts +1 -0
- package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js +9 -4
- package/dist/modules/manager/terraform/extractors/resources/generic-docker-image-ref.js.map +1 -1
- package/dist/modules/manager/terraform/extractors/resources/utils.d.ts +1 -0
- package/dist/modules/manager/terraform/extractors/resources/utils.js +4 -1
- package/dist/modules/manager/terraform/extractors/resources/utils.js.map +1 -1
- package/dist/modules/manager/terraform/hcl/types.d.ts +1 -0
- package/dist/modules/manager/terraform/hcl/types.js.map +1 -1
- package/dist/modules/manager/types.d.ts +3 -0
- package/dist/modules/manager/types.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/index.js +4 -2
- package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
- package/dist/modules/platform/codecommit/codecommit-client.js +7 -5
- package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
- package/dist/modules/platform/codecommit/index.js +7 -5
- package/dist/modules/platform/codecommit/index.js.map +1 -1
- package/dist/modules/platform/default-scm.d.ts +1 -0
- package/dist/modules/platform/default-scm.js +3 -0
- package/dist/modules/platform/default-scm.js.map +1 -1
- package/dist/modules/platform/gerrit/client.d.ts +6 -7
- package/dist/modules/platform/gerrit/client.js +58 -38
- package/dist/modules/platform/gerrit/client.js.map +1 -1
- package/dist/modules/platform/gerrit/index.d.ts +4 -3
- package/dist/modules/platform/gerrit/index.js +103 -42
- package/dist/modules/platform/gerrit/index.js.map +1 -1
- package/dist/modules/platform/gerrit/scm.d.ts +1 -1
- package/dist/modules/platform/gerrit/scm.js +56 -34
- package/dist/modules/platform/gerrit/scm.js.map +1 -1
- package/dist/modules/platform/gerrit/types.d.ts +23 -12
- package/dist/modules/platform/gerrit/types.js.map +1 -1
- package/dist/modules/platform/gerrit/utils.d.ts +8 -4
- package/dist/modules/platform/gerrit/utils.js +24 -12
- package/dist/modules/platform/gerrit/utils.js.map +1 -1
- package/dist/modules/platform/gitea/index.js +7 -2
- package/dist/modules/platform/gitea/index.js.map +1 -1
- package/dist/modules/platform/gitea/types.d.ts +2 -1
- package/dist/modules/platform/gitea/types.js.map +1 -1
- package/dist/modules/platform/github/index.js +12 -26
- package/dist/modules/platform/github/index.js.map +1 -1
- package/dist/modules/platform/gitlab/code-owners.d.ts +2 -0
- package/dist/modules/platform/gitlab/code-owners.js +38 -0
- package/dist/modules/platform/gitlab/code-owners.js.map +1 -0
- package/dist/modules/platform/gitlab/index.d.ts +2 -1
- package/dist/modules/platform/gitlab/index.js +29 -56
- package/dist/modules/platform/gitlab/index.js.map +1 -1
- package/dist/modules/platform/gitlab/pr-cache.d.ts +21 -0
- package/dist/modules/platform/gitlab/pr-cache.js +124 -0
- package/dist/modules/platform/gitlab/pr-cache.js.map +1 -0
- package/dist/modules/platform/gitlab/types.d.ts +7 -0
- package/dist/modules/platform/gitlab/types.js.map +1 -1
- package/dist/modules/platform/gitlab/utils.js +1 -0
- package/dist/modules/platform/gitlab/utils.js.map +1 -1
- package/dist/modules/platform/types.d.ts +8 -0
- package/dist/modules/platform/types.js.map +1 -1
- package/dist/modules/versioning/api.js +2 -0
- package/dist/modules/versioning/api.js.map +1 -1
- package/dist/modules/versioning/cargo/index.js +20 -0
- package/dist/modules/versioning/cargo/index.js.map +1 -1
- package/dist/modules/versioning/composer/index.js +4 -0
- package/dist/modules/versioning/composer/index.js.map +1 -1
- package/dist/modules/versioning/lambda-node/index.d.ts +8 -0
- package/dist/modules/versioning/lambda-node/index.js +27 -0
- package/dist/modules/versioning/lambda-node/index.js.map +1 -0
- package/dist/modules/versioning/lambda-node/schedule.d.ts +10 -0
- package/dist/modules/versioning/lambda-node/schedule.js +19 -0
- package/dist/modules/versioning/lambda-node/schedule.js.map +1 -0
- package/dist/modules/versioning/npm/index.js +2 -0
- package/dist/modules/versioning/npm/index.js.map +1 -1
- package/dist/modules/versioning/npm/range.js +4 -0
- package/dist/modules/versioning/npm/range.js.map +1 -1
- package/dist/modules/versioning/pep440/index.js +1 -1
- package/dist/modules/versioning/pep440/index.js.map +1 -1
- package/dist/modules/versioning/python/index.d.ts +1 -0
- package/dist/modules/versioning/python/index.js +9 -0
- package/dist/modules/versioning/python/index.js.map +1 -1
- package/dist/modules/versioning/semver/index.d.ts +1 -0
- package/dist/modules/versioning/semver/index.js +15 -0
- package/dist/modules/versioning/semver/index.js.map +1 -1
- package/dist/modules/versioning/semver-coerced/index.js +9 -0
- package/dist/modules/versioning/semver-coerced/index.js.map +1 -1
- package/dist/modules/versioning/types.d.ts +1 -0
- package/dist/modules/versioning/types.js.map +1 -1
- package/dist/util/cache/memory/index.d.ts +1 -0
- package/dist/util/cache/memory/index.js +17 -6
- package/dist/util/cache/memory/index.js.map +1 -1
- package/dist/util/cache/package/index.js +2 -1
- package/dist/util/cache/package/index.js.map +1 -1
- package/dist/util/cache/package/key.js +1 -1
- package/dist/util/cache/package/key.js.map +1 -1
- package/dist/util/cache/package/types.d.ts +2 -2
- package/dist/util/cache/package/types.js.map +1 -1
- package/dist/util/cache/repository/impl/s3.js +2 -1
- package/dist/util/cache/repository/impl/s3.js.map +1 -1
- package/dist/util/cache/repository/types.d.ts +3 -0
- package/dist/util/cache/repository/types.js.map +1 -1
- package/dist/util/env.d.ts +6 -0
- package/dist/util/env.js +13 -0
- package/dist/util/env.js.map +1 -1
- package/dist/util/exec/common.js +2 -1
- package/dist/util/exec/common.js.map +1 -1
- package/dist/util/exec/containerbase.js +2 -1
- package/dist/util/exec/containerbase.js.map +1 -1
- package/dist/util/exec/env.js +1 -0
- package/dist/util/exec/env.js.map +1 -1
- package/dist/util/exec/utils.d.ts +1 -1
- package/dist/util/exec/utils.js +1 -1
- package/dist/util/exec/utils.js.map +1 -1
- package/dist/util/fs/index.js +2 -2
- package/dist/util/fs/index.js.map +1 -1
- package/dist/util/git/auth.js +4 -2
- package/dist/util/git/auth.js.map +1 -1
- package/dist/util/git/error.js +2 -1
- package/dist/util/git/error.js.map +1 -1
- package/dist/util/git/index.d.ts +20 -0
- package/dist/util/git/index.js +140 -10
- package/dist/util/git/index.js.map +1 -1
- package/dist/util/git/types.d.ts +1 -0
- package/dist/util/git/types.js.map +1 -1
- package/dist/util/github/graphql/datasource-fetcher.js +2 -3
- package/dist/util/github/graphql/datasource-fetcher.js.map +1 -1
- package/dist/util/github/graphql/query-adapters/tags-query-adapter.d.ts +48 -2
- package/dist/util/github/graphql/query-adapters/tags-query-adapter.js +27 -7
- package/dist/util/github/graphql/query-adapters/tags-query-adapter.js.map +1 -1
- package/dist/util/host-rules.js +4 -3
- package/dist/util/host-rules.js.map +1 -1
- package/dist/util/http/cache/package-http-cache-provider.d.ts +4 -4
- package/dist/util/http/cache/package-http-cache-provider.js +4 -4
- package/dist/util/http/cache/package-http-cache-provider.js.map +1 -1
- package/dist/util/http/github.js +20 -12
- package/dist/util/http/github.js.map +1 -1
- package/dist/util/http/gitlab.js +2 -1
- package/dist/util/http/gitlab.js.map +1 -1
- package/dist/util/http/http.js +7 -3
- package/dist/util/http/http.js.map +1 -1
- package/dist/util/interpolator.d.ts +8 -0
- package/dist/util/interpolator.js +85 -0
- package/dist/util/interpolator.js.map +1 -0
- package/dist/util/merge-confidence/index.js +4 -1
- package/dist/util/merge-confidence/index.js.map +1 -1
- package/dist/util/promises.d.ts +4 -4
- package/dist/util/promises.js +3 -4
- package/dist/util/promises.js.map +1 -1
- package/dist/util/regex.js +3 -2
- package/dist/util/regex.js.map +1 -1
- package/dist/util/{schema-utils.d.ts → schema-utils/index.d.ts} +2 -2
- package/dist/util/{schema-utils.js → schema-utils/index.js} +5 -5
- package/dist/util/schema-utils/index.js.map +1 -0
- package/dist/util/schema-utils/v4.d.ts +7 -0
- package/dist/util/schema-utils/v4.js +64 -0
- package/dist/util/schema-utils/v4.js.map +1 -0
- package/dist/util/stats.d.ts +13 -2
- package/dist/util/stats.js +38 -27
- package/dist/util/stats.js.map +1 -1
- package/dist/workers/global/config/parse/codespaces.js +7 -4
- package/dist/workers/global/config/parse/codespaces.js.map +1 -1
- package/dist/workers/global/index.js +7 -5
- package/dist/workers/global/index.js.map +1 -1
- package/dist/workers/repository/config-migration/branch/migrated-data.js +1 -1
- package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
- package/dist/workers/repository/dependency-dashboard.d.ts +1 -0
- package/dist/workers/repository/dependency-dashboard.js +47 -0
- package/dist/workers/repository/dependency-dashboard.js.map +1 -1
- package/dist/workers/repository/index.js +1 -0
- package/dist/workers/repository/index.js.map +1 -1
- package/dist/workers/repository/init/inherited.js +10 -6
- package/dist/workers/repository/init/inherited.js.map +1 -1
- package/dist/workers/repository/init/merge.d.ts +2 -2
- package/dist/workers/repository/init/merge.js +12 -5
- package/dist/workers/repository/init/merge.js.map +1 -1
- package/dist/workers/repository/package-files.js +11 -1
- package/dist/workers/repository/package-files.js.map +1 -1
- package/dist/workers/repository/process/extract-update.d.ts +1 -1
- package/dist/workers/repository/process/extract-update.js +15 -10
- package/dist/workers/repository/process/extract-update.js.map +1 -1
- package/dist/workers/repository/process/index.d.ts +1 -1
- package/dist/workers/repository/process/index.js +6 -3
- package/dist/workers/repository/process/index.js.map +1 -1
- package/dist/workers/repository/process/libyear.js +15 -7
- package/dist/workers/repository/process/libyear.js.map +1 -1
- package/dist/workers/repository/process/lookup/abandonment.d.ts +3 -0
- package/dist/workers/repository/process/lookup/abandonment.js +50 -0
- package/dist/workers/repository/process/lookup/abandonment.js.map +1 -0
- package/dist/workers/repository/process/lookup/current.js +0 -5
- package/dist/workers/repository/process/lookup/current.js.map +1 -1
- package/dist/workers/repository/process/lookup/generate.js +10 -0
- package/dist/workers/repository/process/lookup/generate.js.map +1 -1
- package/dist/workers/repository/process/lookup/index.js +7 -0
- package/dist/workers/repository/process/lookup/index.js.map +1 -1
- package/dist/workers/repository/process/lookup/timestamps.d.ts +4 -4
- package/dist/workers/repository/process/lookup/timestamps.js +10 -10
- package/dist/workers/repository/process/lookup/timestamps.js.map +1 -1
- package/dist/workers/repository/process/lookup/types.d.ts +4 -0
- package/dist/workers/repository/process/lookup/types.js.map +1 -1
- package/dist/workers/repository/update/branch/auto-replace.js +30 -7
- package/dist/workers/repository/update/branch/auto-replace.js.map +1 -1
- package/dist/workers/repository/update/branch/bump-versions.d.ts +2 -0
- package/dist/workers/repository/update/branch/bump-versions.js +192 -0
- package/dist/workers/repository/update/branch/bump-versions.js.map +1 -0
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +14 -8
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
- package/dist/workers/repository/update/branch/get-updated.js +3 -4
- package/dist/workers/repository/update/branch/get-updated.js.map +1 -1
- package/dist/workers/repository/update/branch/index.js +3 -0
- package/dist/workers/repository/update/branch/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/release-notes.js +23 -19
- package/dist/workers/repository/update/pr/changelog/release-notes.js.map +1 -1
- package/dist/workers/repository/update/pr/code-owners.js +13 -9
- package/dist/workers/repository/update/pr/code-owners.js.map +1 -1
- package/dist/workers/repository/updates/generate.js +1 -0
- package/dist/workers/repository/updates/generate.js.map +1 -1
- package/package.json +75 -80
- package/renovate-schema.json +78 -14
- package/dist/util/schema-utils.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/flux/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { readLocalFile } from '../../../util/fs';\nimport { regEx } from '../../../util/regex';\nimport { isHttpUrl } from '../../../util/url';\nimport { parseYaml } from '../../../util/yaml';\nimport { BitbucketTagsDatasource } from '../../datasource/bitbucket-tags';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { GitRefsDatasource } from '../../datasource/git-refs';\nimport { GitTagsDatasource } from '../../datasource/git-tags';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport { GitlabTagsDatasource } from '../../datasource/gitlab-tags';\nimport { HelmDatasource } from '../../datasource/helm';\nimport { getDep } from '../dockerfile/extract';\nimport { findDependencies } from '../helm-values/extract';\nimport { isOCIRegistry, removeOCIPrefix } from '../helmv3/oci';\nimport { extractImage } from '../kustomize/extract';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFile,\n PackageFileContent,\n} from '../types';\nimport {\n collectHelmRepos,\n isSystemManifest,\n systemManifestHeaderRegex,\n} from './common';\nimport { FluxResource, type HelmRepository } from './schema';\nimport type {\n FluxManagerData,\n FluxManifest,\n ResourceFluxManifest,\n SystemFluxManifest,\n} from './types';\n\nfunction readManifest(\n content: string,\n packageFile: string,\n): FluxManifest | null {\n if (isSystemManifest(packageFile)) {\n const versionMatch = regEx(systemManifestHeaderRegex).exec(content);\n if (!versionMatch) {\n return null;\n }\n return {\n kind: 'system',\n file: packageFile,\n version: versionMatch[1],\n components: versionMatch[2],\n };\n }\n\n return {\n kind: 'resource',\n file: packageFile,\n resources: parseYaml(content, {\n customSchema: FluxResource,\n failureBehaviour: 'filter',\n }),\n };\n}\n\nconst githubUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)github\\.com[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\nconst gitlabUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)gitlab\\.com[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\nconst bitbucketUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)bitbucket\\.org[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\n\nfunction resolveGitRepositoryPerSourceTag(\n dep: PackageDependency,\n gitUrl: string,\n): void {\n const githubMatchGroups = githubUrlRegex.exec(gitUrl)?.groups;\n if (githubMatchGroups) {\n dep.datasource = GithubTagsDatasource.id;\n dep.packageName = githubMatchGroups.packageName;\n dep.sourceUrl = `https://github.com/${dep.packageName}`;\n return;\n }\n\n const gitlabMatchGroups = gitlabUrlRegex.exec(gitUrl)?.groups;\n if (gitlabMatchGroups) {\n dep.datasource = GitlabTagsDatasource.id;\n dep.packageName = gitlabMatchGroups.packageName;\n dep.sourceUrl = `https://gitlab.com/${dep.packageName}`;\n return;\n }\n\n const bitbucketMatchGroups = bitbucketUrlRegex.exec(gitUrl)?.groups;\n if (bitbucketMatchGroups) {\n dep.datasource = BitbucketTagsDatasource.id;\n dep.packageName = bitbucketMatchGroups.packageName;\n dep.sourceUrl = `https://bitbucket.org/${dep.packageName}`;\n return;\n }\n\n dep.datasource = GitTagsDatasource.id;\n dep.packageName = gitUrl;\n if (isHttpUrl(gitUrl)) {\n dep.sourceUrl = gitUrl.replace(/\\.git$/, '');\n }\n}\n\nfunction resolveHelmRepository(\n dep: PackageDependency,\n matchingRepositories: HelmRepository[],\n registryAliases: Record<string, string> | undefined,\n): void {\n if (matchingRepositories.length) {\n dep.registryUrls = matchingRepositories\n .map((repo) => {\n if (repo.spec.type === 'oci' || isOCIRegistry(repo.spec.url)) {\n // Change datasource to Docker\n dep.datasource = DockerDatasource.id;\n // Ensure the URL is a valid OCI path\n dep.packageName = getDep(\n `${removeOCIPrefix(repo.spec.url)}/${dep.depName}`,\n false,\n registryAliases,\n ).packageName;\n return null;\n } else {\n return repo.spec.url;\n }\n })\n .filter(is.string);\n\n // if registryUrls is empty, delete it from dep\n if (!dep.registryUrls?.length) {\n delete dep.registryUrls;\n }\n } else {\n dep.skipReason = 'unknown-registry';\n }\n}\n\nfunction resolveSystemManifest(\n manifest: SystemFluxManifest,\n): PackageDependency<FluxManagerData>[] {\n return [\n {\n depName: 'fluxcd/flux2',\n datasource: GithubReleasesDatasource.id,\n currentValue: manifest.version,\n managerData: {\n components: manifest.components,\n },\n },\n ];\n}\n\nfunction resolveResourceManifest(\n manifest: ResourceFluxManifest,\n helmRepositories: HelmRepository[],\n registryAliases: Record<string, string> | undefined,\n): PackageDependency[] {\n const deps: PackageDependency[] = [];\n for (const resource of manifest.resources) {\n switch (resource.kind) {\n case 'HelmRelease': {\n if (resource.spec.chartRef) {\n logger.trace(\n 'HelmRelease using chartRef was found, skipping as version will be handled via referenced resource directly',\n );\n } else if (resource.spec.chart) {\n const chartSpec = resource.spec.chart.spec;\n const depName = chartSpec.chart;\n const dep: PackageDependency = {\n depName,\n currentValue: resource.spec.chart.spec.version,\n datasource: HelmDatasource.id,\n };\n\n if (depName.startsWith('./')) {\n dep.skipReason = 'local-chart';\n delete dep.datasource;\n } else {\n const matchingRepositories = helmRepositories.filter(\n (rep) =>\n rep.kind === chartSpec.sourceRef?.kind &&\n rep.metadata.name === chartSpec.sourceRef.name &&\n rep.metadata.namespace ===\n (chartSpec.sourceRef.namespace ??\n resource.metadata?.namespace),\n );\n resolveHelmRepository(dep, matchingRepositories, registryAliases);\n }\n deps.push(dep);\n } else {\n logger.debug('invalid or incomplete HelmRelease spec, skipping');\n }\n\n if (resource.spec.values) {\n logger.trace('detecting dependencies in HelmRelease values');\n deps.push(...findDependencies(resource.spec.values, registryAliases));\n }\n break;\n }\n\n case 'HelmChart': {\n if (resource.spec.sourceRef.kind === 'GitRepository') {\n logger.trace(\n 'HelmChart using GitRepository was found, skipping as version will be handled via referenced resource directly',\n );\n continue;\n }\n\n const dep: PackageDependency = {\n depName: resource.spec.chart,\n };\n\n if (resource.spec.sourceRef.kind === 'HelmRepository') {\n dep.currentValue = resource.spec.version;\n dep.datasource = HelmDatasource.id;\n\n const matchingRepositories = helmRepositories.filter(\n (rep) =>\n rep.kind === resource.spec.sourceRef?.kind &&\n rep.metadata.name === resource.spec.sourceRef.name &&\n rep.metadata.namespace === resource.metadata?.namespace,\n );\n resolveHelmRepository(dep, matchingRepositories, registryAliases);\n } else {\n dep.skipReason = 'unsupported-datasource';\n }\n deps.push(dep);\n break;\n }\n\n case 'GitRepository': {\n const dep: PackageDependency = {\n depName: resource.metadata.name,\n };\n\n if (resource.spec.ref?.commit) {\n const gitUrl = resource.spec.url;\n dep.currentDigest = resource.spec.ref.commit;\n dep.datasource = GitRefsDatasource.id;\n dep.packageName = gitUrl;\n dep.replaceString = resource.spec.ref.commit;\n if (isHttpUrl(gitUrl)) {\n dep.sourceUrl = gitUrl.replace(/\\.git$/, '');\n }\n } else if (resource.spec.ref?.tag) {\n dep.currentValue = resource.spec.ref.tag;\n resolveGitRepositoryPerSourceTag(dep, resource.spec.url);\n } else {\n dep.skipReason = 'unversioned-reference';\n }\n deps.push(dep);\n break;\n }\n case 'OCIRepository': {\n const container = removeOCIPrefix(resource.spec.url);\n let dep = getDep(container, false, registryAliases);\n if (resource.spec.ref?.digest) {\n dep = getDep(\n `${container}@${resource.spec.ref.digest}`,\n false,\n registryAliases,\n );\n if (resource.spec.ref?.tag) {\n logger.debug('A digest and tag was found, ignoring tag');\n }\n } else if (resource.spec.ref?.tag) {\n dep = getDep(\n `${container}:${resource.spec.ref.tag}`,\n false,\n registryAliases,\n );\n dep.autoReplaceStringTemplate =\n '{{#if newValue}}{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}';\n dep.replaceString = resource.spec.ref.tag;\n } else {\n dep.skipReason = 'unversioned-reference';\n }\n deps.push(dep);\n break;\n }\n\n case 'Kustomization': {\n for (const image of coerceArray(resource.spec.images)) {\n const dep = extractImage(image, registryAliases);\n if (dep) {\n deps.push(dep);\n }\n }\n }\n }\n }\n return deps;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config?: ExtractConfig,\n): PackageFileContent<FluxManagerData> | null {\n const manifest = readManifest(content, packageFile);\n if (!manifest) {\n return null;\n }\n const helmRepositories = collectHelmRepos([manifest]);\n let deps: PackageDependency[] | null = null;\n switch (manifest.kind) {\n case 'system':\n deps = resolveSystemManifest(manifest);\n break;\n case 'resource': {\n deps = resolveResourceManifest(\n manifest,\n helmRepositories,\n config?.registryAliases,\n );\n break;\n }\n }\n return deps?.length ? { deps } : null;\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile<FluxManagerData>[] | null> {\n const manifests: FluxManifest[] = [];\n const results: PackageFile<FluxManagerData>[] = [];\n\n for (const file of packageFiles) {\n const content = await readLocalFile(file, 'utf8');\n // TODO #22198\n const manifest = readManifest(content!, file);\n if (manifest) {\n manifests.push(manifest);\n }\n }\n\n const helmRepositories = collectHelmRepos(manifests);\n\n for (const manifest of manifests) {\n let deps: PackageDependency[] | null = null;\n switch (manifest.kind) {\n case 'system':\n deps = resolveSystemManifest(manifest);\n break;\n case 'resource': {\n deps = resolveResourceManifest(\n manifest,\n helmRepositories,\n config.registryAliases,\n );\n break;\n }\n }\n if (deps?.length) {\n results.push({\n packageFile: manifest.file,\n deps,\n });\n }\n }\n\n return results.length ? results : null;\n}\n"]}
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/flux/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { readLocalFile } from '../../../util/fs';\nimport { regEx } from '../../../util/regex';\nimport { isHttpUrl } from '../../../util/url';\nimport { parseYaml } from '../../../util/yaml';\nimport { BitbucketTagsDatasource } from '../../datasource/bitbucket-tags';\nimport { DockerDatasource } from '../../datasource/docker';\nimport { GitRefsDatasource } from '../../datasource/git-refs';\nimport { GitTagsDatasource } from '../../datasource/git-tags';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport { GitlabTagsDatasource } from '../../datasource/gitlab-tags';\nimport { HelmDatasource } from '../../datasource/helm';\nimport { getDep } from '../dockerfile/extract';\nimport { findDependencies } from '../helm-values/extract';\nimport { isOCIRegistry, removeOCIPrefix } from '../helmv3/oci';\nimport { extractImage } from '../kustomize/extract';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFile,\n PackageFileContent,\n} from '../types';\nimport {\n collectHelmRepos,\n isSystemManifest,\n systemManifestHeaderRegex,\n} from './common';\nimport { FluxResource, type HelmRepository } from './schema';\nimport type {\n FluxManagerData,\n FluxManifest,\n ResourceFluxManifest,\n SystemFluxManifest,\n} from './types';\n\nfunction readManifest(\n content: string,\n packageFile: string,\n): FluxManifest | null {\n if (isSystemManifest(packageFile)) {\n const versionMatch = regEx(systemManifestHeaderRegex).exec(content);\n if (!versionMatch) {\n return null;\n }\n return {\n kind: 'system',\n file: packageFile,\n version: versionMatch[1],\n components: versionMatch[2],\n };\n }\n\n return {\n kind: 'resource',\n file: packageFile,\n resources: parseYaml(content, {\n customSchema: FluxResource,\n failureBehaviour: 'filter',\n }),\n };\n}\n\nconst githubUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)github\\.com[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\nconst gitlabUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)gitlab\\.com[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\nconst bitbucketUrlRegex = regEx(\n /^(?:https:\\/\\/|git@)bitbucket\\.org[/:](?<packageName>[^/]+\\/[^/]+?)(?:\\.git)?$/,\n);\n\nfunction resolveGitRepositoryPerSourceTag(\n dep: PackageDependency,\n gitUrl: string,\n): void {\n const githubMatchGroups = githubUrlRegex.exec(gitUrl)?.groups;\n if (githubMatchGroups) {\n dep.datasource = GithubTagsDatasource.id;\n dep.packageName = githubMatchGroups.packageName;\n dep.sourceUrl = `https://github.com/${dep.packageName}`;\n return;\n }\n\n const gitlabMatchGroups = gitlabUrlRegex.exec(gitUrl)?.groups;\n if (gitlabMatchGroups) {\n dep.datasource = GitlabTagsDatasource.id;\n dep.packageName = gitlabMatchGroups.packageName;\n dep.sourceUrl = `https://gitlab.com/${dep.packageName}`;\n return;\n }\n\n const bitbucketMatchGroups = bitbucketUrlRegex.exec(gitUrl)?.groups;\n if (bitbucketMatchGroups) {\n dep.datasource = BitbucketTagsDatasource.id;\n dep.packageName = bitbucketMatchGroups.packageName;\n dep.sourceUrl = `https://bitbucket.org/${dep.packageName}`;\n return;\n }\n\n dep.datasource = GitTagsDatasource.id;\n dep.packageName = gitUrl;\n if (isHttpUrl(gitUrl)) {\n dep.sourceUrl = gitUrl.replace(/\\.git$/, '');\n }\n}\n\nfunction resolveHelmRepository(\n dep: PackageDependency,\n matchingRepositories: HelmRepository[],\n registryAliases: Record<string, string> | undefined,\n): void {\n if (matchingRepositories.length) {\n dep.registryUrls = matchingRepositories\n .map((repo) => {\n if (repo.spec.type === 'oci' || isOCIRegistry(repo.spec.url)) {\n // Change datasource to Docker\n dep.datasource = DockerDatasource.id;\n // Ensure the URL is a valid OCI path\n dep.packageName = getDep(\n `${removeOCIPrefix(repo.spec.url)}/${dep.depName}`,\n false,\n registryAliases,\n ).packageName;\n return null;\n } else {\n return repo.spec.url;\n }\n })\n .filter(is.string);\n\n // if registryUrls is empty, delete it from dep\n if (!dep.registryUrls?.length) {\n delete dep.registryUrls;\n }\n } else {\n dep.skipReason = 'unknown-registry';\n }\n}\n\nfunction resolveSystemManifest(\n manifest: SystemFluxManifest,\n): PackageDependency<FluxManagerData>[] {\n return [\n {\n depName: 'fluxcd/flux2',\n datasource: GithubReleasesDatasource.id,\n currentValue: manifest.version,\n managerData: {\n components: manifest.components,\n },\n },\n ];\n}\n\nfunction resolveResourceManifest(\n manifest: ResourceFluxManifest,\n helmRepositories: HelmRepository[],\n registryAliases: Record<string, string> | undefined,\n): PackageDependency[] {\n const deps: PackageDependency[] = [];\n for (const resource of manifest.resources) {\n switch (resource.kind) {\n case 'HelmRelease': {\n if (resource.spec.chartRef) {\n logger.trace(\n 'HelmRelease using chartRef was found, skipping as version will be handled via referenced resource directly',\n );\n } else if (resource.spec.chart) {\n const chartSpec = resource.spec.chart.spec;\n const depName = chartSpec.chart;\n const dep: PackageDependency = {\n depName,\n currentValue: resource.spec.chart.spec.version,\n datasource: HelmDatasource.id,\n };\n\n if (depName.startsWith('./')) {\n dep.skipReason = 'local-chart';\n delete dep.datasource;\n } else {\n const matchingRepositories = helmRepositories.filter(\n (rep) =>\n rep.kind === chartSpec.sourceRef?.kind &&\n rep.metadata.name === chartSpec.sourceRef.name &&\n rep.metadata.namespace ===\n (chartSpec.sourceRef.namespace ??\n resource.metadata?.namespace),\n );\n resolveHelmRepository(dep, matchingRepositories, registryAliases);\n }\n deps.push(dep);\n } else {\n logger.debug(\n `invalid or incomplete ${resource.metadata.name} HelmRelease spec, skipping`,\n );\n }\n\n if (resource.spec.values) {\n logger.trace('detecting dependencies in HelmRelease values');\n deps.push(...findDependencies(resource.spec.values, registryAliases));\n }\n break;\n }\n\n case 'HelmChart': {\n if (resource.spec.sourceRef.kind === 'GitRepository') {\n logger.trace(\n 'HelmChart using GitRepository was found, skipping as version will be handled via referenced resource directly',\n );\n continue;\n }\n\n const dep: PackageDependency = {\n depName: resource.spec.chart,\n };\n\n if (resource.spec.sourceRef.kind === 'HelmRepository') {\n dep.currentValue = resource.spec.version;\n dep.datasource = HelmDatasource.id;\n\n const matchingRepositories = helmRepositories.filter(\n (rep) =>\n rep.kind === resource.spec.sourceRef?.kind &&\n rep.metadata.name === resource.spec.sourceRef.name &&\n rep.metadata.namespace === resource.metadata?.namespace,\n );\n resolveHelmRepository(dep, matchingRepositories, registryAliases);\n } else {\n dep.skipReason = 'unsupported-datasource';\n }\n deps.push(dep);\n break;\n }\n\n case 'GitRepository': {\n const dep: PackageDependency = {\n depName: resource.metadata.name,\n };\n\n if (resource.spec.ref?.commit) {\n const gitUrl = resource.spec.url;\n dep.currentDigest = resource.spec.ref.commit;\n dep.datasource = GitRefsDatasource.id;\n dep.packageName = gitUrl;\n dep.replaceString = resource.spec.ref.commit;\n if (isHttpUrl(gitUrl)) {\n dep.sourceUrl = gitUrl.replace(/\\.git$/, '');\n }\n } else if (resource.spec.ref?.tag) {\n dep.currentValue = resource.spec.ref.tag;\n resolveGitRepositoryPerSourceTag(dep, resource.spec.url);\n } else {\n dep.skipReason = 'unversioned-reference';\n }\n deps.push(dep);\n break;\n }\n case 'OCIRepository': {\n const container = removeOCIPrefix(resource.spec.url);\n let dep = getDep(container, false, registryAliases);\n if (resource.spec.ref?.digest) {\n dep = getDep(\n `${container}@${resource.spec.ref.digest}`,\n false,\n registryAliases,\n );\n if (resource.spec.ref?.tag) {\n logger.debug('A digest and tag was found, ignoring tag');\n }\n } else if (resource.spec.ref?.tag) {\n dep = getDep(\n `${container}:${resource.spec.ref.tag}`,\n false,\n registryAliases,\n );\n dep.autoReplaceStringTemplate =\n '{{#if newValue}}{{newValue}}{{/if}}{{#if newDigest}}@{{newDigest}}{{/if}}';\n dep.replaceString = resource.spec.ref.tag;\n } else {\n dep.skipReason = 'unversioned-reference';\n }\n deps.push(dep);\n break;\n }\n\n case 'Kustomization': {\n for (const image of coerceArray(resource.spec.images)) {\n const dep = extractImage(image, registryAliases);\n if (dep) {\n deps.push(dep);\n }\n }\n }\n }\n }\n return deps;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config?: ExtractConfig,\n): PackageFileContent<FluxManagerData> | null {\n const manifest = readManifest(content, packageFile);\n if (!manifest) {\n return null;\n }\n const helmRepositories = collectHelmRepos([manifest]);\n let deps: PackageDependency[] | null = null;\n switch (manifest.kind) {\n case 'system':\n deps = resolveSystemManifest(manifest);\n break;\n case 'resource': {\n deps = resolveResourceManifest(\n manifest,\n helmRepositories,\n config?.registryAliases,\n );\n break;\n }\n }\n return deps?.length ? { deps } : null;\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile<FluxManagerData>[] | null> {\n const manifests: FluxManifest[] = [];\n const results: PackageFile<FluxManagerData>[] = [];\n\n for (const file of packageFiles) {\n const content = await readLocalFile(file, 'utf8');\n // TODO #22198\n const manifest = readManifest(content!, file);\n if (manifest) {\n manifests.push(manifest);\n }\n }\n\n const helmRepositories = collectHelmRepos(manifests);\n\n for (const manifest of manifests) {\n let deps: PackageDependency[] | null = null;\n switch (manifest.kind) {\n case 'system':\n deps = resolveSystemManifest(manifest);\n break;\n case 'resource': {\n deps = resolveResourceManifest(\n manifest,\n helmRepositories,\n config.registryAliases,\n );\n break;\n }\n }\n if (deps?.length) {\n results.push({\n packageFile: manifest.file,\n deps,\n });\n }\n }\n\n return results.length ? results : null;\n}\n"]}
|
@@ -7,6 +7,7 @@ const simple_git_1 = tslib_1.__importDefault(require("simple-git"));
|
|
7
7
|
const upath_1 = tslib_1.__importDefault(require("upath"));
|
8
8
|
const global_1 = require("../../../config/global");
|
9
9
|
const logger_1 = require("../../../logger");
|
10
|
+
const utils_1 = require("../../../util/exec/utils");
|
10
11
|
const auth_1 = require("../../../util/git/auth");
|
11
12
|
const config_1 = require("../../../util/git/config");
|
12
13
|
const url_1 = require("../../../util/git/url");
|
@@ -33,12 +34,7 @@ async function getDefaultBranch(subModuleUrl) {
|
|
33
34
|
'git-tags',
|
34
35
|
'git-refs',
|
35
36
|
]);
|
36
|
-
const gitEnv = {
|
37
|
-
// pass all existing env variables
|
38
|
-
...process.env,
|
39
|
-
// add all known git Variables
|
40
|
-
...gitSubmoduleAuthEnvironmentVariables,
|
41
|
-
};
|
37
|
+
const gitEnv = (0, utils_1.getChildEnv)({ env: gitSubmoduleAuthEnvironmentVariables });
|
42
38
|
const val = await (0, simple_git_1.default)((0, config_1.simpleGitConfig)())
|
43
39
|
.env(gitEnv)
|
44
40
|
.listRemote(['--symref', subModuleUrl, 'HEAD']);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/git-submodules/extract.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/git-submodules/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import URL from 'node:url';\nimport type { SimpleGit } from 'simple-git';\nimport Git from 'simple-git';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport { getChildEnv } from '../../../util/exec/utils';\nimport { getGitEnvironmentVariables } from '../../../util/git/auth';\nimport { simpleGitConfig } from '../../../util/git/config';\nimport { getHttpUrl } from '../../../util/git/url';\nimport { regEx } from '../../../util/regex';\nimport { GitRefsDatasource } from '../../datasource/git-refs';\nimport * as semVerVersioning from '../../versioning/semver';\nimport type { ExtractConfig, PackageFileContent } from '../types';\nimport type { GitModule } from './types';\n\nasync function getUrl(\n git: SimpleGit,\n gitModulesPath: string,\n submoduleName: string,\n): Promise<string> {\n const path = (\n await Git(simpleGitConfig()).raw([\n 'config',\n '--file',\n gitModulesPath,\n '--get',\n `submodule.${submoduleName}.url`,\n ])\n )?.trim();\n if (!path?.startsWith('../')) {\n return path;\n }\n const remoteUrl = (\n await git.raw(['config', '--get', 'remote.origin.url'])\n ).trim();\n return URL.resolve(`${remoteUrl}/`, path);\n}\n\nconst headRefRe = regEx(/ref: refs\\/heads\\/(?<branch>\\w+)\\s/);\n\nasync function getDefaultBranch(subModuleUrl: string): Promise<string> {\n const gitSubmoduleAuthEnvironmentVariables = getGitEnvironmentVariables([\n 'git-tags',\n 'git-refs',\n ]);\n const gitEnv = getChildEnv({ env: gitSubmoduleAuthEnvironmentVariables });\n const val = await Git(simpleGitConfig())\n .env(gitEnv)\n .listRemote(['--symref', subModuleUrl, 'HEAD']);\n return headRefRe.exec(val)?.groups?.branch ?? 'master';\n}\n\nasync function getBranch(\n git: SimpleGit,\n gitModulesPath: string,\n submoduleName: string,\n subModuleUrl: string,\n): Promise<string> {\n const branchFromConfig = (\n await Git(simpleGitConfig()).raw([\n 'config',\n '--file',\n gitModulesPath,\n '--get',\n `submodule.${submoduleName}.branch`,\n ])\n ).trim();\n\n return branchFromConfig === '.'\n ? (await git.branch(['--list'])).current.trim()\n : branchFromConfig || (await getDefaultBranch(subModuleUrl)).trim();\n}\n\nasync function getModules(\n git: SimpleGit,\n gitModulesPath: string,\n): Promise<GitModule[]> {\n const res: GitModule[] = [];\n try {\n const modules = (\n (await git.raw([\n 'config',\n '--file',\n gitModulesPath,\n '--get-regexp',\n '\\\\.path',\n ])) ?? /* istanbul ignore next: should never happen */ ''\n )\n .trim()\n .split(regEx(/\\n/))\n .filter((s) => !!s);\n\n for (const line of modules) {\n const [, name, path] = line.split(regEx(/submodule\\.(.+?)\\.path\\s(.+)/));\n res.push({ name, path });\n }\n } catch (err) /* istanbul ignore next */ {\n logger.warn({ err }, 'Error getting git submodules during extract');\n }\n return res;\n}\n\nexport default async function extractPackageFile(\n _content: string,\n packageFile: string,\n _config: ExtractConfig,\n): Promise<PackageFileContent | null> {\n const localDir = GlobalConfig.get('localDir');\n const git = Git(localDir, simpleGitConfig());\n const gitModulesPath = upath.join(localDir, packageFile);\n\n const depNames = await getModules(git, gitModulesPath);\n\n if (!depNames.length) {\n return null;\n }\n\n const deps = [];\n for (const { name, path } of depNames) {\n try {\n const [currentDigest] = (\n await git.subModule(['status', '--cached', path])\n )\n .trim()\n .replace(regEx(/^[-+]/), '')\n .split(regEx(/\\s/));\n const subModuleUrl = await getUrl(git, gitModulesPath, name);\n const httpSubModuleUrl = getHttpUrl(subModuleUrl);\n const currentValue = await getBranch(\n git,\n gitModulesPath,\n name,\n httpSubModuleUrl,\n );\n deps.push({\n depName: path,\n packageName: httpSubModuleUrl,\n currentValue,\n currentDigest,\n ...(semVerVersioning.api.isVersion(currentValue)\n ? { versioning: semVerVersioning.id }\n : {}),\n });\n } catch (err) /* istanbul ignore next */ {\n logger.warn(\n { err, packageFile },\n 'Error mapping git submodules during extraction',\n );\n }\n }\n\n return { deps, datasource: GitRefsDatasource.id };\n}\n"]}
|
@@ -6,6 +6,7 @@ const simple_git_1 = tslib_1.__importDefault(require("simple-git"));
|
|
6
6
|
const upath_1 = tslib_1.__importDefault(require("upath"));
|
7
7
|
const global_1 = require("../../../config/global");
|
8
8
|
const logger_1 = require("../../../logger");
|
9
|
+
const utils_1 = require("../../../util/exec/utils");
|
9
10
|
const fs_1 = require("../../../util/fs");
|
10
11
|
const auth_1 = require("../../../util/git/auth");
|
11
12
|
async function updateDependency({ fileContent, upgrade, }) {
|
@@ -14,14 +15,9 @@ async function updateDependency({ fileContent, upgrade, }) {
|
|
14
15
|
'git-tags',
|
15
16
|
'git-refs',
|
16
17
|
]);
|
17
|
-
const gitEnv = {
|
18
|
-
// pass all existing env variables
|
19
|
-
...process.env,
|
20
|
-
// add all known git Variables
|
21
|
-
...gitSubmoduleAuthEnvironmentVariables,
|
22
|
-
};
|
18
|
+
const gitEnv = (0, utils_1.getChildEnv)({ env: gitSubmoduleAuthEnvironmentVariables });
|
23
19
|
const git = (0, simple_git_1.default)(localDir).env(gitEnv);
|
24
|
-
const submoduleGit = (0, simple_git_1.default)(upath_1.default.join(localDir, upgrade.depName));
|
20
|
+
const submoduleGit = (0, simple_git_1.default)(upath_1.default.join(localDir, upgrade.depName)).env(gitEnv);
|
25
21
|
try {
|
26
22
|
await git.submoduleUpdate(['--checkout', '--init', upgrade.depName]);
|
27
23
|
await submoduleGit.checkout([upgrade.newDigest]);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../lib/modules/manager/git-submodules/update.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../../lib/modules/manager/git-submodules/update.ts"],"names":[],"mappings":";;AASA,mCAkCC;;AA3CD,oEAA6B;AAC7B,0DAA0B;AAC1B,mDAAsD;AACtD,4CAAyC;AACzC,oDAAuD;AACvD,yCAAiD;AACjD,iDAAoE;AAGrD,KAAK,UAAU,gBAAgB,CAAC,EAC7C,WAAW,EACX,OAAO,GACgB;IACvB,MAAM,QAAQ,GAAG,qBAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,oCAAoC,GAAG,IAAA,iCAA0B,EAAC;QACtE,UAAU;QACV,UAAU;KACX,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAC,EAAE,GAAG,EAAE,oCAAoC,EAAE,CAAC,CAAC;IAC1E,MAAM,GAAG,GAAG,IAAA,oBAAG,EAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,IAAA,oBAAG,EAAC,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE5E,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,eAAe,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAQ,CAAC,CAAC,CAAC;QACtE,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAU,CAAC,CAAC,CAAC;QAClD,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,YAAY,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;YAClE,MAAM,GAAG,CAAC,SAAS,CAAC;gBAClB,YAAY;gBACZ,UAAU;gBACV,OAAO,CAAC,QAAQ;gBAChB,OAAO,CAAC,OAAQ;aACjB,CAAC,CAAC;YACH,MAAM,qBAAqB,GAAG,MAAM,IAAA,kBAAa,EAC/C,OAAO,CAAC,WAAY,EACpB,MAAM,CACP,CAAC;YACF,OAAO,qBAAsB,CAAC;QAChC,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,0BAA0B,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC","sourcesContent":["import Git from 'simple-git';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport { getChildEnv } from '../../../util/exec/utils';\nimport { readLocalFile } from '../../../util/fs';\nimport { getGitEnvironmentVariables } from '../../../util/git/auth';\nimport type { UpdateDependencyConfig } from '../types';\n\nexport default async function updateDependency({\n fileContent,\n upgrade,\n}: UpdateDependencyConfig): Promise<string | null> {\n const localDir = GlobalConfig.get('localDir');\n const gitSubmoduleAuthEnvironmentVariables = getGitEnvironmentVariables([\n 'git-tags',\n 'git-refs',\n ]);\n const gitEnv = getChildEnv({ env: gitSubmoduleAuthEnvironmentVariables });\n const git = Git(localDir).env(gitEnv);\n const submoduleGit = Git(upath.join(localDir, upgrade.depName)).env(gitEnv);\n\n try {\n await git.submoduleUpdate(['--checkout', '--init', upgrade.depName!]);\n await submoduleGit.checkout([upgrade.newDigest!]);\n if (upgrade.newValue && upgrade.currentValue !== upgrade.newValue) {\n await git.subModule([\n 'set-branch',\n '--branch',\n upgrade.newValue,\n upgrade.depName!,\n ]);\n const updatedPackageContent = await readLocalFile(\n upgrade.packageFile!,\n 'utf8',\n );\n return updatedPackageContent!;\n }\n return fileContent;\n } catch (err) {\n logger.debug({ err }, 'submodule checkout error');\n return null;\n }\n}\n"]}
|
@@ -16,7 +16,7 @@ const npmVersioning = tslib_1.__importStar(require("../../versioning/npm"));
|
|
16
16
|
const extract_1 = require("../dockerfile/extract");
|
17
17
|
const schema_1 = require("./schema");
|
18
18
|
const dockerActionRe = (0, regex_1.regEx)(/^\s+uses\s*: ['"]?docker:\/\/([^'"]+)\s*$/);
|
19
|
-
const actionRe = (0, regex_1.regEx)(/^\s+-?\s+?uses\s*: (?<replaceString>['"]?(?<depName>(?<registryUrl>https:\/\/[.\w-]+\/)?(?<packageName>[\w-]+\/[.\w-]+))(?<path>\/.*)?@(?<currentValue>[^\s'"]+)['"]?(?:(?<commentWhiteSpaces>\s+)#\s*(((?:renovate\s*:\s*)?(?:pin\s+|tag\s*=\s*)?|(?:ratchet:[\w-]+\/[.\w-]+)?)@?(?<tag>([\w-]
|
19
|
+
const actionRe = (0, regex_1.regEx)(/^\s+-?\s+?uses\s*: (?<replaceString>['"]?(?<depName>(?<registryUrl>https:\/\/[.\w-]+\/)?(?<packageName>[\w-]+\/[.\w-]+))(?<path>\/.*)?@(?<currentValue>[^\s'"]+)['"]?(?:(?<commentWhiteSpaces>\s+)#\s*(((?:renovate\s*:\s*)?(?:pin\s+|tag\s*=\s*)?|(?:ratchet:[\w-]+\/[.\w-]+)?)@?(?<tag>([\w-]*[-/])?v?\d+(?:\.\d+(?:\.\d+)?)?)|(?:ratchet:exclude)))?)/);
|
20
20
|
// SHA1 or SHA256, see https://github.blog/2020-10-19-git-2-29-released/
|
21
21
|
const shaRe = (0, regex_1.regEx)(/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/);
|
22
22
|
const shaShortRe = (0, regex_1.regEx)(/^[a-f0-9]{6,7}$/);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/github-actions/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { GlobalConfig } from '../../../config/global';\nimport { logger, withMeta } from '../../../logger';\nimport { detectPlatform } from '../../../util/common';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport { GiteaTagsDatasource } from '../../datasource/gitea-tags';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases';\nimport { GithubRunnersDatasource } from '../../datasource/github-runners';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport * as dockerVersioning from '../../versioning/docker';\nimport * as nodeVersioning from '../../versioning/node';\nimport * as npmVersioning from '../../versioning/npm';\nimport { getDep } from '../dockerfile/extract';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport type { Steps } from './schema';\nimport { WorkflowSchema } from './schema';\n\nconst dockerActionRe = regEx(/^\\s+uses\\s*: ['\"]?docker:\\/\\/([^'\"]+)\\s*$/);\nconst actionRe = regEx(\n /^\\s+-?\\s+?uses\\s*: (?<replaceString>['\"]?(?<depName>(?<registryUrl>https:\\/\\/[.\\w-]+\\/)?(?<packageName>[\\w-]+\\/[.\\w-]+))(?<path>\\/.*)?@(?<currentValue>[^\\s'\"]+)['\"]?(?:(?<commentWhiteSpaces>\\s+)#\\s*(((?:renovate\\s*:\\s*)?(?:pin\\s+|tag\\s*=\\s*)?|(?:ratchet:[\\w-]+\\/[.\\w-]+)?)@?(?<tag>([\\w-]*-)?v?\\d+(?:\\.\\d+(?:\\.\\d+)?)?)|(?:ratchet:exclude)))?)/,\n);\n\n// SHA1 or SHA256, see https://github.blog/2020-10-19-git-2-29-released/\nconst shaRe = regEx(/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/);\nconst shaShortRe = regEx(/^[a-f0-9]{6,7}$/);\n\n// detects if we run against a Github Enterprise Server and adds the URL to the beginning of the registryURLs for looking up Actions\n// This reflects the behavior of how GitHub looks up Actions\n// First on the Enterprise Server, then on GitHub.com\nfunction detectCustomGitHubRegistryUrlsForActions(): PackageDependency {\n const endpoint = GlobalConfig.get('endpoint');\n const registryUrls = ['https://github.com'];\n if (endpoint && GlobalConfig.get('platform') === 'github') {\n const parsedEndpoint = new URL(endpoint);\n\n if (\n parsedEndpoint.host !== 'github.com' &&\n parsedEndpoint.host !== 'api.github.com'\n ) {\n registryUrls.unshift(\n `${parsedEndpoint.protocol}//${parsedEndpoint.host}`,\n );\n return { registryUrls };\n }\n }\n return {};\n}\n\nfunction extractWithRegex(\n content: string,\n config: ExtractConfig,\n): PackageDependency[] {\n const customRegistryUrlsPackageDependency =\n detectCustomGitHubRegistryUrlsForActions();\n logger.trace('github-actions.extractWithRegex()');\n const deps: PackageDependency[] = [];\n for (const line of content.split(newlineRegex)) {\n if (line.trim().startsWith('#')) {\n continue;\n }\n\n const dockerMatch = dockerActionRe.exec(line);\n if (dockerMatch) {\n const [, currentFrom] = dockerMatch;\n const dep = getDep(currentFrom, true, config.registryAliases);\n dep.depType = 'docker';\n deps.push(dep);\n continue;\n }\n\n const tagMatch = actionRe.exec(line);\n if (tagMatch?.groups) {\n const {\n depName,\n packageName,\n currentValue,\n path = '',\n tag,\n replaceString,\n registryUrl = '',\n commentWhiteSpaces = ' ',\n } = tagMatch.groups;\n let quotes = '';\n if (replaceString.includes(\"'\")) {\n quotes = \"'\";\n }\n if (replaceString.includes('\"')) {\n quotes = '\"';\n }\n const dep: PackageDependency = {\n depName,\n ...(packageName !== depName && { packageName }),\n commitMessageTopic: '{{{depName}}} action',\n datasource: GithubTagsDatasource.id,\n versioning: dockerVersioning.id,\n depType: 'action',\n replaceString,\n autoReplaceStringTemplate: `${quotes}{{depName}}${path}@{{#if newDigest}}{{newDigest}}${quotes}{{#if newValue}}${commentWhiteSpaces}# {{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}${quotes}{{/unless}}`,\n ...(registryUrl\n ? detectDatasource(registryUrl)\n : customRegistryUrlsPackageDependency),\n };\n if (shaRe.test(currentValue)) {\n dep.currentValue = tag;\n dep.currentDigest = currentValue;\n } else if (shaShortRe.test(currentValue)) {\n dep.currentValue = tag;\n dep.currentDigestShort = currentValue;\n } else {\n dep.currentValue = currentValue;\n }\n deps.push(dep);\n }\n }\n return deps;\n}\n\nfunction detectDatasource(registryUrl: string): PackageDependency {\n const platform = detectPlatform(registryUrl);\n\n switch (platform) {\n case 'github':\n return { registryUrls: [registryUrl] };\n case 'gitea':\n return {\n registryUrls: [registryUrl],\n datasource: GiteaTagsDatasource.id,\n };\n }\n\n return {\n skipReason: 'unsupported-url',\n };\n}\n\nconst runnerVersionRegex = regEx(\n /^\\s*(?<depName>[a-zA-Z]+)-(?<currentValue>[^\\s]+)/,\n);\n\nfunction extractRunner(runner: string): PackageDependency | null {\n const runnerVersionGroups = runnerVersionRegex.exec(runner)?.groups;\n if (!runnerVersionGroups) {\n return null;\n }\n\n const { depName, currentValue } = runnerVersionGroups;\n\n if (!GithubRunnersDatasource.isValidRunner(depName, currentValue)) {\n return null;\n }\n\n const dependency: PackageDependency = {\n depName,\n currentValue,\n replaceString: `${depName}-${currentValue}`,\n depType: 'github-runner',\n datasource: GithubRunnersDatasource.id,\n autoReplaceStringTemplate: '{{depName}}-{{newValue}}',\n };\n\n if (!dockerVersioning.api.isValid(currentValue)) {\n dependency.skipReason = 'invalid-version';\n }\n\n return dependency;\n}\n\nconst versionedActions: Record<string, string> = {\n go: npmVersioning.id,\n node: nodeVersioning.id,\n python: npmVersioning.id,\n // Not covered yet because they use different datasources/packageNames:\n // - dotnet\n // - java\n};\n\nfunction extractSteps(\n steps: Steps[],\n deps: PackageDependency<Record<string, any>>[],\n): void {\n for (const step of steps) {\n for (const [action, versioning] of Object.entries(versionedActions)) {\n const actionName = `actions/setup-${action}`;\n if (step.uses === actionName || step.uses?.startsWith(`${actionName}@`)) {\n const fieldName = `${action}-version`;\n const currentValue = step.with?.[fieldName];\n if (currentValue) {\n deps.push({\n datasource: GithubReleasesDatasource.id,\n depName: action,\n packageName: `actions/${action}-versions`,\n versioning,\n extractVersion: '^(?<version>\\\\d+\\\\.\\\\d+\\\\.\\\\d+)(-\\\\d+)?$', // Actions release tags are like 1.24.1-13667719799\n currentValue,\n depType: 'uses-with',\n });\n }\n }\n }\n }\n}\n\nfunction extractWithYAMLParser(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageDependency[] {\n logger.trace('github-actions.extractWithYAMLParser()');\n const deps: PackageDependency[] = [];\n\n const obj = withMeta({ packageFile }, () => WorkflowSchema.parse(content));\n\n if (!obj) {\n return deps;\n }\n\n // composite action\n if ('runs' in obj && obj.runs.steps) {\n extractSteps(obj.runs.steps, deps);\n } else if ('jobs' in obj) {\n for (const job of Object.values(obj.jobs)) {\n if (job.container) {\n const dep = getDep(job.container, true, config.registryAliases);\n if (dep) {\n dep.depType = 'container';\n deps.push(dep);\n }\n }\n\n for (const service of job.services) {\n const dep = getDep(service, true, config.registryAliases);\n if (dep) {\n dep.depType = 'service';\n deps.push(dep);\n }\n }\n\n for (const runner of job['runs-on']) {\n const dep = extractRunner(runner);\n if (dep) {\n deps.push(dep);\n }\n }\n\n extractSteps(job.steps, deps);\n }\n }\n\n return deps;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig = {}, // TODO: enforce ExtractConfig\n): PackageFileContent | null {\n logger.trace(`github-actions.extractPackageFile(${packageFile})`);\n const deps = [\n ...extractWithRegex(content, config),\n ...extractWithYAMLParser(content, packageFile, config),\n ];\n if (!deps.length) {\n return null;\n }\n return { deps };\n}\n"]}
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/github-actions/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { GlobalConfig } from '../../../config/global';\nimport { logger, withMeta } from '../../../logger';\nimport { detectPlatform } from '../../../util/common';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport { GiteaTagsDatasource } from '../../datasource/gitea-tags';\nimport { GithubReleasesDatasource } from '../../datasource/github-releases';\nimport { GithubRunnersDatasource } from '../../datasource/github-runners';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport * as dockerVersioning from '../../versioning/docker';\nimport * as nodeVersioning from '../../versioning/node';\nimport * as npmVersioning from '../../versioning/npm';\nimport { getDep } from '../dockerfile/extract';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport type { Steps } from './schema';\nimport { WorkflowSchema } from './schema';\n\nconst dockerActionRe = regEx(/^\\s+uses\\s*: ['\"]?docker:\\/\\/([^'\"]+)\\s*$/);\nconst actionRe = regEx(\n /^\\s+-?\\s+?uses\\s*: (?<replaceString>['\"]?(?<depName>(?<registryUrl>https:\\/\\/[.\\w-]+\\/)?(?<packageName>[\\w-]+\\/[.\\w-]+))(?<path>\\/.*)?@(?<currentValue>[^\\s'\"]+)['\"]?(?:(?<commentWhiteSpaces>\\s+)#\\s*(((?:renovate\\s*:\\s*)?(?:pin\\s+|tag\\s*=\\s*)?|(?:ratchet:[\\w-]+\\/[.\\w-]+)?)@?(?<tag>([\\w-]*[-/])?v?\\d+(?:\\.\\d+(?:\\.\\d+)?)?)|(?:ratchet:exclude)))?)/,\n);\n\n// SHA1 or SHA256, see https://github.blog/2020-10-19-git-2-29-released/\nconst shaRe = regEx(/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/);\nconst shaShortRe = regEx(/^[a-f0-9]{6,7}$/);\n\n// detects if we run against a Github Enterprise Server and adds the URL to the beginning of the registryURLs for looking up Actions\n// This reflects the behavior of how GitHub looks up Actions\n// First on the Enterprise Server, then on GitHub.com\nfunction detectCustomGitHubRegistryUrlsForActions(): PackageDependency {\n const endpoint = GlobalConfig.get('endpoint');\n const registryUrls = ['https://github.com'];\n if (endpoint && GlobalConfig.get('platform') === 'github') {\n const parsedEndpoint = new URL(endpoint);\n\n if (\n parsedEndpoint.host !== 'github.com' &&\n parsedEndpoint.host !== 'api.github.com'\n ) {\n registryUrls.unshift(\n `${parsedEndpoint.protocol}//${parsedEndpoint.host}`,\n );\n return { registryUrls };\n }\n }\n return {};\n}\n\nfunction extractWithRegex(\n content: string,\n config: ExtractConfig,\n): PackageDependency[] {\n const customRegistryUrlsPackageDependency =\n detectCustomGitHubRegistryUrlsForActions();\n logger.trace('github-actions.extractWithRegex()');\n const deps: PackageDependency[] = [];\n for (const line of content.split(newlineRegex)) {\n if (line.trim().startsWith('#')) {\n continue;\n }\n\n const dockerMatch = dockerActionRe.exec(line);\n if (dockerMatch) {\n const [, currentFrom] = dockerMatch;\n const dep = getDep(currentFrom, true, config.registryAliases);\n dep.depType = 'docker';\n deps.push(dep);\n continue;\n }\n\n const tagMatch = actionRe.exec(line);\n if (tagMatch?.groups) {\n const {\n depName,\n packageName,\n currentValue,\n path = '',\n tag,\n replaceString,\n registryUrl = '',\n commentWhiteSpaces = ' ',\n } = tagMatch.groups;\n let quotes = '';\n if (replaceString.includes(\"'\")) {\n quotes = \"'\";\n }\n if (replaceString.includes('\"')) {\n quotes = '\"';\n }\n const dep: PackageDependency = {\n depName,\n ...(packageName !== depName && { packageName }),\n commitMessageTopic: '{{{depName}}} action',\n datasource: GithubTagsDatasource.id,\n versioning: dockerVersioning.id,\n depType: 'action',\n replaceString,\n autoReplaceStringTemplate: `${quotes}{{depName}}${path}@{{#if newDigest}}{{newDigest}}${quotes}{{#if newValue}}${commentWhiteSpaces}# {{newValue}}{{/if}}{{/if}}{{#unless newDigest}}{{newValue}}${quotes}{{/unless}}`,\n ...(registryUrl\n ? detectDatasource(registryUrl)\n : customRegistryUrlsPackageDependency),\n };\n if (shaRe.test(currentValue)) {\n dep.currentValue = tag;\n dep.currentDigest = currentValue;\n } else if (shaShortRe.test(currentValue)) {\n dep.currentValue = tag;\n dep.currentDigestShort = currentValue;\n } else {\n dep.currentValue = currentValue;\n }\n deps.push(dep);\n }\n }\n return deps;\n}\n\nfunction detectDatasource(registryUrl: string): PackageDependency {\n const platform = detectPlatform(registryUrl);\n\n switch (platform) {\n case 'github':\n return { registryUrls: [registryUrl] };\n case 'gitea':\n return {\n registryUrls: [registryUrl],\n datasource: GiteaTagsDatasource.id,\n };\n }\n\n return {\n skipReason: 'unsupported-url',\n };\n}\n\nconst runnerVersionRegex = regEx(\n /^\\s*(?<depName>[a-zA-Z]+)-(?<currentValue>[^\\s]+)/,\n);\n\nfunction extractRunner(runner: string): PackageDependency | null {\n const runnerVersionGroups = runnerVersionRegex.exec(runner)?.groups;\n if (!runnerVersionGroups) {\n return null;\n }\n\n const { depName, currentValue } = runnerVersionGroups;\n\n if (!GithubRunnersDatasource.isValidRunner(depName, currentValue)) {\n return null;\n }\n\n const dependency: PackageDependency = {\n depName,\n currentValue,\n replaceString: `${depName}-${currentValue}`,\n depType: 'github-runner',\n datasource: GithubRunnersDatasource.id,\n autoReplaceStringTemplate: '{{depName}}-{{newValue}}',\n };\n\n if (!dockerVersioning.api.isValid(currentValue)) {\n dependency.skipReason = 'invalid-version';\n }\n\n return dependency;\n}\n\nconst versionedActions: Record<string, string> = {\n go: npmVersioning.id,\n node: nodeVersioning.id,\n python: npmVersioning.id,\n // Not covered yet because they use different datasources/packageNames:\n // - dotnet\n // - java\n};\n\nfunction extractSteps(\n steps: Steps[],\n deps: PackageDependency<Record<string, any>>[],\n): void {\n for (const step of steps) {\n for (const [action, versioning] of Object.entries(versionedActions)) {\n const actionName = `actions/setup-${action}`;\n if (step.uses === actionName || step.uses?.startsWith(`${actionName}@`)) {\n const fieldName = `${action}-version`;\n const currentValue = step.with?.[fieldName];\n if (currentValue) {\n deps.push({\n datasource: GithubReleasesDatasource.id,\n depName: action,\n packageName: `actions/${action}-versions`,\n versioning,\n extractVersion: '^(?<version>\\\\d+\\\\.\\\\d+\\\\.\\\\d+)(-\\\\d+)?$', // Actions release tags are like 1.24.1-13667719799\n currentValue,\n depType: 'uses-with',\n });\n }\n }\n }\n }\n}\n\nfunction extractWithYAMLParser(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageDependency[] {\n logger.trace('github-actions.extractWithYAMLParser()');\n const deps: PackageDependency[] = [];\n\n const obj = withMeta({ packageFile }, () => WorkflowSchema.parse(content));\n\n if (!obj) {\n return deps;\n }\n\n // composite action\n if ('runs' in obj && obj.runs.steps) {\n extractSteps(obj.runs.steps, deps);\n } else if ('jobs' in obj) {\n for (const job of Object.values(obj.jobs)) {\n if (job.container) {\n const dep = getDep(job.container, true, config.registryAliases);\n if (dep) {\n dep.depType = 'container';\n deps.push(dep);\n }\n }\n\n for (const service of job.services) {\n const dep = getDep(service, true, config.registryAliases);\n if (dep) {\n dep.depType = 'service';\n deps.push(dep);\n }\n }\n\n for (const runner of job['runs-on']) {\n const dep = extractRunner(runner);\n if (dep) {\n deps.push(dep);\n }\n }\n\n extractSteps(job.steps, deps);\n }\n }\n\n return deps;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig = {}, // TODO: enforce ExtractConfig\n): PackageFileContent | null {\n logger.trace(`github-actions.extractPackageFile(${packageFile})`);\n const deps = [\n ...extractWithRegex(content, config),\n ...extractWithYAMLParser(content, packageFile, config),\n ];\n if (!deps.length) {\n return null;\n }\n return { deps };\n}\n"]}
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.updateArtifacts = updateArtifacts;
|
4
4
|
const tslib_1 = require("tslib");
|
5
5
|
const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
|
6
|
+
const shlex_1 = require("shlex");
|
6
7
|
const error_messages_1 = require("../../../constants/error-messages");
|
7
8
|
const logger_1 = require("../../../logger");
|
8
9
|
const exec_1 = require("../../../util/exec");
|
@@ -40,7 +41,10 @@ async function updateArtifacts(updateArtifact) {
|
|
40
41
|
const packagesToUpdate = isLockFileMaintenance
|
41
42
|
? []
|
42
43
|
: updatedDeps.map((dep) => dep.depName).filter(is_1.default.string);
|
43
|
-
const updateCommand = [
|
44
|
+
const updateCommand = [
|
45
|
+
'gleam deps update',
|
46
|
+
...packagesToUpdate.map(shlex_1.quote),
|
47
|
+
].join(' ');
|
44
48
|
await (0, exec_1.exec)(updateCommand, execOptions);
|
45
49
|
const newLockFileContent = await (0, fs_1.readLocalFile)(lockFileName, 'utf8');
|
46
50
|
if (!newLockFileContent) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gleam/artifacts.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gleam/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { quote } from 'shlex';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport {\n deleteLocalFile,\n getSiblingFileName,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport type { UpdateArtifact, UpdateArtifactsResult } from '../types';\n\nexport async function updateArtifacts(\n updateArtifact: UpdateArtifact,\n): Promise<UpdateArtifactsResult[] | null> {\n const { packageFileName, updatedDeps, newPackageFileContent, config } =\n updateArtifact;\n logger.debug(`gleam.updateArtifacts(${packageFileName})`);\n const { isLockFileMaintenance } = config;\n\n if (is.emptyArray(updatedDeps) && !isLockFileMaintenance) {\n logger.debug('No updated gleam deps - returning null');\n return null;\n }\n\n const lockFileName = getSiblingFileName(packageFileName, 'manifest.toml');\n\n const oldLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!oldLockFileContent) {\n logger.debug(`No ${lockFileName} found`);\n return null;\n }\n\n try {\n await writeLocalFile(packageFileName, newPackageFileContent);\n if (isLockFileMaintenance) {\n await deleteLocalFile(lockFileName);\n }\n\n const execOptions: ExecOptions = {\n cwdFile: packageFileName,\n docker: {},\n toolConstraints: [\n {\n toolName: 'gleam',\n constraint: config.constraints?.gleam,\n },\n ],\n };\n\n // `gleam deps update` with no packages rebuilds the lock file\n const packagesToUpdate = isLockFileMaintenance\n ? []\n : updatedDeps.map((dep) => dep.depName).filter(is.string);\n\n const updateCommand = [\n 'gleam deps update',\n ...packagesToUpdate.map(quote),\n ].join(' ');\n await exec(updateCommand, execOptions);\n const newLockFileContent = await readLocalFile(lockFileName, 'utf8');\n if (!newLockFileContent) {\n logger.debug(`No ${lockFileName} found`);\n return null;\n }\n if (oldLockFileContent === newLockFileContent) {\n logger.debug(`No changes in ${lockFileName} content`);\n return null;\n }\n return [\n {\n file: {\n type: 'addition',\n path: lockFileName,\n contents: newLockFileContent,\n },\n },\n ];\n } catch (err) {\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.warn({ lockfile: lockFileName, err }, `Failed to update lock file`);\n return [\n {\n artifactError: {\n lockFile: lockFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"]}
|
@@ -10,6 +10,7 @@ const global_1 = require("../../../config/global");
|
|
10
10
|
const error_messages_1 = require("../../../constants/error-messages");
|
11
11
|
const logger_1 = require("../../../logger");
|
12
12
|
const array_1 = require("../../../util/array");
|
13
|
+
const env_1 = require("../../../util/env");
|
13
14
|
const exec_1 = require("../../../util/exec");
|
14
15
|
const filter_map_1 = require("../../../util/filter-map");
|
15
16
|
const fs_1 = require("../../../util/fs");
|
@@ -121,16 +122,17 @@ async function updateArtifacts({ packageFileName: goModFileName, updatedDeps, ne
|
|
121
122
|
try {
|
122
123
|
await (0, fs_1.writeLocalFile)(goModFileName, massagedGoMod);
|
123
124
|
const cmd = 'go';
|
125
|
+
const env = (0, env_1.getEnv)();
|
124
126
|
const execOptions = {
|
125
127
|
cwdFile: goModFileName,
|
126
128
|
extraEnv: {
|
127
129
|
GOPATH: await (0, fs_1.ensureCacheDir)('go'),
|
128
|
-
GOPROXY:
|
129
|
-
GOPRIVATE:
|
130
|
-
GONOPROXY:
|
131
|
-
GONOSUMDB:
|
132
|
-
GOSUMDB:
|
133
|
-
GOINSECURE:
|
130
|
+
GOPROXY: env.GOPROXY,
|
131
|
+
GOPRIVATE: env.GOPRIVATE,
|
132
|
+
GONOPROXY: env.GONOPROXY,
|
133
|
+
GONOSUMDB: env.GONOSUMDB,
|
134
|
+
GOSUMDB: env.GOSUMDB,
|
135
|
+
GOINSECURE: env.GOINSECURE,
|
134
136
|
/* v8 ignore next -- TODO: add test */
|
135
137
|
GOFLAGS: useModcacherw(goConstraints) ? '-modcacherw' : null,
|
136
138
|
CGO_ENABLED: global_1.GlobalConfig.get('binarySource') === 'docker' ? '0' : null,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gomod/artifacts.ts"],"names":[],"mappings":";;AAoHA,0CAsUC;;AA1bD,kEAAkC;AAClC,4DAA4B;AAC5B,iCAA8B;AAC9B,0DAA0B;AAC1B,mDAAsD;AACtD,sEAAoE;AACpE,4CAAyC;AACzC,+CAAkD;AAClD,6CAA0C;AAE1C,yDAAqD;AACrD,yCAM0B;AAC1B,2CAAkD;AAClD,iDAAoE;AACpE,+CAA4C;AAC5C,oDAAkD;AAOlD,uDAAuD;AAEvD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,gBAAM,CAAC;AAEhC,SAAS,uBAAuB,CAC9B,WAAgC,EAChC,EAAE,WAAW,EAAyB;IAEtC,4EAA4E;IAC5E,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CACzC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CACvC,CAAC;IACF,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CACvC,eAAM,CAAC,IAAI,CACT,EAAE,OAAO,EAAE,EACX,kDAAkD,CACnD,CACF,CAAC;IACJ,CAAC;IAED,MAAM,oBAAoB,GAAG,WAAW;SACrC,MAAM,CACL,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CACjB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAW,CAAC,QAAQ,CAAC,eAAe,CAAC,CAC9D;SACA,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;QACjC,OAAO,EAAE,OAAQ;QACjB,QAAQ,EAAE,KAAK,CAAC,UAAW,CAAC;KAC7B,CAAC,CAAC;QACH,wCAAwC;SACvC,MAAM,CACL,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CACxB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,QAAQ,GAAG,CAAC,CAClD;SAEA,GAAG,CACF,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CACxB,0BAA0B,OAAO,OAAO,QAAQ,EAAE,CACrD,CAAC;IAEJ,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,oBAAoB,GACtB,sDAAsD,CAAC;QACzD,MAAM,qBAAqB,GAAG,WAAW,EAAE,QAAQ,CAAC;QACpD,IAAI,qBAAqB,EAAE,CAAC;YAC1B,IACE,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAAC;gBACrC,IAAA,gBAAO,EAAC,qBAAqB,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EACvD,CAAC;gBACD,oBAAoB,GAAG,oBAAoB,CAAC,OAAO,CACjD,IAAA,aAAK,EAAC,UAAU,CAAC,EACjB,IAAI,qBAAqB,EAAE,CAC5B,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,eAAM,CAAC,KAAK,CACV,EAAE,qBAAqB,EAAE,EACzB,gEAAgE,CACjE,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,eAAM,CAAC,KAAK,CACV,wFAAwF,CACzF,CAAC;QACJ,CAAC;QACD,oBAAoB,CAAC,OAAO,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED,SAAS,aAAa,CAAC,SAA6B;IAClD,IAAI,CAAC,YAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,IAAA,mBAAW,EAC1C,IAAA,aAAK,EAAC,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CACtC,CAAC;IACF,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAE1E,OAAO,CACL,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QACpB,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QACpB,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC,CAC5C,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,EACpC,eAAe,EAAE,aAAa,EAC9B,WAAW,EACX,qBAAqB,EAAE,eAAe,EACtC,MAAM,GACS;IACf,eAAM,CAAC,KAAK,CAAC,yBAAyB,aAAa,GAAG,CAAC,CAAC;IAExD,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,IAAA,aAAK,EAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;IACnE,MAAM,oBAAoB,GAAG,MAAM,IAAA,kBAAa,EAAC,WAAW,CAAC,CAAC;IAC9D,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,eAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,eAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAClD,MAAM,qBAAqB,GAAG,eAAK,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACnE,MAAM,SAAS,GACb,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,aAAa,CAAC;QACnD,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB,CAAC;YACrD,CAAC,MAAM,IAAA,kBAAa,EAAC,qBAAqB,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAC3D,IAAI,aAAa,GAAG,eAAe,CAAC;IAEpC,IAAI,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACvD,iDAAiD;QACjD,iEAAiE;QACjE,6CAA6C;QAE7C,uGAAuG;QACvG,uGAAuG;QACvG,aAAa,GAAG,aAAa;aAC1B,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAC;YACvD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,MAAM,kBAAkB,GAAG,IAAA,aAAK,EAC9B,4CAA4C,CAC7C,CAAC;QAEF,2CAA2C;QAC3C,4DAA4D;QAC5D,uFAAuF;QACvF,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;QAEpD,gDAAgD;QAChD,YAAY;QACZ,6DAA6D;QAC7D,IAAI;QACJ,MAAM,iBAAiB,GAAG,IAAA,aAAK,EAAC,gCAAgC,CAAC,CAAC;QAElE;;;;WAIG;QACH,MAAM,eAAe,GAAG,CAAC,KAAa,EAAU,EAAE,CAChD,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;QAEtD,wCAAwC;QACxC,aAAa,GAAG,aAAa;aAC1B,OAAO,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;aAC7C,OAAO,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;QAE/C,IAAI,aAAa,KAAK,eAAe,EAAE,CAAC;YACtC,eAAM,CAAC,KAAK,CACV,mEAAmE,CACpE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,aAAa,GACjB,MAAM,CAAC,WAAW,EAAE,EAAE,IAAI,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAE9D,IAAI,CAAC;QACH,MAAM,IAAA,mBAAc,EAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QAEnD,MAAM,GAAG,GAAG,IAAI,CAAC;QACjB,MAAM,WAAW,GAAgB;YAC/B,OAAO,EAAE,aAAa;YACtB,QAAQ,EAAE;gBACR,MAAM,EAAE,MAAM,IAAA,mBAAc,EAAC,IAAI,CAAC;gBAClC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;gBAC5B,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS;gBAChC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS;gBAChC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS;gBAChC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;gBAC5B,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;gBAClC,sCAAsC;gBACtC,OAAO,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI;gBAC5D,WAAW,EAAE,qBAAY,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;gBACvE,GAAG,IAAA,iCAA0B,EAAC,CAAC,IAAI,CAAC,CAAC;aACtC;YACD,MAAM,EAAE,EAAE;YACV,eAAe,EAAE;gBACf;oBACE,QAAQ,EAAE,QAAQ;oBAClB,UAAU,EAAE,aAAa;iBAC1B;aACF;SACF,CAAC;QAEF,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,IAAI,SAA6B,CAAC;QAClC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,SAAS,GAAG,MAAM,CAAC,SAAS;iBACzB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;gBACd,MAAM,OAAO,GAAG,IAAA,qBAAgB,EAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,eAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,2BAA2B,CAAC,CAAC;gBACpD,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC;iBACD,GAAG,CAAC,aAAK,CAAC;iBACV,IAAI,CAAC,GAAG,CAAC,CAAC;YAEb,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,IAAI,IAAI,GAAG,aAAa,SAAS,IAAI,OAAO,EAAE,CAAC;QAC/C,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,yBAAyB,CAAC,CAAC;QACvD,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;QAEpC,uCAAuC;QACvC,MAAM,0BAA0B,GAC9B,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,wBAAwB,CAAC;YAC5D,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC;QAEhC,IAAI,0BAA0B,EAAE,CAAC;YAC/B,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACtE,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,eAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,sCAAsC,CAAC,CAAC;gBACvE,cAAc;gBACd,YAAY,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,MAAM,iBAAiB,GACrB,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,wBAAwB,CAAC;YAC7D,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC;QAChC,IAAI,iBAAiB,EAAE,CAAC;YACtB,eAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACxD,QAAQ,IAAI,eAAe,CAAC;QAC9B,CAAC;QACD,IAAI,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACrD,QAAQ,IAAI,KAAK,CAAC;QACpB,CAAC;QAED,MAAM,mBAAmB,GACvB,CAAC,iBAAiB;YAClB,CAAC,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,IAAI;gBACvD,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,eAAe,CAAC,KAAK,IAAI;gBAC5D,MAAM,CAAC,iBAAiB,EAAE,QAAQ,CAAC,YAAY,CAAC,KAAK,IAAI;gBACzD,CAAC,MAAM,CAAC,UAAU,KAAK,OAAO,IAAI,0BAA0B,CAAC,CAAC,CAAC;QACnE,IAAI,mBAAmB,EAAE,CAAC;YACxB,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAC;YAC7B,eAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC7C,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,iBAAiB,GAAG,eAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAC9D,IAAI,SAAS,EAAE,CAAC;YACd,yDAAyD;YACzD,MAAM,UAAU,GAAG,MAAM,IAAA,6BAAwB,EAC/C,aAAa,EACb,SAAS,CACV,CAAC;YAEF,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,GAAG,aAAa,CAAC;gBACrB,eAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBACrC,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;gBAEpC,IAAI,GAAG,WAAW,CAAC;gBACnB,eAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBACnC,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,YAAY,CAAC;gBACpB,eAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;gBACpC,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;YACtC,CAAC;YAED,IAAI,mBAAmB,EAAE,CAAC;gBACxB,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAC;gBAC7B,eAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;gBAC7C,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,gDAAgD;QAChD,IAAI,mBAAmB,EAAE,CAAC;YACxB,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAC;YAC7B,eAAM,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;YAC7C,YAAY,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,IAAA,WAAI,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QAEtC,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAa,GAAE,CAAC;QACrC,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;YACtC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;YACxC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAC5C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1C,eAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACzC,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE;oBACJ,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,MAAM,IAAA,kBAAa,EAAC,WAAW,CAAC;iBAC3C;aACF,CAAC,CAAC;QACL,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YAChD,eAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC9C,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE;oBACJ,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,iBAAiB;oBACvB,QAAQ,EAAE,MAAM,IAAA,kBAAa,EAAC,iBAAiB,CAAC;iBACjD;aACF,CAAC,CAAC;QACL,CAAC;QAED,0CAA0C;QAC1C,IAAI,0BAA0B,EAAE,CAAC;YAC/B,eAAM,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC;YAC1E,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAChC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBACtB,GAAG,CAAC,IAAI,CAAC;wBACP,IAAI,EAAE;4BACJ,IAAI,EAAE,UAAU;4BAChB,IAAI,EAAE,CAAC;4BACP,QAAQ,EAAE,MAAM,IAAA,kBAAa,EAAC,CAAC,CAAC;yBACjC;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzD,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC5B,GAAG,CAAC,IAAI,CAAC;wBACP,IAAI,EAAE;4BACJ,IAAI,EAAE,UAAU;4BAChB,IAAI,EAAE,CAAC;4BACP,QAAQ,EAAE,MAAM,IAAA,kBAAa,EAAC,CAAC,CAAC;yBACjC;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,IAAA,mBAAW,EAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5C,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE;wBACJ,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,CAAC;qBACR;iBACF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,MAAM,iBAAiB,GAAG,CAAC,MAAM,IAAA,kBAAa,EAAC,aAAa,EAAE,MAAM,CAAC,CAAE;aACpE,OAAO,CAAC,IAAA,aAAK,EAAC,yBAAyB,CAAC,EAAE,EAAE,CAAC;aAC7C,OAAO,CAAC,IAAA,aAAK,EAAC,2BAA2B,CAAC,EAAE,GAAG,CAAC,CAAC;QACpD,IAAI,iBAAiB,KAAK,eAAe,EAAE,CAAC;YAC1C,MAAM,cAAc,GAA0B;gBAC5C,IAAI,EAAE;oBACJ,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,iBAAiB;iBAC5B;aACF,CAAC;YAEF,MAAM,eAAe,GAAG,IAAA,sBAAS,EAAC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACtE,MAAM,eAAe,GAAG,IAAA,oCAAkB,EACxC,eAAe,EACf,iBAAiB,EACjB,eAAe,CAChB,CAAC;YAEF,IAAI,eAAe,EAAE,CAAC;gBACpB,cAAc,CAAC,MAAM,GAAG;oBACtB,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,eAAe;iBACzB,CAAC;YACJ,CAAC;YAED,eAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACzD,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3B,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,qBAAqB;QACrB,IAAI,GAAG,CAAC,OAAO,KAAK,gCAAe,EAAE,CAAC;YACpC,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,eAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,yBAAyB,CAAC,CAAC;QACjD,OAAO;YACL;gBACE,aAAa,EAAE;oBACb,QAAQ,EAAE,WAAW;oBACrB,MAAM,EAAE,GAAG,CAAC,OAAO;iBACpB;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACvC,iDAAiD;IACjD,MAAM,cAAc,GAAG,IAAA,aAAK,EAAC,0CAA0C,CAAC,CAAC,IAAI,CAC3E,OAAO,CACR,CAAC;IACF,MAAM,YAAY,GAAG,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC;IACnD,IAAI,YAAY,EAAE,CAAC;QACjB,eAAM,CAAC,KAAK,CACV,oBAAoB,YAAY,+BAA+B,CAChE,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,6EAA6E;IAC7E,2FAA2F;IAC3F,EAAE;IACF,iGAAiG;IACjG,kDAAkD;IAClD,EAAE;IACF,0FAA0F;IAC1F,6DAA6D;IAC7D,MAAM,aAAa,GAAG,IAAA,aAAK,EAAC,iCAAiC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QAC1E,EAAE,MAAM,EAAE,KAAK,CAAC;IAClB,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,EAAE,GAAG,IAAA,aAAK,EAAC,4BAA4B,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AAClC,CAAC","sourcesContent":["import is from '@sindresorhus/is';\nimport semver from 'semver';\nimport { quote } from 'shlex';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../config/global';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport { filterMap } from '../../../util/filter-map';\nimport {\n ensureCacheDir,\n findLocalSiblingOrParent,\n isValidLocalPath,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport { getGitEnvironmentVariables } from '../../../util/git/auth';\nimport { regEx } from '../../../util/regex';\nimport { isValid } from '../../versioning/semver';\nimport type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsConfig,\n UpdateArtifactsResult,\n} from '../types';\nimport { getExtraDepsNotice } from './artifacts-extra';\n\nconst { major, valid } = semver;\n\nfunction getUpdateImportPathCmds(\n updatedDeps: PackageDependency[],\n { constraints }: UpdateArtifactsConfig,\n): string[] {\n // Check if we fail to parse any major versions and log that they're skipped\n const invalidMajorDeps = updatedDeps.filter(\n ({ newVersion }) => !valid(newVersion),\n );\n if (invalidMajorDeps.length > 0) {\n invalidMajorDeps.forEach(({ depName }) =>\n logger.warn(\n { depName },\n 'Ignoring dependency: Could not get major version',\n ),\n );\n }\n\n const updateImportCommands = updatedDeps\n .filter(\n ({ newVersion }) =>\n valid(newVersion) && !newVersion!.endsWith('+incompatible'),\n )\n .map(({ depName, newVersion }) => ({\n depName: depName!,\n newMajor: major(newVersion!),\n }))\n // Skip path updates going from v0 to v1\n .filter(\n ({ depName, newMajor }) =>\n depName.startsWith('gopkg.in/') || newMajor > 1,\n )\n\n .map(\n ({ depName, newMajor }) =>\n `mod upgrade --mod-name=${depName} -t=${newMajor}`,\n );\n\n if (updateImportCommands.length > 0) {\n let installMarwanModArgs =\n 'install github.com/marwan-at-work/mod/cmd/mod@latest';\n const gomodModCompatibility = constraints?.gomodMod;\n if (gomodModCompatibility) {\n if (\n gomodModCompatibility.startsWith('v') &&\n isValid(gomodModCompatibility.replace(regEx(/^v/), ''))\n ) {\n installMarwanModArgs = installMarwanModArgs.replace(\n regEx(/@latest$/),\n `@${gomodModCompatibility}`,\n );\n } else {\n logger.debug(\n { gomodModCompatibility },\n 'marwan-at-work/mod compatibility range is not valid - skipping',\n );\n }\n } else {\n logger.debug(\n 'No marwan-at-work/mod compatibility range found - installing marwan-at-work/mod latest',\n );\n }\n updateImportCommands.unshift(`go ${installMarwanModArgs}`);\n }\n\n return updateImportCommands;\n}\n\nfunction useModcacherw(goVersion: string | undefined): boolean {\n if (!is.string(goVersion)) {\n return true;\n }\n\n const [, majorPart, minorPart] = coerceArray(\n regEx(/(\\d+)\\.(\\d+)/).exec(goVersion),\n );\n const [major, minor] = [majorPart, minorPart].map((x) => parseInt(x, 10));\n\n return (\n !Number.isNaN(major) &&\n !Number.isNaN(minor) &&\n (major > 1 || (major === 1 && minor >= 14))\n );\n}\n\nexport async function updateArtifacts({\n packageFileName: goModFileName,\n updatedDeps,\n newPackageFileContent: newGoModContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`gomod.updateArtifacts(${goModFileName})`);\n\n const sumFileName = goModFileName.replace(regEx(/\\.mod$/), '.sum');\n const existingGoSumContent = await readLocalFile(sumFileName);\n if (!existingGoSumContent) {\n logger.debug('No go.sum found');\n return null;\n }\n\n const goModDir = upath.dirname(goModFileName);\n\n const vendorDir = upath.join(goModDir, 'vendor/');\n const vendorModulesFileName = upath.join(vendorDir, 'modules.txt');\n const useVendor =\n !!config.postUpdateOptions?.includes('gomodVendor') ||\n (!config.postUpdateOptions?.includes('gomodSkipVendor') &&\n (await readLocalFile(vendorModulesFileName)) !== null);\n let massagedGoMod = newGoModContent;\n\n if (config.postUpdateOptions?.includes('gomodMassage')) {\n // Regex match inline replace directive, example:\n // replace golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5\n // https://go.dev/ref/mod#go-mod-file-replace\n\n // replace bracket after comments, so it doesn't break the regex, doing a complex regex causes problems\n // when there's a comment and \")\" after it, the regex will read replace block until comment.. and stop.\n massagedGoMod = massagedGoMod\n .split('\\n')\n .map((line) => {\n if (line.trim().startsWith('//')) {\n return line.replace(')', 'renovate-replace-bracket');\n }\n return line;\n })\n .join('\\n');\n\n const inlineReplaceRegEx = regEx(\n /(\\r?\\n)(replace\\s+[^\\s]+\\s+=>\\s+\\.\\.\\/.*)/g,\n );\n\n // $1 will be matched with the (\\r?n) group\n // $2 will be matched with the inline replace match, example\n // \"// renovate-replace replace golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5\"\n const inlineCommentOut = '$1// renovate-replace $2';\n\n // Regex match replace directive block, example:\n // replace (\n // golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5\n // )\n const blockReplaceRegEx = regEx(/(\\r?\\n)replace\\s*\\([^)]+\\s*\\)/g);\n\n /**\n * replacerFunction for commenting out replace blocks\n * @param match A string representing a golang replace directive block\n * @returns A commented out block with // renovate-replace\n */\n const blockCommentOut = (match: string): string =>\n match.replace(/(\\r?\\n)/g, '$1// renovate-replace ');\n\n // Comment out golang replace directives\n massagedGoMod = massagedGoMod\n .replace(inlineReplaceRegEx, inlineCommentOut)\n .replace(blockReplaceRegEx, blockCommentOut);\n\n if (massagedGoMod !== newGoModContent) {\n logger.debug(\n 'Removed some relative replace statements and comments from go.mod',\n );\n }\n }\n const goConstraints =\n config.constraints?.go ?? getGoConstraints(newGoModContent);\n\n try {\n await writeLocalFile(goModFileName, massagedGoMod);\n\n const cmd = 'go';\n const execOptions: ExecOptions = {\n cwdFile: goModFileName,\n extraEnv: {\n GOPATH: await ensureCacheDir('go'),\n GOPROXY: process.env.GOPROXY,\n GOPRIVATE: process.env.GOPRIVATE,\n GONOPROXY: process.env.GONOPROXY,\n GONOSUMDB: process.env.GONOSUMDB,\n GOSUMDB: process.env.GOSUMDB,\n GOINSECURE: process.env.GOINSECURE,\n /* v8 ignore next -- TODO: add test */\n GOFLAGS: useModcacherw(goConstraints) ? '-modcacherw' : null,\n CGO_ENABLED: GlobalConfig.get('binarySource') === 'docker' ? '0' : null,\n ...getGitEnvironmentVariables(['go']),\n },\n docker: {},\n toolConstraints: [\n {\n toolName: 'golang',\n constraint: goConstraints,\n },\n ],\n };\n\n const execCommands: string[] = [];\n\n let goGetDirs: string | undefined;\n if (config.goGetDirs) {\n goGetDirs = config.goGetDirs\n .filter((dir) => {\n const isValid = isValidLocalPath(dir);\n if (!isValid) {\n logger.warn({ dir }, 'Invalid path in goGetDirs');\n }\n return isValid;\n })\n .map(quote)\n .join(' ');\n\n if (goGetDirs === '') {\n throw new Error('Invalid goGetDirs');\n }\n }\n\n let args = `get -d -t ${goGetDirs ?? './...'}`;\n logger.trace({ cmd, args }, 'go get command included');\n execCommands.push(`${cmd} ${args}`);\n\n // Update import paths on major updates\n const isImportPathUpdateRequired =\n config.postUpdateOptions?.includes('gomodUpdateImportPaths') &&\n config.updateType === 'major';\n\n if (isImportPathUpdateRequired) {\n const updateImportCmds = getUpdateImportPathCmds(updatedDeps, config);\n if (updateImportCmds.length > 0) {\n logger.debug(updateImportCmds, 'update import path commands included');\n // The updates\n execCommands.push(...updateImportCmds);\n }\n }\n\n const mustSkipGoModTidy =\n !config.postUpdateOptions?.includes('gomodUpdateImportPaths') &&\n config.updateType === 'major';\n if (mustSkipGoModTidy) {\n logger.debug('go mod tidy command skipped');\n }\n\n let tidyOpts = '';\n if (config.postUpdateOptions?.includes('gomodTidy1.17')) {\n tidyOpts += ' -compat=1.17';\n }\n if (config.postUpdateOptions?.includes('gomodTidyE')) {\n tidyOpts += ' -e';\n }\n\n const isGoModTidyRequired =\n !mustSkipGoModTidy &&\n (config.postUpdateOptions?.includes('gomodTidy') === true ||\n config.postUpdateOptions?.includes('gomodTidy1.17') === true ||\n config.postUpdateOptions?.includes('gomodTidyE') === true ||\n (config.updateType === 'major' && isImportPathUpdateRequired));\n if (isGoModTidyRequired) {\n args = 'mod tidy' + tidyOpts;\n logger.debug('go mod tidy command included');\n execCommands.push(`${cmd} ${args}`);\n }\n\n const goWorkSumFileName = upath.join(goModDir, 'go.work.sum');\n if (useVendor) {\n // If we find a go.work, then use go workspace vendoring.\n const goWorkFile = await findLocalSiblingOrParent(\n goModFileName,\n 'go.work',\n );\n\n if (goWorkFile) {\n args = 'work vendor';\n logger.debug('using go work vendor');\n execCommands.push(`${cmd} ${args}`);\n\n args = 'work sync';\n logger.debug('using go work sync');\n execCommands.push(`${cmd} ${args}`);\n } else {\n args = 'mod vendor';\n logger.debug('using go mod vendor');\n execCommands.push(`${cmd} ${args}`);\n }\n\n if (isGoModTidyRequired) {\n args = 'mod tidy' + tidyOpts;\n logger.debug('go mod tidy command included');\n execCommands.push(`${cmd} ${args}`);\n }\n }\n\n // We tidy one more time as a solution for #6795\n if (isGoModTidyRequired) {\n args = 'mod tidy' + tidyOpts;\n logger.debug('go mod tidy command included');\n execCommands.push(`${cmd} ${args}`);\n }\n\n await exec(execCommands, execOptions);\n\n const status = await getRepoStatus();\n if (\n !status.modified.includes(sumFileName) &&\n !status.modified.includes(goModFileName) &&\n !status.modified.includes(goWorkSumFileName)\n ) {\n return null;\n }\n\n const res: UpdateArtifactsResult[] = [];\n if (status.modified.includes(sumFileName)) {\n logger.debug('Returning updated go.sum');\n res.push({\n file: {\n type: 'addition',\n path: sumFileName,\n contents: await readLocalFile(sumFileName),\n },\n });\n }\n\n if (status.modified.includes(goWorkSumFileName)) {\n logger.debug('Returning updated go.work.sum');\n res.push({\n file: {\n type: 'addition',\n path: goWorkSumFileName,\n contents: await readLocalFile(goWorkSumFileName),\n },\n });\n }\n\n // Include all the .go file import changes\n if (isImportPathUpdateRequired) {\n logger.debug('Returning updated go source files for import path changes');\n for (const f of status.modified) {\n if (f.endsWith('.go')) {\n res.push({\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n },\n });\n }\n }\n }\n\n if (useVendor) {\n for (const f of status.modified.concat(status.not_added)) {\n if (f.startsWith(vendorDir)) {\n res.push({\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n },\n });\n }\n }\n for (const f of coerceArray(status.deleted)) {\n res.push({\n file: {\n type: 'deletion',\n path: f,\n },\n });\n }\n }\n\n // TODO: throws in tests (#22198)\n const finalGoModContent = (await readLocalFile(goModFileName, 'utf8'))!\n .replace(regEx(/\\/\\/ renovate-replace /g), '')\n .replace(regEx(/renovate-replace-bracket/g), ')');\n if (finalGoModContent !== newGoModContent) {\n const artifactResult: UpdateArtifactsResult = {\n file: {\n type: 'addition',\n path: goModFileName,\n contents: finalGoModContent,\n },\n };\n\n const updatedDepNames = filterMap(updatedDeps, (dep) => dep?.depName);\n const extraDepsNotice = getExtraDepsNotice(\n newGoModContent,\n finalGoModContent,\n updatedDepNames,\n );\n\n if (extraDepsNotice) {\n artifactResult.notice = {\n file: goModFileName,\n message: extraDepsNotice,\n };\n }\n\n logger.debug('Found updated go.mod after go.sum update');\n res.push(artifactResult);\n }\n return res;\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to update go.sum');\n return [\n {\n artifactError: {\n lockFile: sumFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n\nfunction getGoConstraints(content: string): string | undefined {\n // prefer toolchain directive when go.mod has one\n const toolchainMatch = regEx(/^toolchain\\s*go(?<gover>\\d+\\.\\d+\\.\\d+)$/m).exec(\n content,\n );\n const toolchainVer = toolchainMatch?.groups?.gover;\n if (toolchainVer) {\n logger.debug(\n `Using go version ${toolchainVer} found in toolchain directive`,\n );\n return toolchainVer;\n }\n\n // If go.mod doesn't have toolchain directive and has a full go version spec,\n // for example `go 1.23.6`, pick this version, this doesn't match major.minor version spec.\n //\n // This is because when go.mod have same version defined in go directive and toolchain directive,\n // go will remove toolchain directive from go.mod.\n //\n // For example, go will rewrite `go 1.23.5\\ntoolchain go1.23.5` to `go 1.23.5` by default,\n // in this case, the go directive is the toolchain directive.\n const goFullVersion = regEx(/^go\\s*(?<gover>\\d+\\.\\d+\\.\\d+)$/m).exec(content)\n ?.groups?.gover;\n if (goFullVersion) {\n return goFullVersion;\n }\n\n const re = regEx(/^go\\s*(?<gover>\\d+\\.\\d+)$/m);\n const match = re.exec(content);\n if (!match?.groups?.gover) {\n return undefined;\n }\n return `^${match.groups.gover}`;\n}\n"]}
|
1
|
+
{"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gomod/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport semver from 'semver';\nimport { quote } from 'shlex';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../../config/global';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { coerceArray } from '../../../util/array';\nimport { getEnv } from '../../../util/env';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport { filterMap } from '../../../util/filter-map';\nimport {\n ensureCacheDir,\n findLocalSiblingOrParent,\n isValidLocalPath,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport { getGitEnvironmentVariables } from '../../../util/git/auth';\nimport { regEx } from '../../../util/regex';\nimport { isValid } from '../../versioning/semver';\nimport type {\n PackageDependency,\n UpdateArtifact,\n UpdateArtifactsConfig,\n UpdateArtifactsResult,\n} from '../types';\nimport { getExtraDepsNotice } from './artifacts-extra';\n\nconst { major, valid } = semver;\n\nfunction getUpdateImportPathCmds(\n updatedDeps: PackageDependency[],\n { constraints }: UpdateArtifactsConfig,\n): string[] {\n // Check if we fail to parse any major versions and log that they're skipped\n const invalidMajorDeps = updatedDeps.filter(\n ({ newVersion }) => !valid(newVersion),\n );\n if (invalidMajorDeps.length > 0) {\n invalidMajorDeps.forEach(({ depName }) =>\n logger.warn(\n { depName },\n 'Ignoring dependency: Could not get major version',\n ),\n );\n }\n\n const updateImportCommands = updatedDeps\n .filter(\n ({ newVersion }) =>\n valid(newVersion) && !newVersion!.endsWith('+incompatible'),\n )\n .map(({ depName, newVersion }) => ({\n depName: depName!,\n newMajor: major(newVersion!),\n }))\n // Skip path updates going from v0 to v1\n .filter(\n ({ depName, newMajor }) =>\n depName.startsWith('gopkg.in/') || newMajor > 1,\n )\n\n .map(\n ({ depName, newMajor }) =>\n `mod upgrade --mod-name=${depName} -t=${newMajor}`,\n );\n\n if (updateImportCommands.length > 0) {\n let installMarwanModArgs =\n 'install github.com/marwan-at-work/mod/cmd/mod@latest';\n const gomodModCompatibility = constraints?.gomodMod;\n if (gomodModCompatibility) {\n if (\n gomodModCompatibility.startsWith('v') &&\n isValid(gomodModCompatibility.replace(regEx(/^v/), ''))\n ) {\n installMarwanModArgs = installMarwanModArgs.replace(\n regEx(/@latest$/),\n `@${gomodModCompatibility}`,\n );\n } else {\n logger.debug(\n { gomodModCompatibility },\n 'marwan-at-work/mod compatibility range is not valid - skipping',\n );\n }\n } else {\n logger.debug(\n 'No marwan-at-work/mod compatibility range found - installing marwan-at-work/mod latest',\n );\n }\n updateImportCommands.unshift(`go ${installMarwanModArgs}`);\n }\n\n return updateImportCommands;\n}\n\nfunction useModcacherw(goVersion: string | undefined): boolean {\n if (!is.string(goVersion)) {\n return true;\n }\n\n const [, majorPart, minorPart] = coerceArray(\n regEx(/(\\d+)\\.(\\d+)/).exec(goVersion),\n );\n const [major, minor] = [majorPart, minorPart].map((x) => parseInt(x, 10));\n\n return (\n !Number.isNaN(major) &&\n !Number.isNaN(minor) &&\n (major > 1 || (major === 1 && minor >= 14))\n );\n}\n\nexport async function updateArtifacts({\n packageFileName: goModFileName,\n updatedDeps,\n newPackageFileContent: newGoModContent,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n logger.debug(`gomod.updateArtifacts(${goModFileName})`);\n\n const sumFileName = goModFileName.replace(regEx(/\\.mod$/), '.sum');\n const existingGoSumContent = await readLocalFile(sumFileName);\n if (!existingGoSumContent) {\n logger.debug('No go.sum found');\n return null;\n }\n\n const goModDir = upath.dirname(goModFileName);\n\n const vendorDir = upath.join(goModDir, 'vendor/');\n const vendorModulesFileName = upath.join(vendorDir, 'modules.txt');\n const useVendor =\n !!config.postUpdateOptions?.includes('gomodVendor') ||\n (!config.postUpdateOptions?.includes('gomodSkipVendor') &&\n (await readLocalFile(vendorModulesFileName)) !== null);\n let massagedGoMod = newGoModContent;\n\n if (config.postUpdateOptions?.includes('gomodMassage')) {\n // Regex match inline replace directive, example:\n // replace golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5\n // https://go.dev/ref/mod#go-mod-file-replace\n\n // replace bracket after comments, so it doesn't break the regex, doing a complex regex causes problems\n // when there's a comment and \")\" after it, the regex will read replace block until comment.. and stop.\n massagedGoMod = massagedGoMod\n .split('\\n')\n .map((line) => {\n if (line.trim().startsWith('//')) {\n return line.replace(')', 'renovate-replace-bracket');\n }\n return line;\n })\n .join('\\n');\n\n const inlineReplaceRegEx = regEx(\n /(\\r?\\n)(replace\\s+[^\\s]+\\s+=>\\s+\\.\\.\\/.*)/g,\n );\n\n // $1 will be matched with the (\\r?n) group\n // $2 will be matched with the inline replace match, example\n // \"// renovate-replace replace golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5\"\n const inlineCommentOut = '$1// renovate-replace $2';\n\n // Regex match replace directive block, example:\n // replace (\n // golang.org/x/net v1.2.3 => example.com/fork/net v1.4.5\n // )\n const blockReplaceRegEx = regEx(/(\\r?\\n)replace\\s*\\([^)]+\\s*\\)/g);\n\n /**\n * replacerFunction for commenting out replace blocks\n * @param match A string representing a golang replace directive block\n * @returns A commented out block with // renovate-replace\n */\n const blockCommentOut = (match: string): string =>\n match.replace(/(\\r?\\n)/g, '$1// renovate-replace ');\n\n // Comment out golang replace directives\n massagedGoMod = massagedGoMod\n .replace(inlineReplaceRegEx, inlineCommentOut)\n .replace(blockReplaceRegEx, blockCommentOut);\n\n if (massagedGoMod !== newGoModContent) {\n logger.debug(\n 'Removed some relative replace statements and comments from go.mod',\n );\n }\n }\n const goConstraints =\n config.constraints?.go ?? getGoConstraints(newGoModContent);\n\n try {\n await writeLocalFile(goModFileName, massagedGoMod);\n\n const cmd = 'go';\n const env = getEnv();\n const execOptions: ExecOptions = {\n cwdFile: goModFileName,\n extraEnv: {\n GOPATH: await ensureCacheDir('go'),\n GOPROXY: env.GOPROXY,\n GOPRIVATE: env.GOPRIVATE,\n GONOPROXY: env.GONOPROXY,\n GONOSUMDB: env.GONOSUMDB,\n GOSUMDB: env.GOSUMDB,\n GOINSECURE: env.GOINSECURE,\n /* v8 ignore next -- TODO: add test */\n GOFLAGS: useModcacherw(goConstraints) ? '-modcacherw' : null,\n CGO_ENABLED: GlobalConfig.get('binarySource') === 'docker' ? '0' : null,\n ...getGitEnvironmentVariables(['go']),\n },\n docker: {},\n toolConstraints: [\n {\n toolName: 'golang',\n constraint: goConstraints,\n },\n ],\n };\n\n const execCommands: string[] = [];\n\n let goGetDirs: string | undefined;\n if (config.goGetDirs) {\n goGetDirs = config.goGetDirs\n .filter((dir) => {\n const isValid = isValidLocalPath(dir);\n if (!isValid) {\n logger.warn({ dir }, 'Invalid path in goGetDirs');\n }\n return isValid;\n })\n .map(quote)\n .join(' ');\n\n if (goGetDirs === '') {\n throw new Error('Invalid goGetDirs');\n }\n }\n\n let args = `get -d -t ${goGetDirs ?? './...'}`;\n logger.trace({ cmd, args }, 'go get command included');\n execCommands.push(`${cmd} ${args}`);\n\n // Update import paths on major updates\n const isImportPathUpdateRequired =\n config.postUpdateOptions?.includes('gomodUpdateImportPaths') &&\n config.updateType === 'major';\n\n if (isImportPathUpdateRequired) {\n const updateImportCmds = getUpdateImportPathCmds(updatedDeps, config);\n if (updateImportCmds.length > 0) {\n logger.debug(updateImportCmds, 'update import path commands included');\n // The updates\n execCommands.push(...updateImportCmds);\n }\n }\n\n const mustSkipGoModTidy =\n !config.postUpdateOptions?.includes('gomodUpdateImportPaths') &&\n config.updateType === 'major';\n if (mustSkipGoModTidy) {\n logger.debug('go mod tidy command skipped');\n }\n\n let tidyOpts = '';\n if (config.postUpdateOptions?.includes('gomodTidy1.17')) {\n tidyOpts += ' -compat=1.17';\n }\n if (config.postUpdateOptions?.includes('gomodTidyE')) {\n tidyOpts += ' -e';\n }\n\n const isGoModTidyRequired =\n !mustSkipGoModTidy &&\n (config.postUpdateOptions?.includes('gomodTidy') === true ||\n config.postUpdateOptions?.includes('gomodTidy1.17') === true ||\n config.postUpdateOptions?.includes('gomodTidyE') === true ||\n (config.updateType === 'major' && isImportPathUpdateRequired));\n if (isGoModTidyRequired) {\n args = 'mod tidy' + tidyOpts;\n logger.debug('go mod tidy command included');\n execCommands.push(`${cmd} ${args}`);\n }\n\n const goWorkSumFileName = upath.join(goModDir, 'go.work.sum');\n if (useVendor) {\n // If we find a go.work, then use go workspace vendoring.\n const goWorkFile = await findLocalSiblingOrParent(\n goModFileName,\n 'go.work',\n );\n\n if (goWorkFile) {\n args = 'work vendor';\n logger.debug('using go work vendor');\n execCommands.push(`${cmd} ${args}`);\n\n args = 'work sync';\n logger.debug('using go work sync');\n execCommands.push(`${cmd} ${args}`);\n } else {\n args = 'mod vendor';\n logger.debug('using go mod vendor');\n execCommands.push(`${cmd} ${args}`);\n }\n\n if (isGoModTidyRequired) {\n args = 'mod tidy' + tidyOpts;\n logger.debug('go mod tidy command included');\n execCommands.push(`${cmd} ${args}`);\n }\n }\n\n // We tidy one more time as a solution for #6795\n if (isGoModTidyRequired) {\n args = 'mod tidy' + tidyOpts;\n logger.debug('go mod tidy command included');\n execCommands.push(`${cmd} ${args}`);\n }\n\n await exec(execCommands, execOptions);\n\n const status = await getRepoStatus();\n if (\n !status.modified.includes(sumFileName) &&\n !status.modified.includes(goModFileName) &&\n !status.modified.includes(goWorkSumFileName)\n ) {\n return null;\n }\n\n const res: UpdateArtifactsResult[] = [];\n if (status.modified.includes(sumFileName)) {\n logger.debug('Returning updated go.sum');\n res.push({\n file: {\n type: 'addition',\n path: sumFileName,\n contents: await readLocalFile(sumFileName),\n },\n });\n }\n\n if (status.modified.includes(goWorkSumFileName)) {\n logger.debug('Returning updated go.work.sum');\n res.push({\n file: {\n type: 'addition',\n path: goWorkSumFileName,\n contents: await readLocalFile(goWorkSumFileName),\n },\n });\n }\n\n // Include all the .go file import changes\n if (isImportPathUpdateRequired) {\n logger.debug('Returning updated go source files for import path changes');\n for (const f of status.modified) {\n if (f.endsWith('.go')) {\n res.push({\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n },\n });\n }\n }\n }\n\n if (useVendor) {\n for (const f of status.modified.concat(status.not_added)) {\n if (f.startsWith(vendorDir)) {\n res.push({\n file: {\n type: 'addition',\n path: f,\n contents: await readLocalFile(f),\n },\n });\n }\n }\n for (const f of coerceArray(status.deleted)) {\n res.push({\n file: {\n type: 'deletion',\n path: f,\n },\n });\n }\n }\n\n // TODO: throws in tests (#22198)\n const finalGoModContent = (await readLocalFile(goModFileName, 'utf8'))!\n .replace(regEx(/\\/\\/ renovate-replace /g), '')\n .replace(regEx(/renovate-replace-bracket/g), ')');\n if (finalGoModContent !== newGoModContent) {\n const artifactResult: UpdateArtifactsResult = {\n file: {\n type: 'addition',\n path: goModFileName,\n contents: finalGoModContent,\n },\n };\n\n const updatedDepNames = filterMap(updatedDeps, (dep) => dep?.depName);\n const extraDepsNotice = getExtraDepsNotice(\n newGoModContent,\n finalGoModContent,\n updatedDepNames,\n );\n\n if (extraDepsNotice) {\n artifactResult.notice = {\n file: goModFileName,\n message: extraDepsNotice,\n };\n }\n\n logger.debug('Found updated go.mod after go.sum update');\n res.push(artifactResult);\n }\n return res;\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.debug({ err }, 'Failed to update go.sum');\n return [\n {\n artifactError: {\n lockFile: sumFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n\nfunction getGoConstraints(content: string): string | undefined {\n // prefer toolchain directive when go.mod has one\n const toolchainMatch = regEx(/^toolchain\\s*go(?<gover>\\d+\\.\\d+\\.\\d+)$/m).exec(\n content,\n );\n const toolchainVer = toolchainMatch?.groups?.gover;\n if (toolchainVer) {\n logger.debug(\n `Using go version ${toolchainVer} found in toolchain directive`,\n );\n return toolchainVer;\n }\n\n // If go.mod doesn't have toolchain directive and has a full go version spec,\n // for example `go 1.23.6`, pick this version, this doesn't match major.minor version spec.\n //\n // This is because when go.mod have same version defined in go directive and toolchain directive,\n // go will remove toolchain directive from go.mod.\n //\n // For example, go will rewrite `go 1.23.5\\ntoolchain go1.23.5` to `go 1.23.5` by default,\n // in this case, the go directive is the toolchain directive.\n const goFullVersion = regEx(/^go\\s*(?<gover>\\d+\\.\\d+\\.\\d+)$/m).exec(content)\n ?.groups?.gover;\n if (goFullVersion) {\n return goFullVersion;\n }\n\n const re = regEx(/^go\\s*(?<gover>\\d+\\.\\d+)$/m);\n const match = re.exec(content);\n if (!match?.groups?.gover) {\n return undefined;\n }\n return `^${match.groups.gover}`;\n}\n"]}
|
@@ -18,7 +18,10 @@ const utils_1 = require("./utils");
|
|
18
18
|
const mavenDatasource = maven_1.MavenDatasource.id;
|
19
19
|
function updatePackageRegistries(packageRegistries, urls) {
|
20
20
|
for (const url of urls) {
|
21
|
-
const registryAlreadyKnown = packageRegistries.some((item) => item.registryUrl === url.registryUrl &&
|
21
|
+
const registryAlreadyKnown = packageRegistries.some((item) => item.registryUrl === url.registryUrl &&
|
22
|
+
item.scope === url.scope &&
|
23
|
+
item.registryType === url.registryType &&
|
24
|
+
item.content === url.content);
|
22
25
|
if (!registryAlreadyKnown) {
|
23
26
|
packageRegistries.push(url);
|
24
27
|
}
|