diff --git a/lib/datasource/go/__snapshots__/index.spec.ts.snap b/lib/datasource/go/__snapshots__/index.spec.ts.snap index 805059866ed926e6962cbf27d121c43fd3bd14c4..88edf444574ea12be64c32cd1eb977f82e7f5511 100644 --- a/lib/datasource/go/__snapshots__/index.spec.ts.snap +++ b/lib/datasource/go/__snapshots__/index.spec.ts.snap @@ -54,27 +54,4 @@ Array [ exports[`datasource/go/index getDigest support bitbucket digest 1`] = `"123"`; -exports[`datasource/go/index getDigest support bitbucket digest 2`] = ` -Array [ - Object { - "headers": Object { - "accept": "application/json", - "accept-encoding": "gzip, deflate, br", - "host": "api.bitbucket.org", - "user-agent": "RenovateBot/0.0.0-semantic-release (https://github.com/renovatebot/renovate)", - }, - "method": "GET", - "url": "https://api.bitbucket.org/2.0/repositories/golang/text", - }, - Object { - "headers": Object { - "accept": "application/json", - "accept-encoding": "gzip, deflate, br", - "host": "api.bitbucket.org", - "user-agent": "RenovateBot/0.0.0-semantic-release (https://github.com/renovatebot/renovate)", - }, - "method": "GET", - "url": "https://api.bitbucket.org/2.0/repositories/golang/text/commits/master", - }, -] -`; +exports[`datasource/go/index getDigest support bitbucket digest 2`] = `Array []`; diff --git a/lib/datasource/go/base.ts b/lib/datasource/go/base.ts index 3b84220bab5f59ed5c538f5a86d4f09df0e8bc76..1dfc69c12f58563061c205958988e906bc85dd5d 100644 --- a/lib/datasource/go/base.ts +++ b/lib/datasource/go/base.ts @@ -5,9 +5,9 @@ import * as hostRules from '../../util/host-rules'; import { Http } from '../../util/http'; import { regEx } from '../../util/regex'; import { trimTrailingSlash } from '../../util/url'; +import { BitBucketTagsDatasource } from '../bitbucket-tags'; import * as github from '../github-tags'; import { GitlabTagsDatasource } from '../gitlab-tags'; -import { bitbucket } from './common'; import type { DataSource } from './types'; // TODO: figure out class hierarchy (#10532) @@ -47,7 +47,7 @@ export class BaseGoDatasource { const split = goModule.split('/'); const lookupName = split[1] + '/' + split[2]; return { - datasource: bitbucket.id, + datasource: BitBucketTagsDatasource.id, lookupName, registryUrl: 'https://bitbucket.org', }; diff --git a/lib/datasource/go/common.ts b/lib/datasource/go/common.ts index 3a81f223c8b39a6cec4178d3eea6fa6229c121ca..335d4ef952aec008cb559f719df81b348e4ee567 100644 --- a/lib/datasource/go/common.ts +++ b/lib/datasource/go/common.ts @@ -6,8 +6,6 @@ import { getSourceUrl as gitlabSourceUrl } from '../gitlab-tags/util'; import type { DataSource } from './types'; -export const bitbucket = new BitBucketTagsDatasource(); - // eslint-disable-next-line typescript-enum/no-enum export enum GoproxyFallback { WhenNotFoundOrGone = ',', @@ -26,7 +24,7 @@ export function getSourceUrl(dataSource?: DataSource): string | undefined { return gitlabSourceUrl(lookupName, registryUrl); } - if (datasource === bitbucket.id) { + if (datasource === BitBucketTagsDatasource.id) { return BitBucketTagsDatasource.getSourceUrl(lookupName, registryUrl); } } diff --git a/lib/datasource/go/index.spec.ts b/lib/datasource/go/index.spec.ts index ce2348f934410dc957ca54eeedf81cfb9a47bada..b9020f5b087c183904b3836f0b4978aed8e5b8bd 100644 --- a/lib/datasource/go/index.spec.ts +++ b/lib/datasource/go/index.spec.ts @@ -8,12 +8,16 @@ const hostRules = mocked(_hostRules); const getReleasesDirectMock = jest.fn(); const getDigestGitlabMock = jest.fn(); +const getDigestBitbucketMock = jest.fn(); jest.mock('./releases-direct', () => { return { GoDirectDatasource: jest.fn().mockImplementation(() => ({ gitlab: { getDigest: () => getDigestGitlabMock(), }, + bitbucket: { + getDigest: () => getDigestBitbucketMock(), + }, getReleases: () => getReleasesDirectMock(), })), }; @@ -152,23 +156,7 @@ describe('datasource/go/index', () => { expect(httpMock.getTrace()).toMatchSnapshot(); }); it('support bitbucket digest', async () => { - httpMock - .scope('https://api.bitbucket.org') - .get('/2.0/repositories/golang/text') - .reply(200, { mainbranch: { name: 'master' } }); - httpMock - .scope('https://api.bitbucket.org') - .get('/2.0/repositories/golang/text/commits/master') - .reply(200, { - pagelen: 1, - values: [ - { - hash: '123', - date: '2020-11-19T09:05:35+00:00', - }, - ], - page: 1, - }); + getDigestBitbucketMock.mockResolvedValueOnce('123'); const res = await datasource.getDigest( { lookupName: 'bitbucket.org/golang/text', diff --git a/lib/datasource/go/index.ts b/lib/datasource/go/index.ts index d7ba8e3bb0265a1f8f14c343f3b1850a2fe596e0..7ae6da45604b333ef0fef43de4e1c0096ccab829 100644 --- a/lib/datasource/go/index.ts +++ b/lib/datasource/go/index.ts @@ -1,10 +1,10 @@ import { cache } from '../../util/cache/package/decorator'; +import { BitBucketTagsDatasource } from '../bitbucket-tags'; import { Datasource } from '../datasource'; import * as github from '../github-tags'; import { GitlabTagsDatasource } from '../gitlab-tags'; import type { DigestConfig, GetReleasesConfig, ReleaseResult } from '../types'; import { BaseGoDatasource } from './base'; -import { bitbucket } from './common'; import { GoDirectDatasource } from './releases-direct'; import { GoProxyDatasource } from './releases-goproxy'; @@ -60,8 +60,8 @@ export class GoDatasource extends Datasource { case github.id: { return github.getDigest(source, tag); } - case bitbucket.id: { - return bitbucket.getDigest(source, tag); + case BitBucketTagsDatasource.id: { + return this.direct.bitbucket.getDigest(source, tag); } case GitlabTagsDatasource.id: { return this.direct.gitlab.getDigest(source, tag); diff --git a/lib/datasource/go/releases-direct.ts b/lib/datasource/go/releases-direct.ts index bdce22d9ffd973bc06fecac35ad0b4eec06b9a43..71e9089bcf938a52f3eb732f32a74a586130f3f4 100644 --- a/lib/datasource/go/releases-direct.ts +++ b/lib/datasource/go/releases-direct.ts @@ -1,21 +1,24 @@ import { logger } from '../../logger'; import { cache } from '../../util/cache/package/decorator'; import { regEx } from '../../util/regex'; +import { BitBucketTagsDatasource } from '../bitbucket-tags'; import { Datasource } from '../datasource'; import * as github from '../github-tags'; import { GitlabTagsDatasource } from '../gitlab-tags'; import type { DatasourceApi, GetReleasesConfig, ReleaseResult } from '../types'; import { BaseGoDatasource } from './base'; -import { bitbucket, getSourceUrl } from './common'; +import { getSourceUrl } from './common'; export class GoDirectDatasource extends Datasource { static readonly id = 'go-direct'; gitlab: DatasourceApi; + bitbucket: DatasourceApi; constructor() { super(GoDirectDatasource.id); this.gitlab = new GitlabTagsDatasource(); + this.bitbucket = new BitBucketTagsDatasource(); } /** @@ -58,8 +61,8 @@ export class GoDirectDatasource extends Datasource { res = await this.gitlab.getReleases(source); break; } - case bitbucket.id: { - res = await bitbucket.getReleases(source); + case BitBucketTagsDatasource.id: { + res = await this.bitbucket.getReleases(source); break; } /* istanbul ignore next: can never happen, makes lint happy */