Datasources are used in Renovate primarily to fetch released versions of packages.
### getPkgReleases
The minimum exported interface for a datasource is a function called `getPkgReleases` that takes a `purl` object as first input, and optionally `config` as the second argument.
The `purl` object contains:
-`fullname`: the package's full name including scope if present (e.g. `@foo/bar`)
-`qualifiers`: optional addition arguments, may contain fields like `registry`
In the simplest case, the datasource only needs to pay attention to `purl.fullname`.
`getPkgReleases` should return an object containing:
-`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.