diff --git a/lib/modules/datasource/go/releases-goproxy.spec.ts b/lib/modules/datasource/go/releases-goproxy.spec.ts index e2007264916a7ebdbac15672da1e4ce7901947d2..952971e26025ada5996fde91bf3ac7ddfb0a18fd 100644 --- a/lib/modules/datasource/go/releases-goproxy.spec.ts +++ b/lib/modules/datasource/go/releases-goproxy.spec.ts @@ -515,5 +515,31 @@ describe('modules/datasource/go/releases-goproxy', () => { expect(res).toBeNull(); }); + + it('handles soureUrl fetch errors', async () => { + process.env.GOPROXY = baseUrl; + + httpMock + .scope(`${baseUrl}/custom.com/lib/btree`) + .get('/@v/list') + .reply(200, ['v1.0.0 2018-08-13T15:31:12Z', 'v1.0.1'].join('\n')) + .get('/@v/v1.0.1.info') + .reply(200, { Version: 'v1.0.1', Time: '2019-10-16T16:15:28Z' }); + httpMock + .scope('https://custom.com/lib/btree') + .get('?go-get=1') + .reply(500); + + const res = await datasource.getReleases({ + packageName: 'custom.com/lib/btree', + }); + + expect(res).toEqual({ + releases: [ + { releaseTimestamp: '2018-08-13T15:31:12Z', version: 'v1.0.0' }, + { releaseTimestamp: '2019-10-16T16:15:28Z', version: 'v1.0.1' }, + ], + }); + }); }); }); diff --git a/lib/modules/datasource/go/releases-goproxy.ts b/lib/modules/datasource/go/releases-goproxy.ts index 405bcb801aabf0785ccb7849a4670cc1ef2aa4cb..d1b468c59db4f1df86c3da3250a2ede7d6cff440 100644 --- a/lib/modules/datasource/go/releases-goproxy.ts +++ b/lib/modules/datasource/go/releases-goproxy.ts @@ -68,9 +68,17 @@ export class GoProxyDatasource extends Datasource { } }); if (releases.length) { - const datasource = await BaseGoDatasource.getDatasource(packageName); - const sourceUrl = getSourceUrl(datasource); - result = { releases, sourceUrl }; + try { + const datasource = await BaseGoDatasource.getDatasource( + packageName + ); + const sourceUrl = getSourceUrl(datasource); + result = { releases, sourceUrl }; + } catch (err) { + logger.trace({ err }, `Can't get datasource for ${packageName}`); + result = { releases }; + } + break; } } catch (err) {