renovate 40.0.0-next.26 → 40.0.0-next.27
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 +1 -1
- package/dist/config/decrypt.js.map +1 -1
- package/dist/config/migrate-validate.js +2 -2
- package/dist/config/migrate-validate.js.map +1 -1
- package/dist/config/migration.js +1 -1
- package/dist/config/migration.js.map +1 -1
- package/dist/config/options/index.js +2 -1
- package/dist/config/options/index.js.map +1 -1
- package/dist/config/presets/internal/group.js +30 -1
- package/dist/config/presets/internal/group.js.map +1 -1
- package/dist/config/presets/internal/workarounds.js +1 -0
- package/dist/config/presets/internal/workarounds.js.map +1 -1
- package/dist/config/presets/parse.js +2 -1
- package/dist/config/presets/parse.js.map +1 -1
- package/dist/config/types.d.ts +4 -1
- package/dist/config/types.js.map +1 -1
- package/dist/config/validation.js +2 -2
- package/dist/config/validation.js.map +1 -1
- package/dist/data/monorepo.json +3 -0
- package/dist/data/source-urls.json +1 -0
- package/dist/instrumentation/index.js +14 -12
- package/dist/instrumentation/index.js.map +1 -1
- package/dist/logger/index.js +1 -1
- package/dist/logger/index.js.map +1 -1
- package/dist/logger/once.js +2 -2
- package/dist/logger/once.js.map +1 -1
- package/dist/logger/renovate-logger.js +1 -1
- package/dist/logger/renovate-logger.js.map +1 -1
- package/dist/logger/utils.js +1 -1
- package/dist/logger/utils.js.map +1 -1
- package/dist/modules/datasource/api.js +2 -0
- package/dist/modules/datasource/api.js.map +1 -1
- package/dist/modules/datasource/artifactory/index.js +0 -1
- package/dist/modules/datasource/artifactory/index.js.map +1 -1
- package/dist/modules/datasource/aws-eks-addon/index.d.ts +11 -0
- package/dist/modules/datasource/aws-eks-addon/index.js +75 -0
- package/dist/modules/datasource/aws-eks-addon/index.js.map +1 -0
- package/dist/modules/datasource/aws-eks-addon/schema.d.ts +40 -0
- package/dist/modules/datasource/aws-eks-addon/schema.js +31 -0
- package/dist/modules/datasource/aws-eks-addon/schema.js.map +1 -0
- package/dist/modules/datasource/aws-machine-image/index.js +6 -5
- package/dist/modules/datasource/aws-machine-image/index.js.map +1 -1
- package/dist/modules/datasource/bazel/index.js +0 -1
- package/dist/modules/datasource/bazel/index.js.map +1 -1
- package/dist/modules/datasource/bitrise/index.js +1 -1
- package/dist/modules/datasource/bitrise/index.js.map +1 -1
- package/dist/modules/datasource/cdnjs/schema.d.ts +2 -2
- package/dist/modules/datasource/conda/index.js +18 -1
- package/dist/modules/datasource/conda/index.js.map +1 -1
- package/dist/modules/datasource/conda/prefix-dev.d.ts +3 -0
- package/dist/modules/datasource/conda/prefix-dev.js +83 -0
- package/dist/modules/datasource/conda/prefix-dev.js.map +1 -0
- package/dist/modules/datasource/conda/schema/prefix-dev.d.ts +189 -0
- package/dist/modules/datasource/conda/schema/prefix-dev.js +31 -0
- package/dist/modules/datasource/conda/schema/prefix-dev.js.map +1 -0
- package/dist/modules/datasource/conda/types.d.ts +1 -20
- package/dist/modules/datasource/conda/types.js.map +1 -1
- package/dist/modules/datasource/cpan/index.js +1 -1
- package/dist/modules/datasource/cpan/index.js.map +1 -1
- package/dist/modules/datasource/crate/index.js +2 -2
- package/dist/modules/datasource/crate/index.js.map +1 -1
- package/dist/modules/datasource/custom/index.js +4 -2
- package/dist/modules/datasource/custom/index.js.map +1 -1
- package/dist/modules/datasource/custom/schema.d.ts +27 -27
- package/dist/modules/datasource/custom/utils.js +1 -0
- package/dist/modules/datasource/custom/utils.js.map +1 -1
- package/dist/modules/datasource/dart/index.js +1 -1
- package/dist/modules/datasource/dart/index.js.map +1 -1
- package/dist/modules/datasource/dart-version/index.js +1 -1
- package/dist/modules/datasource/dart-version/index.js.map +1 -1
- package/dist/modules/datasource/datasource.js +0 -1
- package/dist/modules/datasource/datasource.js.map +1 -1
- package/dist/modules/datasource/deb/index.js +1 -1
- package/dist/modules/datasource/deb/index.js.map +1 -1
- package/dist/modules/datasource/deno/index.js +1 -1
- package/dist/modules/datasource/deno/index.js.map +1 -1
- package/dist/modules/datasource/deno/schema.d.ts +7 -7
- package/dist/modules/datasource/devbox/index.js +0 -1
- package/dist/modules/datasource/devbox/index.js.map +1 -1
- package/dist/modules/datasource/docker/common.js +4 -1
- package/dist/modules/datasource/docker/common.js.map +1 -1
- package/dist/modules/datasource/docker/index.js +5 -5
- package/dist/modules/datasource/docker/index.js.map +1 -1
- package/dist/modules/datasource/docker/schema.d.ts +27 -27
- package/dist/modules/datasource/docker/schema.js +2 -1
- package/dist/modules/datasource/docker/schema.js.map +1 -1
- package/dist/modules/datasource/flutter-version/index.js +1 -1
- package/dist/modules/datasource/flutter-version/index.js.map +1 -1
- package/dist/modules/datasource/galaxy-collection/schema.d.ts +5 -5
- package/dist/modules/datasource/git-refs/index.js +1 -1
- package/dist/modules/datasource/git-refs/index.js.map +1 -1
- package/dist/modules/datasource/gitea-releases/schema.d.ts +6 -6
- package/dist/modules/datasource/gitlab-packages/index.js +1 -1
- package/dist/modules/datasource/gitlab-packages/index.js.map +1 -1
- package/dist/modules/datasource/gitlab-releases/index.js +1 -3
- package/dist/modules/datasource/gitlab-releases/index.js.map +1 -1
- package/dist/modules/datasource/go/index.js +1 -1
- package/dist/modules/datasource/go/index.js.map +1 -1
- package/dist/modules/datasource/go/releases-direct.js +7 -4
- package/dist/modules/datasource/go/releases-direct.js.map +1 -1
- package/dist/modules/datasource/golang-version/index.js +1 -1
- package/dist/modules/datasource/golang-version/index.js.map +1 -1
- package/dist/modules/datasource/gradle-version/index.js +1 -1
- package/dist/modules/datasource/gradle-version/index.js.map +1 -1
- package/dist/modules/datasource/helm/index.js +1 -1
- package/dist/modules/datasource/helm/index.js.map +1 -1
- package/dist/modules/datasource/hex/index.js +1 -1
- package/dist/modules/datasource/hex/index.js.map +1 -1
- package/dist/modules/datasource/index.js +2 -2
- package/dist/modules/datasource/index.js.map +1 -1
- package/dist/modules/datasource/java-version/index.js +0 -1
- package/dist/modules/datasource/java-version/index.js.map +1 -1
- package/dist/modules/datasource/jenkins-plugins/index.js +1 -1
- package/dist/modules/datasource/jenkins-plugins/index.js.map +1 -1
- package/dist/modules/datasource/maven/index.js +35 -27
- package/dist/modules/datasource/maven/index.js.map +1 -1
- package/dist/modules/datasource/maven/types.d.ts +3 -6
- package/dist/modules/datasource/maven/types.js.map +1 -1
- package/dist/modules/datasource/maven/util.d.ts +4 -5
- package/dist/modules/datasource/maven/util.js +93 -156
- package/dist/modules/datasource/maven/util.js.map +1 -1
- package/dist/modules/datasource/node-version/index.js +1 -1
- package/dist/modules/datasource/node-version/index.js.map +1 -1
- package/dist/modules/datasource/npm/index.js +1 -1
- package/dist/modules/datasource/npm/index.js.map +1 -1
- package/dist/modules/datasource/npm/npmrc.js +1 -1
- package/dist/modules/datasource/npm/npmrc.js.map +1 -1
- package/dist/modules/datasource/nuget/index.js +1 -1
- package/dist/modules/datasource/nuget/index.js.map +1 -1
- package/dist/modules/datasource/nuget/v3.js +5 -5
- package/dist/modules/datasource/nuget/v3.js.map +1 -1
- package/dist/modules/datasource/orb/index.js +1 -1
- package/dist/modules/datasource/orb/index.js.map +1 -1
- package/dist/modules/datasource/packagist/index.js +2 -2
- package/dist/modules/datasource/packagist/index.js.map +1 -1
- package/dist/modules/datasource/packagist/schema.d.ts +18 -18
- package/dist/modules/datasource/pod/index.js +1 -1
- package/dist/modules/datasource/pod/index.js.map +1 -1
- package/dist/modules/datasource/postprocess-release.js +1 -1
- package/dist/modules/datasource/postprocess-release.js.map +1 -1
- package/dist/modules/datasource/python-version/index.js +1 -1
- package/dist/modules/datasource/python-version/index.js.map +1 -1
- package/dist/modules/datasource/repology/index.js +1 -1
- package/dist/modules/datasource/repology/index.js.map +1 -1
- package/dist/modules/datasource/rubygems/index.js +1 -1
- package/dist/modules/datasource/rubygems/index.js.map +1 -1
- package/dist/modules/datasource/sbt-package/index.js +1 -1
- package/dist/modules/datasource/sbt-package/index.js.map +1 -1
- package/dist/modules/datasource/sbt-plugin/index.js +1 -1
- package/dist/modules/datasource/sbt-plugin/index.js.map +1 -1
- package/dist/modules/datasource/schema.d.ts +4 -4
- package/dist/modules/datasource/terraform-module/index.js +1 -1
- package/dist/modules/datasource/terraform-module/index.js.map +1 -1
- package/dist/modules/datasource/terraform-provider/index.js +1 -2
- package/dist/modules/datasource/terraform-provider/index.js.map +1 -1
- package/dist/modules/datasource/types.d.ts +1 -0
- package/dist/modules/datasource/types.js.map +1 -1
- package/dist/modules/manager/api.js +2 -0
- package/dist/modules/manager/api.js.map +1 -1
- package/dist/modules/manager/argocd/extract.js +1 -1
- package/dist/modules/manager/argocd/extract.js.map +1 -1
- package/dist/modules/manager/asdf/upgradeable-tooling.js +94 -0
- package/dist/modules/manager/asdf/upgradeable-tooling.js.map +1 -1
- package/dist/modules/manager/azure-pipelines/schema.d.ts +24 -24
- package/dist/modules/manager/batect/schema.d.ts +2 -2
- package/dist/modules/manager/bazel/rules/docker.d.ts +3 -3
- package/dist/modules/manager/bazel/rules/git.js +2 -1
- package/dist/modules/manager/bazel/rules/git.js.map +1 -1
- package/dist/modules/manager/bazel/rules/maven.d.ts +7 -7
- package/dist/modules/manager/bazel/rules/oci.d.ts +3 -3
- package/dist/modules/manager/bazel-module/parser/maven.d.ts +13 -13
- package/dist/modules/manager/bun/artifacts.js +0 -1
- package/dist/modules/manager/bun/artifacts.js.map +1 -1
- package/dist/modules/manager/bundler/artifacts.js +0 -1
- package/dist/modules/manager/bundler/artifacts.js.map +1 -1
- package/dist/modules/manager/bundler/extract.js +2 -1
- package/dist/modules/manager/bundler/extract.js.map +1 -1
- package/dist/modules/manager/cake/index.js +4 -2
- package/dist/modules/manager/cake/index.js.map +1 -1
- package/dist/modules/manager/cargo/artifacts.js +5 -7
- package/dist/modules/manager/cargo/artifacts.js.map +1 -1
- package/dist/modules/manager/cargo/schema.d.ts +164 -164
- package/dist/modules/manager/circleci/schema.d.ts +6 -6
- package/dist/modules/manager/cocoapods/artifacts.js +1 -2
- package/dist/modules/manager/cocoapods/artifacts.js.map +1 -1
- package/dist/modules/manager/composer/artifacts.js +1 -2
- package/dist/modules/manager/composer/artifacts.js.map +1 -1
- package/dist/modules/manager/composer/schema.d.ts +36 -36
- package/dist/modules/manager/composer/schema.js +1 -1
- package/dist/modules/manager/composer/schema.js.map +1 -1
- package/dist/modules/manager/composer/utils.d.ts +1 -0
- package/dist/modules/manager/composer/utils.js +9 -0
- package/dist/modules/manager/composer/utils.js.map +1 -1
- package/dist/modules/manager/copier/artifacts.js +0 -1
- package/dist/modules/manager/copier/artifacts.js.map +1 -1
- package/dist/modules/manager/custom/jsonata/schema.d.ts +28 -28
- package/dist/modules/manager/custom/regex/index.js +2 -0
- package/dist/modules/manager/custom/regex/index.js.map +1 -1
- package/dist/modules/manager/deps-edn/extract.js +2 -1
- package/dist/modules/manager/deps-edn/extract.js.map +1 -1
- package/dist/modules/manager/devbox/artifacts.d.ts +1 -1
- package/dist/modules/manager/devbox/artifacts.js +1 -2
- package/dist/modules/manager/devbox/artifacts.js.map +1 -1
- package/dist/modules/manager/devbox/schema.js +1 -1
- package/dist/modules/manager/devbox/schema.js.map +1 -1
- package/dist/modules/manager/devcontainer/extract.js +43 -1
- package/dist/modules/manager/devcontainer/extract.js.map +1 -1
- package/dist/modules/manager/devcontainer/index.js +11 -1
- package/dist/modules/manager/devcontainer/index.js.map +1 -1
- package/dist/modules/manager/devcontainer/schema.d.ts +7 -3
- package/dist/modules/manager/devcontainer/schema.js +3 -1
- package/dist/modules/manager/devcontainer/schema.js.map +1 -1
- package/dist/modules/manager/docker-compose/schema.d.ts +6 -6
- package/dist/modules/manager/fingerprint.generated.js +83 -82
- package/dist/modules/manager/fingerprint.generated.js.map +1 -1
- package/dist/modules/manager/fleet/schema.d.ts +12 -12
- package/dist/modules/manager/flux/artifacts.js +0 -1
- package/dist/modules/manager/flux/artifacts.js.map +1 -1
- package/dist/modules/manager/flux/extract.js +27 -24
- package/dist/modules/manager/flux/extract.js.map +1 -1
- package/dist/modules/manager/flux/schema.d.ts +44 -44
- package/dist/modules/manager/github-actions/extract.js +60 -39
- package/dist/modules/manager/github-actions/extract.js.map +1 -1
- package/dist/modules/manager/github-actions/schema.d.ts +66 -0
- package/dist/modules/manager/github-actions/schema.js +38 -0
- package/dist/modules/manager/github-actions/schema.js.map +1 -0
- package/dist/modules/manager/gitlabci/extract.d.ts +1 -5
- package/dist/modules/manager/gitlabci/extract.js +27 -126
- package/dist/modules/manager/gitlabci/extract.js.map +1 -1
- package/dist/modules/manager/gitlabci/schema.d.ts +55 -0
- package/dist/modules/manager/gitlabci/schema.js +63 -0
- package/dist/modules/manager/gitlabci/schema.js.map +1 -0
- package/dist/modules/manager/gitlabci-include/extract.js +6 -54
- package/dist/modules/manager/gitlabci-include/extract.js.map +1 -1
- package/dist/modules/manager/gitlabci-include/schema.d.ts +13 -0
- package/dist/modules/manager/gitlabci-include/schema.js +46 -0
- package/dist/modules/manager/gitlabci-include/schema.js.map +1 -0
- package/dist/modules/manager/gomod/artifacts.js +24 -10
- package/dist/modules/manager/gomod/artifacts.js.map +1 -1
- package/dist/modules/manager/gomod/extract.js +23 -0
- package/dist/modules/manager/gomod/extract.js.map +1 -1
- package/dist/modules/manager/gomod/line-parser.js +16 -0
- package/dist/modules/manager/gomod/line-parser.js.map +1 -1
- package/dist/modules/manager/gomod/update.js +2 -2
- package/dist/modules/manager/gomod/update.js.map +1 -1
- package/dist/modules/manager/gradle/artifacts.js +0 -1
- package/dist/modules/manager/gradle/artifacts.js.map +1 -1
- package/dist/modules/manager/gradle/extract/catalog.js +1 -1
- package/dist/modules/manager/gradle/extract/catalog.js.map +1 -1
- package/dist/modules/manager/gradle/parser/assignments.js +2 -2
- package/dist/modules/manager/gradle/parser/assignments.js.map +1 -1
- package/dist/modules/manager/gradle/parser/handlers.d.ts +1 -2
- package/dist/modules/manager/gradle/parser/handlers.js +10 -25
- package/dist/modules/manager/gradle/parser/handlers.js.map +1 -1
- package/dist/modules/manager/gradle/parser/registry-urls.js +11 -3
- package/dist/modules/manager/gradle/parser/registry-urls.js.map +1 -1
- package/dist/modules/manager/gradle-wrapper/artifacts.js +0 -1
- package/dist/modules/manager/gradle-wrapper/artifacts.js.map +1 -1
- package/dist/modules/manager/helmfile/artifacts.js +0 -1
- package/dist/modules/manager/helmfile/artifacts.js.map +1 -1
- package/dist/modules/manager/helmfile/extract.js +4 -0
- package/dist/modules/manager/helmfile/extract.js.map +1 -1
- package/dist/modules/manager/helmfile/schema.d.ts +9 -9
- package/dist/modules/manager/helmv3/artifacts.js +0 -1
- package/dist/modules/manager/helmv3/artifacts.js.map +1 -1
- package/dist/modules/manager/helmv3/utils.js +3 -1
- package/dist/modules/manager/helmv3/utils.js.map +1 -1
- package/dist/modules/manager/hermit/artifacts.js +0 -1
- package/dist/modules/manager/hermit/artifacts.js.map +1 -1
- package/dist/modules/manager/homebrew/extract.js +0 -1
- package/dist/modules/manager/homebrew/extract.js.map +1 -1
- package/dist/modules/manager/jsonnet-bundler/artifacts.js +0 -1
- package/dist/modules/manager/jsonnet-bundler/artifacts.js.map +1 -1
- package/dist/modules/manager/kustomize/artifacts.d.ts +2 -0
- package/dist/modules/manager/kustomize/artifacts.js +154 -0
- package/dist/modules/manager/kustomize/artifacts.js.map +1 -0
- package/dist/modules/manager/kustomize/common.d.ts +3 -0
- package/dist/modules/manager/kustomize/common.js +22 -0
- package/dist/modules/manager/kustomize/common.js.map +1 -0
- package/dist/modules/manager/kustomize/index.d.ts +1 -0
- package/dist/modules/manager/kustomize/index.js +3 -1
- package/dist/modules/manager/kustomize/index.js.map +1 -1
- package/dist/modules/manager/kustomize/types.d.ts +4 -0
- package/dist/modules/manager/kustomize/types.js.map +1 -1
- package/dist/modules/manager/maven-wrapper/artifacts.js +0 -1
- package/dist/modules/manager/maven-wrapper/artifacts.js.map +1 -1
- package/dist/modules/manager/mix/artifacts.js +64 -14
- package/dist/modules/manager/mix/artifacts.js.map +1 -1
- package/dist/modules/manager/mix/index.d.ts +1 -0
- package/dist/modules/manager/mix/index.js +2 -1
- package/dist/modules/manager/mix/index.js.map +1 -1
- package/dist/modules/manager/nix/artifacts.js +0 -1
- package/dist/modules/manager/nix/artifacts.js.map +1 -1
- package/dist/modules/manager/nix/extract.js +1 -1
- package/dist/modules/manager/nix/extract.js.map +1 -1
- package/dist/modules/manager/nix/schema.d.ts +6 -6
- package/dist/modules/manager/npm/artifacts.js +0 -1
- package/dist/modules/manager/npm/artifacts.js.map +1 -1
- package/dist/modules/manager/npm/extract/yarn.js +2 -2
- package/dist/modules/manager/npm/extract/yarn.js.map +1 -1
- package/dist/modules/manager/npm/post-update/npm.js +0 -1
- package/dist/modules/manager/npm/post-update/npm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/pnpm.js +13 -2
- package/dist/modules/manager/npm/post-update/pnpm.js.map +1 -1
- package/dist/modules/manager/npm/post-update/rules.js +11 -1
- package/dist/modules/manager/npm/post-update/rules.js.map +1 -1
- package/dist/modules/manager/npm/post-update/yarn.js +0 -1
- package/dist/modules/manager/npm/post-update/yarn.js.map +1 -1
- package/dist/modules/manager/npm/update/dependency/index.js +1 -1
- package/dist/modules/manager/npm/update/dependency/index.js.map +1 -1
- package/dist/modules/manager/nuget/artifacts.js +1 -2
- package/dist/modules/manager/nuget/artifacts.js.map +1 -1
- package/dist/modules/manager/nuget/package-tree.js +4 -0
- package/dist/modules/manager/nuget/package-tree.js.map +1 -1
- package/dist/modules/manager/nuget/util.js +4 -1
- package/dist/modules/manager/nuget/util.js.map +1 -1
- package/dist/modules/manager/pep621/processors/pdm.js +0 -1
- package/dist/modules/manager/pep621/processors/pdm.js.map +1 -1
- package/dist/modules/manager/pep621/processors/uv.js +0 -1
- package/dist/modules/manager/pep621/processors/uv.js.map +1 -1
- package/dist/modules/manager/pep621/schema.d.ts +35 -30
- package/dist/modules/manager/pep621/schema.js +2 -0
- package/dist/modules/manager/pep621/schema.js.map +1 -1
- package/dist/modules/manager/pip-compile/common.js +0 -1
- package/dist/modules/manager/pip-compile/common.js.map +1 -1
- package/dist/modules/manager/pip_requirements/artifacts.js +0 -1
- package/dist/modules/manager/pip_requirements/artifacts.js.map +1 -1
- package/dist/modules/manager/pipenv/artifacts.js +0 -1
- package/dist/modules/manager/pipenv/artifacts.js.map +1 -1
- package/dist/modules/manager/pixi/artifacts.d.ts +3 -0
- package/dist/modules/manager/pixi/artifacts.js +84 -0
- package/dist/modules/manager/pixi/artifacts.js.map +1 -0
- package/dist/modules/manager/pixi/extract.d.ts +2 -0
- package/dist/modules/manager/pixi/extract.js +53 -0
- package/dist/modules/manager/pixi/extract.js.map +1 -0
- package/dist/modules/manager/pixi/index.d.ts +11 -0
- package/dist/modules/manager/pixi/index.js +22 -0
- package/dist/modules/manager/pixi/index.js.map +1 -0
- package/dist/modules/manager/pixi/lockfile.d.ts +6 -0
- package/dist/modules/manager/pixi/lockfile.js +25 -0
- package/dist/modules/manager/pixi/lockfile.js.map +1 -0
- package/dist/modules/manager/pixi/schema.d.ts +14 -0
- package/dist/modules/manager/pixi/schema.js +14 -0
- package/dist/modules/manager/pixi/schema.js.map +1 -0
- package/dist/modules/manager/poetry/artifacts.js +0 -1
- package/dist/modules/manager/poetry/artifacts.js.map +1 -1
- package/dist/modules/manager/poetry/schema.d.ts +31 -31
- package/dist/modules/manager/pub/artifacts.js +0 -1
- package/dist/modules/manager/pub/artifacts.js.map +1 -1
- package/dist/modules/manager/pub/schema.d.ts +8 -8
- package/dist/modules/manager/scalafmt/extract.js +1 -1
- package/dist/modules/manager/scalafmt/extract.js.map +1 -1
- package/dist/modules/manager/types.d.ts +6 -2
- package/dist/modules/manager/types.js.map +1 -1
- package/dist/modules/manager/vendir/schema.d.ts +23 -23
- package/dist/modules/platform/azure/azure-helper.js +2 -2
- package/dist/modules/platform/azure/azure-helper.js.map +1 -1
- package/dist/modules/platform/azure/index.js +14 -14
- package/dist/modules/platform/azure/index.js.map +1 -1
- package/dist/modules/platform/bitbucket/comments.js +4 -4
- package/dist/modules/platform/bitbucket/comments.js.map +1 -1
- package/dist/modules/platform/bitbucket/index.js +48 -43
- package/dist/modules/platform/bitbucket/index.js.map +1 -1
- package/dist/modules/platform/bitbucket/schema.d.ts +13 -13
- package/dist/modules/platform/bitbucket/utils.js +3 -3
- package/dist/modules/platform/bitbucket/utils.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/index.d.ts +2 -2
- package/dist/modules/platform/bitbucket-server/index.js +70 -72
- package/dist/modules/platform/bitbucket-server/index.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/pr-cache.d.ts +23 -0
- package/dist/modules/platform/bitbucket-server/pr-cache.js +125 -0
- package/dist/modules/platform/bitbucket-server/pr-cache.js.map +1 -0
- package/dist/modules/platform/bitbucket-server/types.d.ts +6 -1
- package/dist/modules/platform/bitbucket-server/types.js.map +1 -1
- package/dist/modules/platform/bitbucket-server/utils.js +5 -1
- package/dist/modules/platform/bitbucket-server/utils.js.map +1 -1
- package/dist/modules/platform/codecommit/codecommit-client.js +6 -6
- package/dist/modules/platform/codecommit/codecommit-client.js.map +1 -1
- package/dist/modules/platform/codecommit/index.js +24 -24
- package/dist/modules/platform/codecommit/index.js.map +1 -1
- package/dist/modules/platform/gerrit/client.js +12 -1
- package/dist/modules/platform/gerrit/client.js.map +1 -1
- package/dist/modules/platform/gerrit/utils.js +1 -1
- package/dist/modules/platform/gerrit/utils.js.map +1 -1
- package/dist/modules/platform/gitea/gitea-helper.d.ts +1 -0
- package/dist/modules/platform/gitea/gitea-helper.js +16 -0
- package/dist/modules/platform/gitea/gitea-helper.js.map +1 -1
- package/dist/modules/platform/gitea/index.js +15 -7
- package/dist/modules/platform/gitea/index.js.map +1 -1
- package/dist/modules/platform/gitea/schema.d.ts +4 -4
- package/dist/modules/platform/gitea/types.d.ts +1 -1
- package/dist/modules/platform/gitea/types.js.map +1 -1
- package/dist/modules/platform/github/index.js +81 -78
- package/dist/modules/platform/github/index.js.map +1 -1
- package/dist/modules/platform/github/issue.d.ts +3 -3
- package/dist/modules/platform/github/massage-markdown-links.js +2 -2
- package/dist/modules/platform/github/massage-markdown-links.js.map +1 -1
- package/dist/modules/platform/github/pr.js +3 -3
- package/dist/modules/platform/github/pr.js.map +1 -1
- package/dist/modules/platform/github/schema.d.ts +11 -11
- package/dist/modules/platform/github/schema.js +3 -1
- package/dist/modules/platform/github/schema.js.map +1 -1
- package/dist/modules/platform/gitlab/index.js +61 -43
- package/dist/modules/platform/gitlab/index.js.map +1 -1
- package/dist/modules/platform/index.js +0 -1
- package/dist/modules/platform/index.js.map +1 -1
- package/dist/modules/versioning/api.js +2 -0
- package/dist/modules/versioning/api.js.map +1 -1
- package/dist/modules/versioning/conda/index.d.ts +41 -0
- package/dist/modules/versioning/conda/index.js +178 -0
- package/dist/modules/versioning/conda/index.js.map +1 -0
- package/dist/modules/versioning/hashicorp/convertor.d.ts +2 -1
- package/dist/modules/versioning/hashicorp/convertor.js +13 -8
- package/dist/modules/versioning/hashicorp/convertor.js.map +1 -1
- package/dist/modules/versioning/hex/index.js +3 -3
- package/dist/modules/versioning/hex/index.js.map +1 -1
- package/dist/proxy.js +1 -1
- package/dist/proxy.js.map +1 -1
- package/dist/renovate.js +2 -2
- package/dist/renovate.js.map +1 -1
- package/dist/util/cache/package/types.d.ts +1 -1
- package/dist/util/cache/package/types.js.map +1 -1
- package/dist/util/cache/repository/schema.d.ts +4 -4
- package/dist/util/cache/repository/types.d.ts +3 -0
- package/dist/util/cache/repository/types.js.map +1 -1
- package/dist/util/env.d.ts +4 -0
- package/dist/util/env.js +22 -0
- package/dist/util/env.js.map +1 -0
- package/dist/util/exec/containerbase.js +6 -0
- package/dist/util/exec/containerbase.js.map +1 -1
- package/dist/util/exec/index.js +5 -2
- package/dist/util/exec/index.js.map +1 -1
- package/dist/util/exec/types.d.ts +0 -2
- package/dist/util/exec/types.js.map +1 -1
- package/dist/util/exec/utils.d.ts +1 -1
- package/dist/util/exec/utils.js +6 -5
- package/dist/util/exec/utils.js.map +1 -1
- package/dist/util/git/author.js +1 -1
- package/dist/util/git/author.js.map +1 -1
- package/dist/util/git/config.js +0 -1
- package/dist/util/git/config.js.map +1 -1
- package/dist/util/git/error.js +4 -2
- package/dist/util/git/error.js.map +1 -1
- package/dist/util/git/index.js +73 -46
- package/dist/util/git/index.js.map +1 -1
- package/dist/util/git/private-key.js +1 -1
- package/dist/util/git/private-key.js.map +1 -1
- package/dist/util/github/graphql/query-adapters/releases-query-adapter.d.ts +5 -5
- package/dist/util/github/graphql/query-adapters/tags-query-adapter.d.ts +2 -2
- package/dist/util/http/bitbucket-server.js +4 -0
- package/dist/util/http/bitbucket-server.js.map +1 -1
- package/dist/util/http/bitbucket.js +5 -1
- package/dist/util/http/bitbucket.js.map +1 -1
- package/dist/util/http/cache/abstract-http-cache-provider.js +2 -2
- package/dist/util/http/cache/abstract-http-cache-provider.js.map +1 -1
- package/dist/util/http/cache/memory-http-cache-provider.d.ts +10 -0
- package/dist/util/http/cache/memory-http-cache-provider.js +29 -0
- package/dist/util/http/cache/memory-http-cache-provider.js.map +1 -0
- package/dist/util/http/gitea.js +2 -0
- package/dist/util/http/gitea.js.map +1 -1
- package/dist/util/http/github.js +1 -0
- package/dist/util/http/github.js.map +1 -1
- package/dist/util/http/gitlab.js +2 -0
- package/dist/util/http/gitlab.js.map +1 -1
- package/dist/util/http/host-rules.js +5 -4
- package/dist/util/http/host-rules.js.map +1 -1
- package/dist/util/http/http.js +12 -5
- package/dist/util/http/http.js.map +1 -1
- package/dist/util/stats.d.ts +10 -0
- package/dist/util/stats.js +45 -1
- package/dist/util/stats.js.map +1 -1
- package/dist/workers/global/config/parse/file.js +2 -2
- package/dist/workers/global/config/parse/file.js.map +1 -1
- package/dist/workers/global/config/parse/index.js +5 -0
- package/dist/workers/global/config/parse/index.js.map +1 -1
- package/dist/workers/repository/cache.js +1 -1
- package/dist/workers/repository/cache.js.map +1 -1
- package/dist/workers/repository/config-migration/branch/migrated-data.js +2 -0
- package/dist/workers/repository/config-migration/branch/migrated-data.js.map +1 -1
- package/dist/workers/repository/index.js +1 -0
- package/dist/workers/repository/index.js.map +1 -1
- package/dist/workers/repository/init/merge.js +6 -3
- package/dist/workers/repository/init/merge.js.map +1 -1
- package/dist/workers/repository/process/extract-update.js +0 -1
- package/dist/workers/repository/process/extract-update.js.map +1 -1
- package/dist/workers/repository/process/fingerprint-fields.js +0 -1
- package/dist/workers/repository/process/fingerprint-fields.js.map +1 -1
- package/dist/workers/repository/process/libyear.js +2 -2
- package/dist/workers/repository/process/libyear.js.map +1 -1
- package/dist/workers/repository/process/lookup/index.js +13 -4
- package/dist/workers/repository/process/lookup/index.js.map +1 -1
- package/dist/workers/repository/process/vulnerabilities.js +1 -1
- package/dist/workers/repository/process/vulnerabilities.js.map +1 -1
- package/dist/workers/repository/process/write.js +1 -8
- package/dist/workers/repository/process/write.js.map +1 -1
- package/dist/workers/repository/reconfigure/validate.js +1 -0
- package/dist/workers/repository/reconfigure/validate.js.map +1 -1
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js +10 -1
- package/dist/workers/repository/update/branch/execute-post-upgrade-commands.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/github/index.js +6 -3
- package/dist/workers/repository/update/pr/changelog/github/index.js.map +1 -1
- package/dist/workers/repository/update/pr/changelog/source.js +1 -0
- package/dist/workers/repository/update/pr/changelog/source.js.map +1 -1
- package/dist/workers/repository/updates/flatten.js +8 -4
- package/dist/workers/repository/updates/flatten.js.map +1 -1
- package/dist/workers/repository/updates/generate.js +1 -2
- package/dist/workers/repository/updates/generate.js.map +1 -1
- package/dist/workers/types.d.ts +1 -4
- package/dist/workers/types.js.map +1 -1
- package/package.json +45 -43
- package/renovate-schema.json +14 -1
- package/dist/modules/manager/github-actions/types.d.ts +0 -30
- package/dist/modules/manager/github-actions/types.js +0 -3
- package/dist/modules/manager/github-actions/types.js.map +0 -1
- package/dist/modules/manager/gitlabci/common.d.ts +0 -6
- package/dist/modules/manager/gitlabci/common.js +0 -30
- package/dist/modules/manager/gitlabci/common.js.map +0 -1
- package/dist/modules/manager/gitlabci/types.d.ts +0 -35
- package/dist/modules/manager/gitlabci/types.js +0 -3
- package/dist/modules/manager/gitlabci/types.js.map +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/github-actions/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { GlobalConfig } from '../../../config/global';\nimport { logger } from '../../../logger';\nimport { isNotNullOrUndefined } from '../../../util/array';\nimport { detectPlatform } from '../../../util/common';\nimport { newlineRegex, regEx } from '../../../util/regex';\nimport { parseSingleYaml } from '../../../util/yaml';\nimport { GiteaTagsDatasource } from '../../datasource/gitea-tags';\nimport { GithubRunnersDatasource } from '../../datasource/github-runners';\nimport { GithubTagsDatasource } from '../../datasource/github-tags';\nimport * as dockerVersioning from '../../versioning/docker';\nimport { getDep } from '../dockerfile/extract';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFileContent,\n} from '../types';\nimport type { Workflow } from './types';\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\nfunction extractContainer(\n container: unknown,\n registryAliases: Record<string, string> | undefined,\n): PackageDependency | undefined {\n if (is.string(container)) {\n return getDep(container, true, registryAliases);\n } else if (is.plainObject(container) && is.string(container.image)) {\n return getDep(container.image, true, registryAliases);\n }\n return undefined;\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\nfunction extractRunners(runner: unknown): PackageDependency[] {\n const runners: string[] = [];\n if (is.string(runner)) {\n runners.push(runner);\n } else if (is.array(runner, is.string)) {\n runners.push(...runner);\n }\n\n return runners.map(extractRunner).filter(isNotNullOrUndefined);\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 let pkg: Workflow;\n try {\n // TODO: use schema (#9610)\n pkg = parseSingleYaml(content);\n } catch (err) {\n logger.debug(\n { packageFile, err },\n 'Failed to parse GitHub Actions Workflow YAML',\n );\n return [];\n }\n\n for (const job of Object.values(pkg?.jobs ?? {})) {\n const dep = extractContainer(job?.container, config.registryAliases);\n if (dep) {\n dep.depType = 'container';\n deps.push(dep);\n }\n\n for (const service of Object.values(job?.services ?? {})) {\n const dep = extractContainer(service, config.registryAliases);\n if (dep) {\n dep.depType = 'service';\n deps.push(dep);\n }\n }\n\n deps.push(...extractRunners(job?.['runs-on']));\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"]}
|
@@ -0,0 +1,66 @@
|
|
1
|
+
import { z } from 'zod';
|
2
|
+
declare const StepsSchema: z.ZodObject<{
|
3
|
+
uses: z.ZodString;
|
4
|
+
with: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodAny>, Record<string, string>, Record<string, any>>;
|
5
|
+
}, "strip", z.ZodTypeAny, {
|
6
|
+
with: Record<string, string>;
|
7
|
+
uses: string;
|
8
|
+
}, {
|
9
|
+
with: Record<string, any>;
|
10
|
+
uses: string;
|
11
|
+
}>;
|
12
|
+
export type Steps = z.infer<typeof StepsSchema>;
|
13
|
+
export declare const WorkflowSchema: z.ZodCatch<z.ZodPipeline<z.ZodEffects<z.ZodString, string | number | boolean | import("type-fest").JsonObject | import("type-fest").JsonValue[] | readonly import("type-fest").JsonValue[] | null, string>, z.ZodUnion<[z.ZodObject<{
|
14
|
+
jobs: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodAny>, Record<string, {
|
15
|
+
steps: {
|
16
|
+
with: Record<string, string>;
|
17
|
+
uses: string;
|
18
|
+
}[];
|
19
|
+
services: string[];
|
20
|
+
'runs-on': string[];
|
21
|
+
container?: string | undefined;
|
22
|
+
}>, Record<string, any>>;
|
23
|
+
}, "strip", z.ZodTypeAny, {
|
24
|
+
jobs: Record<string, {
|
25
|
+
steps: {
|
26
|
+
with: Record<string, string>;
|
27
|
+
uses: string;
|
28
|
+
}[];
|
29
|
+
services: string[];
|
30
|
+
'runs-on': string[];
|
31
|
+
container?: string | undefined;
|
32
|
+
}>;
|
33
|
+
}, {
|
34
|
+
jobs: Record<string, any>;
|
35
|
+
}>, z.ZodObject<{
|
36
|
+
runs: z.ZodObject<{
|
37
|
+
using: z.ZodString;
|
38
|
+
steps: z.ZodCatch<z.ZodOptional<z.ZodEffects<z.ZodArray<z.ZodAny, "many">, {
|
39
|
+
with: Record<string, string>;
|
40
|
+
uses: string;
|
41
|
+
}[], any[]>>>;
|
42
|
+
}, "strip", z.ZodTypeAny, {
|
43
|
+
using: string;
|
44
|
+
steps?: {
|
45
|
+
with: Record<string, string>;
|
46
|
+
uses: string;
|
47
|
+
}[] | undefined;
|
48
|
+
}, {
|
49
|
+
using: string;
|
50
|
+
steps?: unknown;
|
51
|
+
}>;
|
52
|
+
}, "strip", z.ZodTypeAny, {
|
53
|
+
runs: {
|
54
|
+
using: string;
|
55
|
+
steps?: {
|
56
|
+
with: Record<string, string>;
|
57
|
+
uses: string;
|
58
|
+
}[] | undefined;
|
59
|
+
};
|
60
|
+
}, {
|
61
|
+
runs: {
|
62
|
+
using: string;
|
63
|
+
steps?: unknown;
|
64
|
+
};
|
65
|
+
}>, z.ZodNull]>>>;
|
66
|
+
export {};
|
@@ -0,0 +1,38 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.WorkflowSchema = void 0;
|
4
|
+
const zod_1 = require("zod");
|
5
|
+
const schema_utils_1 = require("../../../util/schema-utils");
|
6
|
+
const StepsSchema = zod_1.z.object({
|
7
|
+
uses: zod_1.z.string(),
|
8
|
+
with: (0, schema_utils_1.LooseRecord)(zod_1.z.string()),
|
9
|
+
});
|
10
|
+
const WorkFlowJobsSchema = zod_1.z.object({
|
11
|
+
jobs: (0, schema_utils_1.LooseRecord)(zod_1.z.object({
|
12
|
+
container: zod_1.z
|
13
|
+
.union([
|
14
|
+
zod_1.z.string(),
|
15
|
+
zod_1.z.object({ image: zod_1.z.string() }).transform((v) => v.image),
|
16
|
+
])
|
17
|
+
.optional()
|
18
|
+
.catch(undefined),
|
19
|
+
services: (0, schema_utils_1.LooseRecord)(zod_1.z.union([
|
20
|
+
zod_1.z.object({ image: zod_1.z.string() }).transform((v) => v.image),
|
21
|
+
zod_1.z.string(),
|
22
|
+
]))
|
23
|
+
.catch({})
|
24
|
+
.transform((services) => Object.values(services)),
|
25
|
+
'runs-on': zod_1.z
|
26
|
+
.union([zod_1.z.string().transform((v) => [v]), zod_1.z.array(zod_1.z.string())])
|
27
|
+
.catch([]),
|
28
|
+
steps: (0, schema_utils_1.LooseArray)(StepsSchema).catch([]),
|
29
|
+
})),
|
30
|
+
});
|
31
|
+
const ActionsSchema = zod_1.z.object({
|
32
|
+
runs: zod_1.z.object({
|
33
|
+
using: zod_1.z.string(),
|
34
|
+
steps: (0, schema_utils_1.LooseArray)(StepsSchema).optional().catch([]),
|
35
|
+
}),
|
36
|
+
});
|
37
|
+
exports.WorkflowSchema = schema_utils_1.Yaml.pipe(zod_1.z.union([WorkFlowJobsSchema, ActionsSchema, zod_1.z.null()])).catch((0, schema_utils_1.withDebugMessage)(null, 'Does not match schema'));
|
38
|
+
//# sourceMappingURL=schema.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/manager/github-actions/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,6DAKoC;AAEpC,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,IAAA,0BAAW,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC;CAC9B,CAAC,CAAC;AAGH,MAAM,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,IAAA,0BAAW,EACf,OAAC,CAAC,MAAM,CAAC;QACP,SAAS,EAAE,OAAC;aACT,KAAK,CAAC;YACL,OAAC,CAAC,MAAM,EAAE;YACV,OAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SAC1D,CAAC;aACD,QAAQ,EAAE;aACV,KAAK,CAAC,SAAS,CAAC;QACnB,QAAQ,EAAE,IAAA,0BAAW,EACnB,OAAC,CAAC,KAAK,CAAC;YACN,OAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YACzD,OAAC,CAAC,MAAM,EAAE;SACX,CAAC,CACH;aACE,KAAK,CAAC,EAAE,CAAC;aACT,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnD,SAAS,EAAE,OAAC;aACT,KAAK,CAAC,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;aAC9D,KAAK,CAAC,EAAE,CAAC;QACZ,KAAK,EAAE,IAAA,yBAAU,EAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;KACzC,CAAC,CACH;CACF,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7B,IAAI,EAAE,OAAC,CAAC,MAAM,CAAC;QACb,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;QACjB,KAAK,EAAE,IAAA,yBAAU,EAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;KACpD,CAAC;CACH,CAAC,CAAC;AACU,QAAA,cAAc,GAAG,mBAAI,CAAC,IAAI,CACrC,OAAC,CAAC,KAAK,CAAC,CAAC,kBAAkB,EAAE,aAAa,EAAE,OAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CACvD,CAAC,KAAK,CAAC,IAAA,+BAAgB,EAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAC","sourcesContent":["import { z } from 'zod';\nimport {\n LooseArray,\n LooseRecord,\n Yaml,\n withDebugMessage,\n} from '../../../util/schema-utils';\n\nconst StepsSchema = z.object({\n uses: z.string(),\n with: LooseRecord(z.string()),\n});\nexport type Steps = z.infer<typeof StepsSchema>;\n\nconst WorkFlowJobsSchema = z.object({\n jobs: LooseRecord(\n z.object({\n container: z\n .union([\n z.string(),\n z.object({ image: z.string() }).transform((v) => v.image),\n ])\n .optional()\n .catch(undefined),\n services: LooseRecord(\n z.union([\n z.object({ image: z.string() }).transform((v) => v.image),\n z.string(),\n ]),\n )\n .catch({})\n .transform((services) => Object.values(services)),\n 'runs-on': z\n .union([z.string().transform((v) => [v]), z.array(z.string())])\n .catch([]),\n steps: LooseArray(StepsSchema).catch([]),\n }),\n ),\n});\n\nconst ActionsSchema = z.object({\n runs: z.object({\n using: z.string(),\n steps: LooseArray(StepsSchema).optional().catch([]),\n }),\n});\nexport const WorkflowSchema = Yaml.pipe(\n z.union([WorkFlowJobsSchema, ActionsSchema, z.null()]),\n).catch(withDebugMessage(null, 'Does not match schema'));\n"]}
|
@@ -1,7 +1,3 @@
|
|
1
|
-
import type { ExtractConfig,
|
2
|
-
import type { Image, Job, Services } from './types';
|
3
|
-
export declare function extractFromImage(image: Image | undefined, registryAliases?: Record<string, string>): PackageDependency | null;
|
4
|
-
export declare function extractFromServices(services: Services | undefined, registryAliases?: Record<string, string>): PackageDependency[];
|
5
|
-
export declare function extractFromJob(job: Job | undefined, registryAliases?: Record<string, string>): PackageDependency[];
|
1
|
+
import type { ExtractConfig, PackageFile, PackageFileContent } from '../types';
|
6
2
|
export declare function extractPackageFile(content: string, packageFile: string, config: ExtractConfig): PackageFileContent | null;
|
7
3
|
export declare function extractAllPackageFiles(config: ExtractConfig, packageFiles: string[]): Promise<PackageFile[] | null>;
|
@@ -1,93 +1,20 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.extractFromImage = extractFromImage;
|
4
|
-
exports.extractFromServices = extractFromServices;
|
5
|
-
exports.extractFromJob = extractFromJob;
|
6
3
|
exports.extractPackageFile = extractPackageFile;
|
7
4
|
exports.extractAllPackageFiles = extractAllPackageFiles;
|
8
|
-
const tslib_1 = require("tslib");
|
9
|
-
const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
|
10
5
|
const logger_1 = require("../../../logger");
|
11
6
|
const fs_1 = require("../../../util/fs");
|
12
7
|
const regex_1 = require("../../../util/regex");
|
13
|
-
const
|
8
|
+
const result_1 = require("../../../util/result");
|
14
9
|
const yaml_1 = require("../../../util/yaml");
|
15
10
|
const gitlab_tags_1 = require("../../datasource/gitlab-tags");
|
16
|
-
const
|
11
|
+
const schema_1 = require("./schema");
|
17
12
|
const utils_1 = require("./utils");
|
18
13
|
// See https://docs.gitlab.com/ee/ci/components/index.html#use-a-component
|
19
14
|
const componentReferenceRegex = (0, regex_1.regEx)(/(?<fqdn>[^/]+)\/(?<projectPath>.+)\/(?:.+)@(?<specificVersion>.+)/);
|
20
15
|
const componentReferenceLatestVersion = '~latest';
|
21
|
-
function
|
22
|
-
|
23
|
-
return null;
|
24
|
-
}
|
25
|
-
let dep = null;
|
26
|
-
if (is_1.default.string(image)) {
|
27
|
-
dep = (0, utils_1.getGitlabDep)(image, registryAliases);
|
28
|
-
dep.depType = 'image';
|
29
|
-
}
|
30
|
-
else if (is_1.default.string(image?.name)) {
|
31
|
-
dep = (0, utils_1.getGitlabDep)(image.name, registryAliases);
|
32
|
-
dep.depType = 'image-name';
|
33
|
-
}
|
34
|
-
return dep;
|
35
|
-
}
|
36
|
-
function extractFromServices(services, registryAliases) {
|
37
|
-
if (is_1.default.undefined(services)) {
|
38
|
-
return [];
|
39
|
-
}
|
40
|
-
const deps = [];
|
41
|
-
for (const service of services) {
|
42
|
-
if (is_1.default.string(service)) {
|
43
|
-
const dep = (0, utils_1.getGitlabDep)(service, registryAliases);
|
44
|
-
dep.depType = 'service-image';
|
45
|
-
deps.push(dep);
|
46
|
-
}
|
47
|
-
else if (is_1.default.string(service?.name)) {
|
48
|
-
const dep = (0, utils_1.getGitlabDep)(service.name, registryAliases);
|
49
|
-
dep.depType = 'service-image';
|
50
|
-
deps.push(dep);
|
51
|
-
}
|
52
|
-
}
|
53
|
-
return deps;
|
54
|
-
}
|
55
|
-
function extractFromJob(job, registryAliases) {
|
56
|
-
if (is_1.default.undefined(job)) {
|
57
|
-
return [];
|
58
|
-
}
|
59
|
-
const deps = [];
|
60
|
-
if (is_1.default.object(job)) {
|
61
|
-
const { image, services } = { ...job };
|
62
|
-
if (is_1.default.object(image) || is_1.default.string(image)) {
|
63
|
-
const dep = extractFromImage(image, registryAliases);
|
64
|
-
if (dep) {
|
65
|
-
deps.push(dep);
|
66
|
-
}
|
67
|
-
}
|
68
|
-
if (is_1.default.array(services)) {
|
69
|
-
deps.push(...extractFromServices(services, registryAliases));
|
70
|
-
}
|
71
|
-
}
|
72
|
-
return deps;
|
73
|
-
}
|
74
|
-
function getIncludeComponentsFromInclude(includeValue) {
|
75
|
-
const includes = is_1.default.array(includeValue) ? includeValue : [includeValue];
|
76
|
-
return includes.filter(common_1.isGitlabIncludeComponent);
|
77
|
-
}
|
78
|
-
function getAllIncludeComponents(data) {
|
79
|
-
const childrenData = Object.values((0, common_1.filterIncludeFromGitlabPipeline)(data))
|
80
|
-
.filter(common_1.isNonEmptyObject)
|
81
|
-
.map(getAllIncludeComponents)
|
82
|
-
.flat();
|
83
|
-
// Process include key.
|
84
|
-
if (data.include) {
|
85
|
-
childrenData.push(...getIncludeComponentsFromInclude(data.include));
|
86
|
-
}
|
87
|
-
return childrenData;
|
88
|
-
}
|
89
|
-
function extractDepFromIncludeComponent(includeComponent, registryAliases) {
|
90
|
-
let componentUrl = includeComponent.component;
|
16
|
+
function extractDepFromIncludeComponent(component, registryAliases) {
|
17
|
+
let componentUrl = component;
|
91
18
|
if (registryAliases) {
|
92
19
|
for (const key in registryAliases) {
|
93
20
|
componentUrl = componentUrl.replace(key, registryAliases[key]);
|
@@ -117,35 +44,26 @@ function extractDepFromIncludeComponent(includeComponent, registryAliases) {
|
|
117
44
|
return dep;
|
118
45
|
}
|
119
46
|
function extractPackageFile(content, packageFile, config) {
|
120
|
-
|
47
|
+
const deps = [];
|
121
48
|
try {
|
122
|
-
|
123
|
-
const docs = (0, yaml_1.parseYaml)(content, {
|
124
|
-
uniqueKeys: false,
|
125
|
-
});
|
49
|
+
const docs = (0, yaml_1.parseYaml)(content, { uniqueKeys: false });
|
126
50
|
for (const doc of docs) {
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
break;
|
141
|
-
default:
|
142
|
-
deps.push(...extractFromJob(value, config.registryAliases));
|
143
|
-
break;
|
144
|
-
}
|
51
|
+
const topLevel = schema_1.Job.parse(doc);
|
52
|
+
const jobs = schema_1.Jobs.parse(doc);
|
53
|
+
for (const job of [topLevel, ...jobs]) {
|
54
|
+
const { image, services } = job;
|
55
|
+
if (image) {
|
56
|
+
const dep = (0, utils_1.getGitlabDep)(image.value, config.registryAliases);
|
57
|
+
dep.depType = image.type;
|
58
|
+
deps.push(dep);
|
59
|
+
}
|
60
|
+
for (const service of services) {
|
61
|
+
const dep = (0, utils_1.getGitlabDep)(service, config.registryAliases);
|
62
|
+
dep.depType = 'service-image';
|
63
|
+
deps.push(dep);
|
145
64
|
}
|
146
|
-
deps = deps.filter(is_1.default.truthy);
|
147
65
|
}
|
148
|
-
const includedComponents =
|
66
|
+
const includedComponents = schema_1.GitlabDocument.parse(doc);
|
149
67
|
for (const includedComponent of includedComponents) {
|
150
68
|
const dep = extractDepFromIncludeComponent(includedComponent, config.registryAliases);
|
151
69
|
if (dep) {
|
@@ -176,33 +94,16 @@ async function extractAllPackageFiles(config, packageFiles) {
|
|
176
94
|
logger_1.logger.debug({ packageFile: file }, `Empty or non existent gitlabci file`);
|
177
95
|
continue;
|
178
96
|
}
|
179
|
-
|
180
|
-
|
181
|
-
// TODO: use schema (#9610)
|
182
|
-
docs = (0, yaml_1.parseYaml)(content, {
|
183
|
-
uniqueKeys: false,
|
184
|
-
});
|
185
|
-
}
|
186
|
-
catch (err) {
|
97
|
+
const { val: docs, err } = result_1.Result.wrap(() => (0, yaml_1.parseYaml)(content, { uniqueKeys: false })).unwrap();
|
98
|
+
if (err) {
|
187
99
|
logger_1.logger.debug({ err, packageFile: file }, 'Error extracting GitLab CI dependencies');
|
188
100
|
continue;
|
189
101
|
}
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
seen.add(fileObj);
|
196
|
-
filesToExamine.push(fileObj);
|
197
|
-
}
|
198
|
-
}
|
199
|
-
}
|
200
|
-
else if (is_1.default.string(doc?.include)) {
|
201
|
-
const fileObj = (0, url_1.trimLeadingSlash)(doc.include);
|
202
|
-
if (!seen.has(fileObj)) {
|
203
|
-
seen.add(fileObj);
|
204
|
-
filesToExamine.push(fileObj);
|
205
|
-
}
|
102
|
+
const localIncludes = schema_1.MultiDocumentLocalIncludes.parse(docs);
|
103
|
+
for (const file of localIncludes) {
|
104
|
+
if (!seen.has(file)) {
|
105
|
+
seen.add(file);
|
106
|
+
filesToExamine.push(file);
|
206
107
|
}
|
207
108
|
}
|
208
109
|
const result = extractPackageFile(content, file, config);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gitlabci/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { readLocalFile } from '../../../util/fs';\nimport { regEx } from '../../../util/regex';\nimport { trimLeadingSlash } from '../../../util/url';\nimport { parseYaml } from '../../../util/yaml';\nimport { GitlabTagsDatasource } from '../../datasource/gitlab-tags';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFile,\n PackageFileContent,\n} from '../types';\nimport {\n filterIncludeFromGitlabPipeline,\n isGitlabIncludeComponent,\n isGitlabIncludeLocal,\n isNonEmptyObject,\n} from './common';\nimport type {\n GitlabInclude,\n GitlabIncludeComponent,\n GitlabPipeline,\n Image,\n Job,\n Services,\n} from './types';\nimport { getGitlabDep } from './utils';\n\n// See https://docs.gitlab.com/ee/ci/components/index.html#use-a-component\nconst componentReferenceRegex = regEx(\n /(?<fqdn>[^/]+)\\/(?<projectPath>.+)\\/(?:.+)@(?<specificVersion>.+)/,\n);\nconst componentReferenceLatestVersion = '~latest';\n\nexport function extractFromImage(\n image: Image | undefined,\n registryAliases?: Record<string, string>,\n): PackageDependency | null {\n if (is.undefined(image)) {\n return null;\n }\n let dep: PackageDependency | null = null;\n if (is.string(image)) {\n dep = getGitlabDep(image, registryAliases);\n dep.depType = 'image';\n } else if (is.string(image?.name)) {\n dep = getGitlabDep(image.name, registryAliases);\n dep.depType = 'image-name';\n }\n return dep;\n}\n\nexport function extractFromServices(\n services: Services | undefined,\n registryAliases?: Record<string, string>,\n): PackageDependency[] {\n if (is.undefined(services)) {\n return [];\n }\n const deps: PackageDependency[] = [];\n for (const service of services) {\n if (is.string(service)) {\n const dep = getGitlabDep(service, registryAliases);\n dep.depType = 'service-image';\n deps.push(dep);\n } else if (is.string(service?.name)) {\n const dep = getGitlabDep(service.name, registryAliases);\n dep.depType = 'service-image';\n deps.push(dep);\n }\n }\n return deps;\n}\n\nexport function extractFromJob(\n job: Job | undefined,\n registryAliases?: Record<string, string>,\n): PackageDependency[] {\n if (is.undefined(job)) {\n return [];\n }\n const deps: PackageDependency[] = [];\n if (is.object(job)) {\n const { image, services } = { ...job };\n if (is.object(image) || is.string(image)) {\n const dep = extractFromImage(image, registryAliases);\n if (dep) {\n deps.push(dep);\n }\n }\n if (is.array(services)) {\n deps.push(...extractFromServices(services, registryAliases));\n }\n }\n return deps;\n}\n\nfunction getIncludeComponentsFromInclude(\n includeValue: GitlabInclude[] | GitlabInclude,\n): GitlabIncludeComponent[] {\n const includes = is.array(includeValue) ? includeValue : [includeValue];\n return includes.filter(isGitlabIncludeComponent);\n}\n\nfunction getAllIncludeComponents(\n data: GitlabPipeline,\n): GitlabIncludeComponent[] {\n const childrenData = Object.values(filterIncludeFromGitlabPipeline(data))\n .filter(isNonEmptyObject)\n .map(getAllIncludeComponents)\n .flat();\n\n // Process include key.\n if (data.include) {\n childrenData.push(...getIncludeComponentsFromInclude(data.include));\n }\n return childrenData;\n}\n\nfunction extractDepFromIncludeComponent(\n includeComponent: GitlabIncludeComponent,\n registryAliases?: Record<string, string>,\n): PackageDependency | null {\n let componentUrl = includeComponent.component;\n if (registryAliases) {\n for (const key in registryAliases) {\n componentUrl = componentUrl.replace(key, registryAliases[key]);\n }\n }\n const componentReference = componentReferenceRegex.exec(componentUrl)?.groups;\n if (!componentReference) {\n logger.debug(\n { componentReference: componentUrl },\n 'Ignoring malformed component reference',\n );\n return null;\n }\n const projectPathParts = componentReference.projectPath.split('/');\n if (projectPathParts.length < 2) {\n logger.debug(\n { componentReference: componentUrl },\n 'Ignoring component reference with incomplete project path',\n );\n return null;\n }\n\n const dep: PackageDependency = {\n datasource: GitlabTagsDatasource.id,\n depName: componentReference.projectPath,\n depType: 'repository',\n currentValue: componentReference.specificVersion,\n registryUrls: [`https://${componentReference.fqdn}`],\n };\n if (dep.currentValue === componentReferenceLatestVersion) {\n logger.debug(\n { componentVersion: dep.currentValue },\n 'Ignoring component version',\n );\n dep.skipReason = 'unsupported-version';\n }\n return dep;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageFileContent | null {\n let deps: PackageDependency[] = [];\n try {\n // TODO: use schema (#9610)\n const docs = parseYaml<GitlabPipeline>(content, {\n uniqueKeys: false,\n });\n for (const doc of docs) {\n if (is.object(doc)) {\n for (const [property, value] of Object.entries(doc)) {\n switch (property) {\n case 'image':\n {\n const dep = extractFromImage(\n value as Image,\n config.registryAliases,\n );\n if (dep) {\n deps.push(dep);\n }\n }\n break;\n\n case 'services':\n deps.push(\n ...extractFromServices(\n value as Services,\n config.registryAliases,\n ),\n );\n break;\n\n default:\n deps.push(\n ...extractFromJob(value as Job, config.registryAliases),\n );\n break;\n }\n }\n deps = deps.filter(is.truthy);\n }\n\n const includedComponents = getAllIncludeComponents(doc);\n for (const includedComponent of includedComponents) {\n const dep = extractDepFromIncludeComponent(\n includedComponent,\n config.registryAliases,\n );\n if (dep) {\n deps.push(dep);\n }\n }\n }\n } catch (err) /* istanbul ignore next */ {\n if (err.stack?.startsWith('YAMLException:')) {\n logger.debug(\n { err, packageFile },\n 'YAML exception extracting GitLab CI includes',\n );\n } else {\n logger.debug(\n { err, packageFile },\n 'Error extracting GitLab CI dependencies',\n );\n }\n }\n\n return deps.length ? { deps } : null;\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile[] | null> {\n const filesToExamine = [...packageFiles];\n const seen = new Set<string>(packageFiles);\n const results: PackageFile[] = [];\n\n // extract all includes from the files\n while (filesToExamine.length > 0) {\n const file = filesToExamine.pop()!;\n\n const content = await readLocalFile(file, 'utf8');\n if (!content) {\n logger.debug(\n { packageFile: file },\n `Empty or non existent gitlabci file`,\n );\n continue;\n }\n let docs: GitlabPipeline[];\n try {\n // TODO: use schema (#9610)\n docs = parseYaml(content, {\n uniqueKeys: false,\n });\n } catch (err) {\n logger.debug(\n { err, packageFile: file },\n 'Error extracting GitLab CI dependencies',\n );\n continue;\n }\n\n for (const doc of docs) {\n if (is.array(doc?.include)) {\n for (const includeObj of doc.include.filter(isGitlabIncludeLocal)) {\n const fileObj = trimLeadingSlash(includeObj.local);\n if (!seen.has(fileObj)) {\n seen.add(fileObj);\n filesToExamine.push(fileObj);\n }\n }\n } else if (is.string(doc?.include)) {\n const fileObj = trimLeadingSlash(doc.include);\n if (!seen.has(fileObj)) {\n seen.add(fileObj);\n filesToExamine.push(fileObj);\n }\n }\n }\n\n const result = extractPackageFile(content, file, config);\n if (result !== null) {\n results.push({\n packageFile: file,\n deps: result.deps,\n });\n }\n }\n\n logger.trace(\n { packageFiles, files: filesToExamine.entries() },\n 'extracted all GitLab CI files',\n );\n\n if (!results.length) {\n return null;\n }\n\n return results;\n}\n"]}
|
1
|
+
{"version":3,"file":"extract.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gitlabci/extract.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger } from '../../../logger';\nimport { readLocalFile } from '../../../util/fs';\nimport { regEx } from '../../../util/regex';\nimport { Result } from '../../../util/result';\nimport { parseYaml } from '../../../util/yaml';\nimport { GitlabTagsDatasource } from '../../datasource/gitlab-tags';\nimport type {\n ExtractConfig,\n PackageDependency,\n PackageFile,\n PackageFileContent,\n} from '../types';\nimport {\n GitlabDocument,\n Job,\n Jobs,\n MultiDocumentLocalIncludes,\n} from './schema';\nimport { getGitlabDep } from './utils';\n\n// See https://docs.gitlab.com/ee/ci/components/index.html#use-a-component\nconst componentReferenceRegex = regEx(\n /(?<fqdn>[^/]+)\\/(?<projectPath>.+)\\/(?:.+)@(?<specificVersion>.+)/,\n);\nconst componentReferenceLatestVersion = '~latest';\n\nfunction extractDepFromIncludeComponent(\n component: string,\n registryAliases?: Record<string, string>,\n): PackageDependency | null {\n let componentUrl = component;\n if (registryAliases) {\n for (const key in registryAliases) {\n componentUrl = componentUrl.replace(key, registryAliases[key]);\n }\n }\n const componentReference = componentReferenceRegex.exec(componentUrl)?.groups;\n if (!componentReference) {\n logger.debug(\n { componentReference: componentUrl },\n 'Ignoring malformed component reference',\n );\n return null;\n }\n const projectPathParts = componentReference.projectPath.split('/');\n if (projectPathParts.length < 2) {\n logger.debug(\n { componentReference: componentUrl },\n 'Ignoring component reference with incomplete project path',\n );\n return null;\n }\n\n const dep: PackageDependency = {\n datasource: GitlabTagsDatasource.id,\n depName: componentReference.projectPath,\n depType: 'repository',\n currentValue: componentReference.specificVersion,\n registryUrls: [`https://${componentReference.fqdn}`],\n };\n if (dep.currentValue === componentReferenceLatestVersion) {\n logger.debug(\n { componentVersion: dep.currentValue },\n 'Ignoring component version',\n );\n dep.skipReason = 'unsupported-version';\n }\n return dep;\n}\n\nexport function extractPackageFile(\n content: string,\n packageFile: string,\n config: ExtractConfig,\n): PackageFileContent | null {\n const deps: PackageDependency[] = [];\n try {\n const docs = parseYaml(content, { uniqueKeys: false });\n\n for (const doc of docs) {\n const topLevel = Job.parse(doc);\n const jobs = Jobs.parse(doc);\n\n for (const job of [topLevel, ...jobs]) {\n const { image, services } = job;\n\n if (image) {\n const dep = getGitlabDep(image.value, config.registryAliases);\n dep.depType = image.type;\n deps.push(dep);\n }\n\n for (const service of services) {\n const dep = getGitlabDep(service, config.registryAliases);\n dep.depType = 'service-image';\n deps.push(dep);\n }\n }\n\n const includedComponents = GitlabDocument.parse(doc);\n for (const includedComponent of includedComponents) {\n const dep = extractDepFromIncludeComponent(\n includedComponent,\n config.registryAliases,\n );\n if (dep) {\n deps.push(dep);\n }\n }\n }\n } catch (err) /* istanbul ignore next */ {\n if (err.stack?.startsWith('YAMLException:')) {\n logger.debug(\n { err, packageFile },\n 'YAML exception extracting GitLab CI includes',\n );\n } else {\n logger.debug(\n { err, packageFile },\n 'Error extracting GitLab CI dependencies',\n );\n }\n }\n\n return deps.length ? { deps } : null;\n}\n\nexport async function extractAllPackageFiles(\n config: ExtractConfig,\n packageFiles: string[],\n): Promise<PackageFile[] | null> {\n const filesToExamine = [...packageFiles];\n const seen = new Set<string>(packageFiles);\n const results: PackageFile[] = [];\n\n // extract all includes from the files\n while (filesToExamine.length > 0) {\n const file = filesToExamine.pop()!;\n\n const content = await readLocalFile(file, 'utf8');\n if (!content) {\n logger.debug(\n { packageFile: file },\n `Empty or non existent gitlabci file`,\n );\n continue;\n }\n\n const { val: docs, err } = Result.wrap(() =>\n parseYaml(content, { uniqueKeys: false }),\n ).unwrap();\n\n if (err) {\n logger.debug(\n { err, packageFile: file },\n 'Error extracting GitLab CI dependencies',\n );\n continue;\n }\n\n const localIncludes = MultiDocumentLocalIncludes.parse(docs);\n for (const file of localIncludes) {\n if (!seen.has(file)) {\n seen.add(file);\n filesToExamine.push(file);\n }\n }\n\n const result = extractPackageFile(content, file, config);\n if (result !== null) {\n results.push({\n packageFile: file,\n deps: result.deps,\n });\n }\n }\n\n logger.trace(\n { packageFiles, files: filesToExamine.entries() },\n 'extracted all GitLab CI files',\n );\n\n if (!results.length) {\n return null;\n }\n\n return results;\n}\n"]}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
import { z } from 'zod';
|
2
|
+
export declare const MultiDocumentLocalIncludes: z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodAny, "many">, string[][], any[]>, string[], any[]>;
|
3
|
+
export declare const Job: z.ZodObject<{
|
4
|
+
image: z.ZodCatch<z.ZodOptional<z.ZodUnion<[z.ZodEffects<z.ZodString, {
|
5
|
+
type: "image";
|
6
|
+
value: string;
|
7
|
+
}, string>, z.ZodEffects<z.ZodObject<{
|
8
|
+
name: z.ZodString;
|
9
|
+
}, "strip", z.ZodTypeAny, {
|
10
|
+
name: string;
|
11
|
+
}, {
|
12
|
+
name: string;
|
13
|
+
}>, {
|
14
|
+
type: "image-name";
|
15
|
+
value: string;
|
16
|
+
}, {
|
17
|
+
name: string;
|
18
|
+
}>]>>>;
|
19
|
+
services: z.ZodCatch<z.ZodEffects<z.ZodArray<z.ZodAny, "many">, string[], any[]>>;
|
20
|
+
}, "strip", z.ZodTypeAny, {
|
21
|
+
services: string[];
|
22
|
+
image?: {
|
23
|
+
type: "image";
|
24
|
+
value: string;
|
25
|
+
} | {
|
26
|
+
type: "image-name";
|
27
|
+
value: string;
|
28
|
+
} | undefined;
|
29
|
+
}, {
|
30
|
+
image?: unknown;
|
31
|
+
services?: unknown;
|
32
|
+
}>;
|
33
|
+
export declare const Jobs: z.ZodEffects<z.ZodCatch<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodAny>, Record<string, {
|
34
|
+
services: string[];
|
35
|
+
image?: {
|
36
|
+
type: "image";
|
37
|
+
value: string;
|
38
|
+
} | {
|
39
|
+
type: "image-name";
|
40
|
+
value: string;
|
41
|
+
} | undefined;
|
42
|
+
}>, Record<string, any>>>, {
|
43
|
+
services: string[];
|
44
|
+
image?: {
|
45
|
+
type: "image";
|
46
|
+
value: string;
|
47
|
+
} | {
|
48
|
+
type: "image-name";
|
49
|
+
value: string;
|
50
|
+
} | undefined;
|
51
|
+
}[], unknown>;
|
52
|
+
export declare const GitlabDocument: z.ZodEffects<z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodUnknown>, {
|
53
|
+
include: unknown;
|
54
|
+
children: unknown[];
|
55
|
+
}, Record<string, unknown>>, string[], Record<string, unknown>>;
|
@@ -0,0 +1,63 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.GitlabDocument = exports.Jobs = exports.Job = exports.MultiDocumentLocalIncludes = void 0;
|
4
|
+
const zod_1 = require("zod");
|
5
|
+
const array_1 = require("../../../util/array");
|
6
|
+
const schema_utils_1 = require("../../../util/schema-utils");
|
7
|
+
const url_1 = require("../../../util/url");
|
8
|
+
const LocalInclude = zod_1.z
|
9
|
+
.union([
|
10
|
+
zod_1.z.string(),
|
11
|
+
zod_1.z.object({ local: zod_1.z.string() }).transform(({ local }) => local),
|
12
|
+
])
|
13
|
+
.transform(url_1.trimLeadingSlash);
|
14
|
+
const DocumentLocalIncludes = zod_1.z
|
15
|
+
.object({
|
16
|
+
include: zod_1.z.union([
|
17
|
+
(0, schema_utils_1.LooseArray)(LocalInclude),
|
18
|
+
LocalInclude.transform(array_1.toArray),
|
19
|
+
]),
|
20
|
+
})
|
21
|
+
.transform(({ include }) => include);
|
22
|
+
exports.MultiDocumentLocalIncludes = (0, schema_utils_1.LooseArray)(DocumentLocalIncludes).transform((includes) => includes.flat());
|
23
|
+
exports.Job = zod_1.z.object({
|
24
|
+
image: zod_1.z
|
25
|
+
.union([
|
26
|
+
zod_1.z.string().transform((image) => ({
|
27
|
+
type: 'image',
|
28
|
+
value: image,
|
29
|
+
})),
|
30
|
+
zod_1.z.object({ name: zod_1.z.string() }).transform(({ name }) => ({
|
31
|
+
type: 'image-name',
|
32
|
+
value: name,
|
33
|
+
})),
|
34
|
+
])
|
35
|
+
.optional()
|
36
|
+
.catch(undefined),
|
37
|
+
services: (0, schema_utils_1.LooseArray)(zod_1.z.union([
|
38
|
+
zod_1.z.string(),
|
39
|
+
zod_1.z.object({ name: zod_1.z.string() }).transform(({ name }) => name),
|
40
|
+
])).catch([]),
|
41
|
+
});
|
42
|
+
exports.Jobs = (0, schema_utils_1.LooseRecord)(zod_1.z.string(), exports.Job)
|
43
|
+
.catch({})
|
44
|
+
.transform((x) => Object.values(x));
|
45
|
+
const GitlabInclude = zod_1.z
|
46
|
+
.object({ component: zod_1.z.string() })
|
47
|
+
.transform(({ component }) => component);
|
48
|
+
const GitlabIncludes = zod_1.z
|
49
|
+
.union([(0, schema_utils_1.LooseArray)(GitlabInclude), GitlabInclude.transform(array_1.toArray)])
|
50
|
+
.catch([]);
|
51
|
+
exports.GitlabDocument = zod_1.z
|
52
|
+
.record(zod_1.z.unknown())
|
53
|
+
.transform((obj) => {
|
54
|
+
const { include, ...rest } = obj;
|
55
|
+
const children = Object.values(rest);
|
56
|
+
return { include, children };
|
57
|
+
})
|
58
|
+
.transform(({ include, children }) => [
|
59
|
+
...GitlabDocumentArray.parse(children),
|
60
|
+
...GitlabIncludes.parse(include),
|
61
|
+
]);
|
62
|
+
const GitlabDocumentArray = (0, schema_utils_1.LooseArray)(exports.GitlabDocument).transform((x) => x.flat());
|
63
|
+
//# sourceMappingURL=schema.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gitlabci/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod';\nimport { toArray } from '../../../util/array';\nimport { LooseArray, LooseRecord } from '../../../util/schema-utils';\nimport { trimLeadingSlash } from '../../../util/url';\n\nconst LocalInclude = z\n .union([\n z.string(),\n z.object({ local: z.string() }).transform(({ local }) => local),\n ])\n .transform(trimLeadingSlash);\n\nconst DocumentLocalIncludes = z\n .object({\n include: z.union([\n LooseArray(LocalInclude),\n LocalInclude.transform(toArray),\n ]),\n })\n .transform(({ include }) => include);\n\nexport const MultiDocumentLocalIncludes = LooseArray(\n DocumentLocalIncludes,\n).transform((includes) => includes.flat());\n\nexport const Job = z.object({\n image: z\n .union([\n z.string().transform((image) => ({\n type: 'image' as const,\n value: image,\n })),\n z.object({ name: z.string() }).transform(({ name }) => ({\n type: 'image-name' as const,\n value: name,\n })),\n ])\n .optional()\n .catch(undefined),\n services: LooseArray(\n z.union([\n z.string(),\n z.object({ name: z.string() }).transform(({ name }) => name),\n ]),\n ).catch([]),\n});\n\nexport const Jobs = LooseRecord(z.string(), Job)\n .catch({})\n .transform((x) => Object.values(x));\n\nconst GitlabInclude = z\n .object({ component: z.string() })\n .transform(({ component }) => component);\n\nconst GitlabIncludes = z\n .union([LooseArray(GitlabInclude), GitlabInclude.transform(toArray)])\n .catch([]);\n\nexport const GitlabDocument = z\n .record(z.unknown())\n .transform((obj) => {\n const { include, ...rest } = obj;\n const children = Object.values(rest);\n return { include, children };\n })\n .transform(({ include, children }): string[] => [\n ...GitlabDocumentArray.parse(children),\n ...GitlabIncludes.parse(include),\n ]);\n\nconst GitlabDocumentArray = LooseArray(GitlabDocument).transform((x) =>\n x.flat(),\n);\n"]}
|