diff --git a/lib/modules/datasource/helm/__fixtures__/index_emptypackage.yaml b/lib/modules/datasource/helm/__fixtures__/index_emptypackage.yaml new file mode 100644 index 0000000000000000000000000000000000000000..fef501521becf52564df4529816d77480fe1583d --- /dev/null +++ b/lib/modules/datasource/helm/__fixtures__/index_emptypackage.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +entries: + aerospike: [] + ambassador: + - apiVersion: v1 + appVersion: 0.70.1 + created: 2019-06-02T08:56:36.119470813Z + description: A Helm chart for Datawire Ambassador + digest: 880002d74accfc9dab1debcc78c134fb4989e73ff84b137ce7aa92bf4d726297 + engine: gotpl + home: https://www.getambassador.io/ + icon: https://www.getambassador.io/images/logo.png + name: ambassador + sources: + - https://github.com/datawire/ambassador + - https://github.com/prometheus/statsd_exporter + urls: + - https://charts.helm.sh/stable/packages/ambassador-2.7.0.tgz + version: 2.7.0 diff --git a/lib/modules/datasource/helm/index.spec.ts b/lib/modules/datasource/helm/index.spec.ts index c4dc79ae968b82950a9d31605efad76c342dc1d3..7a272957dc4800371f22af257ce749b00e2dc744 100644 --- a/lib/modules/datasource/helm/index.spec.ts +++ b/lib/modules/datasource/helm/index.spec.ts @@ -167,6 +167,24 @@ describe('modules/datasource/helm/index', () => { expect(releases).toMatchSnapshot(); }); + it('returns list of versions for other packages if one packages has no versions', async () => { + httpMock + .scope('https://example-repository.com') + .get('/index.yaml') + .reply(200, Fixtures.get('index_emptypackage.yaml')); + const releases = await getPkgReleases({ + datasource: HelmDatasource.id, + packageName: 'ambassador', + registryUrls: ['https://example-repository.com'], + }); + expect(releases).toMatchObject({ + homepage: 'https://www.getambassador.io/', + registryUrl: 'https://example-repository.com', + sourceUrl: 'https://github.com/datawire/ambassador', + releases: expect.toBeArrayOfSize(1), + }); + }); + it('adds trailing slash to subdirectories', async () => { httpMock .scope('https://example-repository.com') diff --git a/lib/modules/datasource/helm/index.ts b/lib/modules/datasource/helm/index.ts index 8fcf881edad4cd31405cdef7c1176b867277d96f..6d8e2ef4c0aec9016bcf045b474c1c25411600c7 100644 --- a/lib/modules/datasource/helm/index.ts +++ b/lib/modules/datasource/helm/index.ts @@ -60,6 +60,9 @@ export class HelmDatasource extends Datasource { } const result: HelmRepositoryData = {}; for (const [name, releases] of Object.entries(doc.entries)) { + if (releases.length === 0) { + continue; + } const latestRelease = releases[0]; const sourceUrl = findSourceUrl(latestRelease); result[name] = {