renovate/lib/modules/datasource
2022-07-02 10:13:55 +02:00
..
__snapshots__ refactor: lib/modules (#14488) 2022-03-04 09:04:02 +01:00
adoptium-java refactor: rename lookupName -> packageName (#14494) 2022-03-04 09:04:02 +01:00
artifactory refactor: rename lookupName -> packageName (#14494) 2022-03-04 09:04:02 +01:00
aws-machine-image build(deps): update aws-sdk-js-v3 monorepo (#16233) 2022-06-27 05:31:34 +00:00
bitbucket-tags refactor(modules/datasource): fix null-check issues (#16153) 2022-06-20 16:24:37 +02:00
cdnjs refactor(modules/datasource): fix null-check issues (#16153) 2022-06-20 16:24:37 +02:00
clojure refactor(modules/datasource): fix null-check issues (#16153) 2022-06-20 16:24:37 +02:00
conan refactor: fix prefer-nullish-coalescing (#16171) 2022-06-21 12:02:49 +00:00
conda refactor: rename lookupName -> packageName (#14494) 2022-03-04 09:04:02 +01:00
crate refactor(fs): Remove proxies.ts file (#16325) 2022-07-01 14:57:30 +02:00
dart refactor(modules/datasource): fix null-check issues (#16153) 2022-06-20 16:24:37 +02:00
docker refactor: enable strict checks (#16168) 2022-06-21 13:00:21 +02:00
flutter-version refactor(modules/datasource): fix null-check issues (#16153) 2022-06-20 16:24:37 +02:00
galaxy refactor: enable strict checks (#16168) 2022-06-21 13:00:21 +02:00
galaxy-collection refactor(modules/datasource): fix null-check issues (#16153) 2022-06-20 16:24:37 +02:00
git-refs refactor(modules/datasource): fix null-check issues (#16153) 2022-06-20 16:24:37 +02:00
git-tags refactor: fix prefer-nullish-coalescing (#16171) 2022-06-21 12:02:49 +00:00
github-releases refactor(github): Consume pages entirely during tags/releases caching (#16386) 2022-07-02 10:13:55 +02:00
github-tags fix(github-tags): Use releaseTimestamp from tagger object (#16385) 2022-07-02 09:46:48 +02:00
gitlab-packages refactor(modules/datasource): fix null-check issues (#16153) 2022-06-20 16:24:37 +02:00
gitlab-releases refactor(modules/datasource): fix null-check issues (#16153) 2022-06-20 16:24:37 +02:00
gitlab-tags refactor: enable strict checks (#16168) 2022-06-21 13:00:21 +02:00
go refactor: fix prefer-nullish-coalescing (#16171) 2022-06-21 12:02:49 +00:00
golang-version refactor: strict datasource tests (#16150) 2022-06-20 13:15:02 +02:00
gradle-version refactor: strict datasource tests (#16150) 2022-06-20 13:15:02 +02:00
helm fix(helm): Revert source url logic back (#16317) 2022-06-29 03:58:08 +00:00
hex refactor: strict datasource tests (#16150) 2022-06-20 13:15:02 +02:00
jenkins-plugins refactor: strict datasource tests (#16150) 2022-06-20 13:15:02 +02:00
maven refactor: strict datasource tests (#16150) 2022-06-20 13:15:02 +02:00
node refactor: strict datasource tests (#16150) 2022-06-20 13:15:02 +02:00
npm fix: log http and npm rejection cases (#16307) 2022-06-28 16:30:35 +02:00
nuget test: deprecate old loads fixtures functions (#15539) 2022-05-11 07:19:34 +00:00
orb test: enforce lint style rules (#15085) 2022-04-12 14:49:49 +00:00
packagist refactor: enable strict checks (#16168) 2022-06-21 13:00:21 +02:00
pod fix(pod): Massage only registry URLs that matched the GitHub regex 2022-04-20 14:49:08 +02:00
pypi fix(datasource/pypi): use pypi.org/pypi registry instead of pypi.org/simple (#16293) 2022-06-29 07:26:46 +02:00
repology refactor: strict datasource tests (#16150) 2022-06-20 13:15:02 +02:00
ruby-version refactor(datasources): strict null checks done (#15144) 2022-04-16 12:57:12 +01:00
rubygems refactor: enable strict checks (#16168) 2022-06-21 13:00:21 +02:00
sbt-package refactor: strict datasource tests (#16150) 2022-06-20 13:15:02 +02:00
sbt-plugin refactor: strict datasource tests (#16150) 2022-06-20 13:15:02 +02:00
terraform-module feat(datasource:terraform): use official api for custom registries (#15175) 2022-05-16 19:31:02 +00:00
terraform-provider feat(datasource:terraform): use official api for custom registries (#15175) 2022-05-16 19:31:02 +00:00
api.ts feat: add flutter-version datasource (#14743) 2022-03-29 04:09:16 +00:00
common.ts refactor: lib/modules (#14488) 2022-03-04 09:04:02 +01:00
datasource.spec.ts refactor(modules/datasource): fix null-check issues (#16153) 2022-06-20 16:24:37 +02:00
datasource.ts refactor: redefine defaultRegistryUrls (#15856) 2022-06-16 13:00:11 +02:00
index.spec.ts refactor: enable strict checks (#16168) 2022-06-21 13:00:21 +02:00
index.ts fix: add return value for additionalRegistryURLs concat in resolveRegistryUrls (#16334) 2022-06-30 05:06:22 +00:00
metadata-manual.ts fix: switch changelog urls from http to https (#16349) 2022-07-01 04:57:07 +00:00
metadata.spec.ts test: enforce lint style rules (#15085) 2022-04-12 14:49:49 +00:00
metadata.ts refactor: rename lookupName -> packageName (#14494) 2022-03-04 09:04:02 +01:00
readme.md docs: replace encounter with find (#14694) 2022-03-16 14:54:45 +01:00
types.ts refactor: redefine defaultRegistryUrls (#15856) 2022-06-16 13:00:11 +02:00

Datasources

Datasources are used in Renovate primarily to fetch released versions of packages.

Follow the class-based programming style

New datasources must follow the class-based programming style. Use the adoptium-java datasource as a reference.

Add the datasource to the API in api.ts so that the new datasource is usable. If you find Pending mocks! errors in the Jest tests and your mocked URLs are correct, ensure the datasource is correctly registered.

getReleases

The minimum exported interface for a datasource is a function called getReleases that takes a lookup config as input.

The config has:

  • packageName: the package's full name including scope if present (e.g. @foo/bar)
  • registryUrls: an array of registry Urls to try

getReleases should return an object having:

  • releases: an array of strings of matched versions. This is the only mandatory field.
  • deprecationMessage: a string description of the package's deprecation notice, if applicable
  • sourceUrl: a HTTP URL pointing to the source code (e.g. on GitHub)
  • homepage: a HTTP URL for the package's homepage. Ideally should be empty if the homepage and sourceUrl are the same
  • changelogUrl: a URL pointing to the package's Changelog (could be a Markdown file, for example). If not present then Renovate will search the sourceUrl for a changelog file.
  • tags: an object mapping tag -> version, e.g. tags: { latest: '3.0.0' }. This is only used by the followTags function.

getDigest

Datasources that support the concept of digests (e.g. Docker digests and Git commit hashes) also can export a getDigest function.

The getDigest function has two inputs:

  • config: the Renovate config for the package being updated, has the same fields as getReleases
  • newValue: the version or value to retrieve the digest for

The getDigest function returns a string output representing the digest value. If none is found then a return value of null should be returned.