diff --git a/lib/datasource/gradle-version/index.ts b/lib/datasource/gradle-version/index.ts index 6adaa7eb9df3f8c54c1c457577be84c9ca949676..e0b42e3511540e7a1b379f23ce00b828b82f8920 100644 --- a/lib/datasource/gradle-version/index.ts +++ b/lib/datasource/gradle-version/index.ts @@ -1,7 +1,8 @@ import { coerce } from 'semver'; +import is from '@sindresorhus/is'; import { logger } from '../../logger'; import got from '../../util/got'; -import { PkgReleaseConfig, ReleaseResult } from '../common'; +import { PkgReleaseConfig, ReleaseResult, Release } from '../common'; const GradleVersionsServiceUrl = 'https://services.gradle.org/versions/all'; @@ -16,36 +17,46 @@ interface GradleRelease { }[]; } -export async function getPkgReleases( - _config: PkgReleaseConfig -): Promise<ReleaseResult> { - try { - const response: GradleRelease = await got(GradleVersionsServiceUrl, { - json: true, - }); - const releases = response.body - .filter(release => !release.snapshot && !release.nightly) - .filter( - release => - // some milestone have wrong metadata and need to be filtered by version name content - release.rcFor === '' && !release.version.includes('milestone') - ) - .map(release => ({ - version: coerce(release.version).toString(), - downloadUrl: release.downloadUrl, - checksumUrl: release.checksumUrl, - })); - const gradle: ReleaseResult = { - releases, - homepage: 'https://gradle.org', - sourceUrl: 'https://github.com/gradle/gradle', - }; - return gradle; - } catch (err) { - logger.debug({ err }); - if (!(err.statusCode === 404 || err.code === 'ENOTFOUND')) { - logger.warn({ err }, 'Gradle release lookup failure: Unknown error'); - } - throw new Error('registry-failure'); - } +export async function getPkgReleases({ + registryUrls, +}: PkgReleaseConfig): Promise<ReleaseResult> { + const versionsUrls = is.nonEmptyArray(registryUrls) + ? registryUrls + : [GradleVersionsServiceUrl]; + + const allReleases: Release[][] = await Promise.all( + versionsUrls.map(async url => { + try { + const response: GradleRelease = await got(url, { + json: true, + }); + const releases = response.body + .filter(release => !release.snapshot && !release.nightly) + .filter( + release => + // some milestone have wrong metadata and need to be filtered by version name content + release.rcFor === '' && !release.version.includes('milestone') + ) + .map(release => ({ + version: coerce(release.version).toString(), + downloadUrl: release.downloadUrl, + checksumUrl: release.checksumUrl, + })); + return releases; + } catch (err) { + logger.debug({ err }); + if (!(err.statusCode === 404 || err.code === 'ENOTFOUND')) { + logger.warn({ err }, 'Gradle release lookup failure: Unknown error'); + } + throw new Error('registry-failure'); + } + }) + ); + + const gradle: ReleaseResult = { + releases: Array.prototype.concat.apply([], allReleases), + homepage: 'https://gradle.org', + sourceUrl: 'https://github.com/gradle/gradle', + }; + return gradle; } diff --git a/test/datasource/__snapshots__/gradle-version.spec.ts.snap b/test/datasource/__snapshots__/gradle-version.spec.ts.snap index 3301a7c70af09f1051686b8704d3d224c35cb3a8..52ae5d3180b2b03ebc0221e95ba97edd7c812638 100644 --- a/test/datasource/__snapshots__/gradle-version.spec.ts.snap +++ b/test/datasource/__snapshots__/gradle-version.spec.ts.snap @@ -1,5 +1,674 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`datasource/gradle getPkgReleases calls configured registryUrls 1`] = ` +Object { + "homepage": "https://gradle.org", + "releases": Array [ + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-0.7-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-0.7-bin.zip", + "version": "0.7.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-0.7-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-0.7-bin.zip", + "version": "0.7.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-0.8-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-0.8-bin.zip", + "version": "0.8.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-0.8-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-0.8-bin.zip", + "version": "0.8.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-0.9-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-0.9-bin.zip", + "version": "0.9.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-0.9-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-0.9-bin.zip", + "version": "0.9.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-0.9.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-0.9.1-bin.zip", + "version": "0.9.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-0.9.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-0.9.1-bin.zip", + "version": "0.9.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-0.9.2-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-0.9.2-bin.zip", + "version": "0.9.2", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-0.9.2-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-0.9.2-bin.zip", + "version": "0.9.2", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.0-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.0-bin.zip", + "version": "1.0.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.0-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.0-bin.zip", + "version": "1.0.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.1-bin.zip", + "version": "1.1.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.1-bin.zip", + "version": "1.1.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.2-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.2-bin.zip", + "version": "1.2.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.2-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.2-bin.zip", + "version": "1.2.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.3-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.3-bin.zip", + "version": "1.3.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.3-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.3-bin.zip", + "version": "1.3.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.4-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.4-bin.zip", + "version": "1.4.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.4-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.4-bin.zip", + "version": "1.4.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.5-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.5-bin.zip", + "version": "1.5.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.5-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.5-bin.zip", + "version": "1.5.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.6-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.6-bin.zip", + "version": "1.6.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.6-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.6-bin.zip", + "version": "1.6.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.7-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.7-bin.zip", + "version": "1.7.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.7-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.7-bin.zip", + "version": "1.7.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.8-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.8-bin.zip", + "version": "1.8.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.8-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.8-bin.zip", + "version": "1.8.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.9-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.9-bin.zip", + "version": "1.9.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.9-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.9-bin.zip", + "version": "1.9.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.10-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.10-bin.zip", + "version": "1.10.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.10-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.10-bin.zip", + "version": "1.10.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.11-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.11-bin.zip", + "version": "1.11.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.11-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.11-bin.zip", + "version": "1.11.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.12-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.12-bin.zip", + "version": "1.12.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-1.12-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-1.12-bin.zip", + "version": "1.12.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.0-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.0-bin.zip", + "version": "2.0.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.0-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.0-bin.zip", + "version": "2.0.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.1-bin.zip", + "version": "2.1.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.1-bin.zip", + "version": "2.1.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.2-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.2-bin.zip", + "version": "2.2.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.2-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.2-bin.zip", + "version": "2.2.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.2.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.2.1-bin.zip", + "version": "2.2.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.2.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.2.1-bin.zip", + "version": "2.2.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.3-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.3-bin.zip", + "version": "2.3.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.3-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.3-bin.zip", + "version": "2.3.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.4-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.4-bin.zip", + "version": "2.4.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.4-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.4-bin.zip", + "version": "2.4.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.5-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.5-bin.zip", + "version": "2.5.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.5-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.5-bin.zip", + "version": "2.5.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.6-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.6-bin.zip", + "version": "2.6.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.6-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.6-bin.zip", + "version": "2.6.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.7-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.7-bin.zip", + "version": "2.7.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.7-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.7-bin.zip", + "version": "2.7.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.8-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.8-bin.zip", + "version": "2.8.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.8-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.8-bin.zip", + "version": "2.8.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.9-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.9-bin.zip", + "version": "2.9.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.9-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.9-bin.zip", + "version": "2.9.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.10-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.10-bin.zip", + "version": "2.10.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.10-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.10-bin.zip", + "version": "2.10.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.11-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.11-bin.zip", + "version": "2.11.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.11-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.11-bin.zip", + "version": "2.11.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.12-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.12-bin.zip", + "version": "2.12.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.12-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.12-bin.zip", + "version": "2.12.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.13-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.13-bin.zip", + "version": "2.13.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.13-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.13-bin.zip", + "version": "2.13.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.14-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.14-bin.zip", + "version": "2.14.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.14-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.14-bin.zip", + "version": "2.14.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.14.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.14.1-bin.zip", + "version": "2.14.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-2.14.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-2.14.1-bin.zip", + "version": "2.14.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-3.0-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-3.0-bin.zip", + "version": "3.0.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-3.0-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-3.0-bin.zip", + "version": "3.0.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-3.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-3.1-bin.zip", + "version": "3.1.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-3.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-3.1-bin.zip", + "version": "3.1.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-3.2-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-3.2-bin.zip", + "version": "3.2.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-3.2-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-3.2-bin.zip", + "version": "3.2.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-3.2.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-3.2.1-bin.zip", + "version": "3.2.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-3.2.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-3.2.1-bin.zip", + "version": "3.2.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-3.3-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-3.3-bin.zip", + "version": "3.3.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-3.3-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-3.3-bin.zip", + "version": "3.3.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-3.4-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-3.4-bin.zip", + "version": "3.4.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-3.4-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-3.4-bin.zip", + "version": "3.4.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-3.4.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-3.4.1-bin.zip", + "version": "3.4.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-3.4.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-3.4.1-bin.zip", + "version": "3.4.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-3.5-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-3.5-bin.zip", + "version": "3.5.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-3.5-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-3.5-bin.zip", + "version": "3.5.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-3.5.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-3.5.1-bin.zip", + "version": "3.5.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-3.5.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-3.5.1-bin.zip", + "version": "3.5.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.0-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.0-bin.zip", + "version": "4.0.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.0-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.0-bin.zip", + "version": "4.0.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.0.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.0.1-bin.zip", + "version": "4.0.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.0.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.0.1-bin.zip", + "version": "4.0.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.0.2-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.0.2-bin.zip", + "version": "4.0.2", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.0.2-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.0.2-bin.zip", + "version": "4.0.2", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.1-bin.zip", + "version": "4.1.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.1-bin.zip", + "version": "4.1.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.2-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.2-bin.zip", + "version": "4.2.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.2-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.2-bin.zip", + "version": "4.2.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.2.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.2.1-bin.zip", + "version": "4.2.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.2.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.2.1-bin.zip", + "version": "4.2.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.3-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.3-bin.zip", + "version": "4.3.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.3-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.3-bin.zip", + "version": "4.3.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.3.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.3.1-bin.zip", + "version": "4.3.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.3.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.3.1-bin.zip", + "version": "4.3.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.4-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.4-bin.zip", + "version": "4.4.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.4-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.4-bin.zip", + "version": "4.4.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.4.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.4.1-bin.zip", + "version": "4.4.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.4.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.4.1-bin.zip", + "version": "4.4.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.5-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.5-bin.zip", + "version": "4.5.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.5-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.5-bin.zip", + "version": "4.5.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.5.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.5.1-bin.zip", + "version": "4.5.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.5.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.5.1-bin.zip", + "version": "4.5.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.6-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.6-bin.zip", + "version": "4.6.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.6-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.6-bin.zip", + "version": "4.6.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.7-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.7-bin.zip", + "version": "4.7.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.7-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.7-bin.zip", + "version": "4.7.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.8-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.8-bin.zip", + "version": "4.8.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.8-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.8-bin.zip", + "version": "4.8.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.8.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.8.1-bin.zip", + "version": "4.8.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.8.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.8.1-bin.zip", + "version": "4.8.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.9-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.9-bin.zip", + "version": "4.9.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.9-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.9-bin.zip", + "version": "4.9.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.10-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.10-bin.zip", + "version": "4.10.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.10-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.10-bin.zip", + "version": "4.10.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.10.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.10.1-bin.zip", + "version": "4.10.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.10.1-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.10.1-bin.zip", + "version": "4.10.1", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.10.2-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.10.2-bin.zip", + "version": "4.10.2", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.10.2-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.10.2-bin.zip", + "version": "4.10.2", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.10.3-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.10.3-bin.zip", + "version": "4.10.3", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-4.10.3-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-4.10.3-bin.zip", + "version": "4.10.3", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-5.0-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-5.0-bin.zip", + "version": "5.0.0", + }, + Object { + "checksumUrl": "https://services.gradle.org/distributions/gradle-5.0-bin.zip.sha256", + "downloadUrl": "https://services.gradle.org/distributions/gradle-5.0-bin.zip", + "version": "5.0.0", + }, + ], + "sourceUrl": "https://github.com/gradle/gradle", +} +`; + exports[`datasource/gradle getPkgReleases processes real data 1`] = ` Object { "homepage": "https://gradle.org", diff --git a/test/datasource/gradle-version.spec.ts b/test/datasource/gradle-version.spec.ts index f30ed7c7ce48e8292eee5e21fd0afdfd28873ad4..035b350739b5584eb140c4143fc85f689e3b2e1c 100644 --- a/test/datasource/gradle-version.spec.ts +++ b/test/datasource/gradle-version.spec.ts @@ -61,6 +61,27 @@ describe('datasource/gradle', () => { body: JSON.parse(allResponse), }); const res = await datasource.getPkgReleases(config); + expect(got).toHaveBeenCalledTimes(1); + expect(got.mock.calls[0][0]).toEqual( + 'https://services.gradle.org/versions/all' + ); + expect(res).toMatchSnapshot(); + expect(res).not.toBeNull(); + }); + + it('calls configured registryUrls', async () => { + got.mockReturnValue({ + body: JSON.parse(allResponse), + }); + const res = await datasource.getPkgReleases({ + ...config, + registryUrls: ['https://foo.bar', 'http://baz.qux'], + }); + expect(got).toHaveBeenCalledTimes(2); + expect(got.mock.calls[0][0]).toEqual('https://foo.bar'); + expect(got.mock.calls[1][0]).toEqual('http://baz.qux'); + // This will have every release duplicated, because we used the same + // mocked data for both responses. expect(res).toMatchSnapshot(); expect(res).not.toBeNull(); });