diff --git a/lib/manager/ansible-galaxy/extract.spec.ts b/lib/manager/ansible-galaxy/extract.spec.ts index 1e2b80d0a62666..c445492aa28e97 100644 --- a/lib/manager/ansible-galaxy/extract.spec.ts +++ b/lib/manager/ansible-galaxy/extract.spec.ts @@ -1,5 +1,5 @@ import { loadFixture } from '../../../test/util'; -import extractPackageFile, { getSliceEndNumber } from './extract'; +import { extractPackageFile, getSliceEndNumber } from './extract'; const yamlFile1 = loadFixture('requirements01.yml'); const yamlFile2 = loadFixture('requirements02.yml'); diff --git a/lib/manager/ansible-galaxy/extract.ts b/lib/manager/ansible-galaxy/extract.ts index b1ac37cc44f73c..8ce428608f72ba 100644 --- a/lib/manager/ansible-galaxy/extract.ts +++ b/lib/manager/ansible-galaxy/extract.ts @@ -22,7 +22,7 @@ export function getSliceEndNumber( return nearestEnd; } -export default function extractPackageFile( +export function extractPackageFile( content: string, fileName: string ): PackageFile | null { diff --git a/lib/manager/ansible-galaxy/index.ts b/lib/manager/ansible-galaxy/index.ts index ffde8df477ad88..fc92ebe669faea 100644 --- a/lib/manager/ansible-galaxy/index.ts +++ b/lib/manager/ansible-galaxy/index.ts @@ -1,7 +1,15 @@ -import extractPackageFile from './extract'; +import { GalaxyCollectionDatasource } from '../../datasource/galaxy-collection'; +import { GitTagsDatasource } from '../../datasource/git-tags'; +import * as datasourceGithubTags from '../../datasource/github-tags'; -export { extractPackageFile }; +export { extractPackageFile } from './extract'; export const defaultConfig = { fileMatch: ['(^|/)requirements\\.ya?ml$', '(^|/)galaxy\\.ya?ml$'], }; + +export const supportedDatasources = [ + GalaxyCollectionDatasource.id, + GitTagsDatasource.id, + datasourceGithubTags.id, +]; diff --git a/lib/manager/ansible/extract.spec.ts b/lib/manager/ansible/extract.spec.ts index f7217a3500a713..aedbcc2c1e4841 100644 --- a/lib/manager/ansible/extract.spec.ts +++ b/lib/manager/ansible/extract.spec.ts @@ -1,5 +1,5 @@ import { loadFixture } from '../../../test/util'; -import extractPackageFile from './extract'; +import { extractPackageFile } from './extract'; const yamlFile1 = loadFixture('main1.yaml'); const yamlFile2 = loadFixture('main2.yaml'); diff --git a/lib/manager/ansible/extract.ts b/lib/manager/ansible/extract.ts index 4ee13ef36f048a..740921fbc6bcf9 100644 --- a/lib/manager/ansible/extract.ts +++ b/lib/manager/ansible/extract.ts @@ -4,9 +4,7 @@ import * as dockerVersioning from '../../versioning/docker'; import { getDep } from '../dockerfile/extract'; import type { PackageDependency, PackageFile } from '../types'; -export default function extractPackageFile( - content: string -): PackageFile | null { +export function extractPackageFile(content: string): PackageFile | null { logger.trace('ansible.extractPackageFile()'); let deps: PackageDependency[] = []; const re = regEx(/^\s*image:\s*'?"?([^\s'"]+)'?"?\s*$/); diff --git a/lib/manager/ansible/index.ts b/lib/manager/ansible/index.ts index 0af8b33e33cbee..cbe22b450165cd 100644 --- a/lib/manager/ansible/index.ts +++ b/lib/manager/ansible/index.ts @@ -1,10 +1,11 @@ import { ProgrammingLanguage } from '../../constants'; -import extractPackageFile from './extract'; +import * as datasourceDocker from '../../datasource/docker'; +export { extractPackageFile } from './extract'; -const language = ProgrammingLanguage.Docker; - -export { extractPackageFile, language }; +export const language = ProgrammingLanguage.Docker; export const defaultConfig = { fileMatch: ['(^|/)tasks/[^/]+\\.ya?ml$'], }; + +export const supportedDatasources = [datasourceDocker.id]; diff --git a/lib/manager/argocd/index.ts b/lib/manager/argocd/index.ts index 1012c71468dbc4..a02db98b72a445 100644 --- a/lib/manager/argocd/index.ts +++ b/lib/manager/argocd/index.ts @@ -1,5 +1,9 @@ +import { GitTagsDatasource } from '../../datasource/git-tags'; +import { HelmDatasource } from '../../datasource/helm'; export { extractPackageFile } from './extract'; export const defaultConfig = { fileMatch: [], }; + +export const supportedDatasources = [GitTagsDatasource.id, HelmDatasource.id]; diff --git a/lib/manager/azure-pipelines/index.ts b/lib/manager/azure-pipelines/index.ts index adbfba940a0e41..bf14289b545678 100644 --- a/lib/manager/azure-pipelines/index.ts +++ b/lib/manager/azure-pipelines/index.ts @@ -1,5 +1,8 @@ +import { GitTagsDatasource } from '../../datasource/git-tags'; export { extractPackageFile } from './extract'; export const defaultConfig = { fileMatch: ['azure.*pipelines?.*\\.ya?ml$'], }; + +export const supportedDatasources = [GitTagsDatasource.id]; diff --git a/lib/manager/batect-wrapper/index.ts b/lib/manager/batect-wrapper/index.ts index 3c3359a8884402..dcaa1c1e63f28b 100644 --- a/lib/manager/batect-wrapper/index.ts +++ b/lib/manager/batect-wrapper/index.ts @@ -1,3 +1,4 @@ +import { id as githubReleaseDatasource } from '../../datasource/github-releases'; import { id as versioning } from '../../versioning/semver'; export { extractPackageFile } from './extract'; @@ -7,3 +8,5 @@ export const defaultConfig = { fileMatch: ['(^|/)batect$'], versioning, }; + +export const supportedDatasources = [githubReleaseDatasource]; diff --git a/lib/manager/batect/index.ts b/lib/manager/batect/index.ts index 708f9392195c59..b8fd77a5e8aa0d 100644 --- a/lib/manager/batect/index.ts +++ b/lib/manager/batect/index.ts @@ -1,3 +1,4 @@ +import { GitTagsDatasource } from '../../datasource/git-tags'; import { extractAllPackageFiles, extractPackageFile } from './extract'; export { extractAllPackageFiles, extractPackageFile }; @@ -5,3 +6,5 @@ export { extractAllPackageFiles, extractPackageFile }; export const defaultConfig = { fileMatch: ['(^|/)batect(-bundle)?\\.yml$'], }; + +export const supportedDatasources = [GitTagsDatasource.id]; diff --git a/lib/manager/bazel/index.ts b/lib/manager/bazel/index.ts index 61b6798640db93..b487be7da6e2b9 100644 --- a/lib/manager/bazel/index.ts +++ b/lib/manager/bazel/index.ts @@ -1,3 +1,7 @@ +import * as datasourceDocker from '../../datasource/docker'; +import * as datasourceGithubReleases from '../../datasource/github-releases'; +import * as datasourceGithubTags from '../../datasource/github-tags'; +import * as datasourceGo from '../../datasource/go'; import { extractPackageFile } from './extract'; import { updateDependency } from './update'; @@ -6,3 +10,10 @@ export { extractPackageFile, updateDependency }; export const defaultConfig = { fileMatch: ['(^|/)WORKSPACE(|\\.bazel)$', '\\.bzl$'], }; + +export const supportedDatasources = [ + datasourceDocker.id, + datasourceGithubReleases.id, + datasourceGithubTags.id, + datasourceGo.id, +]; diff --git a/lib/manager/bitbucket-pipelines/index.ts b/lib/manager/bitbucket-pipelines/index.ts index acf2524bd45a43..a51d837bc58277 100644 --- a/lib/manager/bitbucket-pipelines/index.ts +++ b/lib/manager/bitbucket-pipelines/index.ts @@ -1,3 +1,4 @@ +import * as datasourceDocker from '../../datasource/docker'; import { extractPackageFile } from './extract'; export { extractPackageFile }; @@ -5,3 +6,5 @@ export { extractPackageFile }; export const defaultConfig = { fileMatch: ['(^|/)\\.?bitbucket-pipelines\\.ya?ml$'], }; + +export const supportedDatasources = [datasourceDocker.id]; diff --git a/lib/manager/buildkite/index.ts b/lib/manager/buildkite/index.ts index d678d7fd3c206d..3350b60ce64d49 100644 --- a/lib/manager/buildkite/index.ts +++ b/lib/manager/buildkite/index.ts @@ -1,3 +1,4 @@ +import * as datasourceGithubTags from '../../datasource/github-tags'; import { extractPackageFile } from './extract'; export { extractPackageFile }; @@ -8,3 +9,5 @@ export const defaultConfig = { commitMessageExtra: 'to {{#if isMajor}}v{{{newMajor}}}{{else}}{{{newValue}}}{{/if}}', }; + +export const supportedDatasources = [datasourceGithubTags.id]; diff --git a/lib/manager/bundler/index.ts b/lib/manager/bundler/index.ts index 3ef026f8b798ef..310e0f63ec0b5c 100644 --- a/lib/manager/bundler/index.ts +++ b/lib/manager/bundler/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import { RubyGemsDatasource } from '../../datasource/rubygems'; import * as rubyVersioning from '../../versioning/ruby'; import { updateArtifacts } from './artifacts'; import { extractPackageFile } from './extract'; @@ -25,3 +26,5 @@ export const defaultConfig = { fileMatch: ['(^|/)Gemfile$'], versioning: rubyVersioning.id, }; + +export const supportedDatasources = [RubyGemsDatasource.id]; diff --git a/lib/manager/cake/index.ts b/lib/manager/cake/index.ts index 5d2a05166c602d..68e0d1d3dc7e77 100644 --- a/lib/manager/cake/index.ts +++ b/lib/manager/cake/index.ts @@ -69,3 +69,5 @@ export function extractPackageFile(content: string): PackageFile { } return { deps }; } + +export const supportedDatasources = [datasource]; diff --git a/lib/manager/cargo/index.ts b/lib/manager/cargo/index.ts index 37f2b4bd7c69dd..b308ca9227ca83 100644 --- a/lib/manager/cargo/index.ts +++ b/lib/manager/cargo/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import { CrateDatasource } from '../../datasource/crate'; import * as cargoVersioning from '../../versioning/cargo'; import { updateArtifacts } from './artifacts'; import { extractPackageFile } from './extract'; @@ -14,3 +15,5 @@ export const defaultConfig = { versioning: cargoVersioning.id, rangeStrategy: 'bump', }; + +export const supportedDatasources = [CrateDatasource.id]; diff --git a/lib/manager/cdnurl/index.ts b/lib/manager/cdnurl/index.ts index edf2106e6533e3..5480906fbf9d53 100644 --- a/lib/manager/cdnurl/index.ts +++ b/lib/manager/cdnurl/index.ts @@ -1,3 +1,4 @@ +import { CdnJsDatasource } from '../../datasource/cdnjs'; import * as semverVersioning from '../../versioning/semver'; import { extractPackageFile } from './extract'; @@ -7,3 +8,5 @@ export const defaultConfig = { fileMatch: [], versioning: semverVersioning.id, }; + +export const supportedDatasources = [CdnJsDatasource.id]; diff --git a/lib/manager/circleci/index.ts b/lib/manager/circleci/index.ts index afef6591c1f8ad..705099e16def2c 100644 --- a/lib/manager/circleci/index.ts +++ b/lib/manager/circleci/index.ts @@ -1,3 +1,5 @@ +import * as datasourceDocker from '../../datasource/docker'; +import { OrbDatasource } from '../../datasource/orb'; import { extractPackageFile } from './extract'; export { extractPackageFile }; @@ -5,3 +7,5 @@ export { extractPackageFile }; export const defaultConfig = { fileMatch: ['(^|/).circleci/config.yml$'], }; + +export const supportedDatasources = [datasourceDocker.id, OrbDatasource.id]; diff --git a/lib/manager/cloudbuild/index.ts b/lib/manager/cloudbuild/index.ts index 3b96731222b8b9..cb4dc10014fd2f 100644 --- a/lib/manager/cloudbuild/index.ts +++ b/lib/manager/cloudbuild/index.ts @@ -1,3 +1,4 @@ +import * as datasourceDocker from '../../datasource/docker'; import { extractPackageFile } from './extract'; export { extractPackageFile }; @@ -5,3 +6,5 @@ export { extractPackageFile }; export const defaultConfig = { fileMatch: ['(^|/)cloudbuild.ya?ml'], }; + +export const supportedDatasources = [datasourceDocker.id]; diff --git a/lib/manager/cocoapods/index.ts b/lib/manager/cocoapods/index.ts index 783738d2bc7209..48284b915fe368 100644 --- a/lib/manager/cocoapods/index.ts +++ b/lib/manager/cocoapods/index.ts @@ -1,3 +1,7 @@ +import { GitTagsDatasource } from '../../datasource/git-tags'; +import * as datasourceGithubTags from '../../datasource/github-tags'; +import * as datasourceGitlabTags from '../../datasource/gitlab-tags'; +import * as datasourcePod from '../../datasource/pod'; import * as rubyVersioning from '../../versioning/ruby'; export { extractPackageFile } from './extract'; @@ -7,3 +11,10 @@ export const defaultConfig = { fileMatch: ['(^|/)Podfile$'], versioning: rubyVersioning.id, }; + +export const supportedDatasources = [ + GitTagsDatasource.id, + datasourceGithubTags.id, + datasourceGitlabTags.id, + datasourcePod.id, +]; diff --git a/lib/manager/composer/index.ts b/lib/manager/composer/index.ts index 2a6f551852f5fc..5295d55db7ea26 100644 --- a/lib/manager/composer/index.ts +++ b/lib/manager/composer/index.ts @@ -1,4 +1,6 @@ import { ProgrammingLanguage } from '../../constants'; +import { GitTagsDatasource } from '../../datasource/git-tags'; +import * as datasourcePackagist from '../../datasource/packagist'; import { updateArtifacts } from './artifacts'; import { extractPackageFile } from './extract'; import { getRangeStrategy } from './range'; @@ -20,3 +22,8 @@ export const defaultConfig = { fileMatch: ['(^|/)([\\w-]*)composer.json$'], versioning: composerVersioningId, }; + +export const supportedDatasources = [ + GitTagsDatasource.id, + datasourcePackagist.id, +]; diff --git a/lib/manager/deps-edn/index.ts b/lib/manager/deps-edn/index.ts index 25df4094495b6c..599293213a6841 100644 --- a/lib/manager/deps-edn/index.ts +++ b/lib/manager/deps-edn/index.ts @@ -1,3 +1,4 @@ +import { ClojureDatasource } from '../../datasource/clojure'; import * as mavenVersioning from '../../versioning/maven'; import { extractPackageFile } from './extract'; @@ -7,3 +8,5 @@ export const defaultConfig = { fileMatch: ['(^|/)deps\\.edn$'], versioning: mavenVersioning.id, }; + +export const supportedDatasources = [ClojureDatasource.id]; diff --git a/lib/manager/docker-compose/index.ts b/lib/manager/docker-compose/index.ts index d89cad0cf059c1..d2314c5b646bf7 100644 --- a/lib/manager/docker-compose/index.ts +++ b/lib/manager/docker-compose/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import * as datasourceDocker from '../../datasource/docker'; import { extractPackageFile } from './extract'; const language = ProgrammingLanguage.Docker; @@ -8,3 +9,5 @@ export { extractPackageFile, language }; export const defaultConfig = { fileMatch: ['(^|/)docker-compose[^/]*\\.ya?ml$'], }; + +export const supportedDatasources = [datasourceDocker.id]; diff --git a/lib/manager/dockerfile/index.ts b/lib/manager/dockerfile/index.ts index b9b8ed54f9ea77..7ebec5c8773dc1 100644 --- a/lib/manager/dockerfile/index.ts +++ b/lib/manager/dockerfile/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import * as datasourceDocker from '../../datasource/docker'; import { extractPackageFile } from './extract'; const language = ProgrammingLanguage.Docker; @@ -8,3 +9,5 @@ export { extractPackageFile, language }; export const defaultConfig = { fileMatch: ['(^|/|\\.)Dockerfile$', '(^|/)Dockerfile\\.[^/]*$'], }; + +export const supportedDatasources = [datasourceDocker.id]; diff --git a/lib/manager/droneci/index.ts b/lib/manager/droneci/index.ts index 8bf495e68ba414..a46b91d3f3752c 100644 --- a/lib/manager/droneci/index.ts +++ b/lib/manager/droneci/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import * as datasourceDocker from '../../datasource/docker'; import { extractPackageFile } from './extract'; const language = ProgrammingLanguage.Docker; @@ -8,3 +9,5 @@ export { extractPackageFile, language }; export const defaultConfig = { fileMatch: ['(^|/).drone.yml$'], }; + +export const supportedDatasources = [datasourceDocker.id]; diff --git a/lib/manager/git-submodules/index.ts b/lib/manager/git-submodules/index.ts index 22dde889eec8d7..a420292c7c9fcb 100644 --- a/lib/manager/git-submodules/index.ts +++ b/lib/manager/git-submodules/index.ts @@ -1,3 +1,4 @@ +import { GitRefsDatasource } from '../../datasource/git-refs'; import * as gitVersioning from '../../versioning/git'; export { default as extractPackageFile } from './extract'; @@ -9,3 +10,5 @@ export const defaultConfig = { versioning: gitVersioning.id, fileMatch: ['(^|/).gitmodules$'], }; + +export const supportedDatasources = [GitRefsDatasource.id]; diff --git a/lib/manager/github-actions/index.ts b/lib/manager/github-actions/index.ts index 7899690d2b2642..5d39f85406867b 100644 --- a/lib/manager/github-actions/index.ts +++ b/lib/manager/github-actions/index.ts @@ -1,6 +1,7 @@ -import { extractPackageFile } from './extract'; +import * as githubTagsDatasource from '../../datasource/github-tags'; +import * as dockerVersioning from '../../versioning/docker'; -export { extractPackageFile }; +export { extractPackageFile } from './extract'; export const defaultConfig = { fileMatch: [ @@ -8,3 +9,8 @@ export const defaultConfig = { '(^|\\/)action\\.ya?ml$', ], }; + +export const supportedDatasources = [ + githubTagsDatasource.id, + dockerVersioning.id, +]; diff --git a/lib/manager/gitlabci-include/index.ts b/lib/manager/gitlabci-include/index.ts index 9fa1f4d99fe3e4..77119f696a3fb4 100644 --- a/lib/manager/gitlabci-include/index.ts +++ b/lib/manager/gitlabci-include/index.ts @@ -1,3 +1,4 @@ +import * as datasourceGitlabTags from '../../datasource/gitlab-tags'; import { extractPackageFile } from './extract'; export { extractPackageFile }; @@ -5,3 +6,5 @@ export { extractPackageFile }; export const defaultConfig = { fileMatch: ['\\.gitlab-ci\\.yml$'], }; + +export const supportedDatasources = [datasourceGitlabTags.id]; diff --git a/lib/manager/gitlabci/index.ts b/lib/manager/gitlabci/index.ts index 44f7928318348e..802c5072bb62f4 100644 --- a/lib/manager/gitlabci/index.ts +++ b/lib/manager/gitlabci/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import * as datasourceDocker from '../../datasource/docker'; import { extractAllPackageFiles, extractPackageFile } from './extract'; const language = ProgrammingLanguage.Docker; @@ -8,3 +9,5 @@ export { extractAllPackageFiles, extractPackageFile, language }; export const defaultConfig = { fileMatch: ['\\.gitlab-ci\\.yml$'], }; + +export const supportedDatasources = [datasourceDocker.id]; diff --git a/lib/manager/gomod/index.ts b/lib/manager/gomod/index.ts index f5283a240d4e61..979f955d89cad4 100644 --- a/lib/manager/gomod/index.ts +++ b/lib/manager/gomod/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import * as datasourceGo from '../../datasource/go'; import { updateArtifacts } from './artifacts'; import { extractPackageFile } from './extract'; import { updateDependency } from './update'; @@ -9,3 +10,5 @@ export { extractPackageFile, updateDependency, updateArtifacts }; export const defaultConfig = { fileMatch: ['(^|/)go.mod$'], }; + +export const supportedDatasources = [datasourceGo.id]; diff --git a/lib/manager/gradle-wrapper/index.ts b/lib/manager/gradle-wrapper/index.ts index f65174938dd047..f3b90c2237f19e 100644 --- a/lib/manager/gradle-wrapper/index.ts +++ b/lib/manager/gradle-wrapper/index.ts @@ -1,3 +1,4 @@ +import { GradleVersionDatasource } from '../../datasource/gradle-version'; import { id as versioning } from '../../versioning/gradle'; export { extractPackageFile } from './extract'; @@ -7,3 +8,5 @@ export const defaultConfig = { fileMatch: ['(^|/)gradle/wrapper/gradle-wrapper.properties$'], versioning, }; + +export const supportedDatasources = [GradleVersionDatasource.id]; diff --git a/lib/manager/gradle/index.ts b/lib/manager/gradle/index.ts index b3ff818c5eaa6e..2dd67902e1999d 100644 --- a/lib/manager/gradle/index.ts +++ b/lib/manager/gradle/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import * as datasourceMaven from '../../datasource/maven'; import * as gradleVersioning from '../../versioning/gradle'; import type { ExtractConfig, @@ -38,3 +39,5 @@ export const defaultConfig = { timeout: 600, versioning: gradleVersioning.id, }; + +export const supportedDatasources = [datasourceMaven.id]; diff --git a/lib/manager/helm-requirements/index.ts b/lib/manager/helm-requirements/index.ts index e8cf05e2bff2da..186ec412d9ed8d 100644 --- a/lib/manager/helm-requirements/index.ts +++ b/lib/manager/helm-requirements/index.ts @@ -1,3 +1,4 @@ +import { HelmDatasource } from '../../datasource/helm'; export { extractPackageFile } from './extract'; export const defaultConfig = { @@ -7,3 +8,5 @@ export const defaultConfig = { commitMessageTopic: 'helm chart {{depName}}', fileMatch: ['(^|/)requirements\\.yaml$'], }; + +export const supportedDatasources = [HelmDatasource.id]; diff --git a/lib/manager/helm-values/index.ts b/lib/manager/helm-values/index.ts index 1ef75d28735eca..2e267255000042 100644 --- a/lib/manager/helm-values/index.ts +++ b/lib/manager/helm-values/index.ts @@ -1,3 +1,4 @@ +import * as datasourceDocker from '../../datasource/docker'; export { extractPackageFile } from './extract'; export const defaultConfig = { @@ -5,3 +6,5 @@ export const defaultConfig = { fileMatch: ['(^|/)values.yaml$'], pinDigests: false, }; + +export const supportedDatasources = [datasourceDocker.id]; diff --git a/lib/manager/helmfile/index.ts b/lib/manager/helmfile/index.ts index d8d3e541962653..915cbcf5b01c7d 100644 --- a/lib/manager/helmfile/index.ts +++ b/lib/manager/helmfile/index.ts @@ -1,3 +1,4 @@ +import { HelmDatasource } from '../../datasource/helm'; export { extractPackageFile } from './extract'; export const defaultConfig = { @@ -7,3 +8,5 @@ export const defaultConfig = { commitMessageTopic: 'helm chart {{depName}}', fileMatch: ['(^|/)helmfile.yaml$'], }; + +export const supportedDatasources = [HelmDatasource.id]; diff --git a/lib/manager/helmsman/index.ts b/lib/manager/helmsman/index.ts index 1012c71468dbc4..9f0cf9c1338722 100644 --- a/lib/manager/helmsman/index.ts +++ b/lib/manager/helmsman/index.ts @@ -1,5 +1,8 @@ +import { HelmDatasource } from '../../datasource/helm'; export { extractPackageFile } from './extract'; export const defaultConfig = { fileMatch: [], }; + +export const supportedDatasources = [HelmDatasource.id]; diff --git a/lib/manager/helmv3/index.ts b/lib/manager/helmv3/index.ts index 21a0ccd14f9e75..de5feaa3731a6e 100644 --- a/lib/manager/helmv3/index.ts +++ b/lib/manager/helmv3/index.ts @@ -1,3 +1,5 @@ +import * as datasourceDocker from '../../datasource/docker'; +import { HelmDatasource } from '../../datasource/helm'; export { updateArtifacts } from './artifacts'; export { extractPackageFile } from './extract'; export { bumpPackageVersion } from './update'; @@ -11,3 +13,5 @@ export const defaultConfig = { commitMessageTopic: 'helm chart {{depName}}', fileMatch: ['(^|/)Chart.yaml$'], }; + +export const supportedDatasources = [datasourceDocker.id, HelmDatasource.id]; diff --git a/lib/manager/homebrew/index.ts b/lib/manager/homebrew/index.ts index b45e932cf7f9a7..f41a1a84064d78 100644 --- a/lib/manager/homebrew/index.ts +++ b/lib/manager/homebrew/index.ts @@ -1,3 +1,4 @@ +import * as datasourceGithubTags from '../../datasource/github-tags'; export { extractPackageFile } from './extract'; export { updateDependency } from './update'; @@ -5,3 +6,5 @@ export const defaultConfig = { commitMessageTopic: 'Homebrew Formula {{depName}}', fileMatch: ['^Formula/[^/]+[.]rb$'], }; + +export const supportedDatasources = [datasourceGithubTags.id]; diff --git a/lib/manager/html/index.ts b/lib/manager/html/index.ts index 5b19123f0f68a1..c196d4af869ec4 100644 --- a/lib/manager/html/index.ts +++ b/lib/manager/html/index.ts @@ -1,3 +1,4 @@ +import { CdnJsDatasource } from '../../datasource/cdnjs'; import * as semverVersioning from '../../versioning/semver'; import { extractPackageFile } from './extract'; @@ -11,3 +12,5 @@ export const defaultConfig = { }, pinDigests: false, }; + +export const supportedDatasources = [CdnJsDatasource.id]; diff --git a/lib/manager/index.spec.ts b/lib/manager/index.spec.ts index 53da1cc52719f5..009979be19054f 100644 --- a/lib/manager/index.spec.ts +++ b/lib/manager/index.spec.ts @@ -1,10 +1,28 @@ +import { getDatasourceList } from '../datasource'; import { loadModules } from '../util/modules'; import type { ManagerApi } from './types'; import * as manager from '.'; jest.mock('../util/fs'); +const datasources = getDatasourceList(); + describe('manager/index', () => { + describe('supportedDatasources', () => { + for (const m of manager.getManagerList()) { + if (m === 'regex') { + // regex supports any + continue; + } + const supportedDatasources = manager.get(m, 'supportedDatasources'); + it(`has valid supportedDatasources for ${m}`, () => { + expect(supportedDatasources).toBeNonEmptyArray(); + supportedDatasources.every((d) => { + expect(datasources.includes(d)).toBeTrue(); + }); + }); + } + }); describe('get()', () => { it('gets something', () => { expect(manager.get('dockerfile', 'extractPackageFile')).not.toBeNull(); @@ -55,6 +73,7 @@ describe('manager/index', () => { it('returns null', async () => { manager.getManagers().set('dummy', { defaultConfig: {}, + supportedDatasources: [], }); expect( await manager.extractAllPackageFiles('unknown', {} as any, []) @@ -66,6 +85,7 @@ describe('manager/index', () => { it('returns non-null', async () => { manager.getManagers().set('dummy', { defaultConfig: {}, + supportedDatasources: [], extractAllPackageFiles: () => Promise.resolve([]), }); expect( @@ -81,6 +101,7 @@ describe('manager/index', () => { it('returns null', () => { manager.getManagers().set('dummy', { defaultConfig: {}, + supportedDatasources: [], }); expect(manager.extractPackageFile('unknown', null)).toBeNull(); expect(manager.extractPackageFile('dummy', null)).toBeNull(); @@ -88,6 +109,7 @@ describe('manager/index', () => { it('returns non-null', () => { manager.getManagers().set('dummy', { defaultConfig: {}, + supportedDatasources: [], extractPackageFile: () => Promise.resolve({ deps: [] }), }); @@ -102,6 +124,7 @@ describe('manager/index', () => { it('returns null', () => { manager.getManagers().set('dummy', { defaultConfig: {}, + supportedDatasources: [], }); expect( manager.getRangeStrategy({ manager: 'unknown', rangeStrategy: 'auto' }) @@ -110,6 +133,7 @@ describe('manager/index', () => { it('returns non-null', () => { manager.getManagers().set('dummy', { defaultConfig: {}, + supportedDatasources: [], getRangeStrategy: () => 'replace', }); expect( @@ -118,6 +142,7 @@ describe('manager/index', () => { manager.getManagers().set('dummy', { defaultConfig: {}, + supportedDatasources: [], }); expect( manager.getRangeStrategy({ manager: 'dummy', rangeStrategy: 'auto' }) diff --git a/lib/manager/jenkins/index.ts b/lib/manager/jenkins/index.ts index 6b8b845d29a5ee..afe5c649940d34 100644 --- a/lib/manager/jenkins/index.ts +++ b/lib/manager/jenkins/index.ts @@ -1,5 +1,8 @@ +import { JenkinsPluginsDatasource } from '../../datasource/jenkins-plugins'; export { extractPackageFile } from './extract'; export const defaultConfig = { fileMatch: ['(^|/)plugins\\.(txt|ya?ml)$'], }; + +export const supportedDatasources = [JenkinsPluginsDatasource.id]; diff --git a/lib/manager/jsonnet-bundler/index.ts b/lib/manager/jsonnet-bundler/index.ts index aa3fd5480c9944..df3ddd9a4d64e7 100644 --- a/lib/manager/jsonnet-bundler/index.ts +++ b/lib/manager/jsonnet-bundler/index.ts @@ -8,3 +8,5 @@ export const defaultConfig = { fileMatch: ['(^|/)jsonnetfile.json$'], datasource: GitTagsDatasource.id, }; + +export const supportedDatasources = [GitTagsDatasource.id]; diff --git a/lib/manager/kubernetes/index.ts b/lib/manager/kubernetes/index.ts index bc2ce7d3bb2326..053562ef183ae2 100644 --- a/lib/manager/kubernetes/index.ts +++ b/lib/manager/kubernetes/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import * as datasourceDocker from '../../datasource/docker'; export { extractPackageFile } from './extract'; @@ -7,3 +8,5 @@ export const language = ProgrammingLanguage.Docker; export const defaultConfig = { fileMatch: [], }; + +export const supportedDatasources = [datasourceDocker.id]; diff --git a/lib/manager/kustomize/index.ts b/lib/manager/kustomize/index.ts index d28c8186e0b315..c3ac88cd6e180c 100644 --- a/lib/manager/kustomize/index.ts +++ b/lib/manager/kustomize/index.ts @@ -1,6 +1,17 @@ +import * as datasourceDocker from '../../datasource/docker'; +import { GitTagsDatasource } from '../../datasource/git-tags'; +import * as datasourceGitHubTags from '../../datasource/github-tags'; +import { HelmDatasource } from '../../datasource/helm'; export { extractPackageFile } from './extract'; export const defaultConfig = { fileMatch: ['(^|/)kustomization\\.yaml'], pinDigests: false, }; + +export const supportedDatasources = [ + datasourceDocker.id, + GitTagsDatasource.id, + datasourceGitHubTags.id, + HelmDatasource.id, +]; diff --git a/lib/manager/leiningen/index.ts b/lib/manager/leiningen/index.ts index f501592d2cfe6c..831fa32857badf 100644 --- a/lib/manager/leiningen/index.ts +++ b/lib/manager/leiningen/index.ts @@ -1,3 +1,4 @@ +import { ClojureDatasource } from '../../datasource/clojure'; import * as mavenVersioning from '../../versioning/maven'; export { extractPackageFile } from './extract'; @@ -6,3 +7,5 @@ export const defaultConfig = { fileMatch: ['(^|/)project\\.clj$'], versioning: mavenVersioning.id, }; + +export const supportedDatasources = [ClojureDatasource.id]; diff --git a/lib/manager/maven/index.ts b/lib/manager/maven/index.ts index 3c6c02bfe10b7e..b53ff3213328a2 100644 --- a/lib/manager/maven/index.ts +++ b/lib/manager/maven/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import * as datasourceMaven from '../../datasource/maven'; import * as mavenVersioning from '../../versioning/maven'; export { extractAllPackageFiles } from './extract'; @@ -10,3 +11,5 @@ export const defaultConfig = { fileMatch: ['\\.pom\\.xml$', '(^|/)pom\\.xml$'], versioning: mavenVersioning.id, }; + +export const supportedDatasources = [datasourceMaven.id]; diff --git a/lib/manager/meteor/index.ts b/lib/manager/meteor/index.ts index 81f312736e7046..63a1000f81414f 100644 --- a/lib/manager/meteor/index.ts +++ b/lib/manager/meteor/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import { id as npmId } from '../../datasource/npm'; export { extractPackageFile } from './extract'; @@ -7,3 +8,5 @@ export const language = ProgrammingLanguage.JavaScript; export const defaultConfig = { fileMatch: ['(^|/)package.js$'], }; + +export const supportedDatasources = [npmId]; diff --git a/lib/manager/mix/index.ts b/lib/manager/mix/index.ts index ca250c6fe9ab71..fc2ce8347a8fe6 100644 --- a/lib/manager/mix/index.ts +++ b/lib/manager/mix/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import { HexDatasource } from '../../datasource/hex'; import * as hexVersioning from '../../versioning/hex'; export { extractPackageFile } from './extract'; @@ -10,3 +11,5 @@ export const defaultConfig = { fileMatch: ['(^|/)mix\\.exs$'], versioning: hexVersioning.id, }; + +export const supportedDatasources = [HexDatasource.id]; diff --git a/lib/manager/nodenv/index.ts b/lib/manager/nodenv/index.ts index d25368b739ad21..cf206a758f8f98 100644 --- a/lib/manager/nodenv/index.ts +++ b/lib/manager/nodenv/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import * as datasourceGithubTags from '../../datasource/github-tags'; import * as nodeVersioning from '../../versioning/node'; export { extractPackageFile } from './extract'; @@ -9,3 +10,5 @@ export const defaultConfig = { fileMatch: ['(^|/).node-version$'], versioning: nodeVersioning.id, }; + +export const supportedDatasources = [datasourceGithubTags.id]; diff --git a/lib/manager/npm/index.ts b/lib/manager/npm/index.ts index 35286fb455b45b..0d5bdbf49de3f9 100644 --- a/lib/manager/npm/index.ts +++ b/lib/manager/npm/index.ts @@ -1,4 +1,6 @@ import { ProgrammingLanguage } from '../../constants'; +import * as datasourceGithubTags from '../../datasource/github-tags'; +import { id as npmId } from '../../datasource/npm'; import * as npmVersioning from '../../versioning/npm'; export { detectGlobalConfig } from './detect'; @@ -28,3 +30,5 @@ export const defaultConfig = { "[{{#if displayFrom}}`{{{displayFrom}}}` -> {{else}}{{#if currentValue}}`{{{currentValue}}}` -> {{/if}}{{/if}}{{#if displayTo}}`{{{displayTo}}}`{{else}}`{{{newValue}}}`{{/if}}]({{#if depName}}https://renovatebot.com/diffs/npm/{{replace '/' '%2f' depName}}/{{{currentVersion}}}/{{{newVersion}}}{{/if}})", }, }; + +export const supportedDatasources = [datasourceGithubTags.id, npmId]; diff --git a/lib/manager/nuget/index.ts b/lib/manager/nuget/index.ts index 35f875646841c3..0fbdfe63c41d7d 100644 --- a/lib/manager/nuget/index.ts +++ b/lib/manager/nuget/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import * as datasourceNuget from '../../datasource/nuget'; export { extractPackageFile } from './extract'; export { updateArtifacts } from './artifacts'; @@ -13,3 +14,5 @@ export const defaultConfig = { '(^|\\/)global\\.json$', ], }; + +export const supportedDatasources = [datasourceNuget.id]; diff --git a/lib/manager/nvm/index.ts b/lib/manager/nvm/index.ts index 2bdae051672457..337f088cac9a10 100644 --- a/lib/manager/nvm/index.ts +++ b/lib/manager/nvm/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import * as datasourceGithubTags from '../../datasource/github-tags'; import * as nodeVersioning from '../../versioning/node'; export { extractPackageFile } from './extract'; @@ -10,3 +11,5 @@ export const defaultConfig = { versioning: nodeVersioning.id, pinDigests: false, }; + +export const supportedDatasources = [datasourceGithubTags.id]; diff --git a/lib/manager/pip-compile/index.ts b/lib/manager/pip-compile/index.ts index 99266a9dbecee1..0e9c0613532f55 100644 --- a/lib/manager/pip-compile/index.ts +++ b/lib/manager/pip-compile/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import { PypiDatasource } from '../../datasource/pypi'; export { extractPackageFile } from '../pip_requirements/extract'; export { updateArtifacts } from './artifacts'; @@ -6,6 +7,8 @@ export { updateArtifacts } from './artifacts'; export const language = ProgrammingLanguage.Python; export const supportsLockFileMaintenance = true; +export const supportedDatasources = [PypiDatasource.id]; + export const defaultConfig = { fileMatch: [], lockFileMaintenance: { diff --git a/lib/manager/pip_requirements/index.ts b/lib/manager/pip_requirements/index.ts index 351c36b7d76518..a2bf950ff25bca 100644 --- a/lib/manager/pip_requirements/index.ts +++ b/lib/manager/pip_requirements/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import { PypiDatasource } from '../../datasource/pypi'; export { updateArtifacts } from './artifacts'; export { extractPackageFile } from './extract'; @@ -9,3 +10,5 @@ export const language = ProgrammingLanguage.Python; export const defaultConfig = { fileMatch: ['(^|/)([\\w-]*)requirements\\.(txt|pip)$'], }; + +export const supportedDatasources = [PypiDatasource.id]; diff --git a/lib/manager/pip_setup/index.ts b/lib/manager/pip_setup/index.ts index 643123288b2db3..9219cd5026c1e5 100644 --- a/lib/manager/pip_setup/index.ts +++ b/lib/manager/pip_setup/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import { PypiDatasource } from '../../datasource/pypi'; export { extractPackageFile } from './extract'; @@ -7,3 +8,5 @@ export const language = ProgrammingLanguage.Python; export const defaultConfig = { fileMatch: ['(^|/)setup.py$'], }; + +export const supportedDatasources = [PypiDatasource.id]; diff --git a/lib/manager/pipenv/index.ts b/lib/manager/pipenv/index.ts index 3f4726a3623a19..acb2766bc355f3 100644 --- a/lib/manager/pipenv/index.ts +++ b/lib/manager/pipenv/index.ts @@ -1,4 +1,5 @@ import { ProgrammingLanguage } from '../../constants'; +import { PypiDatasource } from '../../datasource/pypi'; export { extractPackageFile } from './extract'; export { updateArtifacts } from './artifacts'; @@ -6,6 +7,8 @@ export { updateArtifacts } from './artifacts'; export const language = ProgrammingLanguage.Python; export const supportsLockFileMaintenance = true; +export const supportedDatasources = [PypiDatasource.id]; + export const defaultConfig = { fileMatch: ['(^|/)Pipfile$'], }; diff --git a/lib/manager/poetry/index.ts b/lib/manager/poetry/index.ts index 9ce8080082fae2..3440d2cbaa6f17 100644 --- a/lib/manager/poetry/index.ts +++ b/lib/manager/poetry/index.ts @@ -1,8 +1,11 @@ import { ProgrammingLanguage } from '../../constants'; +import { PypiDatasource } from '../../datasource/pypi'; export { extractPackageFile } from './extract'; export { updateArtifacts } from './artifacts'; +export const supportedDatasources = [PypiDatasource.id]; + export const language = ProgrammingLanguage.Python; export const supportsLockFileMaintenance = true; diff --git a/lib/manager/pre-commit/index.ts b/lib/manager/pre-commit/index.ts index f8d1af666821f6..e596a408168ad7 100644 --- a/lib/manager/pre-commit/index.ts +++ b/lib/manager/pre-commit/index.ts @@ -1,5 +1,9 @@ +import { id as githubTagsId } from '../../datasource/github-tags'; +import { id as gitlabTagsId } from '../../datasource/gitlab-tags'; export { extractPackageFile } from './extract'; +export const supportedDatasources = [githubTagsId, gitlabTagsId]; + export const defaultConfig = { commitMessageTopic: 'pre-commit hook {{depName}}', enabled: false, diff --git a/lib/manager/pub/index.ts b/lib/manager/pub/index.ts index dcdceecd7fd3a9..1fde801f57a505 100644 --- a/lib/manager/pub/index.ts +++ b/lib/manager/pub/index.ts @@ -1,7 +1,10 @@ +import { DartDatasource } from '../../datasource/dart'; import * as npmVersioning from '../../versioning/npm'; export { extractPackageFile } from './extract'; +export const supportedDatasources = [DartDatasource.id]; + export const defaultConfig = { fileMatch: ['(^|/)pubspec\\.ya?ml$'], versioning: npmVersioning.id, diff --git a/lib/manager/pyenv/index.ts b/lib/manager/pyenv/index.ts index a569478bcb8f21..3be9c1f5836ee6 100644 --- a/lib/manager/pyenv/index.ts +++ b/lib/manager/pyenv/index.ts @@ -1,10 +1,13 @@ import { ProgrammingLanguage } from '../../constants'; +import * as datasourceDocker from '../../datasource/docker'; import * as dockerVersioning from '../../versioning/docker'; export { extractPackageFile } from './extract'; export const language = ProgrammingLanguage.Python; +export const supportedDatasources = [datasourceDocker.id]; + export const defaultConfig = { fileMatch: ['(^|/).python-version$'], versioning: dockerVersioning.id, diff --git a/lib/manager/regex/index.ts b/lib/manager/regex/index.ts index 7557012ad67dc5..0856607cff1eec 100644 --- a/lib/manager/regex/index.ts +++ b/lib/manager/regex/index.ts @@ -11,6 +11,8 @@ export const defaultConfig = { pinDigests: false, }; +export const supportedDatasources = ['*']; + export function extractPackageFile( content: string, packageFile: string, diff --git a/lib/manager/regex/readme.md b/lib/manager/regex/readme.md index 71d5337bb073a5..75becb1c6f6395 100644 --- a/lib/manager/regex/readme.md +++ b/lib/manager/regex/readme.md @@ -3,7 +3,8 @@ The `regex` manager is designed to allow users to manually configure Renovate fo This manager is unique in Renovate in that: - It is configurable via regex named capture groups -- Through the use of the `regexManagers` config, multiple "regex managers" can be created for the same repository. +- Through the use of the `regexManagers` config, multiple "regex managers" can be created for the same repository +- It can extract any `datasource` ### Required Fields diff --git a/lib/manager/ruby-version/index.ts b/lib/manager/ruby-version/index.ts index dd4c7214153f3c..757ef8d8009843 100644 --- a/lib/manager/ruby-version/index.ts +++ b/lib/manager/ruby-version/index.ts @@ -1,8 +1,11 @@ import { ProgrammingLanguage } from '../../constants'; +import { RubyVersionDatasource } from '../../datasource/ruby-version'; import * as rubyVersioning from '../../versioning/ruby'; export { extractPackageFile } from './extract'; +export const supportedDatasources = [RubyVersionDatasource.id]; + export const language = ProgrammingLanguage.Ruby; export const defaultConfig = { diff --git a/lib/manager/sbt/index.ts b/lib/manager/sbt/index.ts index 017a1a8acb28c1..e281179a86cb21 100644 --- a/lib/manager/sbt/index.ts +++ b/lib/manager/sbt/index.ts @@ -1,8 +1,17 @@ +import * as datasourceMaven from '../../datasource/maven'; +import * as datasourceSbtPackage from '../../datasource/sbt-package'; +import * as datasourceSbtPlugin from '../../datasource/sbt-plugin'; import * as ivyVersioning from '../../versioning/ivy'; export { extractPackageFile } from './extract'; export { bumpPackageVersion } from './update'; +export const supportedDatasources = [ + datasourceMaven.id, + datasourceSbtPackage.id, + datasourceSbtPlugin.id, +]; + export const defaultConfig = { fileMatch: ['\\.sbt$', 'project/[^/]*.scala$'], versioning: ivyVersioning.id, diff --git a/lib/manager/setup-cfg/index.ts b/lib/manager/setup-cfg/index.ts index 270df5da4dcd40..d954804eb5f801 100644 --- a/lib/manager/setup-cfg/index.ts +++ b/lib/manager/setup-cfg/index.ts @@ -1,9 +1,12 @@ import { ProgrammingLanguage } from '../../constants'; +import { PypiDatasource } from '../../datasource/pypi'; import { id as versioning } from '../../versioning/pep440'; export { extractPackageFile } from './extract'; export { getRangeStrategy } from './range'; +export const supportedDatasources = [PypiDatasource.id]; + export const language = ProgrammingLanguage.Python; export const defaultConfig = { diff --git a/lib/manager/swift/index.ts b/lib/manager/swift/index.ts index e9102b4cf28e42..4d5967e2f5dc83 100644 --- a/lib/manager/swift/index.ts +++ b/lib/manager/swift/index.ts @@ -1,7 +1,10 @@ +import { GitTagsDatasource } from '../../datasource/git-tags'; import * as swiftVersioning from '../../versioning/swift'; export { extractPackageFile } from './extract'; +export const supportedDatasources = [GitTagsDatasource.id]; + export const defaultConfig = { fileMatch: ['(^|/)Package\\.swift'], versioning: swiftVersioning.id, diff --git a/lib/manager/terraform-version/index.ts b/lib/manager/terraform-version/index.ts index 9a55bdbd5c3eb7..718e39968c88ab 100644 --- a/lib/manager/terraform-version/index.ts +++ b/lib/manager/terraform-version/index.ts @@ -1,7 +1,10 @@ +import * as datasourceGitHubRelease from '../../datasource/github-releases'; import * as hashicorpVersioning from '../../versioning/hashicorp'; export { extractPackageFile } from './extract'; +export const supportedDatasources = [datasourceGitHubRelease.id]; + export const defaultConfig = { fileMatch: ['(^|/)\\.terraform-version$'], versioning: hashicorpVersioning.id, diff --git a/lib/manager/terraform/index.ts b/lib/manager/terraform/index.ts index 17107d2b17b8bd..cea16def596a0f 100644 --- a/lib/manager/terraform/index.ts +++ b/lib/manager/terraform/index.ts @@ -1,8 +1,23 @@ +import { BitBucketTagsDatasource } from '../../datasource/bitbucket-tags'; +import { GitTagsDatasource } from '../../datasource/git-tags'; +import * as datasourceGithubTags from '../../datasource/github-tags'; +import { HelmDatasource } from '../../datasource/helm'; +import { TerraformModuleDatasource } from '../../datasource/terraform-module'; +import { TerraformProviderDatasource } from '../../datasource/terraform-provider'; import * as hashicorpVersioning from '../../versioning/hashicorp'; export { updateArtifacts } from './lockfile'; export { extractPackageFile } from './extract'; +export const supportedDatasources = [ + BitBucketTagsDatasource.id, + GitTagsDatasource.id, + datasourceGithubTags.id, + HelmDatasource.id, + TerraformModuleDatasource.id, + TerraformProviderDatasource.id, +]; + export const supportsLockFileMaintenance = true; export const defaultConfig = { commitMessageTopic: diff --git a/lib/manager/terragrunt-version/index.ts b/lib/manager/terragrunt-version/index.ts index fe24c1f17b48ad..1b6aa3b029f620 100644 --- a/lib/manager/terragrunt-version/index.ts +++ b/lib/manager/terragrunt-version/index.ts @@ -1,7 +1,10 @@ +import * as datasourceGitHubRelease from '../../datasource/github-releases'; import * as hashicorpVersioning from '../../versioning/hashicorp'; export { extractPackageFile } from './extract'; +export const supportedDatasources = [datasourceGitHubRelease.id]; + export const defaultConfig = { fileMatch: ['(^|/)\\.terragrunt-version$'], versioning: hashicorpVersioning.id, diff --git a/lib/manager/terragrunt/index.ts b/lib/manager/terragrunt/index.ts index 61960a825bc735..ac5b5a06287f32 100644 --- a/lib/manager/terragrunt/index.ts +++ b/lib/manager/terragrunt/index.ts @@ -1,7 +1,16 @@ +import { GitTagsDatasource } from '../../datasource/git-tags'; +import * as datasourceGithubTags from '../../datasource/github-tags'; +import { TerraformModuleDatasource } from '../../datasource/terraform-module'; import * as hashicorpVersioning from '../../versioning/hashicorp'; export { extractPackageFile } from './extract'; +export const supportedDatasources = [ + GitTagsDatasource.id, + datasourceGithubTags.id, + TerraformModuleDatasource.id, +]; + export const defaultConfig = { commitMessageTopic: 'Terragrunt dependency {{depName}}', fileMatch: ['(^|/)terragrunt\\.hcl$'], diff --git a/lib/manager/travis/index.ts b/lib/manager/travis/index.ts index 14e453374c0990..ee13640188eefb 100644 --- a/lib/manager/travis/index.ts +++ b/lib/manager/travis/index.ts @@ -1,10 +1,13 @@ import { ProgrammingLanguage } from '../../constants'; +import * as datasourceGithubTags from '../../datasource/github-tags'; import * as nodeVersioning from '../../versioning/node'; export { extractPackageFile } from './extract'; export const language = ProgrammingLanguage.NodeJS; +export const supportedDatasources = [datasourceGithubTags.id]; + export const defaultConfig = { fileMatch: ['^.travis.yml$'], major: { diff --git a/lib/manager/types.ts b/lib/manager/types.ts index 6bfecd4489b711..0ce2162f2647c6 100644 --- a/lib/manager/types.ts +++ b/lib/manager/types.ts @@ -246,6 +246,8 @@ export interface ManagerApi extends ModuleApi { language?: ProgrammingLanguage; supportsLockFileMaintenance?: boolean; + supportedDatasources: string[]; + bumpPackageVersion?( content: string, currentValue: string, diff --git a/tools/docs/manager.ts b/tools/docs/manager.ts index bf3bbd4323f2da..b4eb71109f8207 100644 --- a/tools/docs/manager.ts +++ b/tools/docs/manager.ts @@ -21,7 +21,7 @@ export async function generateManagers(dist: string): Promise { const language = definition.language || 'other'; allLanguages[language] = allLanguages[language] || []; allLanguages[language].push(manager); - const { defaultConfig } = definition; + const { defaultConfig, supportedDatasources } = definition; const { fileMatch } = defaultConfig as RenovateConfig; const displayName = getDisplayName(manager, definition); let md = `--- @@ -56,8 +56,15 @@ sidebar_label: ${displayName} } } md += `For details on how to extend a manager's \`fileMatch\` value, please follow [this link](/modules/manager/#file-matching).\n\n`; + md += '## Supported datasources\n\n'; + const escapedDatasources = (supportedDatasources || []) + .map( + (datasource) => + `[\`${datasource}\`](../datasource/#${datasource}-datasource)` + ) + .join(', '); + md += `This manager supports extracting the following datasources: ${escapedDatasources}.\n\n`; } - const managerReadmeContent = await readFile( `lib/manager/${manager}/readme.md` );